@notionhq/custom-blocks-host 0.1.14 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -66,6 +66,7 @@ const host = createCustomBlockHost({
66
66
  }),
67
67
  createPage: async (message) => createPage(message),
68
68
  getPage: async (message) => getPage(message),
69
+ openPage: async (message) => openPage(message),
69
70
  updatePage: async (message) => updatePage(message),
70
71
  getUser: async (message) => getUser(message),
71
72
  listUsers: async (message) => listUsers(message),
@@ -1 +1 @@
1
- {"version":3,"file":"createCustomBlockHost.d.ts","sourceRoot":"","sources":["../src/createCustomBlockHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,8CAA8C,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AAavF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAA;AAatG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAA;AAGhF,OAAO,KAAK,EACX,iCAAiC,EACjC,2BAA2B,EAC3B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EACX,uBAAuB,EACvB,oCAAoC,EACpC,2BAA2B,EAC3B,MAAM,qBAAqB,CAAA;AAU5B,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,YAAY,EAAE,2BAA2B,CAAA;IACzC,QAAQ,EAAE,uBAAuB,CAAA;IACjC,oHAAoH;IACpH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACpD,gGAAgG;IAChG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,QAAQ,EAAE,mBAAmB,CAAA;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;KACtB,KAAK,IAAI,CAAA;IACV,6FAA6F;IAC7F,uBAAuB,CAAC,EAAE,CACzB,KAAK,EAAE,oCAAoC,KACvC,IAAI,CAAA;IACT;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,eAAe,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,cAAc,EAAE,CAAC,WAAW,EAAE,iCAAiC,KAAK,IAAI,CAAA;IACxE,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,kBAAkB,CAAA;KAAE,KAAK,IAAI,CAAA;CAClE,CAAA;AAED,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CAyYvB"}
1
+ {"version":3,"file":"createCustomBlockHost.d.ts","sourceRoot":"","sources":["../src/createCustomBlockHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,8CAA8C,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AAavF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAA;AAiBtG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAA;AAGhF,OAAO,KAAK,EACX,iCAAiC,EACjC,2BAA2B,EAC3B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EACX,uBAAuB,EACvB,oCAAoC,EACpC,2BAA2B,EAC3B,MAAM,qBAAqB,CAAA;AAU5B,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,YAAY,EAAE,2BAA2B,CAAA;IACzC,QAAQ,EAAE,uBAAuB,CAAA;IACjC,oHAAoH;IACpH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACpD,gGAAgG;IAChG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,QAAQ,EAAE,mBAAmB,CAAA;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;KACtB,KAAK,IAAI,CAAA;IACV,6FAA6F;IAC7F,uBAAuB,CAAC,EAAE,CACzB,KAAK,EAAE,oCAAoC,KACvC,IAAI,CAAA;IACT;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,eAAe,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,cAAc,EAAE,CAAC,WAAW,EAAE,iCAAiC,KAAK,IAAI,CAAA;IACxE,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,kBAAkB,CAAA;KAAE,KAAK,IAAI,CAAA;CAClE,CAAA;AAED,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CAuZvB"}
@@ -130,6 +130,18 @@ export function createCustomBlockHost(options) {
130
130
  };
131
131
  post(result);
132
132
  }
133
+ async function handleOpenPage(message) {
134
+ if (handlers.openPage === undefined) {
135
+ return;
136
+ }
137
+ const response = await handlers.openPage(message);
138
+ const result = {
139
+ type: "openPageResult",
140
+ requestId: message.requestId,
141
+ ...response,
142
+ };
143
+ post(result);
144
+ }
133
145
  async function handleUpdatePage(message) {
134
146
  if (handlers.updatePage === undefined) {
135
147
  return;
@@ -235,6 +247,7 @@ export function createCustomBlockHost(options) {
235
247
  onUnsubscribeDataSourceQuery: message => querySubscriptions.unsubscribe(message.subscriptionId),
236
248
  onCreatePage: handleCreatePage,
237
249
  onGetPage: handleGetPage,
250
+ onOpenPage: handleOpenPage,
238
251
  onGetUser: handleGetUser,
239
252
  onListUsers: handleListUsers,
240
253
  onUpdatePage: handleUpdatePage,
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export type { CreatePageMessage } from "./protocol/messages/createPage.js";
2
2
  export type { GetPageMessage } from "./protocol/messages/getPage.js";
3
3
  export type { GetUserMessage } from "./protocol/messages/getUser.js";
4
4
  export type { ListUsersMessage } from "./protocol/messages/listUsers.js";
5
+ export type { OpenPageMessage } from "./protocol/messages/openPage.js";
5
6
  export type { QueryDataSourceMessage } from "./protocol/messages/queryDataSource.js";
6
7
  export type { ResizeMessage } from "./protocol/messages/resize.js";
7
8
  export type { UpdatePageMessage } from "./protocol/messages/updatePage.js";
@@ -9,6 +10,6 @@ export type { NotionPagePropertyValue, NotionPagePropertyWriteMap, NotionRichTex
9
10
  export { type AutoBindableProperty, getAutoBoundPropertyIdsByKey, } from "./autoBindProperties.js";
10
11
  export { type CustomBlockHostHandle, type CustomBlockHostOptions, createCustomBlockHost, } from "./createCustomBlockHost.js";
11
12
  export type { ConnectSuccessMessage, CustomBlockHostDataSourcesPayload, CustomBlockHostInitialDataSources, CustomBlockHostInitialState, } from "./lifecycle/types.js";
12
- export type { CreatePageMessageInput, CustomBlockHostCreatePageResult, CustomBlockHostGetPageResult, CustomBlockHostGetUserResult, CustomBlockHostHandlers, CustomBlockHostInitializationFailure, CustomBlockHostListUsersResult, CustomBlockHostLogDirection, CustomBlockHostUpdatePageResult, GetPageMessageInput, GetUserMessageInput, ListUsersMessageInput, QueryDataSourceMessageInput, ResizeMessageInput, UpdatePageMessageInput, } from "./messages/types.js";
13
+ export type { CreatePageMessageInput, CustomBlockHostCreatePageResult, CustomBlockHostGetPageResult, CustomBlockHostGetUserResult, CustomBlockHostHandlers, CustomBlockHostInitializationFailure, CustomBlockHostListUsersResult, CustomBlockHostLogDirection, CustomBlockHostOpenPageResult, CustomBlockHostUpdatePageResult, GetPageMessageInput, GetUserMessageInput, ListUsersMessageInput, OpenPageMessageInput, QueryDataSourceMessageInput, ResizeMessageInput, UpdatePageMessageInput, } from "./messages/types.js";
13
14
  export type { CustomBlockHostQueryDataSourceResult } from "./queries/types.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,YAAY,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAA;AAC1G,YAAY,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,GAClB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACN,KAAK,oBAAoB,EACzB,4BAA4B,GAC5B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,GACrB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACX,qBAAqB,EACrB,iCAAiC,EACjC,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACX,sBAAsB,EACtB,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,oCAAoC,EACpC,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,YAAY,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAC5F,YAAY,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAA;AAC1G,YAAY,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,GAClB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACN,KAAK,oBAAoB,EACzB,4BAA4B,GAC5B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,GACrB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACX,qBAAqB,EACrB,iCAAiC,EACjC,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACX,sBAAsB,EACtB,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,oCAAoC,EACpC,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA"}
@@ -5,6 +5,7 @@ import type { GetUserMessage } from "../protocol/messages/getUser.js";
5
5
  import type { HostToSandboxMessage } from "../protocol/messages/hostToSandbox.js";
6
6
  import type { InitResultMessage } from "../protocol/messages/initResult.js";
7
7
  import type { ListUsersMessage } from "../protocol/messages/listUsers.js";
8
+ import type { OpenPageMessage } from "../protocol/messages/openPage.js";
8
9
  import type { QueryDataSourceMessage } from "../protocol/messages/queryDataSource.js";
9
10
  import type { ResizeMessage } from "../protocol/messages/resize.js";
10
11
  import type { UnsubscribeDataSourceQueryMessage } from "../protocol/messages/unsubscribeDataSourceQuery.js";
@@ -25,6 +26,7 @@ export type SandboxMessageRouterOptions = {
25
26
  onQueryDataSource: (message: QueryDataSourceMessage) => void | Promise<void>;
26
27
  onUnsubscribeDataSourceQuery: (message: UnsubscribeDataSourceQueryMessage) => void;
27
28
  onCreatePage: (message: CreatePageMessage) => void | Promise<void>;
29
+ onOpenPage: (message: OpenPageMessage) => void | Promise<void>;
28
30
  onGetPage: (message: GetPageMessage) => void | Promise<void>;
29
31
  onGetUser: (message: GetUserMessage) => void | Promise<void>;
30
32
  onListUsers: (message: ListUsersMessage) => void | Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sandboxMessageRouter.d.ts","sourceRoot":"","sources":["../../src/messages/sandboxMessageRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAA;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAA;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AAExF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yEAAyE,CAAA;AAChI,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAGhG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAM7D,MAAM,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,iBAAiB,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,UAAU,CAAA;IAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACxE,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C,gBAAgB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAA;IAClE,mBAAmB,EAAE,wBAAwB,CAAC,yBAAyB,CAAC,CAAA;IACxE,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;IAC5C,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAClD,iBAAiB,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5E,4BAA4B,EAAE,CAC7B,OAAO,EAAE,iCAAiC,KACtC,IAAI,CAAA;IACT,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,WAAW,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,2BAA2B,GAClC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CA8H/B"}
1
+ {"version":3,"file":"sandboxMessageRouter.d.ts","sourceRoot":"","sources":["../../src/messages/sandboxMessageRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAA;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAC5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAA;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AAExF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yEAAyE,CAAA;AAChI,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAGhG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAM7D,MAAM,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,iBAAiB,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,UAAU,CAAA;IAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACxE,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C,gBAAgB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAA;IAClE,mBAAmB,EAAE,wBAAwB,CAAC,yBAAyB,CAAC,CAAA;IACxE,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;IAC5C,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAClD,iBAAiB,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5E,4BAA4B,EAAE,CAC7B,OAAO,EAAE,iCAAiC,KACtC,IAAI,CAAA;IACT,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,UAAU,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,WAAW,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,YAAY,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,2BAA2B,GAClC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAkI/B"}
@@ -8,7 +8,7 @@ const initializationIdentitySchema = v.object({
8
8
  initializationId: v.string(),
9
9
  });
10
10
  export function createSandboxMessageRouter(options) {
11
- const { iframe, sandboxOrigin, getInitStatus, emit, post, onInvalidConnect, onInvalidInitResult, onConnect, onInitResult, onQueryDataSource, onUnsubscribeDataSourceQuery, onCreatePage, onGetPage, onGetUser, onListUsers, onUpdatePage, onResize, } = options;
11
+ const { iframe, sandboxOrigin, getInitStatus, emit, post, onInvalidConnect, onInvalidInitResult, onConnect, onInitResult, onQueryDataSource, onUnsubscribeDataSourceQuery, onCreatePage, onGetPage, onOpenPage, onGetUser, onListUsers, onUpdatePage, onResize, } = options;
12
12
  function onInvalidSandboxMessage(data, issues) {
13
13
  emit("warn", {
14
14
  message: "Ignored unsupported sandbox message",
@@ -82,6 +82,9 @@ export function createSandboxMessageRouter(options) {
82
82
  case "createPage":
83
83
  void onCreatePage(message);
84
84
  return;
85
+ case "openPage":
86
+ void onOpenPage(message);
87
+ return;
85
88
  case "getPage":
86
89
  void onGetPage(message);
87
90
  return;
@@ -6,6 +6,7 @@ import type { CustomBlockInitErrorInfo } from "../protocol/messages/init.js";
6
6
  import type { CustomBlockInitResultErrorInfo } from "../protocol/messages/initResult.js";
7
7
  import type { CustomBlockListUsersErrorInfo, ListUsersMessage, ListUsersResultMessage, listUsersMessageSchema } from "../protocol/messages/listUsers.js";
8
8
  import type { BridgeMessagePayload } from "../protocol/messages/messagePayload.js";
9
+ import type { CustomBlockOpenPageErrorInfo, OpenPageMessage, OpenPageResultMessage, openPageMessageSchema } from "../protocol/messages/openPage.js";
9
10
  import type { QueryDataSourceMessage, queryDataSourceMessageSchema } from "../protocol/messages/queryDataSource.js";
10
11
  import type { ResizeMessage, resizeMessageSchema } from "../protocol/messages/resize.js";
11
12
  import type { UpdatePageMessage, updatePageMessageSchema } from "../protocol/messages/updatePage.js";
@@ -18,12 +19,14 @@ export type CustomBlockHostGetPageResult = BridgeMessagePayload<GetPageResultMes
18
19
  export type CustomBlockHostUpdatePageResult = BridgeMessagePayload<UpdatePageResultMessage, CustomBlockUpdatePageErrorInfo>;
19
20
  export type CustomBlockHostGetUserResult = BridgeMessagePayload<GetUserResultMessage, CustomBlockGetUserErrorInfo>;
20
21
  export type CustomBlockHostListUsersResult = BridgeMessagePayload<ListUsersResultMessage, CustomBlockListUsersErrorInfo>;
22
+ export type CustomBlockHostOpenPageResult = BridgeMessagePayload<OpenPageResultMessage, CustomBlockOpenPageErrorInfo>;
21
23
  export type CustomBlockHostHandlers = {
22
24
  queryDataSource: (message: QueryDataSourceMessage) => MaybePromise<CustomBlockHostQueryDataSourceResult>;
23
25
  createPage?: (message: CreatePageMessage) => MaybePromise<CustomBlockHostCreatePageResult>;
24
26
  getPage?: (message: GetPageMessage) => MaybePromise<CustomBlockHostGetPageResult>;
25
27
  getUser?: (message: GetUserMessage) => MaybePromise<CustomBlockHostGetUserResult>;
26
28
  listUsers?: (message: ListUsersMessage) => MaybePromise<CustomBlockHostListUsersResult>;
29
+ openPage?: (message: OpenPageMessage) => MaybePromise<CustomBlockHostOpenPageResult>;
27
30
  updatePage?: (message: UpdatePageMessage) => MaybePromise<CustomBlockHostUpdatePageResult>;
28
31
  resize?: (message: ResizeMessage) => void;
29
32
  };
@@ -33,6 +36,7 @@ export type CreatePageMessageInput = InferInput<typeof createPageMessageSchema>;
33
36
  export type GetPageMessageInput = InferInput<typeof getPageMessageSchema>;
34
37
  export type GetUserMessageInput = InferInput<typeof getUserMessageSchema>;
35
38
  export type ListUsersMessageInput = InferInput<typeof listUsersMessageSchema>;
39
+ export type OpenPageMessageInput = InferInput<typeof openPageMessageSchema>;
36
40
  export type QueryDataSourceMessageInput = InferInput<typeof queryDataSourceMessageSchema>;
37
41
  export type ResizeMessageInput = InferInput<typeof resizeMessageSchema>;
38
42
  export type UpdatePageMessageInput = InferInput<typeof updatePageMessageSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ export * from "./messages/invalidSandboxMessage.js";
33
33
  export * from "./messages/isInitHandshakeMessage.js";
34
34
  export * from "./messages/listUsers.js";
35
35
  export * from "./messages/messagePayload.js";
36
+ export * from "./messages/openPage.js";
36
37
  export * from "./messages/pageChanged.js";
37
38
  export * from "./messages/parentChanged.js";
38
39
  export * from "./messages/queryDataSource.js";
@@ -33,6 +33,7 @@ export * from "./messages/invalidSandboxMessage.js";
33
33
  export * from "./messages/isInitHandshakeMessage.js";
34
34
  export * from "./messages/listUsers.js";
35
35
  export * from "./messages/messagePayload.js";
36
+ export * from "./messages/openPage.js";
36
37
  export * from "./messages/pageChanged.js";
37
38
  export * from "./messages/parentChanged.js";
38
39
  export * from "./messages/queryDataSource.js";
@@ -976,6 +976,20 @@ export declare const hostToSandboxMessageSchema: v.VariantSchema<"type", [v.Vari
976
976
  readonly message: v.StringSchema<undefined>;
977
977
  readonly isRetryable: v.BooleanSchema<undefined>;
978
978
  }, undefined>;
979
+ }, undefined>], undefined>, v.VariantSchema<"status", [v.ObjectSchema<{
980
+ readonly type: v.LiteralSchema<"openPageResult", undefined>;
981
+ readonly requestId: v.StringSchema<undefined>;
982
+ readonly status: v.LiteralSchema<"success", undefined>;
983
+ readonly pageId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionPageId">]>;
984
+ }, undefined>, v.ObjectSchema<{
985
+ readonly type: v.LiteralSchema<"openPageResult", undefined>;
986
+ readonly requestId: v.StringSchema<undefined>;
987
+ readonly status: v.LiteralSchema<"error", undefined>;
988
+ readonly error: v.ObjectSchema<{
989
+ readonly code: v.StringSchema<undefined>;
990
+ readonly message: v.StringSchema<undefined>;
991
+ readonly isRetryable: v.BooleanSchema<undefined>;
992
+ }, undefined>;
979
993
  }, undefined>], undefined>, v.VariantSchema<"status", [v.ObjectSchema<{
980
994
  readonly type: v.LiteralSchema<"updatePageResult", undefined>;
981
995
  readonly requestId: v.StringSchema<undefined>;
@@ -1182,5 +1196,5 @@ export declare const hostToSandboxMessageSchema: v.VariantSchema<"type", [v.Vari
1182
1196
  }, undefined>], undefined>;
1183
1197
  export type HostToSandboxMessage = v.InferOutput<typeof hostToSandboxMessageSchema>;
1184
1198
  export type PrimeableHostToSandboxMessage = Extract<HostToSandboxMessage, {
1185
- type: "getPageResult" | "createPageResult" | "updatePageResult" | "getUserResult" | "listUsersResult" | "queryDataSourceResult";
1199
+ type: "getPageResult" | "openPageResult" | "createPageResult" | "updatePageResult" | "getUserResult" | "listUsersResult" | "queryDataSourceResult";
1186
1200
  }>;
@@ -8,6 +8,7 @@ import { getUserResultMessageSchema } from "./getUser.js";
8
8
  import { initMessageSchema } from "./init.js";
9
9
  import { invalidSandboxMessageSchema } from "./invalidSandboxMessage.js";
10
10
  import { listUsersResultMessageSchema } from "./listUsers.js";
11
+ import { openPageResultMessageSchema } from "./openPage.js";
11
12
  import { pageChangedMessageSchema } from "./pageChanged.js";
12
13
  import { parentChangedMessageSchema } from "./parentChanged.js";
13
14
  import { queryDataSourceResultMessageSchema } from "./queryDataSourceResult.js";
@@ -29,6 +30,7 @@ export const hostToSandboxMessageSchema = v.variant("type", [
29
30
  getPageResultMessageSchema,
30
31
  getUserResultMessageSchema,
31
32
  listUsersResultMessageSchema,
33
+ openPageResultMessageSchema,
32
34
  updatePageResultMessageSchema,
33
35
  invalidSandboxMessageSchema,
34
36
  ]);
@@ -0,0 +1,38 @@
1
+ import * as v from "valibot";
2
+ import type { CustomBlockErrorCode, CustomBlockErrorInfo } from "../errors.js";
3
+ export declare const openPageModeSchema: v.PicklistSchema<["side_peek", "center_peek"], undefined>;
4
+ export type OpenPageMode = v.InferOutput<typeof openPageModeSchema>;
5
+ export declare const customBlockOpenPageErrorCodeSchema: v.StringSchema<undefined>;
6
+ export type CustomBlockOpenPageErrorCode = CustomBlockErrorCode<"open_page_failed" | "page_access_failed" | "navigation_unavailable">;
7
+ export type CustomBlockOpenPageErrorInfo = CustomBlockErrorInfo<CustomBlockOpenPageErrorCode>;
8
+ export declare const customBlockOpenPageErrorInfoSchema: v.ObjectSchema<{
9
+ readonly code: v.StringSchema<undefined>;
10
+ readonly message: v.StringSchema<undefined>;
11
+ readonly isRetryable: v.BooleanSchema<undefined>;
12
+ }, undefined>;
13
+ /**
14
+ * Sandbox -> host: request host-owned navigation to a readable Notion page.
15
+ */
16
+ export declare const openPageMessageSchema: v.ObjectSchema<{
17
+ readonly type: v.LiteralSchema<"openPage", undefined>;
18
+ readonly requestId: v.StringSchema<undefined>;
19
+ readonly pageId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionPageId">]>;
20
+ readonly mode: v.PicklistSchema<["side_peek", "center_peek"], undefined>;
21
+ }, undefined>;
22
+ export type OpenPageMessage = v.InferOutput<typeof openPageMessageSchema>;
23
+ export declare const openPageResultMessageSchema: v.VariantSchema<"status", [v.ObjectSchema<{
24
+ readonly type: v.LiteralSchema<"openPageResult", undefined>;
25
+ readonly requestId: v.StringSchema<undefined>;
26
+ readonly status: v.LiteralSchema<"success", undefined>;
27
+ readonly pageId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionPageId">]>;
28
+ }, undefined>, v.ObjectSchema<{
29
+ readonly type: v.LiteralSchema<"openPageResult", undefined>;
30
+ readonly requestId: v.StringSchema<undefined>;
31
+ readonly status: v.LiteralSchema<"error", undefined>;
32
+ readonly error: v.ObjectSchema<{
33
+ readonly code: v.StringSchema<undefined>;
34
+ readonly message: v.StringSchema<undefined>;
35
+ readonly isRetryable: v.BooleanSchema<undefined>;
36
+ }, undefined>;
37
+ }, undefined>], undefined>;
38
+ export type OpenPageResultMessage = v.InferOutput<typeof openPageResultMessageSchema>;
@@ -0,0 +1,34 @@
1
+ import * as v from "valibot";
2
+ import { notionPageIdSchema } from "../ids.js";
3
+ export const openPageModeSchema = v.picklist(["side_peek", "center_peek"]);
4
+ // The schema accepts any string code. The type lists known codes for
5
+ // autocomplete, with an open string fallback for newer senders.
6
+ export const customBlockOpenPageErrorCodeSchema = v.string();
7
+ export const customBlockOpenPageErrorInfoSchema = v.object({
8
+ code: customBlockOpenPageErrorCodeSchema,
9
+ message: v.string(),
10
+ isRetryable: v.boolean(),
11
+ });
12
+ /**
13
+ * Sandbox -> host: request host-owned navigation to a readable Notion page.
14
+ */
15
+ export const openPageMessageSchema = v.object({
16
+ type: v.literal("openPage"),
17
+ requestId: v.string(),
18
+ pageId: notionPageIdSchema,
19
+ mode: openPageModeSchema,
20
+ });
21
+ export const openPageResultMessageSchema = v.variant("status", [
22
+ v.object({
23
+ type: v.literal("openPageResult"),
24
+ requestId: v.string(),
25
+ status: v.literal("success"),
26
+ pageId: notionPageIdSchema,
27
+ }),
28
+ v.object({
29
+ type: v.literal("openPageResult"),
30
+ requestId: v.string(),
31
+ status: v.literal("error"),
32
+ error: customBlockOpenPageErrorInfoSchema,
33
+ }),
34
+ ]);
@@ -573,6 +573,11 @@ export declare const sandboxToHostMessageSchema: v.VariantSchema<"type", [v.Vari
573
573
  readonly requestId: v.StringSchema<undefined>;
574
574
  readonly startCursor: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
575
575
  readonly pageSize: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
576
+ }, undefined>, v.ObjectSchema<{
577
+ readonly type: v.LiteralSchema<"openPage", undefined>;
578
+ readonly requestId: v.StringSchema<undefined>;
579
+ readonly pageId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.BrandAction<string, "NotionPageId">]>;
580
+ readonly mode: v.PicklistSchema<["side_peek", "center_peek"], undefined>;
576
581
  }, undefined>, v.ObjectSchema<{
577
582
  readonly type: v.LiteralSchema<"updatePage", undefined>;
578
583
  readonly requestId: v.StringSchema<undefined>;
@@ -6,6 +6,7 @@ import { getUserMessageSchema } from "./getUser.js";
6
6
  import { initResultMessageSchema } from "./initResult.js";
7
7
  import { invalidHostMessageSchema } from "./invalidHostMessage.js";
8
8
  import { listUsersMessageSchema } from "./listUsers.js";
9
+ import { openPageMessageSchema } from "./openPage.js";
9
10
  import { queryDataSourceMessageSchema } from "./queryDataSource.js";
10
11
  import { resizeMessageSchema } from "./resize.js";
11
12
  import { unsubscribeDataSourceQueryMessageSchema } from "./unsubscribeDataSourceQuery.js";
@@ -23,6 +24,7 @@ export const sandboxToHostMessageSchema = v.variant("type", [
23
24
  getPageMessageSchema,
24
25
  getUserMessageSchema,
25
26
  listUsersMessageSchema,
27
+ openPageMessageSchema,
26
28
  updatePageMessageSchema,
27
29
  resizeMessageSchema,
28
30
  invalidHostMessageSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notionhq/custom-blocks-host",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "Reusable host runtime for Notion custom blocks.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,6 +22,10 @@ import type {
22
22
  ListUsersMessage,
23
23
  ListUsersResultMessage,
24
24
  } from "@notionhq/custom-blocks-protocol/messages/listUsers.js"
25
+ import type {
26
+ OpenPageMessage,
27
+ OpenPageResultMessage,
28
+ } from "@notionhq/custom-blocks-protocol/messages/openPage.js"
25
29
  import type { PageChangedMessage } from "@notionhq/custom-blocks-protocol/messages/pageChanged.js"
26
30
  import type { ParentChangedMessage } from "@notionhq/custom-blocks-protocol/messages/parentChanged.js"
27
31
  import type { QueryDataSourceMessage } from "@notionhq/custom-blocks-protocol/messages/queryDataSource.js"
@@ -266,6 +270,19 @@ export function createCustomBlockHost(
266
270
  post(result)
267
271
  }
268
272
 
273
+ async function handleOpenPage(message: OpenPageMessage) {
274
+ if (handlers.openPage === undefined) {
275
+ return
276
+ }
277
+ const response = await handlers.openPage(message)
278
+ const result: OpenPageResultMessage = {
279
+ type: "openPageResult",
280
+ requestId: message.requestId,
281
+ ...response,
282
+ }
283
+ post(result)
284
+ }
285
+
269
286
  async function handleUpdatePage(message: UpdatePageMessage) {
270
287
  if (handlers.updatePage === undefined) {
271
288
  return
@@ -379,6 +396,7 @@ export function createCustomBlockHost(
379
396
  querySubscriptions.unsubscribe(message.subscriptionId),
380
397
  onCreatePage: handleCreatePage,
381
398
  onGetPage: handleGetPage,
399
+ onOpenPage: handleOpenPage,
382
400
  onGetUser: handleGetUser,
383
401
  onListUsers: handleListUsers,
384
402
  onUpdatePage: handleUpdatePage,
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ export type { CreatePageMessage } from "@notionhq/custom-blocks-protocol/message
2
2
  export type { GetPageMessage } from "@notionhq/custom-blocks-protocol/messages/getPage.js"
3
3
  export type { GetUserMessage } from "@notionhq/custom-blocks-protocol/messages/getUser.js"
4
4
  export type { ListUsersMessage } from "@notionhq/custom-blocks-protocol/messages/listUsers.js"
5
+ export type { OpenPageMessage } from "@notionhq/custom-blocks-protocol/messages/openPage.js"
5
6
  export type { QueryDataSourceMessage } from "@notionhq/custom-blocks-protocol/messages/queryDataSource.js"
6
7
  export type { ResizeMessage } from "@notionhq/custom-blocks-protocol/messages/resize.js"
7
8
  export type { UpdatePageMessage } from "@notionhq/custom-blocks-protocol/messages/updatePage.js"
@@ -34,10 +35,12 @@ export type {
34
35
  CustomBlockHostInitializationFailure,
35
36
  CustomBlockHostListUsersResult,
36
37
  CustomBlockHostLogDirection,
38
+ CustomBlockHostOpenPageResult,
37
39
  CustomBlockHostUpdatePageResult,
38
40
  GetPageMessageInput,
39
41
  GetUserMessageInput,
40
42
  ListUsersMessageInput,
43
+ OpenPageMessageInput,
41
44
  QueryDataSourceMessageInput,
42
45
  ResizeMessageInput,
43
46
  UpdatePageMessageInput,
@@ -6,6 +6,7 @@ import type { HostToSandboxMessage } from "@notionhq/custom-blocks-protocol/mess
6
6
  import type { InitResultMessage } from "@notionhq/custom-blocks-protocol/messages/initResult.js"
7
7
  import { isInitHandshakeMessage } from "@notionhq/custom-blocks-protocol/messages/isInitHandshakeMessage.js"
8
8
  import type { ListUsersMessage } from "@notionhq/custom-blocks-protocol/messages/listUsers.js"
9
+ import type { OpenPageMessage } from "@notionhq/custom-blocks-protocol/messages/openPage.js"
9
10
  import type { QueryDataSourceMessage } from "@notionhq/custom-blocks-protocol/messages/queryDataSource.js"
10
11
  import type { ResizeMessage } from "@notionhq/custom-blocks-protocol/messages/resize.js"
11
12
  import { sandboxToHostMessageSchema } from "@notionhq/custom-blocks-protocol/messages/sandboxToHost.js"
@@ -38,6 +39,7 @@ export type SandboxMessageRouterOptions = {
38
39
  message: UnsubscribeDataSourceQueryMessage,
39
40
  ) => void
40
41
  onCreatePage: (message: CreatePageMessage) => void | Promise<void>
42
+ onOpenPage: (message: OpenPageMessage) => void | Promise<void>
41
43
  onGetPage: (message: GetPageMessage) => void | Promise<void>
42
44
  onGetUser: (message: GetUserMessage) => void | Promise<void>
43
45
  onListUsers: (message: ListUsersMessage) => void | Promise<void>
@@ -62,6 +64,7 @@ export function createSandboxMessageRouter(
62
64
  onUnsubscribeDataSourceQuery,
63
65
  onCreatePage,
64
66
  onGetPage,
67
+ onOpenPage,
65
68
  onGetUser,
66
69
  onListUsers,
67
70
  onUpdatePage,
@@ -151,6 +154,9 @@ export function createSandboxMessageRouter(
151
154
  case "createPage":
152
155
  void onCreatePage(message)
153
156
  return
157
+ case "openPage":
158
+ void onOpenPage(message)
159
+ return
154
160
  case "getPage":
155
161
  void onGetPage(message)
156
162
  return
@@ -27,6 +27,12 @@ import type {
27
27
  listUsersMessageSchema,
28
28
  } from "@notionhq/custom-blocks-protocol/messages/listUsers.js"
29
29
  import type { BridgeMessagePayload } from "@notionhq/custom-blocks-protocol/messages/messagePayload.js"
30
+ import type {
31
+ CustomBlockOpenPageErrorInfo,
32
+ OpenPageMessage,
33
+ OpenPageResultMessage,
34
+ openPageMessageSchema,
35
+ } from "@notionhq/custom-blocks-protocol/messages/openPage.js"
30
36
  import type {
31
37
  QueryDataSourceMessage,
32
38
  queryDataSourceMessageSchema,
@@ -73,6 +79,11 @@ export type CustomBlockHostListUsersResult = BridgeMessagePayload<
73
79
  CustomBlockListUsersErrorInfo
74
80
  >
75
81
 
82
+ export type CustomBlockHostOpenPageResult = BridgeMessagePayload<
83
+ OpenPageResultMessage,
84
+ CustomBlockOpenPageErrorInfo
85
+ >
86
+
76
87
  export type CustomBlockHostHandlers = {
77
88
  queryDataSource: (
78
89
  message: QueryDataSourceMessage,
@@ -89,6 +100,9 @@ export type CustomBlockHostHandlers = {
89
100
  listUsers?: (
90
101
  message: ListUsersMessage,
91
102
  ) => MaybePromise<CustomBlockHostListUsersResult>
103
+ openPage?: (
104
+ message: OpenPageMessage,
105
+ ) => MaybePromise<CustomBlockHostOpenPageResult>
92
106
  updatePage?: (
93
107
  message: UpdatePageMessage,
94
108
  ) => MaybePromise<CustomBlockHostUpdatePageResult>
@@ -109,6 +123,8 @@ export type GetUserMessageInput = InferInput<typeof getUserMessageSchema>
109
123
 
110
124
  export type ListUsersMessageInput = InferInput<typeof listUsersMessageSchema>
111
125
 
126
+ export type OpenPageMessageInput = InferInput<typeof openPageMessageSchema>
127
+
112
128
  export type QueryDataSourceMessageInput = InferInput<
113
129
  typeof queryDataSourceMessageSchema
114
130
  >