@notionhq/custom-blocks 0.1.34 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -4
- package/dist/autoResize.d.ts.map +1 -1
- package/dist/bridge/SandboxBridge.d.ts +1 -0
- package/dist/bridge/SandboxBridge.d.ts.map +1 -1
- package/dist/bridge/SandboxBridge.js +256 -221
- package/dist/bridge/appearance.d.ts.map +1 -1
- package/dist/bridge/dataSources/query.d.ts +2 -1
- package/dist/bridge/dataSources/query.d.ts.map +1 -1
- package/dist/bridge/dataSources/query.js +296 -161
- package/dist/bridge/dataSources/resolve.d.ts.map +1 -1
- package/dist/bridge/dataSources/resolveProperty.d.ts.map +1 -1
- package/dist/bridge/hostState.d.ts.map +1 -1
- package/dist/bridge/loadManifest.d.ts.map +1 -1
- package/dist/bridge/pendingRequests.d.ts.map +1 -1
- package/dist/bridge/sandboxClient.d.ts.map +1 -1
- package/dist/customBlock.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +1 -1
- package/dist/protocol/contrast.d.ts +0 -1
- package/dist/protocol/dataSources/dataSource.d.ts +0 -1
- package/dist/protocol/dataSources/dataSourcePage.d.ts +0 -1
- package/dist/protocol/dataSources/dataSourceValue.d.ts +0 -1
- package/dist/protocol/dataSources/dateValue.d.ts +0 -1
- package/dist/protocol/dataSources/errors.d.ts +0 -1
- package/dist/protocol/dataSources/propertySchema.d.ts +7 -1
- package/dist/protocol/dataSources/propertySchema.js +17 -0
- package/dist/protocol/dataSources/recordPointer.d.ts +0 -1
- package/dist/protocol/errors.d.ts +0 -1
- package/dist/protocol/ids.d.ts +0 -1
- package/dist/protocol/incomingType.d.ts +0 -1
- package/dist/protocol/index.d.ts +0 -1
- package/dist/protocol/manifest.d.ts +0 -1
- package/dist/protocol/messagePayload.d.ts +0 -1
- package/dist/protocol/messages/connect.d.ts +0 -1
- package/dist/protocol/messages/contrastModeChanged.d.ts +0 -1
- package/dist/protocol/messages/createPage.d.ts +0 -1
- package/dist/protocol/messages/createPage.js +0 -1
- package/dist/protocol/messages/createPageResult.d.ts +0 -1
- package/dist/protocol/messages/currentUserChanged.d.ts +0 -1
- package/dist/protocol/messages/dataSourcesChanged.d.ts +0 -1
- package/dist/protocol/messages/getPage.d.ts +0 -1
- package/dist/protocol/messages/getUser.d.ts +0 -1
- package/dist/protocol/messages/hostToSandbox.d.ts +3 -1
- package/dist/protocol/messages/init.d.ts +0 -1
- package/dist/protocol/messages/initResult.d.ts +0 -1
- package/dist/protocol/messages/invalidHostMessage.d.ts +0 -1
- package/dist/protocol/messages/invalidSandboxMessage.d.ts +0 -1
- package/dist/protocol/messages/listUsers.d.ts +0 -1
- package/dist/protocol/messages/pageChanged.d.ts +0 -1
- package/dist/protocol/messages/parentChanged.d.ts +0 -1
- package/dist/protocol/messages/queryDataSource.d.ts +15 -1
- package/dist/protocol/messages/queryDataSource.js +8 -0
- package/dist/protocol/messages/queryDataSourceResult.d.ts +1 -2
- package/dist/protocol/messages/resize.d.ts +0 -1
- package/dist/protocol/messages/sandboxToHost.d.ts +4 -1
- package/dist/protocol/messages/themeChanged.d.ts +0 -1
- package/dist/protocol/messages/updatePage.d.ts +0 -1
- package/dist/protocol/messages/updatePageResult.d.ts +0 -1
- package/dist/protocol/pages/page.d.ts +0 -1
- package/dist/protocol/pages/page.js +0 -1
- package/dist/protocol/parent.d.ts +0 -1
- package/dist/protocol/protocolVersion.d.ts +0 -1
- package/dist/protocol/theme.d.ts +0 -1
- package/dist/protocol/users/user.d.ts +0 -1
- package/dist/react/DebugMessageLog.d.ts.map +1 -1
- package/dist/react/NotionCustomBlock.css +0 -11
- package/dist/react/NotionCustomBlock.d.ts.map +1 -1
- package/dist/react/NotionCustomBlock.js +14 -3
- package/dist/react/NotionTokenScope.d.ts.map +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/standalonePreview.d.ts.map +1 -1
- package/dist/react/useCustomBlockAutoResize.d.ts.map +1 -1
- package/dist/react/useCustomBlockInit.d.ts.map +1 -1
- package/dist/react/useDataSource.d.ts +1 -1
- package/dist/react/useDataSource.d.ts.map +1 -1
- package/dist/react/useDataSource.js +1 -1
- package/dist/react/useHostState.d.ts.map +1 -1
- package/dist/react/useRuntimeState.d.ts.map +1 -1
- package/dist/testing.d.ts +17 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +13 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/docs/data-sources.md +13 -1
- package/package.json +5 -6
- package/src/bridge/SandboxBridge.ts +49 -5
- package/src/bridge/dataSources/query.ts +394 -170
- package/src/init.ts +2 -1
- package/src/react/NotionCustomBlock.css +0 -11
- package/src/react/NotionCustomBlock.tsx +28 -10
- package/src/react/useDataSource.ts +1 -1
- package/src/testing.ts +26 -0
- package/src/types.ts +8 -1
- package/dist/protocol/contrast.d.ts.map +0 -1
- package/dist/protocol/dataSources/dataSource.d.ts.map +0 -1
- package/dist/protocol/dataSources/dataSourcePage.d.ts.map +0 -1
- package/dist/protocol/dataSources/dataSourceValue.d.ts.map +0 -1
- package/dist/protocol/dataSources/dateValue.d.ts.map +0 -1
- package/dist/protocol/dataSources/errors.d.ts.map +0 -1
- package/dist/protocol/dataSources/propertySchema.d.ts.map +0 -1
- package/dist/protocol/dataSources/recordPointer.d.ts.map +0 -1
- package/dist/protocol/errors.d.ts.map +0 -1
- package/dist/protocol/ids.d.ts.map +0 -1
- package/dist/protocol/incomingType.d.ts.map +0 -1
- package/dist/protocol/index.d.ts.map +0 -1
- package/dist/protocol/manifest.d.ts.map +0 -1
- package/dist/protocol/messagePayload.d.ts.map +0 -1
- package/dist/protocol/messages/connect.d.ts.map +0 -1
- package/dist/protocol/messages/contrastModeChanged.d.ts.map +0 -1
- package/dist/protocol/messages/createPage.d.ts.map +0 -1
- package/dist/protocol/messages/createPageResult.d.ts.map +0 -1
- package/dist/protocol/messages/currentUserChanged.d.ts.map +0 -1
- package/dist/protocol/messages/dataSourcesChanged.d.ts.map +0 -1
- package/dist/protocol/messages/getPage.d.ts.map +0 -1
- package/dist/protocol/messages/getUser.d.ts.map +0 -1
- package/dist/protocol/messages/hostToSandbox.d.ts.map +0 -1
- package/dist/protocol/messages/init.d.ts.map +0 -1
- package/dist/protocol/messages/initResult.d.ts.map +0 -1
- package/dist/protocol/messages/invalidHostMessage.d.ts.map +0 -1
- package/dist/protocol/messages/invalidSandboxMessage.d.ts.map +0 -1
- package/dist/protocol/messages/listUsers.d.ts.map +0 -1
- package/dist/protocol/messages/pageChanged.d.ts.map +0 -1
- package/dist/protocol/messages/parentChanged.d.ts.map +0 -1
- package/dist/protocol/messages/queryDataSource.d.ts.map +0 -1
- package/dist/protocol/messages/queryDataSourceResult.d.ts.map +0 -1
- package/dist/protocol/messages/resize.d.ts.map +0 -1
- package/dist/protocol/messages/sandboxToHost.d.ts.map +0 -1
- package/dist/protocol/messages/themeChanged.d.ts.map +0 -1
- package/dist/protocol/messages/updatePage.d.ts.map +0 -1
- package/dist/protocol/messages/updatePageResult.d.ts.map +0 -1
- package/dist/protocol/pages/page.d.ts.map +0 -1
- package/dist/protocol/parent.d.ts.map +0 -1
- package/dist/protocol/protocolVersion.d.ts.map +0 -1
- package/dist/protocol/theme.d.ts.map +0 -1
- package/dist/protocol/users/user.d.ts.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -111,6 +111,9 @@ export type NotionDataSourcePropertyFilter = NotionDataSourcePropertyAddress & (
|
|
|
111
111
|
} | {
|
|
112
112
|
date: NotionDataSourceDateFilterOperator;
|
|
113
113
|
});
|
|
114
|
+
export type NotionDataSourceSort = NotionDataSourcePropertyAddress & {
|
|
115
|
+
direction: "ascending" | "descending";
|
|
116
|
+
};
|
|
114
117
|
export type NotionDataSourceFilter = NotionDataSourcePropertyFilter | {
|
|
115
118
|
and: NotionDataSourcePropertyFilter[];
|
|
116
119
|
};
|
|
@@ -165,6 +168,10 @@ export type UseDataSourceOptions = {
|
|
|
165
168
|
* it sends the query to the host.
|
|
166
169
|
*/
|
|
167
170
|
filter?: NotionDataSourceFilter;
|
|
171
|
+
/**
|
|
172
|
+
* Optional property sorts. The host applies them in array order.
|
|
173
|
+
*/
|
|
174
|
+
sorts?: NotionDataSourceSort[];
|
|
168
175
|
};
|
|
169
176
|
/**
|
|
170
177
|
* Parent reference accepted by `sdk.pages.create`. Mirrors Notion's public `POST /v1/pages`
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAI/C"}
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAgB,CAAA"}
|
package/dist/version.js
CHANGED
package/docs/data-sources.md
CHANGED
|
@@ -44,6 +44,7 @@ function useDataSource(
|
|
|
44
44
|
options?: {
|
|
45
45
|
limit?: number;
|
|
46
46
|
filter?: NotionDataSourceFilter;
|
|
47
|
+
sorts?: NotionDataSourceSort[];
|
|
47
48
|
},
|
|
48
49
|
): UseDataSourceResult;
|
|
49
50
|
|
|
@@ -71,6 +72,7 @@ const query = useDataSource("tasks", {
|
|
|
71
72
|
{ key: "done", checkbox: { equals: false } },
|
|
72
73
|
],
|
|
73
74
|
},
|
|
75
|
+
sorts: [{ key: "due", direction: "ascending" }],
|
|
74
76
|
limit: 50,
|
|
75
77
|
});
|
|
76
78
|
```
|
|
@@ -88,6 +90,15 @@ Select, multi-select, and status values can be one option name or an array of op
|
|
|
88
90
|
|
|
89
91
|
The `and` group can contain up to 25 conditions. An empty group is valid. Nested groups and `or` groups are not supported.
|
|
90
92
|
|
|
93
|
+
`sorts` accepts a list of property addresses and directions. Use `key` for a
|
|
94
|
+
semantic property key or `propertyId` for a raw Notion property ID. The SDK
|
|
95
|
+
resolves semantic keys before it sends the bridge request. The host applies
|
|
96
|
+
sorts in array order. The first sort has the highest priority. The list can
|
|
97
|
+
contain up to ten unique properties. Empty values sort last in either
|
|
98
|
+
direction. Sorts currently support title, rich text, number, checkbox, URL,
|
|
99
|
+
email, phone number, date, created time, and last edited time properties.
|
|
100
|
+
Other property types are rejected until their sort values are supported.
|
|
101
|
+
|
|
91
102
|
`propertyIdsByKey` maps manifest property keys to raw Notion property IDs; unbound keys map to `undefined`. `propertySchemasByKey` exposes the corresponding schemas and is likewise `undefined` for declared-but-unbound slots.
|
|
92
103
|
|
|
93
104
|
Query failures follow the SDK's [error-handling contract](./errors.md).
|
|
@@ -193,10 +204,11 @@ export function ScoreList() {
|
|
|
193
204
|
- `NotionDataSourcePageUpdateArgs` / `UpdatePageResult` — arguments and result for the per-page `update` helper.
|
|
194
205
|
- `NotionDataSourcePageUpdateInput` — deprecated alias for `NotionDataSourcePageUpdateArgs`.
|
|
195
206
|
- `NotionDataSourcePageUpdateResult` — deprecated alias for `UpdatePageResult`.
|
|
196
|
-
- `UseDataSourceOptions` — options accepted by `useDataSource`: `limit?: number` and `
|
|
207
|
+
- `UseDataSourceOptions` — options accepted by `useDataSource`: `limit?: number`, `filter?: NotionDataSourceFilter`, and `sorts?: NotionDataSourceSort[]`.
|
|
197
208
|
- `NotionDataSourceFilter` — one property condition or one shallow `and` group.
|
|
198
209
|
- `NotionDataSourcePropertyFilter` — one property address combined with a type-specific operator.
|
|
199
210
|
- `NotionDataSourcePropertyAddress` — either a semantic property `key` or a raw `propertyId`.
|
|
211
|
+
- `NotionDataSourceSort` — a property address with an `ascending` or `descending` direction.
|
|
200
212
|
- `NotionDataSourceTextFilterOperator`, `NotionDataSourceNumberFilterOperator`, `NotionDataSourceCheckboxFilterOperator`, `NotionDataSourceOptionFilterOperator`, `NotionDataSourceContainsFilterOperator`, and `NotionDataSourceDateFilterOperator` — the operators accepted for each property type.
|
|
201
213
|
|
|
202
214
|
### Property schemas
|
package/package.json
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@notionhq/custom-blocks",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.36",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://github.com/makenotion/custom-blocks",
|
|
12
|
-
"directory": "sdk"
|
|
13
|
-
},
|
|
14
9
|
"main": "./dist/index.js",
|
|
15
10
|
"types": "./dist/index.d.ts",
|
|
16
11
|
"exports": {
|
|
@@ -23,6 +18,10 @@
|
|
|
23
18
|
"import": "./dist/react/index.js",
|
|
24
19
|
"types": "./dist/react/index.d.ts"
|
|
25
20
|
},
|
|
21
|
+
"./testing": {
|
|
22
|
+
"import": "./dist/testing.js",
|
|
23
|
+
"types": "./dist/testing.d.ts"
|
|
24
|
+
},
|
|
26
25
|
"./vite": {
|
|
27
26
|
"import": "./vite-plugin/index.js",
|
|
28
27
|
"types": "./vite-plugin/index.d.ts"
|
|
@@ -14,7 +14,10 @@ import type {
|
|
|
14
14
|
} from "@notionhq/custom-blocks-protocol/messages/createPage.js"
|
|
15
15
|
import type { CustomBlockCreatePageErrorInfo } from "@notionhq/custom-blocks-protocol/messages/createPageResult.js"
|
|
16
16
|
import type { GetUserMessage } from "@notionhq/custom-blocks-protocol/messages/getUser.js"
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
hostToSandboxMessageSchema,
|
|
19
|
+
PrimeableHostToSandboxMessage,
|
|
20
|
+
} from "@notionhq/custom-blocks-protocol/messages/hostToSandbox.js"
|
|
18
21
|
import {
|
|
19
22
|
CustomBlockInitializationError,
|
|
20
23
|
type InitMessage,
|
|
@@ -33,6 +36,7 @@ import type { UpdatePageMessage } from "@notionhq/custom-blocks-protocol/message
|
|
|
33
36
|
import { CUSTOM_BLOCK_BRIDGE_PROTOCOL_VERSION } from "@notionhq/custom-blocks-protocol/protocolVersion.js"
|
|
34
37
|
import type { NotionTheme } from "@notionhq/custom-blocks-protocol/theme.js"
|
|
35
38
|
import * as v from "valibot"
|
|
39
|
+
import { globalPrimedResponsesCache } from "../testing.js"
|
|
36
40
|
import type {
|
|
37
41
|
CreatePageArgs,
|
|
38
42
|
CreatePageResult,
|
|
@@ -73,6 +77,15 @@ export type MessageLogEntry = {
|
|
|
73
77
|
data: unknown
|
|
74
78
|
}
|
|
75
79
|
|
|
80
|
+
const RESPONSE_TYPE_BY_REQUEST = new Map([
|
|
81
|
+
["getPage", "getPageResult"],
|
|
82
|
+
["createPage", "createPageResult"],
|
|
83
|
+
["updatePage", "updatePageResult"],
|
|
84
|
+
["getUser", "getUserResult"],
|
|
85
|
+
["listUsers", "listUsersResult"],
|
|
86
|
+
["queryDataSource", "queryDataSourceResult"],
|
|
87
|
+
]) satisfies ReadonlyMap<string, PrimeableHostToSandboxMessage["type"]>
|
|
88
|
+
|
|
76
89
|
const INIT_RESULT_TIMER_FALLBACK_MS = 100
|
|
77
90
|
|
|
78
91
|
export class SandboxBridge {
|
|
@@ -222,6 +235,32 @@ export class SandboxBridge {
|
|
|
222
235
|
}
|
|
223
236
|
|
|
224
237
|
private sendToHost(message: unknown) {
|
|
238
|
+
// Check if the message is a primed response
|
|
239
|
+
const messageType = readIncomingType(message)
|
|
240
|
+
if (
|
|
241
|
+
messageType !== undefined &&
|
|
242
|
+
typeof message === "object" &&
|
|
243
|
+
message !== null
|
|
244
|
+
) {
|
|
245
|
+
const responseType = RESPONSE_TYPE_BY_REQUEST.get(messageType)
|
|
246
|
+
const primed =
|
|
247
|
+
responseType && globalPrimedResponsesCache.get(responseType)
|
|
248
|
+
if (responseType !== undefined && primed !== undefined) {
|
|
249
|
+
globalPrimedResponsesCache.delete(responseType)
|
|
250
|
+
const response = {
|
|
251
|
+
...primed,
|
|
252
|
+
type: responseType,
|
|
253
|
+
...("requestId" in message ? { requestId: message.requestId } : {}),
|
|
254
|
+
...("subscriptionId" in message
|
|
255
|
+
? { subscriptionId: message.subscriptionId }
|
|
256
|
+
: {}),
|
|
257
|
+
}
|
|
258
|
+
queueMicrotask(() => this.receiveMessage(response))
|
|
259
|
+
return
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// If no primed response is found, proceed as normal
|
|
225
264
|
this.logMessage("sent", message)
|
|
226
265
|
window.parent.postMessage(message, "*")
|
|
227
266
|
}
|
|
@@ -250,20 +289,24 @@ export class SandboxBridge {
|
|
|
250
289
|
if (event.source !== window.parent) {
|
|
251
290
|
return
|
|
252
291
|
}
|
|
253
|
-
this.
|
|
292
|
+
this.receiveMessage(event.data)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
private receiveMessage(data: unknown) {
|
|
296
|
+
this.logMessage("received", data)
|
|
254
297
|
|
|
255
|
-
const parsed = v.safeParse(hostToSandboxMessageSchema,
|
|
298
|
+
const parsed = v.safeParse(hostToSandboxMessageSchema, data)
|
|
256
299
|
if (!parsed.success) {
|
|
257
300
|
console.warn(
|
|
258
301
|
"[custom-blocks-sdk] ignoring malformed host message",
|
|
259
302
|
parsed.issues,
|
|
260
303
|
)
|
|
261
|
-
const incomingType = readIncomingType(
|
|
304
|
+
const incomingType = readIncomingType(data)
|
|
262
305
|
if (
|
|
263
306
|
!this.hasReceivedInit &&
|
|
264
307
|
incomingType === "init" &&
|
|
265
308
|
this.initializationId !== undefined &&
|
|
266
|
-
readInitializationId(
|
|
309
|
+
readInitializationId(data) === this.initializationId
|
|
267
310
|
) {
|
|
268
311
|
this.hasReceivedInit = true
|
|
269
312
|
this.sendInitResultError(invalidInitPayloadError(parsed.issues))
|
|
@@ -755,6 +798,7 @@ export class SandboxBridge {
|
|
|
755
798
|
dataSourceId: query.dataSourceId,
|
|
756
799
|
limit: query.limit,
|
|
757
800
|
...(query.filter !== undefined ? { filter: query.filter } : {}),
|
|
801
|
+
...(query.sorts !== undefined ? { sorts: query.sorts } : {}),
|
|
758
802
|
}
|
|
759
803
|
this.postToHost(outbound)
|
|
760
804
|
}
|