@notionhq/custom-blocks 0.0.58
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/HOST.md +171 -0
- package/README.md +57 -0
- package/bin/cli/attach.js +180 -0
- package/bin/cli/cli.js +248 -0
- package/bin/cli/create.js +106 -0
- package/bin/cli/datasources.js +255 -0
- package/bin/cli/deploy.js +109 -0
- package/bin/cli/ids.js +13 -0
- package/bin/cli/ntn.js +95 -0
- package/bin/cli/pullData.js +76 -0
- package/bin/cli/pullManifest.js +158 -0
- package/bin/cli/target.js +95 -0
- package/bin/src/bridge/dataSources/propertySchema.js +148 -0
- package/bin/src/bridge/manifest.js +40 -0
- package/dist/autoResize.d.ts +4 -0
- package/dist/autoResize.d.ts.map +1 -0
- package/dist/autoResize.js +71 -0
- package/dist/bridge/SandboxBridge.d.ts +92 -0
- package/dist/bridge/SandboxBridge.d.ts.map +1 -0
- package/dist/bridge/SandboxBridge.js +718 -0
- package/dist/bridge/dataSources/dataSource.d.ts +732 -0
- package/dist/bridge/dataSources/dataSource.d.ts.map +1 -0
- package/dist/bridge/dataSources/dataSource.js +37 -0
- package/dist/bridge/dataSources/dataSourcePage.d.ts +118 -0
- package/dist/bridge/dataSources/dataSourcePage.d.ts.map +1 -0
- package/dist/bridge/dataSources/dataSourcePage.js +14 -0
- package/dist/bridge/dataSources/dataSourceValue.d.ts +67 -0
- package/dist/bridge/dataSources/dataSourceValue.d.ts.map +1 -0
- package/dist/bridge/dataSources/dataSourceValue.js +14 -0
- package/dist/bridge/dataSources/dateValue.d.ts +158 -0
- package/dist/bridge/dataSources/dateValue.d.ts.map +1 -0
- package/dist/bridge/dataSources/dateValue.js +59 -0
- package/dist/bridge/dataSources/errors.d.ts +6 -0
- package/dist/bridge/dataSources/errors.d.ts.map +1 -0
- package/dist/bridge/dataSources/errors.js +4 -0
- package/dist/bridge/dataSources/propertySchema.d.ts +191 -0
- package/dist/bridge/dataSources/propertySchema.d.ts.map +1 -0
- package/dist/bridge/dataSources/propertySchema.js +148 -0
- package/dist/bridge/dataSources/recordPointer.d.ts +10 -0
- package/dist/bridge/dataSources/recordPointer.d.ts.map +1 -0
- package/dist/bridge/dataSources/recordPointer.js +8 -0
- package/dist/bridge/dataSources/resolve.d.ts +22 -0
- package/dist/bridge/dataSources/resolve.d.ts.map +1 -0
- package/dist/bridge/dataSources/resolve.js +65 -0
- package/dist/bridge/dataSources/resolveProperty.d.ts +41 -0
- package/dist/bridge/dataSources/resolveProperty.d.ts.map +1 -0
- package/dist/bridge/dataSources/resolveProperty.js +73 -0
- package/dist/bridge/errors.d.ts +12 -0
- package/dist/bridge/errors.d.ts.map +1 -0
- package/dist/bridge/errors.js +6 -0
- package/dist/bridge/hostState.d.ts +65 -0
- package/dist/bridge/hostState.d.ts.map +1 -0
- package/dist/bridge/hostState.js +65 -0
- package/dist/bridge/ids.d.ts +39 -0
- package/dist/bridge/ids.d.ts.map +1 -0
- package/dist/bridge/ids.js +5 -0
- package/dist/bridge/incomingType.d.ts +10 -0
- package/dist/bridge/incomingType.d.ts.map +1 -0
- package/dist/bridge/incomingType.js +17 -0
- package/dist/bridge/loadManifest.d.ts +25 -0
- package/dist/bridge/loadManifest.d.ts.map +1 -0
- package/dist/bridge/loadManifest.js +68 -0
- package/dist/bridge/manifest.d.ts +66 -0
- package/dist/bridge/manifest.d.ts.map +1 -0
- package/dist/bridge/manifest.js +40 -0
- package/dist/bridge/messages/createPage.d.ts +225 -0
- package/dist/bridge/messages/createPage.d.ts.map +1 -0
- package/dist/bridge/messages/createPage.js +46 -0
- package/dist/bridge/messages/createPageResult.d.ts +211 -0
- package/dist/bridge/messages/createPageResult.d.ts.map +1 -0
- package/dist/bridge/messages/createPageResult.js +28 -0
- package/dist/bridge/messages/currentUserChanged.d.ts +19 -0
- package/dist/bridge/messages/currentUserChanged.d.ts.map +1 -0
- package/dist/bridge/messages/currentUserChanged.js +9 -0
- package/dist/bridge/messages/dataSourcesChanged.d.ts +158 -0
- package/dist/bridge/messages/dataSourcesChanged.d.ts.map +1 -0
- package/dist/bridge/messages/dataSourcesChanged.js +13 -0
- package/dist/bridge/messages/getPage.d.ts +216 -0
- package/dist/bridge/messages/getPage.d.ts.map +1 -0
- package/dist/bridge/messages/getPage.js +33 -0
- package/dist/bridge/messages/getUser.d.ts +45 -0
- package/dist/bridge/messages/getUser.d.ts.map +1 -0
- package/dist/bridge/messages/getUser.js +32 -0
- package/dist/bridge/messages/hostToSandbox.d.ts +1089 -0
- package/dist/bridge/messages/hostToSandbox.d.ts.map +1 -0
- package/dist/bridge/messages/hostToSandbox.js +32 -0
- package/dist/bridge/messages/init.d.ts +209 -0
- package/dist/bridge/messages/init.d.ts.map +1 -0
- package/dist/bridge/messages/init.js +47 -0
- package/dist/bridge/messages/invalidHostMessage.d.ts +15 -0
- package/dist/bridge/messages/invalidHostMessage.d.ts.map +1 -0
- package/dist/bridge/messages/invalidHostMessage.js +13 -0
- package/dist/bridge/messages/invalidSandboxMessage.d.ts +15 -0
- package/dist/bridge/messages/invalidSandboxMessage.d.ts.map +1 -0
- package/dist/bridge/messages/invalidSandboxMessage.js +13 -0
- package/dist/bridge/messages/listUsers.d.ts +53 -0
- package/dist/bridge/messages/listUsers.d.ts.map +1 -0
- package/dist/bridge/messages/listUsers.js +33 -0
- package/dist/bridge/messages/pageChanged.d.ts +12 -0
- package/dist/bridge/messages/pageChanged.d.ts.map +1 -0
- package/dist/bridge/messages/pageChanged.js +9 -0
- package/dist/bridge/messages/parentChanged.d.ts +22 -0
- package/dist/bridge/messages/parentChanged.d.ts.map +1 -0
- package/dist/bridge/messages/parentChanged.js +9 -0
- package/dist/bridge/messages/queryDataSource.d.ts +20 -0
- package/dist/bridge/messages/queryDataSource.d.ts.map +1 -0
- package/dist/bridge/messages/queryDataSource.js +19 -0
- package/dist/bridge/messages/queryDataSourceResult.d.ts +90 -0
- package/dist/bridge/messages/queryDataSourceResult.d.ts.map +1 -0
- package/dist/bridge/messages/queryDataSourceResult.js +21 -0
- package/dist/bridge/messages/ready.d.ts +45 -0
- package/dist/bridge/messages/ready.d.ts.map +1 -0
- package/dist/bridge/messages/ready.js +37 -0
- package/dist/bridge/messages/resize.d.ts +12 -0
- package/dist/bridge/messages/resize.d.ts.map +1 -0
- package/dist/bridge/messages/resize.js +10 -0
- package/dist/bridge/messages/sandboxToHost.d.ts +410 -0
- package/dist/bridge/messages/sandboxToHost.d.ts.map +1 -0
- package/dist/bridge/messages/sandboxToHost.js +25 -0
- package/dist/bridge/messages/themeChanged.d.ts +11 -0
- package/dist/bridge/messages/themeChanged.d.ts.map +1 -0
- package/dist/bridge/messages/themeChanged.js +10 -0
- package/dist/bridge/messages/updatePage.d.ts +171 -0
- package/dist/bridge/messages/updatePage.d.ts.map +1 -0
- package/dist/bridge/messages/updatePage.js +15 -0
- package/dist/bridge/messages/updatePageResult.d.ts +210 -0
- package/dist/bridge/messages/updatePageResult.d.ts.map +1 -0
- package/dist/bridge/messages/updatePageResult.js +27 -0
- package/dist/bridge/pages/page.d.ts +600 -0
- package/dist/bridge/pages/page.d.ts.map +1 -0
- package/dist/bridge/pages/page.js +217 -0
- package/dist/bridge/parent.d.ts +25 -0
- package/dist/bridge/parent.d.ts.map +1 -0
- package/dist/bridge/parent.js +11 -0
- package/dist/bridge/pendingRequests.d.ts +14 -0
- package/dist/bridge/pendingRequests.d.ts.map +1 -0
- package/dist/bridge/pendingRequests.js +27 -0
- package/dist/bridge/sandboxClient.d.ts +63 -0
- package/dist/bridge/sandboxClient.d.ts.map +1 -0
- package/dist/bridge/sandboxClient.js +92 -0
- package/dist/bridge/theme.d.ts +4 -0
- package/dist/bridge/theme.d.ts.map +1 -0
- package/dist/bridge/theme.js +2 -0
- package/dist/bridge/users/user.d.ts +36 -0
- package/dist/bridge/users/user.d.ts.map +1 -0
- package/dist/bridge/users/user.js +19 -0
- package/dist/customBlock.d.ts +36 -0
- package/dist/customBlock.d.ts.map +1 -0
- package/dist/customBlock.js +65 -0
- package/dist/host/createCustomBlockHost.d.ts +34 -0
- package/dist/host/createCustomBlockHost.d.ts.map +1 -0
- package/dist/host/createCustomBlockHost.js +278 -0
- package/dist/host/lifecycle/initErrors.d.ts +10 -0
- package/dist/host/lifecycle/initErrors.d.ts.map +1 -0
- package/dist/host/lifecycle/initErrors.js +123 -0
- package/dist/host/lifecycle/ready.d.ts +8 -0
- package/dist/host/lifecycle/ready.d.ts.map +1 -0
- package/dist/host/lifecycle/ready.js +24 -0
- package/dist/host/lifecycle/types.d.ts +24 -0
- package/dist/host/lifecycle/types.d.ts.map +1 -0
- package/dist/host/lifecycle/types.js +1 -0
- package/dist/host/messages/invalidSandboxMessage.d.ts +7 -0
- package/dist/host/messages/invalidSandboxMessage.d.ts.map +1 -0
- package/dist/host/messages/invalidSandboxMessage.js +24 -0
- package/dist/host/messages/types.d.ts +60 -0
- package/dist/host/messages/types.d.ts.map +1 -0
- package/dist/host/messages/types.js +1 -0
- package/dist/host/queries/querySubscriptions.d.ts +20 -0
- package/dist/host/queries/querySubscriptions.d.ts.map +1 -0
- package/dist/host/queries/querySubscriptions.js +29 -0
- package/dist/host/queries/types.d.ts +9 -0
- package/dist/host/queries/types.d.ts.map +1 -0
- package/dist/host/queries/types.js +1 -0
- package/dist/host.d.ts +73 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +42 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/init.d.ts +53 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +87 -0
- package/dist/react/DebugMessageLog.d.ts +2 -0
- package/dist/react/DebugMessageLog.d.ts.map +1 -0
- package/dist/react/DebugMessageLog.js +22 -0
- package/dist/react/NotionCustomBlock.css +110 -0
- package/dist/react/NotionCustomBlock.d.ts +50 -0
- package/dist/react/NotionCustomBlock.d.ts.map +1 -0
- package/dist/react/NotionCustomBlock.js +81 -0
- package/dist/react/index.d.ts +14 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +13 -0
- package/dist/react/standalonePreview.d.ts +2 -0
- package/dist/react/standalonePreview.d.ts.map +1 -0
- package/dist/react/standalonePreview.js +26 -0
- package/dist/react/useCustomBlockAutoResize.d.ts +30 -0
- package/dist/react/useCustomBlockAutoResize.d.ts.map +1 -0
- package/dist/react/useCustomBlockAutoResize.js +35 -0
- package/dist/react/useCustomBlockInit.d.ts +43 -0
- package/dist/react/useCustomBlockInit.d.ts.map +1 -0
- package/dist/react/useCustomBlockInit.js +60 -0
- package/dist/react/useDataSource.d.ts +13 -0
- package/dist/react/useDataSource.d.ts.map +1 -0
- package/dist/react/useDataSource.js +37 -0
- package/dist/react/useHostState.d.ts +2 -0
- package/dist/react/useHostState.d.ts.map +1 -0
- package/dist/react/useHostState.js +5 -0
- package/dist/react/useRuntimeState.d.ts +66 -0
- package/dist/react/useRuntimeState.d.ts.map +1 -0
- package/dist/react/useRuntimeState.js +73 -0
- package/dist/types.d.ts +154 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +10 -0
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +7 -0
- package/docs/block-location.md +83 -0
- package/docs/data-sources.md +186 -0
- package/docs/lifecycle.md +172 -0
- package/docs/manifest.md +42 -0
- package/docs/pages.md +143 -0
- package/docs/users.md +92 -0
- package/package.json +69 -0
- package/src/autoResize.ts +84 -0
- package/src/bridge/SandboxBridge.ts +921 -0
- package/src/bridge/dataSources/dataSource.ts +63 -0
- package/src/bridge/dataSources/dataSourcePage.ts +71 -0
- package/src/bridge/dataSources/dataSourceValue.ts +19 -0
- package/src/bridge/dataSources/dateValue.ts +96 -0
- package/src/bridge/dataSources/errors.ts +14 -0
- package/src/bridge/dataSources/propertySchema.ts +186 -0
- package/src/bridge/dataSources/recordPointer.ts +13 -0
- package/src/bridge/dataSources/resolve.ts +99 -0
- package/src/bridge/dataSources/resolveProperty.ts +130 -0
- package/src/bridge/errors.ts +13 -0
- package/src/bridge/hostState.ts +154 -0
- package/src/bridge/ids.ts +58 -0
- package/src/bridge/incomingType.ts +19 -0
- package/src/bridge/loadManifest.ts +89 -0
- package/src/bridge/manifest.ts +53 -0
- package/src/bridge/messages/createPage.ts +67 -0
- package/src/bridge/messages/createPageResult.ts +52 -0
- package/src/bridge/messages/currentUserChanged.ts +14 -0
- package/src/bridge/messages/dataSourcesChanged.ts +18 -0
- package/src/bridge/messages/getPage.ts +52 -0
- package/src/bridge/messages/getUser.ts +48 -0
- package/src/bridge/messages/hostToSandbox.ts +37 -0
- package/src/bridge/messages/init.ts +81 -0
- package/src/bridge/messages/invalidHostMessage.ts +16 -0
- package/src/bridge/messages/invalidSandboxMessage.ts +18 -0
- package/src/bridge/messages/listUsers.ts +49 -0
- package/src/bridge/messages/pageChanged.ts +12 -0
- package/src/bridge/messages/parentChanged.ts +14 -0
- package/src/bridge/messages/queryDataSource.ts +24 -0
- package/src/bridge/messages/queryDataSourceResult.ts +38 -0
- package/src/bridge/messages/ready.ts +41 -0
- package/src/bridge/messages/resize.ts +13 -0
- package/src/bridge/messages/sandboxToHost.ts +30 -0
- package/src/bridge/messages/themeChanged.ts +15 -0
- package/src/bridge/messages/updatePage.ts +22 -0
- package/src/bridge/messages/updatePageResult.ts +49 -0
- package/src/bridge/pages/page.ts +281 -0
- package/src/bridge/parent.ts +27 -0
- package/src/bridge/pendingRequests.ts +28 -0
- package/src/bridge/sandboxClient.ts +137 -0
- package/src/bridge/theme.ts +5 -0
- package/src/bridge/users/user.ts +31 -0
- package/src/css.d.ts +1 -0
- package/src/customBlock.ts +102 -0
- package/src/host/createCustomBlockHost.ts +392 -0
- package/src/host/lifecycle/initErrors.ts +132 -0
- package/src/host/lifecycle/ready.ts +36 -0
- package/src/host/lifecycle/types.ts +28 -0
- package/src/host/messages/invalidSandboxMessage.ts +38 -0
- package/src/host/messages/types.ts +67 -0
- package/src/host/queries/querySubscriptions.ts +52 -0
- package/src/host/queries/types.ts +16 -0
- package/src/host.ts +167 -0
- package/src/index.ts +115 -0
- package/src/init.ts +143 -0
- package/src/react/DebugMessageLog.tsx +30 -0
- package/src/react/NotionCustomBlock.css +110 -0
- package/src/react/NotionCustomBlock.tsx +151 -0
- package/src/react/index.ts +28 -0
- package/src/react/standalonePreview.ts +28 -0
- package/src/react/useCustomBlockAutoResize.ts +46 -0
- package/src/react/useCustomBlockInit.ts +91 -0
- package/src/react/useDataSource.ts +47 -0
- package/src/react/useHostState.ts +9 -0
- package/src/react/useRuntimeState.ts +85 -0
- package/src/types.ts +175 -0
- package/src/utils.ts +13 -0
- package/src/version.ts +8 -0
- package/vite-plugin/index.d.ts +46 -0
- package/vite-plugin/index.js +115 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class QuerySubscriptions {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.latestByDataSourceId = new Map();
|
|
4
|
+
}
|
|
5
|
+
track(message) {
|
|
6
|
+
this.latestByDataSourceId.set(message.dataSourceId, {
|
|
7
|
+
requestId: message.requestId,
|
|
8
|
+
snapshotId: message.snapshotId,
|
|
9
|
+
limit: message.limit,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
resolveRefresh(args) {
|
|
13
|
+
const queryState = this.latestByDataSourceId.get(args.dataSourceId);
|
|
14
|
+
if (!queryState) {
|
|
15
|
+
return { status: "missing" };
|
|
16
|
+
}
|
|
17
|
+
const items = args.response.items.slice(0, queryState.limit);
|
|
18
|
+
return {
|
|
19
|
+
status: "success",
|
|
20
|
+
requestId: queryState.requestId,
|
|
21
|
+
snapshotId: queryState.snapshotId,
|
|
22
|
+
response: {
|
|
23
|
+
items,
|
|
24
|
+
hasMore: args.response.hasMore ?? args.response.items.length > items.length,
|
|
25
|
+
error: args.response.error,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { QueryDataSourceMessage } from "../../bridge/messages/queryDataSource.js";
|
|
2
|
+
import type { CustomBlockQueryDataSourceErrorInfo, QueryDataSourceResultMessage } from "../../bridge/messages/queryDataSourceResult.js";
|
|
3
|
+
export type CustomBlockHostQueryDataSourceResult = {
|
|
4
|
+
items: QueryDataSourceResultMessage["items"];
|
|
5
|
+
hasMore?: boolean;
|
|
6
|
+
error?: CustomBlockQueryDataSourceErrorInfo;
|
|
7
|
+
};
|
|
8
|
+
export type QuerySubscriptionState = Pick<QueryDataSourceMessage, "requestId" | "snapshotId" | "limit">;
|
|
9
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../Users/nsarkar/work/custom-blocks/sdk/src/host/queries/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AACtF,OAAO,KAAK,EACX,mCAAmC,EACnC,4BAA4B,EAC5B,MAAM,gDAAgD,CAAA;AAEvD,MAAM,MAAM,oCAAoC,GAAG;IAClD,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,mCAAmC,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACxC,sBAAsB,EACtB,WAAW,GAAG,YAAY,GAAG,OAAO,CACpC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/host.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-side entrypoint for `@notionhq/custom-blocks/host`.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the bridge valibot schemas and data-source binding types so
|
|
5
|
+
* anything implementing the host side of the bridge can validate inbound
|
|
6
|
+
* sandbox traffic and shape outbound traffic without reaching into private
|
|
7
|
+
* `bridge/*` paths.
|
|
8
|
+
*
|
|
9
|
+
* Nothing here is intended for use inside a sandboxed custom block; that
|
|
10
|
+
* surface lives in the default `@notionhq/custom-blocks` entrypoint.
|
|
11
|
+
*/
|
|
12
|
+
export type { NotionDataSourceBinding, NotionDataSourceBindings, } from "./bridge/dataSources/dataSource.js";
|
|
13
|
+
export { notionDataSourceBindingSchema, notionDataSourceBindingsSchema, } from "./bridge/dataSources/dataSource.js";
|
|
14
|
+
export type { NotionDataSourcePageBridge } from "./bridge/dataSources/dataSourcePage.js";
|
|
15
|
+
export { notionDataSourcePageBridgeSchema } from "./bridge/dataSources/dataSourcePage.js";
|
|
16
|
+
export type { CustomBlockDataSourceResolutionErrorCode, CustomBlockDataSourceResolutionErrorInfo, } from "./bridge/dataSources/errors.js";
|
|
17
|
+
export { customBlockDataSourceResolutionErrorCodeSchema } from "./bridge/dataSources/errors.js";
|
|
18
|
+
export type { CustomBlockPropertyErrorCode, CustomBlockPropertyErrorInfo, } from "./bridge/dataSources/resolveProperty.js";
|
|
19
|
+
export { customBlockPropertyErrorCodeSchema } from "./bridge/dataSources/resolveProperty.js";
|
|
20
|
+
export type { CustomBlockErrorInfo } from "./bridge/errors.js";
|
|
21
|
+
export { customBlockErrorInfoSchema } from "./bridge/errors.js";
|
|
22
|
+
export { notionBlockIdSchema, notionDataSourceIdSchema, notionPageIdSchema, } from "./bridge/ids.js";
|
|
23
|
+
export { readIncomingType } from "./bridge/incomingType.js";
|
|
24
|
+
export type { CreatePageMessage } from "./bridge/messages/createPage.js";
|
|
25
|
+
export { createPageMessageSchema } from "./bridge/messages/createPage.js";
|
|
26
|
+
export type { CreatePageResultMessage, CustomBlockCreatePageErrorCode, CustomBlockCreatePageErrorInfo, } from "./bridge/messages/createPageResult.js";
|
|
27
|
+
export { createPageResultMessageSchema, customBlockCreatePageErrorCodeSchema, customBlockCreatePageErrorInfoSchema, } from "./bridge/messages/createPageResult.js";
|
|
28
|
+
export type { CurrentUserChangedMessage } from "./bridge/messages/currentUserChanged.js";
|
|
29
|
+
export { currentUserChangedMessageSchema } from "./bridge/messages/currentUserChanged.js";
|
|
30
|
+
export type { DataSourcesChangedMessage } from "./bridge/messages/dataSourcesChanged.js";
|
|
31
|
+
export { dataSourcesChangedMessageSchema } from "./bridge/messages/dataSourcesChanged.js";
|
|
32
|
+
export type { CustomBlockGetPageErrorCode, CustomBlockGetPageErrorInfo, GetPageMessage, GetPageResultMessage, } from "./bridge/messages/getPage.js";
|
|
33
|
+
export { customBlockGetPageErrorCodeSchema, customBlockGetPageErrorInfoSchema, getPageMessageSchema, getPageResultMessageSchema, } from "./bridge/messages/getPage.js";
|
|
34
|
+
export type { CustomBlockGetUserErrorCode, CustomBlockGetUserErrorInfo, GetUserMessage, GetUserResultMessage, } from "./bridge/messages/getUser.js";
|
|
35
|
+
export { customBlockGetUserErrorCodeSchema, customBlockGetUserErrorInfoSchema, getUserMessageSchema, getUserResultMessageSchema, } from "./bridge/messages/getUser.js";
|
|
36
|
+
export type { HostToSandboxMessage } from "./bridge/messages/hostToSandbox.js";
|
|
37
|
+
export { hostToSandboxMessageSchema } from "./bridge/messages/hostToSandbox.js";
|
|
38
|
+
export type { CustomBlockInitErrorCode, CustomBlockInitErrorInfo, InitMessage, } from "./bridge/messages/init.js";
|
|
39
|
+
export { customBlockInitErrorCodeSchema, customBlockInitErrorInfoSchema, initMessageSchema, } from "./bridge/messages/init.js";
|
|
40
|
+
export type { InvalidHostMessage } from "./bridge/messages/invalidHostMessage.js";
|
|
41
|
+
export { invalidHostMessageSchema } from "./bridge/messages/invalidHostMessage.js";
|
|
42
|
+
export type { InvalidSandboxMessage } from "./bridge/messages/invalidSandboxMessage.js";
|
|
43
|
+
export { invalidSandboxMessageSchema } from "./bridge/messages/invalidSandboxMessage.js";
|
|
44
|
+
export type { CustomBlockListUsersErrorCode, CustomBlockListUsersErrorInfo, ListUsersMessage, ListUsersResultMessage, } from "./bridge/messages/listUsers.js";
|
|
45
|
+
export { customBlockListUsersErrorCodeSchema, customBlockListUsersErrorInfoSchema, listUsersMessageSchema, listUsersResultMessageSchema, } from "./bridge/messages/listUsers.js";
|
|
46
|
+
export type { PageChangedMessage } from "./bridge/messages/pageChanged.js";
|
|
47
|
+
export { pageChangedMessageSchema } from "./bridge/messages/pageChanged.js";
|
|
48
|
+
export type { ParentChangedMessage } from "./bridge/messages/parentChanged.js";
|
|
49
|
+
export { parentChangedMessageSchema } from "./bridge/messages/parentChanged.js";
|
|
50
|
+
export type { QueryDataSourceMessage } from "./bridge/messages/queryDataSource.js";
|
|
51
|
+
export { queryDataSourceMessageSchema } from "./bridge/messages/queryDataSource.js";
|
|
52
|
+
export type { CustomBlockQueryDataSourceErrorCode, CustomBlockQueryDataSourceErrorInfo, QueryDataSourceResultMessage, } from "./bridge/messages/queryDataSourceResult.js";
|
|
53
|
+
export { customBlockQueryDataSourceErrorCodeSchema, customBlockQueryDataSourceErrorInfoSchema, queryDataSourceResultMessageSchema, } from "./bridge/messages/queryDataSourceResult.js";
|
|
54
|
+
export type { ReadyMessage } from "./bridge/messages/ready.js";
|
|
55
|
+
export { readyMessageSchema } from "./bridge/messages/ready.js";
|
|
56
|
+
export type { ResizeMessage } from "./bridge/messages/resize.js";
|
|
57
|
+
export { resizeMessageSchema } from "./bridge/messages/resize.js";
|
|
58
|
+
export type { SandboxToHostMessage } from "./bridge/messages/sandboxToHost.js";
|
|
59
|
+
export { sandboxToHostMessageSchema } from "./bridge/messages/sandboxToHost.js";
|
|
60
|
+
export type { ThemeChangedMessage } from "./bridge/messages/themeChanged.js";
|
|
61
|
+
export { themeChangedMessageSchema } from "./bridge/messages/themeChanged.js";
|
|
62
|
+
export type { UpdatePageMessage } from "./bridge/messages/updatePage.js";
|
|
63
|
+
export { updatePageMessageSchema } from "./bridge/messages/updatePage.js";
|
|
64
|
+
export type { CustomBlockUpdatePageErrorCode, CustomBlockUpdatePageErrorInfo, UpdatePageResultMessage, } from "./bridge/messages/updatePageResult.js";
|
|
65
|
+
export { customBlockUpdatePageErrorCodeSchema, customBlockUpdatePageErrorInfoSchema, updatePageResultMessageSchema, } from "./bridge/messages/updatePageResult.js";
|
|
66
|
+
export type { CustomBlockPage } from "./bridge/pages/page.js";
|
|
67
|
+
export { customBlockPageSchema } from "./bridge/pages/page.js";
|
|
68
|
+
export { notionParentSchema } from "./bridge/parent.js";
|
|
69
|
+
export { type CustomBlockHostHandle, type CustomBlockHostOptions, createCustomBlockHost, } from "./host/createCustomBlockHost.js";
|
|
70
|
+
export type { CustomBlockHostDataSourcesPayload, CustomBlockHostInitialDataSources, CustomBlockHostInitialState, } from "./host/lifecycle/types.js";
|
|
71
|
+
export type { CustomBlockHostCreatePageResult, CustomBlockHostGetPageResult, CustomBlockHostGetUserResult, CustomBlockHostHandlers, CustomBlockHostListUsersResult, CustomBlockHostLogDirection, CustomBlockHostUpdatePageResult, } from "./host/messages/types.js";
|
|
72
|
+
export type { CustomBlockHostQueryDataSourceResult } from "./host/queries/types.js";
|
|
73
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../../../../Users/nsarkar/work/custom-blocks/sdk/src/host.ts"],"names":[],"mappings":"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"}
|
package/dist/host.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-side entrypoint for `@notionhq/custom-blocks/host`.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the bridge valibot schemas and data-source binding types so
|
|
5
|
+
* anything implementing the host side of the bridge can validate inbound
|
|
6
|
+
* sandbox traffic and shape outbound traffic without reaching into private
|
|
7
|
+
* `bridge/*` paths.
|
|
8
|
+
*
|
|
9
|
+
* Nothing here is intended for use inside a sandboxed custom block; that
|
|
10
|
+
* surface lives in the default `@notionhq/custom-blocks` entrypoint.
|
|
11
|
+
*/
|
|
12
|
+
export { notionDataSourceBindingSchema, notionDataSourceBindingsSchema, } from "./bridge/dataSources/dataSource.js";
|
|
13
|
+
export { notionDataSourcePageBridgeSchema } from "./bridge/dataSources/dataSourcePage.js";
|
|
14
|
+
export { customBlockDataSourceResolutionErrorCodeSchema } from "./bridge/dataSources/errors.js";
|
|
15
|
+
export { customBlockPropertyErrorCodeSchema } from "./bridge/dataSources/resolveProperty.js";
|
|
16
|
+
export { customBlockErrorInfoSchema } from "./bridge/errors.js";
|
|
17
|
+
export { notionBlockIdSchema, notionDataSourceIdSchema, notionPageIdSchema, } from "./bridge/ids.js";
|
|
18
|
+
export { readIncomingType } from "./bridge/incomingType.js";
|
|
19
|
+
export { createPageMessageSchema } from "./bridge/messages/createPage.js";
|
|
20
|
+
export { createPageResultMessageSchema, customBlockCreatePageErrorCodeSchema, customBlockCreatePageErrorInfoSchema, } from "./bridge/messages/createPageResult.js";
|
|
21
|
+
export { currentUserChangedMessageSchema } from "./bridge/messages/currentUserChanged.js";
|
|
22
|
+
export { dataSourcesChangedMessageSchema } from "./bridge/messages/dataSourcesChanged.js";
|
|
23
|
+
export { customBlockGetPageErrorCodeSchema, customBlockGetPageErrorInfoSchema, getPageMessageSchema, getPageResultMessageSchema, } from "./bridge/messages/getPage.js";
|
|
24
|
+
export { customBlockGetUserErrorCodeSchema, customBlockGetUserErrorInfoSchema, getUserMessageSchema, getUserResultMessageSchema, } from "./bridge/messages/getUser.js";
|
|
25
|
+
export { hostToSandboxMessageSchema } from "./bridge/messages/hostToSandbox.js";
|
|
26
|
+
export { customBlockInitErrorCodeSchema, customBlockInitErrorInfoSchema, initMessageSchema, } from "./bridge/messages/init.js";
|
|
27
|
+
export { invalidHostMessageSchema } from "./bridge/messages/invalidHostMessage.js";
|
|
28
|
+
export { invalidSandboxMessageSchema } from "./bridge/messages/invalidSandboxMessage.js";
|
|
29
|
+
export { customBlockListUsersErrorCodeSchema, customBlockListUsersErrorInfoSchema, listUsersMessageSchema, listUsersResultMessageSchema, } from "./bridge/messages/listUsers.js";
|
|
30
|
+
export { pageChangedMessageSchema } from "./bridge/messages/pageChanged.js";
|
|
31
|
+
export { parentChangedMessageSchema } from "./bridge/messages/parentChanged.js";
|
|
32
|
+
export { queryDataSourceMessageSchema } from "./bridge/messages/queryDataSource.js";
|
|
33
|
+
export { customBlockQueryDataSourceErrorCodeSchema, customBlockQueryDataSourceErrorInfoSchema, queryDataSourceResultMessageSchema, } from "./bridge/messages/queryDataSourceResult.js";
|
|
34
|
+
export { readyMessageSchema } from "./bridge/messages/ready.js";
|
|
35
|
+
export { resizeMessageSchema } from "./bridge/messages/resize.js";
|
|
36
|
+
export { sandboxToHostMessageSchema } from "./bridge/messages/sandboxToHost.js";
|
|
37
|
+
export { themeChangedMessageSchema } from "./bridge/messages/themeChanged.js";
|
|
38
|
+
export { updatePageMessageSchema } from "./bridge/messages/updatePage.js";
|
|
39
|
+
export { customBlockUpdatePageErrorCodeSchema, customBlockUpdatePageErrorInfoSchema, updatePageResultMessageSchema, } from "./bridge/messages/updatePageResult.js";
|
|
40
|
+
export { customBlockPageSchema } from "./bridge/pages/page.js";
|
|
41
|
+
export { notionParentSchema } from "./bridge/parent.js";
|
|
42
|
+
export { createCustomBlockHost, } from "./host/createCustomBlockHost.js";
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entrypoint for `@notionhq/custom-blocks`.
|
|
3
|
+
*
|
|
4
|
+
* Everything re-exported here is part of the SDK's public API. Anything not
|
|
5
|
+
* re-exported is internal and may change without notice. Framework-neutral
|
|
6
|
+
* consumers should import from `@notionhq/custom-blocks`; React consumers
|
|
7
|
+
* should import hooks and components from `@notionhq/custom-blocks/react`.
|
|
8
|
+
*/
|
|
9
|
+
export type { NotionCollectionSchema, NotionDataSource, } from "./bridge/dataSources/dataSource.js";
|
|
10
|
+
export type { NotionDataSourcePage, NotionDataSourcePageUpdateInput, NotionDataSourcePageUpdateResult, } from "./bridge/dataSources/dataSourcePage.js";
|
|
11
|
+
export type { NotionDataSourceValue } from "./bridge/dataSources/dataSourceValue.js";
|
|
12
|
+
export type { NotionDate, NotionDateRange, NotionDateReminder, NotionDateTime, NotionDateTimeRange, NotionDateTimeReminder, NotionDateValue, NotionNoReminder, NotionTimeReminder, } from "./bridge/dataSources/dateValue.js";
|
|
13
|
+
export type { CustomBlockDataSourceResolutionErrorCode, CustomBlockDataSourceResolutionErrorInfo, } from "./bridge/dataSources/errors.js";
|
|
14
|
+
export type { NotionBuiltinPropertyId, NotionDualProperty, NotionPropertyColor, NotionPropertyOption, NotionPropertySchema, NotionPropertyType, NotionStatusGroup, } from "./bridge/dataSources/propertySchema.js";
|
|
15
|
+
export { NOTION_BUILTIN_PROPERTY_IDS, NOTION_PROPERTY_TYPES, } from "./bridge/dataSources/propertySchema.js";
|
|
16
|
+
export type { NotionRecordPointer } from "./bridge/dataSources/recordPointer.js";
|
|
17
|
+
export type { CustomBlockPropertyErrorCode, CustomBlockPropertyErrorInfo, } from "./bridge/dataSources/resolveProperty.js";
|
|
18
|
+
export type { CustomBlockErrorInfo } from "./bridge/errors.js";
|
|
19
|
+
export type { NotionBlockId, NotionDataSourceId, NotionSpaceId, } from "./bridge/ids.js";
|
|
20
|
+
export type { CustomBlockManifest, ManifestDataSource, ManifestIcon, ManifestProperty, } from "./bridge/manifest.js";
|
|
21
|
+
export type { NotionCreatePagePosition } from "./bridge/messages/createPage.js";
|
|
22
|
+
export type { CustomBlockCreatePageErrorCode, CustomBlockCreatePageErrorInfo, } from "./bridge/messages/createPageResult.js";
|
|
23
|
+
export type { CustomBlockGetPageErrorCode, CustomBlockGetPageErrorInfo, } from "./bridge/messages/getPage.js";
|
|
24
|
+
export type { CustomBlockGetUserErrorCode, CustomBlockGetUserErrorInfo, } from "./bridge/messages/getUser.js";
|
|
25
|
+
export type { CustomBlockInitErrorCode, CustomBlockInitErrorInfo, } from "./bridge/messages/init.js";
|
|
26
|
+
export { CustomBlockInitError } from "./bridge/messages/init.js";
|
|
27
|
+
export type { CustomBlockListUsersErrorCode, CustomBlockListUsersErrorInfo, } from "./bridge/messages/listUsers.js";
|
|
28
|
+
export type { CustomBlockQueryDataSourceErrorCode, CustomBlockQueryDataSourceErrorInfo, } from "./bridge/messages/queryDataSourceResult.js";
|
|
29
|
+
export type { CustomBlockUpdatePageErrorCode, CustomBlockUpdatePageErrorInfo, } from "./bridge/messages/updatePageResult.js";
|
|
30
|
+
export type { NotionPage, NotionPageCover, NotionPageIcon, NotionPageId, NotionPagePropertyInputMap, NotionPagePropertyInputValue, NotionPagePropertyValue, NotionPagePropertyWriteMap, } from "./bridge/pages/page.js";
|
|
31
|
+
export type { NotionParent } from "./bridge/parent.js";
|
|
32
|
+
export { pages, users } from "./bridge/sandboxClient.js";
|
|
33
|
+
export type { NotionTheme } from "./bridge/theme.js";
|
|
34
|
+
export { type CustomBlockState, customBlock } from "./customBlock.js";
|
|
35
|
+
export { type CustomBlockInitial, type InitCustomBlockOptions, initCustomBlock, NotInIframeError, } from "./init.js";
|
|
36
|
+
export * from "./types.js";
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../Users/nsarkar/work/custom-blocks/sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACX,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACX,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,GAChC,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,YAAY,EACX,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EACX,wCAAwC,EACxC,wCAAwC,GACxC,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,GACrB,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,YAAY,EACX,4BAA4B,EAC5B,4BAA4B,GAC5B,MAAM,yCAAyC,CAAA;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,aAAa,GACb,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACX,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GAChB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACX,wBAAwB,EACxB,wBAAwB,GACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,YAAY,EACX,6BAA6B,EAC7B,6BAA6B,GAC7B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,mCAAmC,EACnC,mCAAmC,GACnC,MAAM,4CAA4C,CAAA;AACnD,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EACX,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,GAC1B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,eAAe,EACf,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,cAAc,YAAY,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entrypoint for `@notionhq/custom-blocks`.
|
|
3
|
+
*
|
|
4
|
+
* Everything re-exported here is part of the SDK's public API. Anything not
|
|
5
|
+
* re-exported is internal and may change without notice. Framework-neutral
|
|
6
|
+
* consumers should import from `@notionhq/custom-blocks`; React consumers
|
|
7
|
+
* should import hooks and components from `@notionhq/custom-blocks/react`.
|
|
8
|
+
*/
|
|
9
|
+
export { NOTION_BUILTIN_PROPERTY_IDS, NOTION_PROPERTY_TYPES, } from "./bridge/dataSources/propertySchema.js";
|
|
10
|
+
export { CustomBlockInitError } from "./bridge/messages/init.js";
|
|
11
|
+
export { pages, users } from "./bridge/sandboxClient.js";
|
|
12
|
+
export { customBlock } from "./customBlock.js";
|
|
13
|
+
export { initCustomBlock, NotInIframeError, } from "./init.js";
|
|
14
|
+
export * from "./types.js";
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { NotionDataSource } from "./bridge/dataSources/dataSource.js";
|
|
2
|
+
import type { NotionBlockId } from "./bridge/ids.js";
|
|
3
|
+
import { type CustomBlockInitErrorCode } from "./bridge/messages/init.js";
|
|
4
|
+
import type { CustomBlockPage } from "./bridge/pages/page.js";
|
|
5
|
+
import type { NotionParent } from "./bridge/parent.js";
|
|
6
|
+
import type { NotionTheme } from "./bridge/theme.js";
|
|
7
|
+
import type { NotionUser } from "./bridge/users/user.js";
|
|
8
|
+
/**
|
|
9
|
+
* The payload sent by the host in the `init` message in response to the sandbox's `ready` message.
|
|
10
|
+
*/
|
|
11
|
+
export type CustomBlockInitial = {
|
|
12
|
+
theme: NotionTheme;
|
|
13
|
+
blockId: NotionBlockId;
|
|
14
|
+
parent: NotionParent;
|
|
15
|
+
page: CustomBlockPage;
|
|
16
|
+
currentUser: NotionUser;
|
|
17
|
+
dataSources: NotionDataSource[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when the SDK is loaded in a top-level standalone window with no parent frame.
|
|
21
|
+
* `postMessage` would just hit the same window and the handshake can never complete.
|
|
22
|
+
* `<NotionCustomBlock>` catches this specifically and falls back to a standalone preview with a
|
|
23
|
+
* warning banner. Direct callers can `instanceof` it to apply their own policy.
|
|
24
|
+
*/
|
|
25
|
+
export declare class NotInIframeError extends Error {
|
|
26
|
+
constructor(message?: string);
|
|
27
|
+
code: CustomBlockInitErrorCode;
|
|
28
|
+
isRetryable: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Options for {@link initCustomBlock}.
|
|
32
|
+
*/
|
|
33
|
+
export type InitCustomBlockOptions = {
|
|
34
|
+
/**
|
|
35
|
+
* How long to wait for the host's `init` response before rejecting with an error.
|
|
36
|
+
*
|
|
37
|
+
* @default 15000 - Intentionally longer than Notion's 10s host-dependency watchdog
|
|
38
|
+
* so host-owned init errors can arrive before the SDK's generic fallback appears.
|
|
39
|
+
*/
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Performs the SDK <-> host handshake: loads `custom_blocks.json`, posts
|
|
44
|
+
* `ready`, then awaits the host's `init` message. Resolves with that payload.
|
|
45
|
+
*
|
|
46
|
+
* Rejects with a `CustomBlockInitError` if the host doesn't respond inside `timeoutMs`.
|
|
47
|
+
*
|
|
48
|
+
* Idempotent: subsequent calls return the same promise as the first and ignore any new options.
|
|
49
|
+
* Mount your React tree (or call any SDK hook / `customBlock.subscribe`) only after the
|
|
50
|
+
* returned promise resolves.
|
|
51
|
+
*/
|
|
52
|
+
export declare function initCustomBlock(opts?: InitCustomBlockOptions): Promise<CustomBlockInitial>;
|
|
53
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../Users/nsarkar/work/custom-blocks/sdk/src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAEN,KAAK,wBAAwB,EAE7B,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,gBAAgB,EAAE,CAAA;CAC/B,CAAA;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,GAAE,MAA8B;IAOnD,IAAI,EAAE,wBAAwB,CAAA;IAC9B,WAAW,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AASD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,IAAI,GAAE,sBAA2B,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAyD7B"}
|
package/dist/init.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { loadManifest } from "./bridge/loadManifest.js";
|
|
2
|
+
import { CustomBlockInitError, } from "./bridge/messages/init.js";
|
|
3
|
+
import { customBlockHost } from "./bridge/sandboxClient.js";
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when the SDK is loaded in a top-level standalone window with no parent frame.
|
|
6
|
+
* `postMessage` would just hit the same window and the handshake can never complete.
|
|
7
|
+
* `<NotionCustomBlock>` catches this specifically and falls back to a standalone preview with a
|
|
8
|
+
* warning banner. Direct callers can `instanceof` it to apply their own policy.
|
|
9
|
+
*/
|
|
10
|
+
export class NotInIframeError extends Error {
|
|
11
|
+
constructor(message = NOT_IN_IFRAME_MESSAGE) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "NotInIframeError";
|
|
14
|
+
this.code = "not_in_iframe";
|
|
15
|
+
this.isRetryable = false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const DEFAULT_INIT_TIMEOUT_MS = 15000;
|
|
19
|
+
const NOT_IN_IFRAME_MESSAGE = "<NotionCustomBlock> only works inside an iframe — use the dev shell or deploy to Notion.";
|
|
20
|
+
let initPromise;
|
|
21
|
+
/**
|
|
22
|
+
* Performs the SDK <-> host handshake: loads `custom_blocks.json`, posts
|
|
23
|
+
* `ready`, then awaits the host's `init` message. Resolves with that payload.
|
|
24
|
+
*
|
|
25
|
+
* Rejects with a `CustomBlockInitError` if the host doesn't respond inside `timeoutMs`.
|
|
26
|
+
*
|
|
27
|
+
* Idempotent: subsequent calls return the same promise as the first and ignore any new options.
|
|
28
|
+
* Mount your React tree (or call any SDK hook / `customBlock.subscribe`) only after the
|
|
29
|
+
* returned promise resolves.
|
|
30
|
+
*/
|
|
31
|
+
export function initCustomBlock(opts = {}) {
|
|
32
|
+
if (initPromise === undefined) {
|
|
33
|
+
initPromise = (async () => {
|
|
34
|
+
// Fail fast with a typed error when rendered as a standalone tab and not in a parent frame.
|
|
35
|
+
// Otherwise, it would eventually hit the timeout, since `postMessage` to `window.parent`
|
|
36
|
+
// would just hit the same window and never arrive.
|
|
37
|
+
if (typeof window !== "undefined" && window.parent === window) {
|
|
38
|
+
throw new NotInIframeError();
|
|
39
|
+
}
|
|
40
|
+
// Load the manifest and send it to the host.
|
|
41
|
+
const manifestResult = await loadManifest();
|
|
42
|
+
customBlockHost.sendReady(manifestResult);
|
|
43
|
+
const timeoutMs = opts.timeoutMs ?? DEFAULT_INIT_TIMEOUT_MS;
|
|
44
|
+
let message;
|
|
45
|
+
try {
|
|
46
|
+
message = await customBlockHost.awaitInit(AbortSignal.timeout(timeoutMs));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (isTimeoutError(error)) {
|
|
50
|
+
throw new CustomBlockInitError({
|
|
51
|
+
code: "init_timeout",
|
|
52
|
+
message: "Host did not respond to init before the timeout.",
|
|
53
|
+
isRetryable: true,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
if (message.status === "error") {
|
|
59
|
+
console.error(`[notion-custom-sdk] host reported init error (${message.error.code}): ${message.error.message}`);
|
|
60
|
+
throw new CustomBlockInitError(message.error);
|
|
61
|
+
}
|
|
62
|
+
const hostState = customBlockHost.getState();
|
|
63
|
+
if (hostState.status !== "initialized") {
|
|
64
|
+
throw new CustomBlockInitError({
|
|
65
|
+
code: "context_unavailable",
|
|
66
|
+
message: "Host block payload is unavailable.",
|
|
67
|
+
isRetryable: true,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
theme: message.theme,
|
|
72
|
+
blockId: hostState.blockId,
|
|
73
|
+
parent: hostState.parent,
|
|
74
|
+
page: hostState.page,
|
|
75
|
+
currentUser: message.currentUser,
|
|
76
|
+
dataSources: hostState.dataSources,
|
|
77
|
+
};
|
|
78
|
+
})();
|
|
79
|
+
}
|
|
80
|
+
return initPromise;
|
|
81
|
+
}
|
|
82
|
+
function isTimeoutError(error) {
|
|
83
|
+
return (typeof error === "object" &&
|
|
84
|
+
error !== null &&
|
|
85
|
+
"name" in error &&
|
|
86
|
+
(error.name === "TimeoutError" || error.name === "AbortError"));
|
|
87
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DebugMessageLog.d.ts","sourceRoot":"","sources":["../../../../../../../../Users/nsarkar/work/custom-blocks/sdk/src/react/DebugMessageLog.tsx"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,4CAa9B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
|
+
import { messageLog } from "../bridge/sandboxClient.js";
|
|
4
|
+
export function DebugMessageLog() {
|
|
5
|
+
const log = useSyncExternalStore(messageLog.subscribe, messageLog.getSnapshot);
|
|
6
|
+
const text = log
|
|
7
|
+
.map(entry => `[${entry.timestamp}] ${entry.direction}: ${JSON.stringify(entry.data)}`)
|
|
8
|
+
.join("\n");
|
|
9
|
+
return (_jsx("pre", { "data-testid": "debug-message-log", style: DEBUG_PRE_STYLE, children: text || "(no messages yet)" }));
|
|
10
|
+
}
|
|
11
|
+
const DEBUG_PRE_STYLE = {
|
|
12
|
+
margin: 0,
|
|
13
|
+
padding: "8px 12px",
|
|
14
|
+
fontSize: 12,
|
|
15
|
+
fontFamily: "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
|
|
16
|
+
lineHeight: 1.5,
|
|
17
|
+
whiteSpace: "pre-wrap",
|
|
18
|
+
wordBreak: "break-all",
|
|
19
|
+
userSelect: "text",
|
|
20
|
+
background: "#1e1e1e",
|
|
21
|
+
color: "#d4d4d4",
|
|
22
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
.ncblock-standalone-banner {
|
|
2
|
+
--ncblock-standalone-banner-background: #fff8e1;
|
|
3
|
+
--ncblock-standalone-banner-border: #f0d77b;
|
|
4
|
+
--ncblock-standalone-banner-text: #5d4200;
|
|
5
|
+
|
|
6
|
+
padding: 8px 12px;
|
|
7
|
+
background: var(--ncblock-standalone-banner-background);
|
|
8
|
+
color: var(--ncblock-standalone-banner-text);
|
|
9
|
+
border-bottom: 1px solid var(--ncblock-standalone-banner-border);
|
|
10
|
+
font-size: 13px;
|
|
11
|
+
font-family: system-ui, sans-serif;
|
|
12
|
+
line-height: 1.4;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.ncblock-default-init-error {
|
|
16
|
+
--ncblock-init-error-background: #f7f7f5;
|
|
17
|
+
--ncblock-init-error-card-background: #ffffff;
|
|
18
|
+
--ncblock-init-error-border: #e5e5e1;
|
|
19
|
+
--ncblock-init-error-text: #1f1f1d;
|
|
20
|
+
--ncblock-init-error-muted-text: #5f5e5b;
|
|
21
|
+
--ncblock-init-error-eyebrow-text: #787774;
|
|
22
|
+
--ncblock-init-error-pre-background: #f1f1ef;
|
|
23
|
+
--ncblock-init-error-pre-text: #37352f;
|
|
24
|
+
--ncblock-init-error-shadow: rgba(0, 0, 0, 0.08);
|
|
25
|
+
|
|
26
|
+
box-sizing: border-box;
|
|
27
|
+
min-height: 240px;
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
padding: 24px;
|
|
32
|
+
background: var(--ncblock-init-error-background);
|
|
33
|
+
color: var(--ncblock-init-error-text);
|
|
34
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
|
|
35
|
+
color-scheme: light;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.ncblock-default-init-error__card {
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
width: 100%;
|
|
41
|
+
max-width: 420px;
|
|
42
|
+
padding: 20px;
|
|
43
|
+
border: 1px solid var(--ncblock-init-error-border);
|
|
44
|
+
border-radius: 12px;
|
|
45
|
+
background: var(--ncblock-init-error-card-background);
|
|
46
|
+
box-shadow: 0 8px 24px var(--ncblock-init-error-shadow);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.ncblock-default-init-error__eyebrow {
|
|
50
|
+
margin-bottom: 8px;
|
|
51
|
+
font-size: 11px;
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
letter-spacing: 0.08em;
|
|
54
|
+
text-transform: uppercase;
|
|
55
|
+
color: var(--ncblock-init-error-eyebrow-text);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ncblock-default-init-error__title {
|
|
59
|
+
margin: 0;
|
|
60
|
+
font-size: 18px;
|
|
61
|
+
line-height: 1.3;
|
|
62
|
+
font-weight: 650;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.ncblock-default-init-error__body {
|
|
66
|
+
margin: 8px 0 0;
|
|
67
|
+
font-size: 14px;
|
|
68
|
+
line-height: 1.5;
|
|
69
|
+
color: var(--ncblock-init-error-muted-text);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.ncblock-default-init-error__details {
|
|
73
|
+
margin-top: 14px;
|
|
74
|
+
font-size: 12px;
|
|
75
|
+
color: var(--ncblock-init-error-muted-text);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.ncblock-default-init-error__pre {
|
|
79
|
+
margin: 8px 0 0;
|
|
80
|
+
padding: 10px;
|
|
81
|
+
overflow: auto;
|
|
82
|
+
border-radius: 8px;
|
|
83
|
+
background: var(--ncblock-init-error-pre-background);
|
|
84
|
+
color: var(--ncblock-init-error-pre-text);
|
|
85
|
+
font-size: 12px;
|
|
86
|
+
line-height: 1.4;
|
|
87
|
+
white-space: pre-wrap;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@media (prefers-color-scheme: dark) {
|
|
91
|
+
.ncblock-standalone-banner {
|
|
92
|
+
--ncblock-standalone-banner-background: #3b2f0b;
|
|
93
|
+
--ncblock-standalone-banner-border: #6f5713;
|
|
94
|
+
--ncblock-standalone-banner-text: #f5d36c;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.ncblock-default-init-error {
|
|
98
|
+
--ncblock-init-error-background: #191918;
|
|
99
|
+
--ncblock-init-error-card-background: #20201f;
|
|
100
|
+
--ncblock-init-error-border: #373633;
|
|
101
|
+
--ncblock-init-error-text: #f1f1ef;
|
|
102
|
+
--ncblock-init-error-muted-text: #b9b8b3;
|
|
103
|
+
--ncblock-init-error-eyebrow-text: #9b9a97;
|
|
104
|
+
--ncblock-init-error-pre-background: #2a2a28;
|
|
105
|
+
--ncblock-init-error-pre-text: #e8e8e4;
|
|
106
|
+
--ncblock-init-error-shadow: rgba(0, 0, 0, 0.35);
|
|
107
|
+
|
|
108
|
+
color-scheme: dark;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type InitCustomBlockOptions } from "../index.js";
|
|
3
|
+
import "./NotionCustomBlock.css";
|
|
4
|
+
/**
|
|
5
|
+
* Props accepted by {@link NotionCustomBlock}.
|
|
6
|
+
*/
|
|
7
|
+
export type NotionCustomBlockProps = InitCustomBlockOptions & {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Rendered while the SDK ↔ host handshake is in progress. Defaults to
|
|
11
|
+
* `null` (nothing).
|
|
12
|
+
*/
|
|
13
|
+
fallback?: ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Rendered when the handshake fails. Either a node, or a function that
|
|
16
|
+
* receives the `Error`. When omitted, a friendly default error card is
|
|
17
|
+
* rendered with developer details — replace it for production templates.
|
|
18
|
+
*/
|
|
19
|
+
errorFallback?: ReactNode | ((error: Error) => ReactNode);
|
|
20
|
+
/**
|
|
21
|
+
* Whether the provider should automatically post resize messages so the
|
|
22
|
+
* host iframe matches the content height of `#root`. Defaults to `true`.
|
|
23
|
+
* Pass `false` when you want to use the default block size and are ok
|
|
24
|
+
* with scrollbars within the Notion client.
|
|
25
|
+
*
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
autoResize?: boolean;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Top-level wrapper that runs the SDK ↔ host handshake and gates `children`
|
|
32
|
+
* until it resolves. Passes `timeoutMs` straight through to
|
|
33
|
+
* {@link initCustomBlock}.
|
|
34
|
+
*
|
|
35
|
+
* Templates that prefer not to write a `Root` gating component (or top-level
|
|
36
|
+
* `await`) can mount their app entirely inside this provider:
|
|
37
|
+
*
|
|
38
|
+
* ```tsx
|
|
39
|
+
* ReactDOM.createRoot(root).render(
|
|
40
|
+
* <NotionCustomBlock>
|
|
41
|
+
* <App />
|
|
42
|
+
* </NotionCustomBlock>,
|
|
43
|
+
* )
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* Inside `children`, every SDK hook is guaranteed to return a populated
|
|
47
|
+
* value. Outside the provider (or during the loading window), they throw.
|
|
48
|
+
*/
|
|
49
|
+
export declare function NotionCustomBlock({ children, timeoutMs, fallback, errorFallback, autoResize, }: NotionCustomBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
//# sourceMappingURL=NotionCustomBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotionCustomBlock.d.ts","sourceRoot":"","sources":["../../../../../../../../Users/nsarkar/work/custom-blocks/sdk/src/react/NotionCustomBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,aAAa,CAAA;AAM3E,OAAO,yBAAyB,CAAA;AAEhC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG;IAC7D,QAAQ,EAAE,SAAS,CAAA;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAA;IACzD;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,QAAe,EACf,aAAa,EACb,UAAiB,GACjB,EAAE,sBAAsB,2CA4DxB"}
|