@notionhq/custom-blocks-host 0.3.11 → 0.4.1
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/LICENSE +21 -0
- package/README.md +143 -236
- package/THIRD_PARTY_LICENSES.md +9 -0
- package/dist/autoBindProperties.d.ts +5 -2
- package/dist/autoBindProperties.d.ts.map +1 -1
- package/dist/autoBindProperties.js +5 -2
- package/dist/browser.js +1 -1
- package/dist/compatibility/addMetadataReadSchemasForProtocol3To4.d.ts +1215 -0
- package/dist/compatibility/addMetadataReadSchemasForProtocol3To4.d.ts.map +1 -0
- package/dist/compatibility/addMetadataReadSchemasForProtocol3To4.js +27 -0
- package/dist/compatibility/normalizeHostToSandboxMessage.d.ts +8 -0
- package/dist/compatibility/normalizeHostToSandboxMessage.d.ts.map +1 -0
- package/dist/compatibility/normalizeHostToSandboxMessage.js +39 -0
- package/dist/compatibility/normalizePageResultsForProtocol3To5.d.ts +11 -0
- package/dist/compatibility/normalizePageResultsForProtocol3To5.d.ts.map +1 -0
- package/dist/compatibility/normalizePageResultsForProtocol3To5.js +18 -0
- package/dist/compatibility/normalizePageResultsForProtocol6.d.ts +9 -0
- package/dist/compatibility/normalizePageResultsForProtocol6.d.ts.map +1 -0
- package/dist/compatibility/normalizePageResultsForProtocol6.js +18 -0
- package/dist/compatibility/normalizeSandboxToHostMessage.d.ts +1099 -0
- package/dist/compatibility/normalizeSandboxToHostMessage.d.ts.map +1 -0
- package/dist/compatibility/normalizeSandboxToHostMessage.js +9 -0
- package/dist/compatibility/pageForProtocol3To5.d.ts +159 -0
- package/dist/compatibility/pageForProtocol3To5.d.ts.map +1 -0
- package/dist/{lifecycle/legacyPage.js → compatibility/pageForProtocol3To5.js} +50 -9
- package/dist/compatibility/pageResult.d.ts +11 -0
- package/dist/compatibility/pageResult.d.ts.map +1 -0
- package/dist/compatibility/pageWithNullTextFallbackProperties.d.ts +9 -0
- package/dist/compatibility/pageWithNullTextFallbackProperties.d.ts.map +1 -0
- package/dist/compatibility/pageWithNullTextFallbackProperties.js +46 -0
- package/dist/createCustomBlockHost.d.ts +18 -19
- package/dist/createCustomBlockHost.d.ts.map +1 -1
- package/dist/createCustomBlockHost.js +103 -38
- package/dist/index.d.ts +2 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/{localBlockUrl.d.ts → isAllowedLocalPreviewUrl.d.ts} +2 -2
- package/dist/isAllowedLocalPreviewUrl.d.ts.map +1 -0
- package/dist/{localBlockUrl.js → isAllowedLocalPreviewUrl.js} +3 -7
- package/dist/lifecycle/initErrors.d.ts +1 -0
- package/dist/lifecycle/initErrors.d.ts.map +1 -1
- package/dist/lifecycle/initErrors.js +7 -0
- package/dist/lifecycle/initializationController.d.ts +6 -4
- package/dist/lifecycle/initializationController.d.ts.map +1 -1
- package/dist/lifecycle/initializationController.js +24 -15
- package/dist/lifecycle/resolveManifest.d.ts +13 -0
- package/dist/lifecycle/resolveManifest.d.ts.map +1 -0
- package/dist/lifecycle/resolveManifest.js +21 -0
- package/dist/lifecycle/types.d.ts +1637 -17
- package/dist/lifecycle/types.d.ts.map +1 -1
- package/dist/lifecycle/types.js +18 -0
- package/dist/messages/sandboxMessageRouter.d.ts.map +1 -1
- package/dist/messages/sandboxMessageRouter.js +2 -2
- package/dist/protocol/dataSources/dataSourcePage.d.ts +3 -4
- package/dist/protocol/dataSources/dataSourcePage.js +2 -3
- package/dist/protocol/index.d.ts +1 -0
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/isLocalBlockServerUrl.d.ts +2 -0
- package/dist/protocol/isLocalBlockServerUrl.js +9 -0
- package/dist/protocol/messages/connect.d.ts +2 -2
- package/dist/protocol/messages/connect.js +2 -2
- package/dist/protocol/messages/createPageResult.d.ts +2 -2
- package/dist/protocol/messages/createPageResult.js +3 -3
- package/dist/protocol/messages/getPage.d.ts +2 -2
- package/dist/protocol/messages/getPage.js +3 -3
- package/dist/protocol/messages/hostToSandbox.d.ts +3 -3
- package/dist/protocol/messages/hostToSandbox.js +10 -10
- package/dist/protocol/messages/init.d.ts +1 -1
- package/dist/protocol/messages/queryDataSource.d.ts +24 -0
- package/dist/protocol/messages/queryDataSource.js +2 -0
- package/dist/protocol/messages/queryDataSourceResult.d.ts +3 -3
- package/dist/protocol/messages/queryDataSourceResult.js +6 -3
- package/dist/protocol/messages/sandboxToHost.d.ts +8 -0
- package/dist/protocol/messages/updatePageResult.d.ts +2 -2
- package/dist/protocol/messages/updatePageResult.js +3 -3
- package/dist/protocol/pages/page.d.ts +2 -2
- package/dist/protocol/pages/page.js +1 -1
- package/dist/protocol/protocolVersion.d.ts +2 -2
- package/dist/protocol/protocolVersion.js +2 -2
- package/dist/protocol.d.ts +9 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +8 -0
- package/docs/bridge/changelog.md +67 -0
- package/docs/bridge/protocol.md +189 -0
- package/docs/bridge/versioning.md +38 -0
- package/docs/compatibility.md +68 -0
- package/docs/handlers.md +199 -0
- package/docs/lifecycle.md +117 -0
- package/package.json +10 -2
- package/src/autoBindProperties.ts +5 -2
- package/src/compatibility/addMetadataReadSchemasForProtocol3To4.ts +36 -0
- package/src/compatibility/normalizeHostToSandboxMessage.ts +54 -0
- package/src/compatibility/normalizePageResultsForProtocol3To5.ts +28 -0
- package/src/compatibility/normalizePageResultsForProtocol6.ts +23 -0
- package/src/compatibility/normalizeSandboxToHostMessage.ts +10 -0
- package/src/{lifecycle/legacyPage.ts → compatibility/pageForProtocol3To5.ts} +52 -11
- package/src/compatibility/pageResult.ts +18 -0
- package/src/compatibility/pageWithNullTextFallbackProperties.ts +53 -0
- package/src/createCustomBlockHost.ts +152 -62
- package/src/index.ts +4 -51
- package/src/{localBlockUrl.ts → isAllowedLocalPreviewUrl.ts} +4 -7
- package/src/lifecycle/initErrors.ts +9 -0
- package/src/lifecycle/initializationController.ts +34 -19
- package/src/lifecycle/resolveManifest.ts +31 -0
- package/src/lifecycle/types.ts +84 -16
- package/src/messages/sandboxMessageRouter.ts +2 -2
- package/src/protocol.ts +8 -0
- package/dist/lifecycle/legacyPage.d.ts +0 -70
- package/dist/lifecycle/legacyPage.d.ts.map +0 -1
- package/dist/lifecycle/loadCustomBlockManifest.d.ts +0 -16
- package/dist/lifecycle/loadCustomBlockManifest.d.ts.map +0 -1
- package/dist/lifecycle/loadCustomBlockManifest.js +0 -65
- package/dist/lifecycle/manifestOptions.d.ts +0 -17
- package/dist/lifecycle/manifestOptions.d.ts.map +0 -1
- package/dist/lifecycle/normalizeHostToSandboxMessage.d.ts +0 -6
- package/dist/lifecycle/normalizeHostToSandboxMessage.d.ts.map +0 -1
- package/dist/lifecycle/normalizeHostToSandboxMessage.js +0 -14
- package/dist/lifecycle/normalizePage.d.ts +0 -7
- package/dist/lifecycle/normalizePage.d.ts.map +0 -1
- package/dist/lifecycle/normalizePage.js +0 -47
- package/dist/localBlockUrl.d.ts.map +0 -1
- package/src/lifecycle/loadCustomBlockManifest.ts +0 -89
- package/src/lifecycle/manifestOptions.ts +0 -19
- package/src/lifecycle/normalizeHostToSandboxMessage.ts +0 -27
- package/src/lifecycle/normalizePage.ts +0 -71
- /package/dist/{lifecycle/manifestOptions.js → compatibility/pageResult.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addMetadataReadSchemasForProtocol3To4.d.ts","sourceRoot":"","sources":["../../src/compatibility/addMetadataReadSchemasForProtocol3To4.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAA;AAEtG;;;;;GAKG;AACH,wBAAgB,qCAAqC,CACpD,OAAO,EAAE,OAAO,CACf,oBAAoB,EACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CACpE;;;QAKC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAR,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBV"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NOTION_BUILTIN_PROPERTY_SCHEMAS } from "../protocol/dataSources/propertySchema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Protocols 3–4 derive metadata read schemas from host bindings. Restore those
|
|
4
|
+
* schemas only in outgoing copies so host query validation keeps the actual schema.
|
|
5
|
+
*
|
|
6
|
+
* Delete when MIN_HOST_SUPPORTED_BRIDGE_PROTOCOL_VERSION >= 5.
|
|
7
|
+
*/
|
|
8
|
+
export function addMetadataReadSchemasForProtocol3To4(message) {
|
|
9
|
+
return {
|
|
10
|
+
...message,
|
|
11
|
+
dataSources: {
|
|
12
|
+
bindings: Object.fromEntries(Object.entries(message.dataSources.bindings).map(([key, binding]) => [
|
|
13
|
+
key,
|
|
14
|
+
{
|
|
15
|
+
...binding,
|
|
16
|
+
collectionSchema: {
|
|
17
|
+
...binding.collectionSchema,
|
|
18
|
+
propertiesById: {
|
|
19
|
+
...binding.collectionSchema?.propertiesById,
|
|
20
|
+
...NOTION_BUILTIN_PROPERTY_SCHEMAS,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
])),
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { HostToSandboxMessage, HostToSandboxMessageWithProtocol3To5Compatibility } from "../protocol/messages/hostToSandbox.js";
|
|
2
|
+
/**
|
|
3
|
+
* Encodes current host messages for the sandbox's declared protocol. Handlers use
|
|
4
|
+
* current shapes. Each target adapter starts from that shape to avoid data loss.
|
|
5
|
+
* Unchanged messages and error results retain their original payloads.
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizeHostToSandboxMessage(message: HostToSandboxMessage, bridgeProtocolVersion: number): HostToSandboxMessageWithProtocol3To5Compatibility;
|
|
8
|
+
//# sourceMappingURL=normalizeHostToSandboxMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeHostToSandboxMessage.d.ts","sourceRoot":"","sources":["../../src/compatibility/normalizeHostToSandboxMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,iDAAiD,EACjD,MAAM,4DAA4D,CAAA;AASnE;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,qBAAqB,EAAE,MAAM,GAC3B,iDAAiD,CAiCnD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { TEXT_FALLBACK_PROPERTY_PROTOCOL_VERSION, UNIFIED_PAGE_PROTOCOL_VERSION, } from "../protocol/protocolVersion.js";
|
|
2
|
+
import { addMetadataReadSchemasForProtocol3To4 } from "./addMetadataReadSchemasForProtocol3To4.js";
|
|
3
|
+
import { normalizePageResultsForProtocol3To5 } from "./normalizePageResultsForProtocol3To5.js";
|
|
4
|
+
import { normalizePageResultsForProtocol6 } from "./normalizePageResultsForProtocol6.js";
|
|
5
|
+
/**
|
|
6
|
+
* Encodes current host messages for the sandbox's declared protocol. Handlers use
|
|
7
|
+
* current shapes. Each target adapter starts from that shape to avoid data loss.
|
|
8
|
+
* Unchanged messages and error results retain their original payloads.
|
|
9
|
+
*/
|
|
10
|
+
export function normalizeHostToSandboxMessage(message, bridgeProtocolVersion) {
|
|
11
|
+
// Accepted compatibility gap (2026-10-31): leave unavailable containing-page
|
|
12
|
+
// context in init/pageChanged unchanged for early protocol 5 SDKs. Protocol 5
|
|
13
|
+
// shipped in SDK 0.2.16 on 2026-09-30. SDK 0.2.17 added unavailable context on
|
|
14
|
+
// 2026-10-02 without a protocol bump. SDK 0.2.16 cannot decode that context.
|
|
15
|
+
// Preserve normal contexts and later protocol 5 support. Affected blocks must
|
|
16
|
+
// upgrade their SDK rather than adding SDK-version-based translation here.
|
|
17
|
+
if ((message.type === "init" && message.status === "success") ||
|
|
18
|
+
message.type === "dataSourcesChanged") {
|
|
19
|
+
return bridgeProtocolVersion < 5
|
|
20
|
+
? addMetadataReadSchemasForProtocol3To4(message)
|
|
21
|
+
: message;
|
|
22
|
+
}
|
|
23
|
+
if (message.type !== "queryDataSourceResult" &&
|
|
24
|
+
message.type !== "getPageResult" &&
|
|
25
|
+
message.type !== "createPageResult" &&
|
|
26
|
+
message.type !== "updatePageResult") {
|
|
27
|
+
return message;
|
|
28
|
+
}
|
|
29
|
+
if (message.status === "error") {
|
|
30
|
+
return message;
|
|
31
|
+
}
|
|
32
|
+
if (bridgeProtocolVersion < UNIFIED_PAGE_PROTOCOL_VERSION) {
|
|
33
|
+
return normalizePageResultsForProtocol3To5(message);
|
|
34
|
+
}
|
|
35
|
+
if (bridgeProtocolVersion < TEXT_FALLBACK_PROPERTY_PROTOCOL_VERSION) {
|
|
36
|
+
return normalizePageResultsForProtocol6(message);
|
|
37
|
+
}
|
|
38
|
+
return message;
|
|
39
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HostToSandboxMessageWithProtocol3To5Compatibility } from "../protocol/messages/hostToSandbox.js";
|
|
2
|
+
import type { SuccessfulPageResult } from "./pageResult.js";
|
|
3
|
+
/**
|
|
4
|
+
* Encodes current pages for protocols 3–5. Query values are flat and ID-keyed.
|
|
5
|
+
* Page operations omit unsupported property objects and use ID-keyed properties.
|
|
6
|
+
* Convert directly from current pages so query text fallbacks remain available.
|
|
7
|
+
*
|
|
8
|
+
* Delete when MIN_HOST_SUPPORTED_BRIDGE_PROTOCOL_VERSION >= 6.
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizePageResultsForProtocol3To5(message: SuccessfulPageResult): HostToSandboxMessageWithProtocol3To5Compatibility;
|
|
11
|
+
//# sourceMappingURL=normalizePageResultsForProtocol3To5.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizePageResultsForProtocol3To5.d.ts","sourceRoot":"","sources":["../../src/compatibility/normalizePageResultsForProtocol3To5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iDAAiD,EAAE,MAAM,4DAA4D,CAAA;AAKnI,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAG3D;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CAClD,OAAO,EAAE,oBAAoB,GAC3B,iDAAiD,CAUnD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { toPageForProtocol3To5, toQueryPageForProtocol3To5, } from "./pageForProtocol3To5.js";
|
|
2
|
+
import { toPageWithNullTextFallbackProperties } from "./pageWithNullTextFallbackProperties.js";
|
|
3
|
+
/**
|
|
4
|
+
* Encodes current pages for protocols 3–5. Query values are flat and ID-keyed.
|
|
5
|
+
* Page operations omit unsupported property objects and use ID-keyed properties.
|
|
6
|
+
* Convert directly from current pages so query text fallbacks remain available.
|
|
7
|
+
*
|
|
8
|
+
* Delete when MIN_HOST_SUPPORTED_BRIDGE_PROTOCOL_VERSION >= 6.
|
|
9
|
+
*/
|
|
10
|
+
export function normalizePageResultsForProtocol3To5(message) {
|
|
11
|
+
if (message.type === "queryDataSourceResult") {
|
|
12
|
+
return { ...message, items: message.items.map(toQueryPageForProtocol3To5) };
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
...message,
|
|
16
|
+
page: toPageForProtocol3To5(toPageWithNullTextFallbackProperties(message.page)),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HostToSandboxMessage } from "../protocol/messages/hostToSandbox.js";
|
|
2
|
+
import type { SuccessfulPageResult } from "./pageResult.js";
|
|
3
|
+
/**
|
|
4
|
+
* Encodes protocol 6 pages, whose receivers require null for text fallback properties.
|
|
5
|
+
*
|
|
6
|
+
* Delete when MIN_HOST_SUPPORTED_BRIDGE_PROTOCOL_VERSION >= 7.
|
|
7
|
+
*/
|
|
8
|
+
export declare function normalizePageResultsForProtocol6(message: SuccessfulPageResult): HostToSandboxMessage;
|
|
9
|
+
//# sourceMappingURL=normalizePageResultsForProtocol6.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizePageResultsForProtocol6.d.ts","sourceRoot":"","sources":["../../src/compatibility/normalizePageResultsForProtocol6.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAA;AACtG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAG3D;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,oBAAoB,GAC3B,oBAAoB,CAWtB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { toPageWithNullTextFallbackProperties } from "./pageWithNullTextFallbackProperties.js";
|
|
2
|
+
/**
|
|
3
|
+
* Encodes protocol 6 pages, whose receivers require null for text fallback properties.
|
|
4
|
+
*
|
|
5
|
+
* Delete when MIN_HOST_SUPPORTED_BRIDGE_PROTOCOL_VERSION >= 7.
|
|
6
|
+
*/
|
|
7
|
+
export function normalizePageResultsForProtocol6(message) {
|
|
8
|
+
if (message.type === "queryDataSourceResult") {
|
|
9
|
+
return {
|
|
10
|
+
...message,
|
|
11
|
+
items: message.items.map(toPageWithNullTextFallbackProperties),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
...message,
|
|
16
|
+
page: toPageWithNullTextFallbackProperties(message.page),
|
|
17
|
+
};
|
|
18
|
+
}
|