@notionhq/custom-blocks 0.1.33 → 0.1.35

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 (36) hide show
  1. package/dist/bridge/SandboxBridge.d.ts +3 -1
  2. package/dist/bridge/SandboxBridge.d.ts.map +1 -1
  3. package/dist/bridge/SandboxBridge.js +55 -47
  4. package/dist/bridge/dataSources/query.d.ts +27 -0
  5. package/dist/bridge/dataSources/query.d.ts.map +1 -0
  6. package/dist/bridge/dataSources/query.js +512 -0
  7. package/dist/bridge/hostState.d.ts +4 -3
  8. package/dist/bridge/hostState.d.ts.map +1 -1
  9. package/dist/bridge/hostState.js +7 -3
  10. package/dist/bridge/sandboxClient.d.ts +4 -2
  11. package/dist/bridge/sandboxClient.d.ts.map +1 -1
  12. package/dist/bridge/sandboxClient.js +10 -4
  13. package/dist/protocol/dataSources/propertySchema.d.ts +7 -0
  14. package/dist/protocol/dataSources/propertySchema.d.ts.map +1 -1
  15. package/dist/protocol/dataSources/propertySchema.js +17 -0
  16. package/dist/protocol/messages/queryDataSource.d.ts +970 -0
  17. package/dist/protocol/messages/queryDataSource.d.ts.map +1 -1
  18. package/dist/protocol/messages/queryDataSource.js +108 -0
  19. package/dist/protocol/messages/queryDataSourceResult.d.ts +1 -1
  20. package/dist/protocol/messages/queryDataSourceResult.d.ts.map +1 -1
  21. package/dist/protocol/messages/sandboxToHost.d.ts +353 -0
  22. package/dist/protocol/messages/sandboxToHost.d.ts.map +1 -1
  23. package/dist/react/useDataSource.d.ts +1 -1
  24. package/dist/react/useDataSource.d.ts.map +1 -1
  25. package/dist/react/useDataSource.js +11 -6
  26. package/dist/types.d.ts +52 -0
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/version.js +1 -1
  29. package/docs/data-sources.md +51 -3
  30. package/package.json +1 -1
  31. package/src/bridge/SandboxBridge.ts +66 -57
  32. package/src/bridge/dataSources/query.ts +694 -0
  33. package/src/bridge/hostState.ts +11 -3
  34. package/src/bridge/sandboxClient.ts +20 -4
  35. package/src/react/useDataSource.ts +17 -6
  36. package/src/types.ts +55 -0
@@ -65,8 +65,10 @@ export declare class SandboxBridge {
65
65
  * iframe covered throughout this frame, so it can apply the measured height before first paint.
66
66
  */
67
67
  private scheduleInitResult;
68
- queryDataSource(key: string, options?: UseDataSourceOptions): void;
68
+ createDataSourceSubscriptionId(): string;
69
+ queryDataSource(subscriptionId: string, key: string, options?: UseDataSourceOptions): void;
69
70
  private setDataSourceQueryError;
71
+ releaseDataSourceSubscription(subscriptionId: string): void;
70
72
  postResize(height: number): void;
71
73
  createPage(args: CreatePageArgs): Promise<CreatePageResult>;
72
74
  getPage(pageId: NotionPageId): Promise<GetPageResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxBridge.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/SandboxBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SandboxBridge.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/SandboxBridge.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import * as v from "valibot";
7
7
  import { unreachable } from "../utils.js";
8
8
  import { CUSTOM_BLOCKS_SDK_VERSION } from "../version.js";
9
9
  import { NOTION_DARK_BACKGROUND_BASE, NOTION_LIGHT_BACKGROUND_BASE, } from "./appearance.js";
10
+ import { resolveDataSourceQuery } from "./dataSources/query.js";
10
11
  import { resolveDataSources } from "./dataSources/resolve.js";
11
12
  import { resolvePropertyWriteMapForDataSource } from "./dataSources/resolveProperty.js";
12
13
  import { createEmptyDataSourceQueryState, } from "./hostState.js";
@@ -169,12 +170,12 @@ export class SandboxBridge {
169
170
  nextBindings,
170
171
  });
171
172
  this.latestDataSourceBindings = nextBindings;
172
- // Drop cached query state for keys that no longer exist in the mapping.
173
+ // Drop cached query state for subscriptions whose key no longer exists.
173
174
  const nextKeys = new Set(dataSources.map(s => s.key));
174
175
  const prunedState = {};
175
- for (const [key, state] of Object.entries(hostState.dataSourceState)) {
176
- if (nextKeys.has(key)) {
177
- prunedState[key] = state;
176
+ for (const [subscriptionId, state] of Object.entries(hostState.dataSourceState)) {
177
+ if (nextKeys.has(state.dataSourceKey)) {
178
+ prunedState[subscriptionId] = state;
178
179
  }
179
180
  }
180
181
  this.hostState = {
@@ -231,11 +232,10 @@ export class SandboxBridge {
231
232
  return;
232
233
  }
233
234
  case "queryDataSourceResult": {
234
- const queryEntry = Object.entries(hostState.dataSourceState).find(([, state]) => state.subscriptionId === message.subscriptionId);
235
- if (queryEntry === undefined) {
235
+ const currentState = hostState.dataSourceState[message.subscriptionId];
236
+ if (currentState === undefined) {
236
237
  return;
237
238
  }
238
- const [key, currentState] = queryEntry;
239
239
  const queryResult = message.status === "error"
240
240
  ? {
241
241
  items: [],
@@ -251,13 +251,14 @@ export class SandboxBridge {
251
251
  ...hostState,
252
252
  dataSourceState: {
253
253
  ...hostState.dataSourceState,
254
- [key]: {
254
+ [message.subscriptionId]: {
255
+ dataSourceKey: currentState.dataSourceKey,
255
256
  items: queryResult.items,
256
257
  isLoading: false,
257
258
  hasMore: queryResult.hasMore,
258
259
  error: queryResult.error,
259
- subscriptionId: message.subscriptionId,
260
260
  latestLimit: currentState.latestLimit,
261
+ latestQueryIdentity: currentState.latestQueryIdentity,
261
262
  },
262
263
  },
263
264
  };
@@ -512,14 +513,20 @@ export class SandboxBridge {
512
513
  requestAnimationFrame(acknowledge);
513
514
  }
514
515
  }
515
- queryDataSource(key, options = {}) {
516
+ createDataSourceSubscriptionId() {
517
+ return `data-source:${globalThis.crypto.randomUUID()}`;
518
+ }
519
+ queryDataSource(subscriptionId, key, options = {}) {
516
520
  if (this.hostState.status !== "initialized") {
517
521
  return;
518
522
  }
519
523
  const dataSource = this.hostState.dataSources.find(entry => entry.key === key);
520
- const currentState = this.hostState.dataSourceState[key] ?? createEmptyDataSourceQueryState();
524
+ const subscriptionState = this.hostState.dataSourceState[subscriptionId];
525
+ const currentState = subscriptionState?.dataSourceKey === key
526
+ ? subscriptionState
527
+ : createEmptyDataSourceQueryState(key);
521
528
  if (dataSource === undefined) {
522
- this.setDataSourceQueryError(key, currentState, {
529
+ this.setDataSourceQueryError(subscriptionId, currentState, {
523
530
  code: "unknown_data_source_key",
524
531
  message: `Unknown data source key "${key}". Known keys: [${this.hostState.dataSources.map(entry => entry.key).join(", ")}].`,
525
532
  isRetryable: false,
@@ -527,32 +534,42 @@ export class SandboxBridge {
527
534
  return;
528
535
  }
529
536
  if (dataSource.collectionPointer === undefined) {
530
- this.setDataSourceQueryError(key, currentState, {
537
+ this.setDataSourceQueryError(subscriptionId, currentState, {
531
538
  code: "unmapped_data_source",
532
539
  message: `Data source "${key}" has not been mapped to a database yet.`,
533
540
  isRetryable: false,
534
541
  });
535
542
  return;
536
543
  }
537
- const limit = resolveDataSourceQueryLimit(options.limit);
538
- const subscriptionId = makeDataSourceSubscriptionId({
544
+ const resolvedQuery = resolveDataSourceQuery({
545
+ dataSources: this.hostState.dataSources,
539
546
  key,
547
+ options,
540
548
  });
549
+ if (resolvedQuery.status === "error") {
550
+ this.setDataSourceQueryError(subscriptionId, currentState, {
551
+ code: "invalid_data_source_query",
552
+ message: resolvedQuery.error,
553
+ isRetryable: false,
554
+ });
555
+ return;
556
+ }
557
+ const query = resolvedQuery.query;
541
558
  if (currentState.isLoading &&
542
- currentState.subscriptionId === subscriptionId &&
543
- currentState.latestLimit === limit) {
559
+ currentState.latestQueryIdentity === query.identity) {
544
560
  return;
545
561
  }
546
562
  this.hostState = {
547
563
  ...this.hostState,
548
564
  dataSourceState: {
549
565
  ...this.hostState.dataSourceState,
550
- [key]: {
566
+ [subscriptionId]: {
551
567
  ...currentState,
568
+ dataSourceKey: key,
552
569
  isLoading: true,
553
570
  error: undefined,
554
- subscriptionId,
555
- latestLimit: limit,
571
+ latestLimit: query.limit,
572
+ latestQueryIdentity: query.identity,
556
573
  },
557
574
  },
558
575
  };
@@ -560,12 +577,14 @@ export class SandboxBridge {
560
577
  const outbound = {
561
578
  type: "queryDataSource",
562
579
  subscriptionId,
563
- dataSourceId: dataSource.collectionPointer.id,
564
- limit,
580
+ dataSourceId: query.dataSourceId,
581
+ limit: query.limit,
582
+ ...(query.filter !== undefined ? { filter: query.filter } : {}),
583
+ ...(query.sorts !== undefined ? { sorts: query.sorts } : {}),
565
584
  };
566
585
  this.postToHost(outbound);
567
586
  }
568
- setDataSourceQueryError(key, currentState, error) {
587
+ setDataSourceQueryError(subscriptionId, currentState, error) {
569
588
  if (this.hostState.status !== "initialized") {
570
589
  return;
571
590
  }
@@ -573,17 +592,28 @@ export class SandboxBridge {
573
592
  ...this.hostState,
574
593
  dataSourceState: {
575
594
  ...this.hostState.dataSourceState,
576
- [key]: {
595
+ [subscriptionId]: {
577
596
  ...currentState,
578
597
  isLoading: false,
579
598
  error,
580
- subscriptionId: undefined,
581
599
  latestLimit: undefined,
600
+ latestQueryIdentity: undefined,
582
601
  },
583
602
  },
584
603
  };
585
604
  this.notify();
586
605
  }
606
+ releaseDataSourceSubscription(subscriptionId) {
607
+ if (this.hostState.status !== "initialized" ||
608
+ this.hostState.dataSourceState[subscriptionId] === undefined) {
609
+ return;
610
+ }
611
+ const { [subscriptionId]: _, ...dataSourceState } = this.hostState.dataSourceState;
612
+ this.hostState = {
613
+ ...this.hostState,
614
+ dataSourceState,
615
+ };
616
+ }
587
617
  postResize(height) {
588
618
  if (typeof window === "undefined") {
589
619
  return;
@@ -833,28 +863,6 @@ function reuseDataSourcesForUnchangedBindings(args) {
833
863
  return dataSource;
834
864
  });
835
865
  }
836
- // The default number of items to return in a live snapshot response if no limit is provided.
837
- const DEFAULT_DATA_SOURCE_QUERY_LIMIT = 20;
838
- // The maximum number of items to return in a single live snapshot response.
839
- const MAX_DATA_SOURCE_QUERY_LIMIT = 999;
840
- function resolveDataSourceQueryLimit(limit) {
841
- if (limit === undefined) {
842
- return DEFAULT_DATA_SOURCE_QUERY_LIMIT;
843
- }
844
- if (!Number.isFinite(limit) || !Number.isInteger(limit) || limit < 1) {
845
- console.warn(`[custom-blocks-sdk] useDataSource limit must be a positive integer; using ${DEFAULT_DATA_SOURCE_QUERY_LIMIT}.`);
846
- return DEFAULT_DATA_SOURCE_QUERY_LIMIT;
847
- }
848
- if (limit > MAX_DATA_SOURCE_QUERY_LIMIT) {
849
- console.warn(`[custom-blocks-sdk] useDataSource limit is capped at ${MAX_DATA_SOURCE_QUERY_LIMIT}.`);
850
- return MAX_DATA_SOURCE_QUERY_LIMIT;
851
- }
852
- return limit;
853
- }
854
- function makeDataSourceSubscriptionId(args) {
855
- const { key } = args;
856
- return `data-source:${encodeURIComponent(key)}`;
857
- }
858
866
  function invalidInitPayloadError(issues) {
859
867
  return {
860
868
  code: "invalid_init_payload",
@@ -0,0 +1,27 @@
1
+ import type { NotionDataSource } from "../../protocol/dataSources/dataSource.js";
2
+ import type { NotionDataSourceId } from "../../protocol/ids.js";
3
+ import { type ResolvedCustomBlockDataSourceFilter, type ResolvedCustomBlockDataSourceSort } from "../../protocol/messages/queryDataSource.js";
4
+ import type { UseDataSourceOptions } from "../../types.js";
5
+ export type ResolvedDataSourceQuery = {
6
+ dataSourceId: NotionDataSourceId;
7
+ limit: number;
8
+ filter?: ResolvedCustomBlockDataSourceFilter;
9
+ sorts?: ResolvedCustomBlockDataSourceSort[];
10
+ identity: string;
11
+ };
12
+ export type ResolveDataSourceQueryResult = {
13
+ status: "error";
14
+ error: string;
15
+ } | {
16
+ status: "ok";
17
+ dataSource: NotionDataSource;
18
+ query: ResolvedDataSourceQuery;
19
+ };
20
+ export declare function resolveDataSourceQuery(args: {
21
+ dataSources: NotionDataSource[];
22
+ key: string;
23
+ options?: unknown;
24
+ warn?: (message: string) => void;
25
+ }): ResolveDataSourceQueryResult;
26
+ export declare function getDataSourceQueryOptionsIdentity(options: UseDataSourceOptions | undefined): string;
27
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/dataSources/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAA;AAElG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAQN,KAAK,mCAAmC,EAExC,KAAK,iCAAiC,EACtC,MAAM,8DAA8D,CAAA;AAErE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAU1D,MAAM,MAAM,uBAAuB,GAAG;IACrC,YAAY,EAAE,kBAAkB,CAAA;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,mCAAmC,CAAA;IAC5C,KAAK,CAAC,EAAE,iCAAiC,EAAE,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,4BAA4B,GACrC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IACA,MAAM,EAAE,IAAI,CAAA;IACZ,UAAU,EAAE,gBAAgB,CAAA;IAC5B,KAAK,EAAE,uBAAuB,CAAA;CAC7B,CAAA;AAYJ,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,GAAG,4BAA4B,CAmD/B;AAiFD,wBAAgB,iCAAiC,CAChD,OAAO,EAAE,oBAAoB,GAAG,SAAS,GACvC,MAAM,CAMR"}