@notionhq/custom-blocks-host 0.0.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.
Files changed (142) hide show
  1. package/README.md +204 -0
  2. package/dist/autoBindProperties.d.ts +21 -0
  3. package/dist/autoBindProperties.d.ts.map +1 -0
  4. package/dist/autoBindProperties.js +38 -0
  5. package/dist/createCustomBlockHost.d.ts +46 -0
  6. package/dist/createCustomBlockHost.d.ts.map +1 -0
  7. package/dist/createCustomBlockHost.js +433 -0
  8. package/dist/index.d.ts +6 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +2 -0
  11. package/dist/lifecycle/initErrors.d.ts +13 -0
  12. package/dist/lifecycle/initErrors.d.ts.map +1 -0
  13. package/dist/lifecycle/initErrors.js +152 -0
  14. package/dist/lifecycle/initializationController.d.ts +54 -0
  15. package/dist/lifecycle/initializationController.d.ts.map +1 -0
  16. package/dist/lifecycle/initializationController.js +182 -0
  17. package/dist/lifecycle/protocolVersion.d.ts +2 -0
  18. package/dist/lifecycle/protocolVersion.d.ts.map +1 -0
  19. package/dist/lifecycle/protocolVersion.js +3 -0
  20. package/dist/lifecycle/types.d.ts +28 -0
  21. package/dist/lifecycle/types.d.ts.map +1 -0
  22. package/dist/lifecycle/types.js +1 -0
  23. package/dist/messages/invalidSandboxMessage.d.ts +7 -0
  24. package/dist/messages/invalidSandboxMessage.d.ts.map +1 -0
  25. package/dist/messages/invalidSandboxMessage.js +21 -0
  26. package/dist/messages/types.d.ts +29 -0
  27. package/dist/messages/types.d.ts.map +1 -0
  28. package/dist/messages/types.js +1 -0
  29. package/dist/protocol/contrast.d.ts +4 -0
  30. package/dist/protocol/contrast.js +3 -0
  31. package/dist/protocol/dataSources/dataSource.d.ts +731 -0
  32. package/dist/protocol/dataSources/dataSource.js +37 -0
  33. package/dist/protocol/dataSources/dataSourcePage.d.ts +72 -0
  34. package/dist/protocol/dataSources/dataSourcePage.js +12 -0
  35. package/dist/protocol/dataSources/dataSourceValue.d.ts +66 -0
  36. package/dist/protocol/dataSources/dataSourceValue.js +14 -0
  37. package/dist/protocol/dataSources/dateValue.d.ts +157 -0
  38. package/dist/protocol/dataSources/dateValue.js +59 -0
  39. package/dist/protocol/dataSources/errors.d.ts +8 -0
  40. package/dist/protocol/dataSources/errors.js +7 -0
  41. package/dist/protocol/dataSources/propertySchema.d.ts +197 -0
  42. package/dist/protocol/dataSources/propertySchema.js +165 -0
  43. package/dist/protocol/dataSources/recordPointer.d.ts +9 -0
  44. package/dist/protocol/dataSources/recordPointer.js +8 -0
  45. package/dist/protocol/errors.d.ts +12 -0
  46. package/dist/protocol/errors.js +6 -0
  47. package/dist/protocol/ids.d.ts +31 -0
  48. package/dist/protocol/ids.js +26 -0
  49. package/dist/protocol/incomingType.d.ts +9 -0
  50. package/dist/protocol/incomingType.js +17 -0
  51. package/dist/protocol/index.d.ts +48 -0
  52. package/dist/protocol/index.js +48 -0
  53. package/dist/protocol/manifest.d.ts +60 -0
  54. package/dist/protocol/manifest.js +32 -0
  55. package/dist/protocol/messagePayload.d.ts +19 -0
  56. package/dist/protocol/messagePayload.js +1 -0
  57. package/dist/protocol/messages/connect.d.ts +47 -0
  58. package/dist/protocol/messages/connect.js +38 -0
  59. package/dist/protocol/messages/contrastModeChanged.d.ts +7 -0
  60. package/dist/protocol/messages/contrastModeChanged.js +7 -0
  61. package/dist/protocol/messages/createPage.d.ts +200 -0
  62. package/dist/protocol/messages/createPage.js +52 -0
  63. package/dist/protocol/messages/createPageResult.d.ts +213 -0
  64. package/dist/protocol/messages/createPageResult.js +28 -0
  65. package/dist/protocol/messages/currentUserChanged.d.ts +18 -0
  66. package/dist/protocol/messages/currentUserChanged.js +9 -0
  67. package/dist/protocol/messages/dataSourcesChanged.d.ts +157 -0
  68. package/dist/protocol/messages/dataSourcesChanged.js +13 -0
  69. package/dist/protocol/messages/getPage.d.ts +218 -0
  70. package/dist/protocol/messages/getPage.js +33 -0
  71. package/dist/protocol/messages/getUser.d.ts +44 -0
  72. package/dist/protocol/messages/getUser.js +32 -0
  73. package/dist/protocol/messages/hostToSandbox.d.ts +1167 -0
  74. package/dist/protocol/messages/hostToSandbox.js +34 -0
  75. package/dist/protocol/messages/init.d.ts +259 -0
  76. package/dist/protocol/messages/init.js +56 -0
  77. package/dist/protocol/messages/initResult.d.ts +37 -0
  78. package/dist/protocol/messages/initResult.js +28 -0
  79. package/dist/protocol/messages/invalidHostMessage.d.ts +14 -0
  80. package/dist/protocol/messages/invalidHostMessage.js +13 -0
  81. package/dist/protocol/messages/invalidSandboxMessage.d.ts +14 -0
  82. package/dist/protocol/messages/invalidSandboxMessage.js +13 -0
  83. package/dist/protocol/messages/listUsers.d.ts +52 -0
  84. package/dist/protocol/messages/listUsers.js +33 -0
  85. package/dist/protocol/messages/pageChanged.d.ts +27 -0
  86. package/dist/protocol/messages/pageChanged.js +9 -0
  87. package/dist/protocol/messages/parentChanged.d.ts +24 -0
  88. package/dist/protocol/messages/parentChanged.js +9 -0
  89. package/dist/protocol/messages/queryDataSource.d.ts +985 -0
  90. package/dist/protocol/messages/queryDataSource.js +123 -0
  91. package/dist/protocol/messages/queryDataSourceResult.d.ts +93 -0
  92. package/dist/protocol/messages/queryDataSourceResult.js +28 -0
  93. package/dist/protocol/messages/resize.d.ts +11 -0
  94. package/dist/protocol/messages/resize.js +10 -0
  95. package/dist/protocol/messages/sandboxToHost.d.ts +744 -0
  96. package/dist/protocol/messages/sandboxToHost.js +27 -0
  97. package/dist/protocol/messages/themeChanged.d.ts +10 -0
  98. package/dist/protocol/messages/themeChanged.js +10 -0
  99. package/dist/protocol/messages/updatePage.d.ts +180 -0
  100. package/dist/protocol/messages/updatePage.js +22 -0
  101. package/dist/protocol/messages/updatePageResult.d.ts +212 -0
  102. package/dist/protocol/messages/updatePageResult.js +27 -0
  103. package/dist/protocol/pages/page.d.ts +597 -0
  104. package/dist/protocol/pages/page.js +212 -0
  105. package/dist/protocol/parent.d.ts +28 -0
  106. package/dist/protocol/parent.js +12 -0
  107. package/dist/protocol/protocolVersion.d.ts +6 -0
  108. package/dist/protocol/protocolVersion.js +6 -0
  109. package/dist/protocol/theme.d.ts +3 -0
  110. package/dist/protocol/theme.js +2 -0
  111. package/dist/protocol/users/user.d.ts +32 -0
  112. package/dist/protocol/users/user.js +20 -0
  113. package/dist/queries/querySubscriptions.d.ts +17 -0
  114. package/dist/queries/querySubscriptions.d.ts.map +1 -0
  115. package/dist/queries/querySubscriptions.js +38 -0
  116. package/dist/queries/types.d.ts +4 -0
  117. package/dist/queries/types.d.ts.map +1 -0
  118. package/dist/queries/types.js +1 -0
  119. package/dist/queries/validateQueryDataSourceFilter.d.ts +5 -0
  120. package/dist/queries/validateQueryDataSourceFilter.d.ts.map +1 -0
  121. package/dist/queries/validateQueryDataSourceFilter.js +72 -0
  122. package/dist/queries/validateQueryDataSourceSorts.d.ts +8 -0
  123. package/dist/queries/validateQueryDataSourceSorts.d.ts.map +1 -0
  124. package/dist/queries/validateQueryDataSourceSorts.js +47 -0
  125. package/dist/utils.d.ts +5 -0
  126. package/dist/utils.d.ts.map +1 -0
  127. package/dist/utils.js +6 -0
  128. package/package.json +26 -0
  129. package/src/autoBindProperties.ts +63 -0
  130. package/src/createCustomBlockHost.ts +605 -0
  131. package/src/index.ts +25 -0
  132. package/src/lifecycle/initErrors.ts +165 -0
  133. package/src/lifecycle/initializationController.ts +290 -0
  134. package/src/lifecycle/protocolVersion.ts +3 -0
  135. package/src/lifecycle/types.ts +40 -0
  136. package/src/messages/invalidSandboxMessage.ts +35 -0
  137. package/src/messages/types.ts +80 -0
  138. package/src/queries/querySubscriptions.ts +57 -0
  139. package/src/queries/types.ts +10 -0
  140. package/src/queries/validateQueryDataSourceFilter.ts +101 -0
  141. package/src/queries/validateQueryDataSourceSorts.ts +69 -0
  142. package/src/utils.ts +8 -0
@@ -0,0 +1,182 @@
1
+ import { initErrorForFailureReason } from "./initErrors.js";
2
+ import { isValidBridgeProtocolVersion } from "./protocolVersion.js";
3
+ const DEFAULT_NO_CONNECT_TIMEOUT_MS = 5000;
4
+ const DEFAULT_NO_INIT_RESULT_TIMEOUT_MS = 5000;
5
+ export function createInitializationController(options) {
6
+ const { blockId, getState, prepareInit, post, warn, flushPendingHostStateChanges, minBridgeProtocolVersion, noConnectTimeoutMs = DEFAULT_NO_CONNECT_TIMEOUT_MS, noInitResultTimeoutMs = DEFAULT_NO_INIT_RESULT_TIMEOUT_MS, onConnect, onInitResult, onIgnoredConnect, } = options;
7
+ let initStatus = "waitingForConnect";
8
+ let noConnectTimeoutId;
9
+ let noInitResultTimeoutId;
10
+ let activeInitializationId;
11
+ let hasConnectedSandbox = false;
12
+ function clearNoConnectTimeout() {
13
+ if (noConnectTimeoutId !== undefined) {
14
+ window.clearTimeout(noConnectTimeoutId);
15
+ noConnectTimeoutId = undefined;
16
+ }
17
+ }
18
+ function clearNoInitResultTimeout() {
19
+ if (noInitResultTimeoutId !== undefined) {
20
+ window.clearTimeout(noInitResultTimeoutId);
21
+ noInitResultTimeoutId = undefined;
22
+ }
23
+ }
24
+ function sendInitError(initializationId, error) {
25
+ if (initStatus !== "waitingForConnect") {
26
+ return;
27
+ }
28
+ initStatus = "error";
29
+ activeInitializationId = initializationId;
30
+ clearNoConnectTimeout();
31
+ post({
32
+ type: "init",
33
+ initializationId,
34
+ status: "error",
35
+ error,
36
+ });
37
+ }
38
+ function sendInit(connect) {
39
+ if (initStatus !== "waitingForConnect") {
40
+ return false;
41
+ }
42
+ onConnect?.(connect);
43
+ const preparation = prepareInit(connect);
44
+ if (preparation.status === "error") {
45
+ sendInitError(connect.initializationId, preparation.error);
46
+ return false;
47
+ }
48
+ initStatus = "waitingForInitResult";
49
+ activeInitializationId = connect.initializationId;
50
+ clearNoConnectTimeout();
51
+ const state = getState();
52
+ const message = {
53
+ type: "init",
54
+ initializationId: connect.initializationId,
55
+ status: "success",
56
+ theme: state.theme,
57
+ contrastMode: state.contrastMode,
58
+ blockId,
59
+ parent: state.parent,
60
+ page: state.page,
61
+ manifest: preparation.manifest,
62
+ dataSources: preparation.dataSources,
63
+ currentUser: state.currentUser,
64
+ };
65
+ post(message);
66
+ noInitResultTimeoutId = window.setTimeout(() => {
67
+ if (initStatus !== "waitingForInitResult") {
68
+ return;
69
+ }
70
+ initStatus = "error";
71
+ warn({
72
+ message: "Sandbox did not send initResult",
73
+ initializationId: connect.initializationId,
74
+ });
75
+ }, noInitResultTimeoutMs);
76
+ return true;
77
+ }
78
+ function handleConnect(message) {
79
+ if (initStatus !== "waitingForConnect") {
80
+ // A sandbox document sends `connect` exactly once, so this connect
81
+ // belongs to a replacement document — or arrived after this host
82
+ // already gave up waiting. The host is single-initialization; the
83
+ // embedder must recreate it together with the iframe for the new
84
+ // document to initialize.
85
+ warn({
86
+ message: "Ignored connect after initialization settled; recreate the host and iframe to re-initialize",
87
+ initializationId: message.initializationId,
88
+ });
89
+ onIgnoredConnect?.(message);
90
+ return;
91
+ }
92
+ // Verify the bridge protocol version is valid.
93
+ if (!isValidBridgeProtocolVersion(message.bridgeProtocolVersion)) {
94
+ const initError = initErrorForFailureReason("invalid_protocol_version", {
95
+ currentBridgeProtocolVersion: message.bridgeProtocolVersion,
96
+ });
97
+ sendInitError(message.initializationId, initError);
98
+ return;
99
+ }
100
+ if (message.bridgeProtocolVersion < minBridgeProtocolVersion) {
101
+ const initError = initErrorForFailureReason("unsupported_protocol_version", {
102
+ currentBridgeProtocolVersion: message.bridgeProtocolVersion,
103
+ minBridgeProtocolVersion,
104
+ });
105
+ sendInitError(message.initializationId, initError);
106
+ return;
107
+ }
108
+ // If the sandbox reported an error during `connect`, return it as an `init` error.
109
+ if (message.status === "error") {
110
+ sendInitError(message.initializationId, message.error);
111
+ return;
112
+ }
113
+ if (sendInit(message)) {
114
+ hasConnectedSandbox = true;
115
+ }
116
+ }
117
+ function handleInvalidConnect(initializationId) {
118
+ if (initStatus !== "waitingForConnect") {
119
+ return false;
120
+ }
121
+ sendInitError(initializationId, initErrorForFailureReason("invalid_connect_payload"));
122
+ return true;
123
+ }
124
+ function handleInvalidInitResult() {
125
+ if (initStatus !== "waitingForInitResult") {
126
+ return false;
127
+ }
128
+ clearNoInitResultTimeout();
129
+ initStatus = "error";
130
+ warn(initErrorForFailureReason("invalid_init_result_payload"));
131
+ return true;
132
+ }
133
+ function onIframeLoad() {
134
+ clearNoConnectTimeout();
135
+ if (initStatus !== "waitingForConnect") {
136
+ // Only set the timeout if the iframe loaded before the `connect` message was sent.
137
+ return;
138
+ }
139
+ noConnectTimeoutId = window.setTimeout(() => {
140
+ if (initStatus !== "waitingForConnect") {
141
+ // Only do anything if the iframe loaded before the `connect` message was sent.
142
+ return;
143
+ }
144
+ initStatus = "error";
145
+ warn(initErrorForFailureReason("no_connect"));
146
+ }, noConnectTimeoutMs);
147
+ }
148
+ function handleInitResult(message) {
149
+ if (initStatus !== "waitingForInitResult" ||
150
+ message.initializationId !== activeInitializationId) {
151
+ warn({
152
+ message: "Ignored stale or unexpected initResult",
153
+ payload: message,
154
+ });
155
+ return;
156
+ }
157
+ clearNoInitResultTimeout();
158
+ initStatus = message.status === "success" ? "success" : "error";
159
+ if (initStatus === "success") {
160
+ flushPendingHostStateChanges();
161
+ }
162
+ onInitResult?.(message);
163
+ }
164
+ function stop() {
165
+ clearNoConnectTimeout();
166
+ clearNoInitResultTimeout();
167
+ }
168
+ return {
169
+ get status() {
170
+ return initStatus;
171
+ },
172
+ get hasConnectedSandbox() {
173
+ return hasConnectedSandbox;
174
+ },
175
+ handleConnect,
176
+ handleInitResult,
177
+ handleInvalidConnect,
178
+ handleInvalidInitResult,
179
+ onIframeLoad,
180
+ stop,
181
+ };
182
+ }
@@ -0,0 +1,2 @@
1
+ export declare function isValidBridgeProtocolVersion(version: number): boolean;
2
+ //# sourceMappingURL=protocolVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocolVersion.d.ts","sourceRoot":"","sources":["../../src/lifecycle/protocolVersion.ts"],"names":[],"mappings":"AAAA,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErE"}
@@ -0,0 +1,3 @@
1
+ export function isValidBridgeProtocolVersion(version) {
2
+ return Number.isFinite(version) && Number.isInteger(version) && version >= 1;
3
+ }
@@ -0,0 +1,28 @@
1
+ import type { NotionContrastMode } from "../protocol/contrast.js";
2
+ import type { NotionDataSourceBindings } from "../protocol/dataSources/dataSource.js";
3
+ import type { NotionBlockId } from "../protocol/ids.js";
4
+ import type { CustomBlockManifest } from "../protocol/manifest.js";
5
+ import type { ConnectMessage } from "../protocol/messages/connect.js";
6
+ import type { CustomBlockPage } from "../protocol/pages/page.js";
7
+ import type { NotionParent } from "../protocol/parent.js";
8
+ import type { NotionTheme } from "../protocol/theme.js";
9
+ import type { NotionUser } from "../protocol/users/user.js";
10
+ export type ConnectSuccessMessage = Extract<ConnectMessage, {
11
+ status: "success";
12
+ }>;
13
+ export type InitStatus = "waitingForConnect" | "waitingForInitResult" | "success" | "error";
14
+ export type CustomBlockHostDataSourcesPayload = {
15
+ bindings: NotionDataSourceBindings;
16
+ };
17
+ export type CustomBlockHostInitialDataSources = CustomBlockHostDataSourcesPayload | ((connect: ConnectSuccessMessage) => CustomBlockHostDataSourcesPayload);
18
+ export type CustomBlockHostInitialState = {
19
+ theme: NotionTheme;
20
+ contrastMode?: NotionContrastMode;
21
+ blockId: NotionBlockId;
22
+ parent: NotionParent;
23
+ page: CustomBlockPage;
24
+ manifest: CustomBlockManifest;
25
+ dataSources: CustomBlockHostInitialDataSources;
26
+ currentUser: NotionUser;
27
+ };
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAA;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,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;AAEhF,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAC1C,cAAc,EACd;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,SAAS,GACT,OAAO,CAAA;AAEV,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,wBAAwB,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAC1C,iCAAiC,GACjC,CAAC,CAAC,OAAO,EAAE,qBAAqB,KAAK,iCAAiC,CAAC,CAAA;AAE1E,MAAM,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,WAAW,CAAA;IAElB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,WAAW,EAAE,iCAAiC,CAAA;IAC9C,WAAW,EAAE,UAAU,CAAA;CACvB,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { InvalidSandboxMessage } from "../protocol/messages/invalidSandboxMessage.js";
2
+ export type InvalidSandboxMessageResponse = {
3
+ incomingType: string | undefined;
4
+ nack?: InvalidSandboxMessage;
5
+ };
6
+ export declare function getInvalidSandboxMessageResponse(data: unknown): InvalidSandboxMessageResponse;
7
+ //# sourceMappingURL=invalidSandboxMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalidSandboxMessage.d.ts","sourceRoot":"","sources":["../../src/messages/invalidSandboxMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAA;AAE/G,MAAM,MAAM,6BAA6B,GAAG;IAC3C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,IAAI,CAAC,EAAE,qBAAqB,CAAA;CAC5B,CAAA;AAED,wBAAgB,gCAAgC,CAC/C,IAAI,EAAE,OAAO,GACX,6BAA6B,CAe/B"}
@@ -0,0 +1,21 @@
1
+ import { readIncomingType } from "../protocol/incomingType.js";
2
+ export function getInvalidSandboxMessageResponse(data) {
3
+ const incomingType = readIncomingType(data);
4
+ if (incomingType === "invalidHostMessage" ||
5
+ incomingType === "invalidSandboxMessage") {
6
+ return { incomingType };
7
+ }
8
+ return {
9
+ incomingType,
10
+ nack: {
11
+ type: "invalidSandboxMessage",
12
+ reason: nackReasonForInvalidSandboxMessage(incomingType),
13
+ },
14
+ };
15
+ }
16
+ function nackReasonForInvalidSandboxMessage(incomingType) {
17
+ if (incomingType !== undefined) {
18
+ return `Unsupported sandbox message of type "${incomingType}"`;
19
+ }
20
+ return "Unsupported sandbox message (no `type` field or non-object payload)";
21
+ }
@@ -0,0 +1,29 @@
1
+ import type { BridgeMessagePayload } from "../protocol/messagePayload.js";
2
+ import type { CreatePageMessage } from "../protocol/messages/createPage.js";
3
+ import type { CreatePageResultMessage, CustomBlockCreatePageErrorInfo } from "../protocol/messages/createPageResult.js";
4
+ import type { CustomBlockGetPageErrorInfo, GetPageMessage, GetPageResultMessage } from "../protocol/messages/getPage.js";
5
+ import type { CustomBlockGetUserErrorInfo, GetUserMessage, GetUserResultMessage } from "../protocol/messages/getUser.js";
6
+ import type { CustomBlockListUsersErrorInfo, ListUsersMessage, ListUsersResultMessage } from "../protocol/messages/listUsers.js";
7
+ import type { QueryDataSourceMessage } from "../protocol/messages/queryDataSource.js";
8
+ import type { ResizeMessage } from "../protocol/messages/resize.js";
9
+ import type { UpdatePageMessage } from "../protocol/messages/updatePage.js";
10
+ import type { CustomBlockUpdatePageErrorInfo, UpdatePageResultMessage } from "../protocol/messages/updatePageResult.js";
11
+ import type { CustomBlockHostQueryDataSourceResult } from "../queries/types.js";
12
+ type MaybePromise<T> = T | Promise<T>;
13
+ export type CustomBlockHostCreatePageResult = BridgeMessagePayload<CreatePageResultMessage, CustomBlockCreatePageErrorInfo>;
14
+ export type CustomBlockHostGetPageResult = BridgeMessagePayload<GetPageResultMessage, CustomBlockGetPageErrorInfo>;
15
+ export type CustomBlockHostUpdatePageResult = BridgeMessagePayload<UpdatePageResultMessage, CustomBlockUpdatePageErrorInfo>;
16
+ export type CustomBlockHostGetUserResult = BridgeMessagePayload<GetUserResultMessage, CustomBlockGetUserErrorInfo>;
17
+ export type CustomBlockHostListUsersResult = BridgeMessagePayload<ListUsersResultMessage, CustomBlockListUsersErrorInfo>;
18
+ export type CustomBlockHostHandlers = {
19
+ queryDataSource: (message: QueryDataSourceMessage) => MaybePromise<CustomBlockHostQueryDataSourceResult>;
20
+ createPage?: (message: CreatePageMessage) => MaybePromise<CustomBlockHostCreatePageResult>;
21
+ getPage?: (message: GetPageMessage) => MaybePromise<CustomBlockHostGetPageResult>;
22
+ getUser?: (message: GetUserMessage) => MaybePromise<CustomBlockHostGetUserResult>;
23
+ listUsers?: (message: ListUsersMessage) => MaybePromise<CustomBlockHostListUsersResult>;
24
+ updatePage?: (message: UpdatePageMessage) => MaybePromise<CustomBlockHostUpdatePageResult>;
25
+ resize?: (message: ResizeMessage) => void;
26
+ };
27
+ export type CustomBlockHostLogDirection = "in" | "out" | "warn";
28
+ export {};
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,OAAO,KAAK,EACX,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,+DAA+D,CAAA;AACtE,OAAO,KAAK,EACX,2BAA2B,EAC3B,cAAc,EACd,oBAAoB,EACpB,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,EACX,2BAA2B,EAC3B,cAAc,EACd,oBAAoB,EACpB,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,EACX,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,EACtB,MAAM,wDAAwD,CAAA;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAA;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,OAAO,KAAK,EACX,8BAA8B,EAC9B,uBAAuB,EACvB,MAAM,+DAA+D,CAAA;AACtE,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAA;AAE/E,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAErC,MAAM,MAAM,+BAA+B,GAAG,oBAAoB,CACjE,uBAAuB,EACvB,8BAA8B,CAC9B,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAC9D,oBAAoB,EACpB,2BAA2B,CAC3B,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,oBAAoB,CACjE,uBAAuB,EACvB,8BAA8B,CAC9B,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAC9D,oBAAoB,EACpB,2BAA2B,CAC3B,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,oBAAoB,CAChE,sBAAsB,EACtB,6BAA6B,CAC7B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACrC,eAAe,EAAE,CAChB,OAAO,EAAE,sBAAsB,KAC3B,YAAY,CAAC,oCAAoC,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,CACZ,OAAO,EAAE,iBAAiB,KACtB,YAAY,CAAC,+BAA+B,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,CACT,OAAO,EAAE,cAAc,KACnB,YAAY,CAAC,4BAA4B,CAAC,CAAA;IAC/C,OAAO,CAAC,EAAE,CACT,OAAO,EAAE,cAAc,KACnB,YAAY,CAAC,4BAA4B,CAAC,CAAA;IAC/C,SAAS,CAAC,EAAE,CACX,OAAO,EAAE,gBAAgB,KACrB,YAAY,CAAC,8BAA8B,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,CACZ,OAAO,EAAE,iBAAiB,KACtB,YAAY,CAAC,+BAA+B,CAAC,CAAA;IAClD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import * as v from "valibot";
2
+ export declare const notionContrastModeSchema: v.PicklistSchema<["standard", "high"], undefined>;
3
+ export type NotionContrastMode = v.InferOutput<typeof notionContrastModeSchema>;
4
+ export declare const DEFAULT_CONTRAST_MODE: NotionContrastMode;
@@ -0,0 +1,3 @@
1
+ import * as v from "valibot";
2
+ export const notionContrastModeSchema = v.picklist(["standard", "high"]);
3
+ export const DEFAULT_CONTRAST_MODE = "standard";