@notionhq/custom-blocks-host 0.4.1 → 0.4.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 (419) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/compatibility/normalizeHostToSandboxMessage.js +4 -4
  3. package/dist/compatibility/normalizeSandboxToHostMessage.d.ts +232 -8
  4. package/dist/compatibility/normalizeSandboxToHostMessage.d.ts.map +1 -1
  5. package/dist/compatibility/{pageResult.d.ts → pages/pageResult.d.ts} +1 -1
  6. package/dist/compatibility/pages/pageResult.d.ts.map +1 -0
  7. package/dist/compatibility/{pageWithNullTextFallbackProperties.d.ts → pages/toPageWithNullTextFallbackProperties.d.ts} +3 -3
  8. package/dist/compatibility/pages/toPageWithNullTextFallbackProperties.d.ts.map +1 -0
  9. package/dist/compatibility/{pageWithNullTextFallbackProperties.js → pages/toPageWithNullTextFallbackProperties.js} +1 -1
  10. package/dist/compatibility/{addMetadataReadSchemasForProtocol3To4.d.ts → protocol3To4/addMetadataReadSchemasForProtocol3To4.d.ts} +96 -90
  11. package/dist/compatibility/{addMetadataReadSchemasForProtocol3To4.d.ts.map → protocol3To4/addMetadataReadSchemasForProtocol3To4.d.ts.map} +1 -1
  12. package/dist/compatibility/{addMetadataReadSchemasForProtocol3To4.js → protocol3To4/addMetadataReadSchemasForProtocol3To4.js} +1 -1
  13. package/dist/compatibility/{normalizePageResultsForProtocol3To5.d.ts → protocol3To5/normalizePageResultsForProtocol3To5.d.ts} +2 -2
  14. package/dist/compatibility/protocol3To5/normalizePageResultsForProtocol3To5.d.ts.map +1 -0
  15. package/dist/compatibility/{normalizePageResultsForProtocol3To5.js → protocol3To5/normalizePageResultsForProtocol3To5.js} +3 -2
  16. package/dist/compatibility/protocol3To5/toDateTimeValueForProtocol3To5.d.ts +9 -0
  17. package/dist/compatibility/protocol3To5/toDateTimeValueForProtocol3To5.d.ts.map +1 -0
  18. package/dist/compatibility/protocol3To5/toDateTimeValueForProtocol3To5.js +21 -0
  19. package/dist/compatibility/protocol3To5/toPageForProtocol3To5.d.ts +12 -0
  20. package/dist/compatibility/protocol3To5/toPageForProtocol3To5.d.ts.map +1 -0
  21. package/dist/compatibility/protocol3To5/toPageForProtocol3To5.js +20 -0
  22. package/dist/compatibility/protocol3To5/toPropertyValueForProtocol3To5.d.ts +10 -0
  23. package/dist/compatibility/protocol3To5/toPropertyValueForProtocol3To5.d.ts.map +1 -0
  24. package/dist/compatibility/{pageForProtocol3To5.js → protocol3To5/toPropertyValueForProtocol3To5.js} +25 -95
  25. package/dist/compatibility/{pageForProtocol3To5.d.ts → protocol3To5/toQueryPageForProtocol3To5.d.ts} +11 -21
  26. package/dist/compatibility/protocol3To5/toQueryPageForProtocol3To5.d.ts.map +1 -0
  27. package/dist/compatibility/protocol3To5/toQueryPageForProtocol3To5.js +32 -0
  28. package/dist/compatibility/{normalizePageResultsForProtocol6.d.ts → protocol6/normalizePageResultsForProtocol6.d.ts} +2 -2
  29. package/dist/compatibility/protocol6/normalizePageResultsForProtocol6.d.ts.map +1 -0
  30. package/dist/compatibility/{normalizePageResultsForProtocol6.js → protocol6/normalizePageResultsForProtocol6.js} +1 -1
  31. package/dist/context/initialState.d.ts +1809 -0
  32. package/dist/context/initialState.d.ts.map +1 -0
  33. package/dist/context/initialState.js +34 -0
  34. package/dist/context/resize.d.ts +4 -0
  35. package/dist/context/resize.d.ts.map +1 -0
  36. package/dist/createCustomBlockHost.d.ts +13 -9
  37. package/dist/createCustomBlockHost.d.ts.map +1 -1
  38. package/dist/createCustomBlockHost.js +37 -24
  39. package/dist/{autoBindProperties.d.ts → dataSources/bindings/getAutoBoundPropertyIdsByKey.d.ts} +2 -2
  40. package/dist/dataSources/bindings/getAutoBoundPropertyIdsByKey.d.ts.map +1 -0
  41. package/dist/{dateValue.d.ts → dataSources/properties/toNotionDateValue.d.ts} +3 -3
  42. package/dist/dataSources/properties/toNotionDateValue.d.ts.map +1 -0
  43. package/dist/{queries → dataSources/queries}/querySubscriptions.d.ts +2 -2
  44. package/dist/dataSources/queries/querySubscriptions.d.ts.map +1 -0
  45. package/dist/dataSources/types.d.ts +14 -0
  46. package/dist/dataSources/types.d.ts.map +1 -0
  47. package/dist/dataSources/validation/validateQueryDataSourceFilter.d.ts +5 -0
  48. package/dist/dataSources/validation/validateQueryDataSourceFilter.d.ts.map +1 -0
  49. package/dist/{queries → dataSources/validation}/validateQueryDataSourceFilter.js +2 -2
  50. package/dist/dataSources/validation/validateQueryDataSourceSorts.d.ts +8 -0
  51. package/dist/dataSources/validation/validateQueryDataSourceSorts.d.ts.map +1 -0
  52. package/dist/{queries → dataSources/validation}/validateQueryDataSourceSorts.js +2 -2
  53. package/dist/index.d.ts +14 -7
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +4 -4
  56. package/dist/lifecycle/{initializationController.d.ts → createInitializationController.d.ts} +7 -6
  57. package/dist/lifecycle/createInitializationController.d.ts.map +1 -0
  58. package/dist/lifecycle/{initializationController.js → createInitializationController.js} +9 -4
  59. package/dist/lifecycle/errors/contextUnavailableError.d.ts +3 -0
  60. package/dist/lifecycle/errors/contextUnavailableError.d.ts.map +1 -0
  61. package/dist/lifecycle/errors/contextUnavailableError.js +8 -0
  62. package/dist/lifecycle/errors/initialStateTimeoutError.d.ts +3 -0
  63. package/dist/lifecycle/errors/initialStateTimeoutError.d.ts.map +1 -0
  64. package/dist/lifecycle/errors/initialStateTimeoutError.js +8 -0
  65. package/dist/lifecycle/errors/invalidConnectPayloadError.d.ts +3 -0
  66. package/dist/lifecycle/errors/invalidConnectPayloadError.d.ts.map +1 -0
  67. package/dist/lifecycle/errors/invalidConnectPayloadError.js +8 -0
  68. package/dist/lifecycle/errors/invalidInitResultPayloadError.d.ts +3 -0
  69. package/dist/lifecycle/errors/invalidInitResultPayloadError.d.ts.map +1 -0
  70. package/dist/lifecycle/errors/invalidInitResultPayloadError.js +8 -0
  71. package/dist/lifecycle/errors/invalidLocalPreviewUrlError.d.ts +3 -0
  72. package/dist/lifecycle/errors/invalidLocalPreviewUrlError.d.ts.map +1 -0
  73. package/dist/lifecycle/errors/invalidLocalPreviewUrlError.js +7 -0
  74. package/dist/lifecycle/errors/invalidPropertyBindingError.d.ts +3 -0
  75. package/dist/lifecycle/errors/invalidPropertyBindingError.d.ts.map +1 -0
  76. package/dist/lifecycle/errors/invalidPropertyBindingError.js +9 -0
  77. package/dist/lifecycle/errors/invalidProtocolVersionError.d.ts +5 -0
  78. package/dist/lifecycle/errors/invalidProtocolVersionError.d.ts.map +1 -0
  79. package/dist/lifecycle/errors/invalidProtocolVersionError.js +9 -0
  80. package/dist/lifecycle/errors/missingDataSourceBindingError.d.ts +3 -0
  81. package/dist/lifecycle/errors/missingDataSourceBindingError.d.ts.map +1 -0
  82. package/dist/lifecycle/errors/missingDataSourceBindingError.js +8 -0
  83. package/dist/lifecycle/errors/missingPropertyBindingError.d.ts +3 -0
  84. package/dist/lifecycle/errors/missingPropertyBindingError.d.ts.map +1 -0
  85. package/dist/lifecycle/errors/missingPropertyBindingError.js +8 -0
  86. package/dist/lifecycle/errors/noConnectError.d.ts +8 -0
  87. package/dist/lifecycle/errors/noConnectError.d.ts.map +1 -0
  88. package/dist/lifecycle/errors/noConnectError.js +13 -0
  89. package/dist/lifecycle/errors/noInitResultError.d.ts +3 -0
  90. package/dist/lifecycle/errors/noInitResultError.d.ts.map +1 -0
  91. package/dist/lifecycle/errors/noInitResultError.js +8 -0
  92. package/dist/lifecycle/errors/unknownInitializationError.d.ts +3 -0
  93. package/dist/lifecycle/errors/unknownInitializationError.d.ts.map +1 -0
  94. package/dist/lifecycle/errors/unknownInitializationError.js +8 -0
  95. package/dist/lifecycle/errors/unsupportedProtocolVersionError.d.ts +6 -0
  96. package/dist/lifecycle/errors/unsupportedProtocolVersionError.d.ts.map +1 -0
  97. package/dist/lifecycle/errors/unsupportedProtocolVersionError.js +9 -0
  98. package/dist/lifecycle/isAllowedLocalPreviewUrl.d.ts.map +1 -0
  99. package/dist/{isAllowedLocalPreviewUrl.js → lifecycle/isAllowedLocalPreviewUrl.js} +1 -1
  100. package/dist/lifecycle/{protocolVersion.d.ts → isValidBridgeProtocolVersion.d.ts} +1 -1
  101. package/dist/lifecycle/isValidBridgeProtocolVersion.d.ts.map +1 -0
  102. package/dist/lifecycle/types.d.ts +16 -1849
  103. package/dist/lifecycle/types.d.ts.map +1 -1
  104. package/dist/lifecycle/types.js +1 -41
  105. package/dist/{lifecycle → manifest}/resolveManifest.d.ts +2 -2
  106. package/dist/manifest/resolveManifest.d.ts.map +1 -0
  107. package/dist/manifest/types.d.ts +59 -0
  108. package/dist/manifest/types.d.ts.map +1 -0
  109. package/dist/manifest/types.js +10 -0
  110. package/dist/messages/{sandboxMessageRouter.d.ts → createSandboxMessageRouter.d.ts} +15 -15
  111. package/dist/messages/createSandboxMessageRouter.d.ts.map +1 -0
  112. package/dist/messages/{sandboxMessageRouter.js → createSandboxMessageRouter.js} +5 -4
  113. package/dist/messages/{invalidSandboxMessage.d.ts → getInvalidSandboxMessageResponse.d.ts} +1 -1
  114. package/dist/messages/getInvalidSandboxMessageResponse.d.ts.map +1 -0
  115. package/dist/messages/handlers.d.ts +26 -0
  116. package/dist/messages/handlers.d.ts.map +1 -0
  117. package/dist/messages/handlers.js +1 -0
  118. package/dist/messages/logging.d.ts +2 -0
  119. package/dist/messages/logging.d.ts.map +1 -0
  120. package/dist/messages/logging.js +1 -0
  121. package/dist/navigation/parseExternalUrl.d.ts.map +1 -0
  122. package/dist/navigation/types.d.ts +9 -0
  123. package/dist/navigation/types.d.ts.map +1 -0
  124. package/dist/navigation/types.js +1 -0
  125. package/dist/pages/types.d.ts +20 -0
  126. package/dist/pages/types.d.ts.map +1 -0
  127. package/dist/pages/types.js +1 -0
  128. package/dist/protocol/{messages/updatePage.d.ts → compatibility/protocol3To5/bridgePage.d.ts} +32 -22
  129. package/dist/protocol/compatibility/protocol3To5/bridgePage.js +21 -0
  130. package/dist/protocol/{dataSources → compatibility/protocol3To5}/dataSourcePage.js +1 -1
  131. package/dist/protocol/{dataSources → compatibility/protocol3To5}/dataSourceValue.js +2 -2
  132. package/dist/protocol/context/containingPage.d.ts +31 -0
  133. package/dist/protocol/context/containingPage.js +18 -0
  134. package/dist/protocol/{messages → context/messages}/pageChanged.js +1 -1
  135. package/dist/protocol/{parent.d.ts → context/parent.d.ts} +11 -1
  136. package/dist/protocol/context/parent.js +31 -0
  137. package/dist/protocol/dataSources/bridgeDataSourceBinding.d.ts +164 -0
  138. package/dist/protocol/dataSources/bridgeDataSourceBinding.js +25 -0
  139. package/dist/protocol/dataSources/bridgeDataSourceBindings.d.ts +148 -0
  140. package/dist/protocol/dataSources/bridgeDataSourceBindings.js +3 -0
  141. package/dist/protocol/dataSources/collectionPointer.d.ts +7 -0
  142. package/dist/protocol/dataSources/collectionPointer.js +7 -0
  143. package/dist/protocol/dataSources/collectionSchema.d.ts +144 -0
  144. package/dist/protocol/dataSources/collectionSchema.js +12 -0
  145. package/dist/protocol/dataSources/errors.d.ts +2 -2
  146. package/dist/protocol/dataSources/filters/bridgeDataSourceFilter.d.ts +505 -0
  147. package/dist/protocol/dataSources/filters/bridgeDataSourceFilter.js +8 -0
  148. package/dist/protocol/dataSources/filters/bridgeDataSourceFilterCondition.d.ts +253 -0
  149. package/dist/protocol/dataSources/filters/bridgeDataSourceFilterCondition.js +69 -0
  150. package/dist/protocol/dataSources/filters/bridgeDataSourceSort.d.ts +11 -0
  151. package/dist/protocol/dataSources/filters/bridgeDataSourceSort.js +8 -0
  152. package/dist/protocol/dataSources/filters/checkboxFilterOperator.d.ts +7 -0
  153. package/dist/protocol/dataSources/filters/checkboxFilterOperator.js +5 -0
  154. package/dist/protocol/dataSources/filters/containsFilterOperator.d.ts +13 -0
  155. package/dist/protocol/dataSources/filters/containsFilterOperator.js +9 -0
  156. package/dist/protocol/dataSources/filters/createdByFilterOperator.d.ts +17 -0
  157. package/dist/protocol/dataSources/filters/createdByFilterOperator.js +11 -0
  158. package/dist/protocol/dataSources/filters/dateFilterOperator.d.ts +47 -0
  159. package/dist/protocol/dataSources/filters/dateFilterOperator.js +73 -0
  160. package/dist/protocol/dataSources/filters/emptyOperator.d.ts +6 -0
  161. package/dist/protocol/dataSources/filters/emptyOperator.js +5 -0
  162. package/dist/protocol/dataSources/filters/numberFilterOperator.d.ts +19 -0
  163. package/dist/protocol/dataSources/filters/numberFilterOperator.js +11 -0
  164. package/dist/protocol/dataSources/filters/optionFilterOperator.d.ts +11 -0
  165. package/dist/protocol/dataSources/filters/optionFilterOperator.js +8 -0
  166. package/dist/protocol/dataSources/filters/peopleFilterOperator.d.ts +23 -0
  167. package/dist/protocol/dataSources/filters/peopleFilterOperator.js +11 -0
  168. package/dist/protocol/dataSources/filters/relationFilterOperator.d.ts +11 -0
  169. package/dist/protocol/dataSources/filters/relationFilterOperator.js +12 -0
  170. package/dist/protocol/dataSources/filters/statusFilterOperator.d.ts +15 -0
  171. package/dist/protocol/dataSources/filters/statusFilterOperator.js +7 -0
  172. package/dist/protocol/dataSources/filters/statusGroupFilterOperator.d.ts +9 -0
  173. package/dist/protocol/dataSources/filters/statusGroupFilterOperator.js +18 -0
  174. package/dist/protocol/dataSources/filters/stringOrStringArray.d.ts +2 -0
  175. package/dist/protocol/dataSources/filters/stringOrStringArray.js +5 -0
  176. package/dist/protocol/dataSources/filters/textFilterOperator.d.ts +19 -0
  177. package/dist/protocol/dataSources/filters/textFilterOperator.js +11 -0
  178. package/dist/protocol/dataSources/makeBridgeDataSourceBinding.d.ts +6 -0
  179. package/dist/protocol/dataSources/makeBridgeDataSourceBinding.js +6 -0
  180. package/dist/protocol/{messages → dataSources/messages}/dataSourcesChanged.d.ts +1 -0
  181. package/dist/protocol/{messages → dataSources/messages}/dataSourcesChanged.js +2 -2
  182. package/dist/protocol/{messages/queryDataSourceResult.d.ts → dataSources/messages/queryDataSource.d.ts} +525 -2
  183. package/dist/protocol/{messages/queryDataSourceResult.js → dataSources/messages/queryDataSource.js} +24 -7
  184. package/dist/protocol/dataSources/notionDataSource.d.ts +309 -0
  185. package/dist/protocol/dataSources/notionDataSource.js +38 -0
  186. package/dist/protocol/dataSources/resolveDataSourceBinding.d.ts +32 -0
  187. package/dist/protocol/dataSources/resolveDataSourceBinding.js +33 -0
  188. package/dist/protocol/{messages → handshake}/connect.d.ts +4 -0
  189. package/dist/protocol/{messages → handshake}/connect.js +2 -2
  190. package/dist/protocol/{messages → handshake}/init.d.ts +6 -1
  191. package/dist/protocol/{messages → handshake}/init.js +10 -10
  192. package/dist/protocol/{messages → handshake}/initResult.d.ts +1 -1
  193. package/dist/protocol/{messages → handshake}/isInitHandshakeMessage.d.ts +2 -2
  194. package/dist/protocol/index.d.ts +150 -54
  195. package/dist/protocol/index.js +73 -54
  196. package/dist/protocol/manifest/capabilities.d.ts +37 -0
  197. package/dist/protocol/manifest/capabilities.js +13 -0
  198. package/dist/protocol/{manifest.d.ts → manifest/manifest.d.ts} +12 -2
  199. package/dist/protocol/{manifest.js → manifest/manifest.js} +8 -1
  200. package/dist/protocol/messages/hostToSandbox.d.ts +12 -0
  201. package/dist/protocol/messages/hostToSandbox.js +15 -15
  202. package/dist/protocol/messages/messagePayload.d.ts +1 -1
  203. package/dist/protocol/messages/sandboxToHost.d.ts +232 -8
  204. package/dist/protocol/messages/sandboxToHost.js +12 -12
  205. package/dist/protocol/{messages → navigation}/openExternalUrl.d.ts +1 -1
  206. package/dist/protocol/{messages/createPage.d.ts → pages/bridgePage.d.ts} +67 -65
  207. package/dist/protocol/pages/bridgePage.js +25 -0
  208. package/dist/protocol/pages/makeBridgePage.d.ts +4 -0
  209. package/dist/protocol/pages/makeBridgePage.js +12 -0
  210. package/dist/protocol/{messages/createPageResult.d.ts → pages/messages/createPage.d.ts} +500 -2
  211. package/dist/protocol/pages/messages/createPage.js +104 -0
  212. package/dist/protocol/{messages → pages/messages}/getPage.d.ts +2 -2
  213. package/dist/protocol/{messages → pages/messages}/getPage.js +5 -4
  214. package/dist/protocol/{messages → pages/messages}/openPage.d.ts +2 -2
  215. package/dist/protocol/{messages → pages/messages}/openPage.js +1 -1
  216. package/dist/protocol/{messages/updatePageResult.d.ts → pages/messages/updatePage.d.ts} +272 -2
  217. package/dist/protocol/pages/messages/updatePage.js +65 -0
  218. package/dist/protocol/pages/pageAppearance.d.ts +62 -0
  219. package/dist/protocol/pages/pageAppearance.js +34 -0
  220. package/dist/protocol/pages/properties/bridgePagePropertyMaps.d.ts +433 -0
  221. package/dist/protocol/pages/properties/bridgePagePropertyMaps.js +4 -0
  222. package/dist/protocol/pages/properties/bridgePagePropertyValue.d.ts +217 -0
  223. package/dist/protocol/pages/properties/bridgePagePropertyValue.js +144 -0
  224. package/dist/protocol/pages/properties/dateInput.d.ts +45 -0
  225. package/dist/protocol/pages/properties/dateInput.js +23 -0
  226. package/dist/protocol/pages/properties/fileInput.d.ts +16 -0
  227. package/dist/protocol/pages/properties/fileInput.js +16 -0
  228. package/dist/protocol/pages/properties/metadataActor.d.ts +6 -0
  229. package/dist/protocol/pages/properties/metadataActor.js +7 -0
  230. package/dist/protocol/pages/properties/placeInput.d.ts +10 -0
  231. package/dist/protocol/pages/properties/placeInput.js +10 -0
  232. package/dist/protocol/pages/properties/relationInput.d.ts +5 -0
  233. package/dist/protocol/pages/properties/relationInput.js +2 -0
  234. package/dist/protocol/pages/properties/richText.d.ts +3 -0
  235. package/dist/protocol/pages/properties/richText.js +2 -0
  236. package/dist/protocol/pages/properties/selectOption.d.ts +13 -0
  237. package/dist/protocol/pages/properties/selectOption.js +16 -0
  238. package/dist/protocol/pages/properties/userInput.d.ts +10 -0
  239. package/dist/protocol/pages/properties/userInput.js +13 -0
  240. package/dist/protocol/users/bridgeUser.d.ts +12 -0
  241. package/dist/protocol/users/bridgeUser.js +12 -0
  242. package/dist/protocol/users/{user.d.ts → bridgeUserList.d.ts} +2 -15
  243. package/dist/protocol/users/bridgeUserList.js +10 -0
  244. package/dist/protocol/users/makeBridgeUser.d.ts +4 -0
  245. package/dist/protocol/users/makeBridgeUser.js +11 -0
  246. package/dist/protocol/{messages → users/messages}/currentUserChanged.js +2 -2
  247. package/dist/protocol/{messages → users/messages}/getUser.d.ts +2 -2
  248. package/dist/protocol/{messages → users/messages}/getUser.js +3 -2
  249. package/dist/protocol/{messages → users/messages}/listUsers.d.ts +2 -2
  250. package/dist/protocol/{messages → users/messages}/listUsers.js +2 -2
  251. package/dist/protocol/users/userId.d.ts +3 -0
  252. package/dist/protocol/users/userId.js +2 -0
  253. package/dist/protocol/{errors.d.ts → utils/errors.d.ts} +6 -0
  254. package/dist/protocol/utils/errors.js +11 -0
  255. package/dist/protocol/utils/nullableStringSchema.d.ts +2 -0
  256. package/dist/protocol/utils/nullableStringSchema.js +2 -0
  257. package/dist/users/types.d.ts +9 -0
  258. package/dist/users/types.d.ts.map +1 -0
  259. package/dist/users/types.js +1 -0
  260. package/dist/utils/maybePromise.d.ts +2 -0
  261. package/dist/utils/maybePromise.d.ts.map +1 -0
  262. package/dist/utils/maybePromise.js +1 -0
  263. package/dist/utils/protocolVersion.d.ts.map +1 -0
  264. package/dist/utils/toNotionPageId.d.ts +3 -0
  265. package/dist/utils/toNotionPageId.d.ts.map +1 -0
  266. package/dist/{ids.js → utils/toNotionPageId.js} +1 -1
  267. package/dist/{utils.d.ts → utils/unreachable.d.ts} +1 -1
  268. package/dist/utils/unreachable.d.ts.map +1 -0
  269. package/docs/bridge/protocol.md +20 -5
  270. package/docs/bridge/versioning.md +2 -2
  271. package/docs/handlers.md +3 -3
  272. package/package.json +1 -1
  273. package/src/compatibility/normalizeHostToSandboxMessage.ts +4 -4
  274. package/src/compatibility/{pageWithNullTextFallbackProperties.ts → pages/toPageWithNullTextFallbackProperties.ts} +4 -4
  275. package/src/compatibility/{addMetadataReadSchemasForProtocol3To4.ts → protocol3To4/addMetadataReadSchemasForProtocol3To4.ts} +1 -1
  276. package/src/compatibility/{normalizePageResultsForProtocol3To5.ts → protocol3To5/normalizePageResultsForProtocol3To5.ts} +4 -6
  277. package/src/compatibility/protocol3To5/toDateTimeValueForProtocol3To5.ts +25 -0
  278. package/src/compatibility/protocol3To5/toPageForProtocol3To5.ts +29 -0
  279. package/src/compatibility/protocol3To5/toPropertyValueForProtocol3To5.ts +102 -0
  280. package/src/compatibility/protocol3To5/toQueryPageForProtocol3To5.ts +35 -0
  281. package/src/compatibility/{normalizePageResultsForProtocol6.ts → protocol6/normalizePageResultsForProtocol6.ts} +2 -2
  282. package/src/context/initialState.ts +65 -0
  283. package/src/context/resize.ts +4 -0
  284. package/src/createCustomBlockHost.ts +74 -73
  285. package/src/{autoBindProperties.ts → dataSources/bindings/getAutoBoundPropertyIdsByKey.ts} +1 -1
  286. package/src/{dateValue.ts → dataSources/properties/toNotionDateValue.ts} +2 -2
  287. package/src/{queries → dataSources/queries}/querySubscriptions.ts +2 -2
  288. package/src/dataSources/types.ts +26 -0
  289. package/src/{queries → dataSources/validation}/validateQueryDataSourceFilter.ts +11 -13
  290. package/src/{queries → dataSources/validation}/validateQueryDataSourceSorts.ts +6 -8
  291. package/src/index.ts +37 -27
  292. package/src/lifecycle/{initializationController.ts → createInitializationController.ts} +15 -20
  293. package/src/lifecycle/errors/contextUnavailableError.ts +10 -0
  294. package/src/lifecycle/errors/initialStateTimeoutError.ts +10 -0
  295. package/src/lifecycle/errors/invalidConnectPayloadError.ts +10 -0
  296. package/src/lifecycle/errors/invalidInitResultPayloadError.ts +10 -0
  297. package/src/lifecycle/errors/invalidLocalPreviewUrlError.ts +10 -0
  298. package/src/lifecycle/errors/invalidPropertyBindingError.ts +11 -0
  299. package/src/lifecycle/errors/invalidProtocolVersionError.ts +13 -0
  300. package/src/lifecycle/errors/missingDataSourceBindingError.ts +10 -0
  301. package/src/lifecycle/errors/missingPropertyBindingError.ts +10 -0
  302. package/src/lifecycle/errors/noConnectError.ts +15 -0
  303. package/src/lifecycle/errors/noInitResultError.ts +10 -0
  304. package/src/lifecycle/errors/unknownInitializationError.ts +10 -0
  305. package/src/lifecycle/errors/unsupportedProtocolVersionError.ts +14 -0
  306. package/src/{isAllowedLocalPreviewUrl.ts → lifecycle/isAllowedLocalPreviewUrl.ts} +1 -1
  307. package/src/lifecycle/types.ts +17 -103
  308. package/src/{lifecycle → manifest}/resolveManifest.ts +2 -2
  309. package/src/manifest/types.ts +28 -0
  310. package/src/messages/{sandboxMessageRouter.ts → createSandboxMessageRouter.ts} +19 -21
  311. package/src/messages/handlers.ts +54 -0
  312. package/src/messages/logging.ts +1 -0
  313. package/src/navigation/types.ts +20 -0
  314. package/src/pages/types.ts +55 -0
  315. package/src/users/types.ts +26 -0
  316. package/src/utils/maybePromise.ts +1 -0
  317. package/src/utils/toNotionPageId.ts +7 -0
  318. package/dist/autoBindProperties.d.ts.map +0 -1
  319. package/dist/compatibility/normalizePageResultsForProtocol3To5.d.ts.map +0 -1
  320. package/dist/compatibility/normalizePageResultsForProtocol6.d.ts.map +0 -1
  321. package/dist/compatibility/pageForProtocol3To5.d.ts.map +0 -1
  322. package/dist/compatibility/pageResult.d.ts.map +0 -1
  323. package/dist/compatibility/pageWithNullTextFallbackProperties.d.ts.map +0 -1
  324. package/dist/dateValue.d.ts.map +0 -1
  325. package/dist/ids.d.ts +0 -3
  326. package/dist/ids.d.ts.map +0 -1
  327. package/dist/isAllowedLocalPreviewUrl.d.ts.map +0 -1
  328. package/dist/lifecycle/initErrors.d.ts +0 -25
  329. package/dist/lifecycle/initErrors.d.ts.map +0 -1
  330. package/dist/lifecycle/initErrors.js +0 -111
  331. package/dist/lifecycle/initializationController.d.ts.map +0 -1
  332. package/dist/lifecycle/protocolVersion.d.ts.map +0 -1
  333. package/dist/lifecycle/resolveManifest.d.ts.map +0 -1
  334. package/dist/messages/invalidSandboxMessage.d.ts.map +0 -1
  335. package/dist/messages/parseExternalUrl.d.ts.map +0 -1
  336. package/dist/messages/sandboxMessageRouter.d.ts.map +0 -1
  337. package/dist/messages/types.d.ts +0 -65
  338. package/dist/messages/types.d.ts.map +0 -1
  339. package/dist/protocol/dataSources/dataSource.d.ts +0 -786
  340. package/dist/protocol/dataSources/dataSource.js +0 -66
  341. package/dist/protocol/errors.js +0 -6
  342. package/dist/protocol/messages/createPage.js +0 -51
  343. package/dist/protocol/messages/createPageResult.js +0 -43
  344. package/dist/protocol/messages/queryDataSource.d.ts +0 -1470
  345. package/dist/protocol/messages/queryDataSource.js +0 -254
  346. package/dist/protocol/messages/updatePage.js +0 -23
  347. package/dist/protocol/messages/updatePageResult.js +0 -41
  348. package/dist/protocol/pages/page.d.ts +0 -1422
  349. package/dist/protocol/pages/page.js +0 -318
  350. package/dist/protocol/parent.js +0 -13
  351. package/dist/protocol/users/user.js +0 -20
  352. package/dist/protocolVersion.d.ts.map +0 -1
  353. package/dist/queries/querySubscriptions.d.ts.map +0 -1
  354. package/dist/queries/types.d.ts +0 -5
  355. package/dist/queries/types.d.ts.map +0 -1
  356. package/dist/queries/validateQueryDataSourceFilter.d.ts +0 -5
  357. package/dist/queries/validateQueryDataSourceFilter.d.ts.map +0 -1
  358. package/dist/queries/validateQueryDataSourceSorts.d.ts +0 -8
  359. package/dist/queries/validateQueryDataSourceSorts.d.ts.map +0 -1
  360. package/dist/utils.d.ts.map +0 -1
  361. package/src/compatibility/pageForProtocol3To5.ts +0 -190
  362. package/src/ids.ts +0 -9
  363. package/src/lifecycle/initErrors.ts +0 -131
  364. package/src/messages/types.ts +0 -171
  365. package/src/queries/types.ts +0 -11
  366. /package/dist/compatibility/{pageResult.js → pages/pageResult.js} +0 -0
  367. /package/dist/{messages/types.js → context/resize.js} +0 -0
  368. /package/dist/{autoBindProperties.js → dataSources/bindings/getAutoBoundPropertyIdsByKey.js} +0 -0
  369. /package/dist/{dateValue.js → dataSources/properties/toNotionDateValue.js} +0 -0
  370. /package/dist/{queries → dataSources/queries}/querySubscriptions.js +0 -0
  371. /package/dist/{queries → dataSources}/types.js +0 -0
  372. /package/dist/{isAllowedLocalPreviewUrl.d.ts → lifecycle/isAllowedLocalPreviewUrl.d.ts} +0 -0
  373. /package/dist/lifecycle/{protocolVersion.js → isValidBridgeProtocolVersion.js} +0 -0
  374. /package/dist/{lifecycle → manifest}/resolveManifest.js +0 -0
  375. /package/dist/messages/{invalidSandboxMessage.js → getInvalidSandboxMessageResponse.js} +0 -0
  376. /package/dist/{messages → navigation}/parseExternalUrl.d.ts +0 -0
  377. /package/dist/{messages → navigation}/parseExternalUrl.js +0 -0
  378. /package/dist/protocol/{dataSources → compatibility/protocol3To5}/dataSourcePage.d.ts +0 -0
  379. /package/dist/protocol/{dataSources → compatibility/protocol3To5}/dataSourceValue.d.ts +0 -0
  380. /package/dist/protocol/{contrast.d.ts → context/contrast.d.ts} +0 -0
  381. /package/dist/protocol/{contrast.js → context/contrast.js} +0 -0
  382. /package/dist/protocol/{messages → context/messages}/contrastModeChanged.d.ts +0 -0
  383. /package/dist/protocol/{messages → context/messages}/contrastModeChanged.js +0 -0
  384. /package/dist/protocol/{messages → context/messages}/pageChanged.d.ts +0 -0
  385. /package/dist/protocol/{messages → context/messages}/parentChanged.d.ts +0 -0
  386. /package/dist/protocol/{messages → context/messages}/parentChanged.js +0 -0
  387. /package/dist/protocol/{messages → context/messages}/resize.d.ts +0 -0
  388. /package/dist/protocol/{messages → context/messages}/resize.js +0 -0
  389. /package/dist/protocol/{messages → context/messages}/themeChanged.d.ts +0 -0
  390. /package/dist/protocol/{messages → context/messages}/themeChanged.js +0 -0
  391. /package/dist/protocol/{theme.d.ts → context/theme.d.ts} +0 -0
  392. /package/dist/protocol/{theme.js → context/theme.js} +0 -0
  393. /package/dist/protocol/{messages → dataSources/messages}/unsubscribeDataSourceQuery.d.ts +0 -0
  394. /package/dist/protocol/{messages → dataSources/messages}/unsubscribeDataSourceQuery.js +0 -0
  395. /package/dist/protocol/dataSources/{dateValue.d.ts → properties/dateValue.d.ts} +0 -0
  396. /package/dist/protocol/dataSources/{dateValue.js → properties/dateValue.js} +0 -0
  397. /package/dist/protocol/dataSources/{propertySchema.d.ts → properties/propertySchema.d.ts} +0 -0
  398. /package/dist/protocol/dataSources/{propertySchema.js → properties/propertySchema.js} +0 -0
  399. /package/dist/protocol/{messages → handshake}/initResult.js +0 -0
  400. /package/dist/protocol/{messages → handshake}/isInitHandshakeMessage.js +0 -0
  401. /package/dist/protocol/{messages → navigation}/openExternalUrl.js +0 -0
  402. /package/dist/protocol/{messages → users/messages}/currentUserChanged.d.ts +0 -0
  403. /package/dist/protocol/{ids.d.ts → utils/ids.d.ts} +0 -0
  404. /package/dist/protocol/{ids.js → utils/ids.js} +0 -0
  405. /package/dist/protocol/{isLocalBlockServerUrl.d.ts → utils/isLocalBlockServerUrl.d.ts} +0 -0
  406. /package/dist/protocol/{isLocalBlockServerUrl.js → utils/isLocalBlockServerUrl.js} +0 -0
  407. /package/dist/protocol/{protocolVersion.d.ts → utils/protocolVersion.d.ts} +0 -0
  408. /package/dist/protocol/{protocolVersion.js → utils/protocolVersion.js} +0 -0
  409. /package/dist/protocol/{dataSources → utils}/recordPointer.d.ts +0 -0
  410. /package/dist/protocol/{dataSources → utils}/recordPointer.js +0 -0
  411. /package/dist/{protocolVersion.d.ts → utils/protocolVersion.d.ts} +0 -0
  412. /package/dist/{protocolVersion.js → utils/protocolVersion.js} +0 -0
  413. /package/dist/{utils.js → utils/unreachable.js} +0 -0
  414. /package/src/compatibility/{pageResult.ts → pages/pageResult.ts} +0 -0
  415. /package/src/lifecycle/{protocolVersion.ts → isValidBridgeProtocolVersion.ts} +0 -0
  416. /package/src/messages/{invalidSandboxMessage.ts → getInvalidSandboxMessageResponse.ts} +0 -0
  417. /package/src/{messages → navigation}/parseExternalUrl.ts +0 -0
  418. /package/src/{protocolVersion.ts → utils/protocolVersion.ts} +0 -0
  419. /package/src/{utils.ts → utils/unreachable.ts} +0 -0
@@ -0,0 +1,309 @@
1
+ import * as v from "valibot";
2
+ export declare const notionDataSourceSchema: v.ObjectSchema<{
3
+ readonly key: v.StringSchema<undefined>;
4
+ readonly collectionPointer: v.OptionalSchema<v.ObjectSchema<{
5
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionDataSourceId">]>;
6
+ readonly table: v.StringSchema<undefined>;
7
+ readonly spaceId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionSpaceId">]>, undefined>;
8
+ }, undefined>, undefined>;
9
+ /**
10
+ * Describes database properties. Use this schema to resolve property bindings. Use this
11
+ * schema to validate filter and sort references. Undefined when the host does not provide a
12
+ * database schema.
13
+ */
14
+ readonly collectionSchema: v.OptionalSchema<v.ObjectSchema<{
15
+ readonly id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionDataSourceId">]>, undefined>;
16
+ readonly propertiesById: v.RecordSchema<v.StringSchema<undefined>, v.VariantSchema<"type", [v.ObjectSchema<{
17
+ readonly name: v.StringSchema<undefined>;
18
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
19
+ readonly type: v.LiteralSchema<"title", undefined>;
20
+ }, undefined>, v.ObjectSchema<{
21
+ readonly name: v.StringSchema<undefined>;
22
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
23
+ readonly type: v.LiteralSchema<"rich_text", undefined>;
24
+ }, undefined>, v.ObjectSchema<{
25
+ readonly name: v.StringSchema<undefined>;
26
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
27
+ readonly type: v.LiteralSchema<"number", undefined>;
28
+ }, undefined>, v.ObjectSchema<{
29
+ readonly name: v.StringSchema<undefined>;
30
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
31
+ readonly type: v.LiteralSchema<"checkbox", undefined>;
32
+ }, undefined>, v.ObjectSchema<{
33
+ readonly name: v.StringSchema<undefined>;
34
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
35
+ readonly type: v.LiteralSchema<"url", undefined>;
36
+ }, undefined>, v.ObjectSchema<{
37
+ readonly name: v.StringSchema<undefined>;
38
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
39
+ readonly type: v.LiteralSchema<"email", undefined>;
40
+ }, undefined>, v.ObjectSchema<{
41
+ readonly name: v.StringSchema<undefined>;
42
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
43
+ readonly type: v.LiteralSchema<"phone_number", undefined>;
44
+ }, undefined>, v.ObjectSchema<{
45
+ readonly name: v.StringSchema<undefined>;
46
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
47
+ readonly type: v.LiteralSchema<"select", undefined>;
48
+ readonly options: v.ArraySchema<v.ObjectSchema<{
49
+ readonly id: v.StringSchema<undefined>;
50
+ readonly name: v.StringSchema<undefined>;
51
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
52
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
53
+ }, undefined>, undefined>;
54
+ }, undefined>, v.ObjectSchema<{
55
+ readonly name: v.StringSchema<undefined>;
56
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
57
+ readonly type: v.LiteralSchema<"multi_select", undefined>;
58
+ readonly options: v.ArraySchema<v.ObjectSchema<{
59
+ readonly id: v.StringSchema<undefined>;
60
+ readonly name: v.StringSchema<undefined>;
61
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
62
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
63
+ }, undefined>, undefined>;
64
+ }, undefined>, v.ObjectSchema<{
65
+ readonly name: v.StringSchema<undefined>;
66
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
67
+ readonly type: v.LiteralSchema<"status", undefined>;
68
+ readonly options: v.ArraySchema<v.ObjectSchema<{
69
+ readonly id: v.StringSchema<undefined>;
70
+ readonly name: v.StringSchema<undefined>;
71
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
72
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
73
+ }, undefined>, undefined>;
74
+ readonly groups: v.ArraySchema<v.ObjectSchema<{
75
+ readonly id: v.StringSchema<undefined>;
76
+ readonly name: v.StringSchema<undefined>;
77
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
78
+ readonly option_ids: v.ArraySchema<v.StringSchema<undefined>, undefined>;
79
+ }, undefined>, undefined>;
80
+ }, undefined>, v.ObjectSchema<{
81
+ readonly name: v.StringSchema<undefined>;
82
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
83
+ readonly type: v.LiteralSchema<"date", undefined>;
84
+ }, undefined>, v.ObjectSchema<{
85
+ readonly name: v.StringSchema<undefined>;
86
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
87
+ readonly type: v.LiteralSchema<"people", undefined>;
88
+ }, undefined>, v.ObjectSchema<{
89
+ readonly name: v.StringSchema<undefined>;
90
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
91
+ readonly type: v.LiteralSchema<"files", undefined>;
92
+ }, undefined>, v.ObjectSchema<{
93
+ readonly name: v.StringSchema<undefined>;
94
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
95
+ readonly type: v.LiteralSchema<"unique_id", undefined>;
96
+ }, undefined>, v.ObjectSchema<{
97
+ readonly name: v.StringSchema<undefined>;
98
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
99
+ readonly type: v.LiteralSchema<"relation", undefined>;
100
+ readonly data_source_id: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
101
+ readonly dual_property: v.OptionalSchema<v.ObjectSchema<{
102
+ readonly synced_property_id: v.StringSchema<undefined>;
103
+ readonly synced_property_name: v.StringSchema<undefined>;
104
+ }, undefined>, undefined>;
105
+ }, undefined>, v.ObjectSchema<{
106
+ readonly name: v.StringSchema<undefined>;
107
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
108
+ readonly type: v.LiteralSchema<"place", undefined>;
109
+ }, undefined>, v.ObjectSchema<{
110
+ readonly name: v.StringSchema<undefined>;
111
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
112
+ readonly type: v.LiteralSchema<"formula", undefined>;
113
+ }, undefined>, v.ObjectSchema<{
114
+ readonly name: v.StringSchema<undefined>;
115
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
116
+ readonly type: v.LiteralSchema<"rollup", undefined>;
117
+ }, undefined>, v.ObjectSchema<{
118
+ readonly name: v.StringSchema<undefined>;
119
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
120
+ readonly type: v.LiteralSchema<"button", undefined>;
121
+ }, undefined>, v.ObjectSchema<{
122
+ readonly name: v.StringSchema<undefined>;
123
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
124
+ readonly type: v.LiteralSchema<"verification", undefined>;
125
+ }, undefined>, v.ObjectSchema<{
126
+ readonly name: v.StringSchema<undefined>;
127
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
128
+ readonly type: v.LiteralSchema<"last_visited_time", undefined>;
129
+ }, undefined>, v.ObjectSchema<{
130
+ readonly name: v.StringSchema<undefined>;
131
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
132
+ readonly type: v.LiteralSchema<"location", undefined>;
133
+ }, undefined>, v.ObjectSchema<{
134
+ readonly name: v.StringSchema<undefined>;
135
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
136
+ readonly type: v.LiteralSchema<"created_time", undefined>;
137
+ }, undefined>, v.ObjectSchema<{
138
+ readonly name: v.StringSchema<undefined>;
139
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
140
+ readonly type: v.LiteralSchema<"last_edited_time", undefined>;
141
+ }, undefined>, v.ObjectSchema<{
142
+ readonly name: v.StringSchema<undefined>;
143
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
144
+ readonly type: v.LiteralSchema<"created_by", undefined>;
145
+ }, undefined>, v.ObjectSchema<{
146
+ readonly name: v.StringSchema<undefined>;
147
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
148
+ readonly type: v.LiteralSchema<"last_edited_by", undefined>;
149
+ }, undefined>], undefined>, undefined>;
150
+ }, undefined>, undefined>;
151
+ /**
152
+ * Maps user-defined property keys to database property IDs. Use this map to resolve a key
153
+ * such as `name` to its database property ID. A value of `undefined` marks a declared
154
+ * property without a valid binding. Synthetic metadata does not add entries to this map.
155
+ */
156
+ readonly propertyIdsByKey: v.RecordSchema<v.StringSchema<undefined>, v.OptionalSchema<v.StringSchema<undefined>, undefined>, undefined>;
157
+ /**
158
+ * Describes property values in query snapshots. Keys use the same property IDs as a snapshot's
159
+ * `propertiesById` map.
160
+ *
161
+ * Includes four synthetic metadata fields, even when the database schema is unavailable:
162
+ * `created_time`, `last_edited_time`, `created_by`, and `last_edited_by`. Also includes
163
+ * database properties when the host provides their schema.
164
+ *
165
+ * Use `propertiesById` to read a value. Use this map to read the value's schema. Use
166
+ * `collectionSchema` to validate filter and sort references.
167
+ */
168
+ readonly propertySchemasById: v.RecordSchema<v.StringSchema<undefined>, v.VariantSchema<"type", [v.ObjectSchema<{
169
+ readonly name: v.StringSchema<undefined>;
170
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
171
+ readonly type: v.LiteralSchema<"title", undefined>;
172
+ }, undefined>, v.ObjectSchema<{
173
+ readonly name: v.StringSchema<undefined>;
174
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
175
+ readonly type: v.LiteralSchema<"rich_text", undefined>;
176
+ }, undefined>, v.ObjectSchema<{
177
+ readonly name: v.StringSchema<undefined>;
178
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
179
+ readonly type: v.LiteralSchema<"number", undefined>;
180
+ }, undefined>, v.ObjectSchema<{
181
+ readonly name: v.StringSchema<undefined>;
182
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
183
+ readonly type: v.LiteralSchema<"checkbox", undefined>;
184
+ }, undefined>, v.ObjectSchema<{
185
+ readonly name: v.StringSchema<undefined>;
186
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
187
+ readonly type: v.LiteralSchema<"url", undefined>;
188
+ }, undefined>, v.ObjectSchema<{
189
+ readonly name: v.StringSchema<undefined>;
190
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
191
+ readonly type: v.LiteralSchema<"email", undefined>;
192
+ }, undefined>, v.ObjectSchema<{
193
+ readonly name: v.StringSchema<undefined>;
194
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
195
+ readonly type: v.LiteralSchema<"phone_number", undefined>;
196
+ }, undefined>, v.ObjectSchema<{
197
+ readonly name: v.StringSchema<undefined>;
198
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
199
+ readonly type: v.LiteralSchema<"select", undefined>;
200
+ readonly options: v.ArraySchema<v.ObjectSchema<{
201
+ readonly id: v.StringSchema<undefined>;
202
+ readonly name: v.StringSchema<undefined>;
203
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
204
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
205
+ }, undefined>, undefined>;
206
+ }, undefined>, v.ObjectSchema<{
207
+ readonly name: v.StringSchema<undefined>;
208
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
209
+ readonly type: v.LiteralSchema<"multi_select", undefined>;
210
+ readonly options: v.ArraySchema<v.ObjectSchema<{
211
+ readonly id: v.StringSchema<undefined>;
212
+ readonly name: v.StringSchema<undefined>;
213
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
214
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
215
+ }, undefined>, undefined>;
216
+ }, undefined>, v.ObjectSchema<{
217
+ readonly name: v.StringSchema<undefined>;
218
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
219
+ readonly type: v.LiteralSchema<"status", undefined>;
220
+ readonly options: v.ArraySchema<v.ObjectSchema<{
221
+ readonly id: v.StringSchema<undefined>;
222
+ readonly name: v.StringSchema<undefined>;
223
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
224
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
225
+ }, undefined>, undefined>;
226
+ readonly groups: v.ArraySchema<v.ObjectSchema<{
227
+ readonly id: v.StringSchema<undefined>;
228
+ readonly name: v.StringSchema<undefined>;
229
+ readonly color: v.OptionalSchema<v.PicklistSchema<["default", "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "gray_background", "brown_background", "orange_background", "yellow_background", "green_background", "blue_background", "purple_background", "pink_background", "red_background", "default_background"], undefined>, undefined>;
230
+ readonly option_ids: v.ArraySchema<v.StringSchema<undefined>, undefined>;
231
+ }, undefined>, undefined>;
232
+ }, undefined>, v.ObjectSchema<{
233
+ readonly name: v.StringSchema<undefined>;
234
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
235
+ readonly type: v.LiteralSchema<"date", undefined>;
236
+ }, undefined>, v.ObjectSchema<{
237
+ readonly name: v.StringSchema<undefined>;
238
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
239
+ readonly type: v.LiteralSchema<"people", undefined>;
240
+ }, undefined>, v.ObjectSchema<{
241
+ readonly name: v.StringSchema<undefined>;
242
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
243
+ readonly type: v.LiteralSchema<"files", undefined>;
244
+ }, undefined>, v.ObjectSchema<{
245
+ readonly name: v.StringSchema<undefined>;
246
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
247
+ readonly type: v.LiteralSchema<"unique_id", undefined>;
248
+ }, undefined>, v.ObjectSchema<{
249
+ readonly name: v.StringSchema<undefined>;
250
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
251
+ readonly type: v.LiteralSchema<"relation", undefined>;
252
+ readonly data_source_id: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
253
+ readonly dual_property: v.OptionalSchema<v.ObjectSchema<{
254
+ readonly synced_property_id: v.StringSchema<undefined>;
255
+ readonly synced_property_name: v.StringSchema<undefined>;
256
+ }, undefined>, undefined>;
257
+ }, undefined>, v.ObjectSchema<{
258
+ readonly name: v.StringSchema<undefined>;
259
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
260
+ readonly type: v.LiteralSchema<"place", undefined>;
261
+ }, undefined>, v.ObjectSchema<{
262
+ readonly name: v.StringSchema<undefined>;
263
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
264
+ readonly type: v.LiteralSchema<"formula", undefined>;
265
+ }, undefined>, v.ObjectSchema<{
266
+ readonly name: v.StringSchema<undefined>;
267
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
268
+ readonly type: v.LiteralSchema<"rollup", undefined>;
269
+ }, undefined>, v.ObjectSchema<{
270
+ readonly name: v.StringSchema<undefined>;
271
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
272
+ readonly type: v.LiteralSchema<"button", undefined>;
273
+ }, undefined>, v.ObjectSchema<{
274
+ readonly name: v.StringSchema<undefined>;
275
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
276
+ readonly type: v.LiteralSchema<"verification", undefined>;
277
+ }, undefined>, v.ObjectSchema<{
278
+ readonly name: v.StringSchema<undefined>;
279
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
280
+ readonly type: v.LiteralSchema<"last_visited_time", undefined>;
281
+ }, undefined>, v.ObjectSchema<{
282
+ readonly name: v.StringSchema<undefined>;
283
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
284
+ readonly type: v.LiteralSchema<"location", undefined>;
285
+ }, undefined>, v.ObjectSchema<{
286
+ readonly name: v.StringSchema<undefined>;
287
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
288
+ readonly type: v.LiteralSchema<"created_time", undefined>;
289
+ }, undefined>, v.ObjectSchema<{
290
+ readonly name: v.StringSchema<undefined>;
291
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
292
+ readonly type: v.LiteralSchema<"last_edited_time", undefined>;
293
+ }, undefined>, v.ObjectSchema<{
294
+ readonly name: v.StringSchema<undefined>;
295
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
296
+ readonly type: v.LiteralSchema<"created_by", undefined>;
297
+ }, undefined>, v.ObjectSchema<{
298
+ readonly name: v.StringSchema<undefined>;
299
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
300
+ readonly type: v.LiteralSchema<"last_edited_by", undefined>;
301
+ }, undefined>], undefined>, undefined>;
302
+ /**
303
+ * `true` when the data source is bound but the viewer can't read it. The block still
304
+ * initializes. Queries and writes that use this data source fail with
305
+ * `data_source_inaccessible`.
306
+ */
307
+ readonly inaccessible: v.OptionalSchema<v.LiteralSchema<true, undefined>, undefined>;
308
+ }, undefined>;
309
+ export type NotionDataSource = v.InferOutput<typeof notionDataSourceSchema>;
@@ -0,0 +1,38 @@
1
+ import * as v from "valibot";
2
+ import { collectionPointerValidator } from "./collectionPointer.js";
3
+ import { notionCollectionSchemaValidator } from "./collectionSchema.js";
4
+ import { notionPropertySchemaSchema } from "./properties/propertySchema.js";
5
+ export const notionDataSourceSchema = v.object({
6
+ key: v.string(),
7
+ collectionPointer: v.optional(collectionPointerValidator),
8
+ /**
9
+ * Describes database properties. Use this schema to resolve property bindings. Use this
10
+ * schema to validate filter and sort references. Undefined when the host does not provide a
11
+ * database schema.
12
+ */
13
+ collectionSchema: v.optional(notionCollectionSchemaValidator),
14
+ /**
15
+ * Maps user-defined property keys to database property IDs. Use this map to resolve a key
16
+ * such as `name` to its database property ID. A value of `undefined` marks a declared
17
+ * property without a valid binding. Synthetic metadata does not add entries to this map.
18
+ */
19
+ propertyIdsByKey: v.record(v.string(), v.optional(v.string())),
20
+ /**
21
+ * Describes property values in query snapshots. Keys use the same property IDs as a snapshot's
22
+ * `propertiesById` map.
23
+ *
24
+ * Includes four synthetic metadata fields, even when the database schema is unavailable:
25
+ * `created_time`, `last_edited_time`, `created_by`, and `last_edited_by`. Also includes
26
+ * database properties when the host provides their schema.
27
+ *
28
+ * Use `propertiesById` to read a value. Use this map to read the value's schema. Use
29
+ * `collectionSchema` to validate filter and sort references.
30
+ */
31
+ propertySchemasById: v.record(v.string(), notionPropertySchemaSchema),
32
+ /**
33
+ * `true` when the data source is bound but the viewer can't read it. The block still
34
+ * initializes. Queries and writes that use this data source fail with
35
+ * `data_source_inaccessible`.
36
+ */
37
+ inaccessible: v.optional(v.literal(true)),
38
+ });
@@ -0,0 +1,32 @@
1
+ import type { ManifestDataSource } from "../manifest/manifest.js";
2
+ import type { NotionCollectionSchema } from "./collectionSchema.js";
3
+ export type MappedPropertyBinding = {
4
+ status: "mapped";
5
+ propertyKey: string;
6
+ propertyId: string;
7
+ };
8
+ export type ResolvedPropertyBinding = MappedPropertyBinding | {
9
+ status: "missing";
10
+ propertyKey: string;
11
+ propertyId: undefined;
12
+ } | {
13
+ status: "invalid" | "incompatible";
14
+ propertyKey: string;
15
+ propertyId: string;
16
+ };
17
+ export type ResolvedDataSourceBinding = {
18
+ status: "complete";
19
+ properties: MappedPropertyBinding[];
20
+ } | {
21
+ status: "incomplete" | "missing_schema";
22
+ properties: ResolvedPropertyBinding[];
23
+ };
24
+ /**
25
+ * Resolves explicit property mappings against the manifest and source schema.
26
+ * Each boundary calls this independently and chooses its own errors or UI behavior.
27
+ */
28
+ export declare function resolveDataSourceBinding(args: {
29
+ manifestDataSource: ManifestDataSource;
30
+ collectionSchema: Pick<NotionCollectionSchema, "propertiesById"> | undefined;
31
+ propertyIdsByKey: Record<string, string | undefined> | undefined;
32
+ }): ResolvedDataSourceBinding;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Resolves explicit property mappings against the manifest and source schema.
3
+ * Each boundary calls this independently and chooses its own errors or UI behavior.
4
+ */
5
+ export function resolveDataSourceBinding(args) {
6
+ const properties = Object.entries(args.manifestDataSource.properties ?? {}).map(([propertyKey, property]) => {
7
+ const propertyId = args.propertyIdsByKey?.[propertyKey];
8
+ const mappedSchema = propertyId === undefined
9
+ ? undefined
10
+ : args.collectionSchema?.propertiesById[propertyId];
11
+ return resolvePropertyBinding(propertyKey, propertyId, mappedSchema?.type, property.type);
12
+ });
13
+ if (args.collectionSchema === undefined) {
14
+ return { status: "missing_schema", properties };
15
+ }
16
+ if (properties.every(property => property.status === "mapped")) {
17
+ return { status: "complete", properties };
18
+ }
19
+ return { status: "incomplete", properties };
20
+ }
21
+ function resolvePropertyBinding(propertyKey, propertyId, actualType, expectedType) {
22
+ if (propertyId === undefined) {
23
+ return { status: "missing", propertyKey, propertyId };
24
+ }
25
+ if (actualType === undefined) {
26
+ return { status: "invalid", propertyKey, propertyId };
27
+ }
28
+ return {
29
+ status: actualType === expectedType ? "mapped" : "incompatible",
30
+ propertyKey,
31
+ propertyId,
32
+ };
33
+ }
@@ -38,6 +38,10 @@ export declare const connectMessageSchema: v.VariantSchema<"status", [v.ObjectSc
38
38
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
39
39
  }, undefined>, undefined>, {}>;
40
40
  }, undefined>, undefined>, {}>;
41
+ readonly capabilities: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
42
+ readonly capability: v.StringSchema<undefined>;
43
+ readonly resource: v.StringSchema<undefined>;
44
+ }, undefined>, undefined>, undefined>;
41
45
  }, undefined>, undefined>;
42
46
  }, undefined>, v.ObjectSchema<{
43
47
  readonly type: v.LiteralSchema<"connect", undefined>;
@@ -1,6 +1,6 @@
1
1
  import * as v from "valibot";
2
- import { customBlockErrorInfoSchema } from "../errors.js";
3
- import { manifestSchema } from "../manifest.js";
2
+ import { manifestSchema } from "../manifest/manifest.js";
3
+ import { customBlockErrorInfoSchema } from "../utils/errors.js";
4
4
  const connectMessageCommonEntries = {
5
5
  type: v.literal("connect"),
6
6
  initializationId: v.string(),
@@ -1,5 +1,5 @@
1
1
  import * as v from "valibot";
2
- import type { CustomBlockErrorCode, CustomBlockErrorInfo } from "../errors.js";
2
+ import type { CustomBlockErrorCode, CustomBlockErrorInfo } from "../utils/errors.js";
3
3
  import type { CustomBlockInitResultErrorCode } from "./initResult.js";
4
4
  export declare const customBlockInitErrorCodeSchema: v.StringSchema<undefined>;
5
5
  export type CustomBlockInitErrorCode = CustomBlockErrorCode<"manifest_unavailable" | "manifest_invalid" | "invalid_local_preview_url" | "invalid_connect_payload" | "invalid_protocol_version" | "unsupported_protocol_version" | "init_timeout" | "context_unavailable" | "current_user_unavailable" | "initial_state_timeout" | "missing_data_source_binding" | "data_source_unavailable" | "missing_property_binding" | "invalid_property_binding">;
@@ -102,6 +102,10 @@ export declare const initMessageSchema: v.VariantSchema<"status", [v.ObjectSchem
102
102
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
103
103
  }, undefined>, undefined>, {}>;
104
104
  }, undefined>, undefined>, {}>;
105
+ readonly capabilities: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
106
+ readonly capability: v.StringSchema<undefined>;
107
+ readonly resource: v.StringSchema<undefined>;
108
+ }, undefined>, undefined>, undefined>;
105
109
  }, undefined>;
106
110
  readonly dataSources: v.ObjectSchema<{
107
111
  readonly bindings: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
@@ -248,6 +252,7 @@ export declare const initMessageSchema: v.VariantSchema<"status", [v.ObjectSchem
248
252
  }, undefined>], undefined>, undefined>;
249
253
  }, undefined>, undefined>;
250
254
  readonly propertyIdsByKey: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.OptionalSchema<v.StringSchema<undefined>, undefined>, undefined>, undefined>;
255
+ readonly inaccessible: v.OptionalSchema<v.LiteralSchema<true, undefined>, undefined>;
251
256
  }, undefined>, undefined>;
252
257
  }, undefined>;
253
258
  readonly currentUser: v.ObjectSchema<{
@@ -1,12 +1,12 @@
1
1
  import * as v from "valibot";
2
- import { notionContrastModeSchema } from "../contrast.js";
3
- import { notionDataSourceBindingsSchema } from "../dataSources/dataSource.js";
4
- import { notionBlockIdSchema } from "../ids.js";
5
- import { manifestSchema } from "../manifest.js";
6
- import { customBlockPageSchema } from "../pages/page.js";
7
- import { notionParentSchema } from "../parent.js";
8
- import { notionThemeSchema } from "../theme.js";
9
- import { notionUserSchema } from "../users/user.js";
2
+ import { customBlockPageSchema } from "../context/containingPage.js";
3
+ import { notionContrastModeSchema } from "../context/contrast.js";
4
+ import { notionParentSchema } from "../context/parent.js";
5
+ import { notionThemeSchema } from "../context/theme.js";
6
+ import { bridgeDataSourceBindingsSchema } from "../dataSources/bridgeDataSourceBindings.js";
7
+ import { manifestSchema } from "../manifest/manifest.js";
8
+ import { bridgeUserSchema } from "../users/bridgeUser.js";
9
+ import { notionBlockIdSchema } from "../utils/ids.js";
10
10
  // The schema accepts any string code. The type lists known codes for
11
11
  // autocomplete, with an open string fallback for newer senders.
12
12
  export const customBlockInitErrorCodeSchema = v.string();
@@ -44,9 +44,9 @@ export const initMessageSchema = v.variant("status", [
44
44
  page: customBlockPageSchema,
45
45
  manifest: manifestSchema,
46
46
  dataSources: v.object({
47
- bindings: notionDataSourceBindingsSchema,
47
+ bindings: bridgeDataSourceBindingsSchema,
48
48
  }),
49
- currentUser: notionUserSchema,
49
+ currentUser: bridgeUserSchema,
50
50
  }),
51
51
  v.object({
52
52
  type: v.literal("init"),
@@ -1,5 +1,5 @@
1
1
  import * as v from "valibot";
2
- import type { CustomBlockErrorCode, CustomBlockErrorInfo } from "../errors.js";
2
+ import type { CustomBlockErrorCode, CustomBlockErrorInfo } from "../utils/errors.js";
3
3
  export declare const customBlockInitResultErrorCodeSchema: v.StringSchema<undefined>;
4
4
  export type CustomBlockInitResultErrorCode = CustomBlockErrorCode<
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { HostToSandboxMessage } from "./hostToSandbox.js";
2
- import type { SandboxToHostMessage } from "./sandboxToHost.js";
1
+ import type { HostToSandboxMessage } from "../messages/hostToSandbox.js";
2
+ import type { SandboxToHostMessage } from "../messages/sandboxToHost.js";
3
3
  /** Returns whether a message belongs to the initialization handshake. */
4
4
  export declare function isInitHandshakeMessage(message: SandboxToHostMessage | HostToSandboxMessage): boolean;