@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.
Files changed (139) hide show
  1. package/README.md +2 -4
  2. package/dist/autoResize.d.ts.map +1 -1
  3. package/dist/bridge/SandboxBridge.d.ts +1 -0
  4. package/dist/bridge/SandboxBridge.d.ts.map +1 -1
  5. package/dist/bridge/SandboxBridge.js +256 -221
  6. package/dist/bridge/appearance.d.ts.map +1 -1
  7. package/dist/bridge/dataSources/query.d.ts +2 -1
  8. package/dist/bridge/dataSources/query.d.ts.map +1 -1
  9. package/dist/bridge/dataSources/query.js +296 -161
  10. package/dist/bridge/dataSources/resolve.d.ts.map +1 -1
  11. package/dist/bridge/dataSources/resolveProperty.d.ts.map +1 -1
  12. package/dist/bridge/hostState.d.ts.map +1 -1
  13. package/dist/bridge/loadManifest.d.ts.map +1 -1
  14. package/dist/bridge/pendingRequests.d.ts.map +1 -1
  15. package/dist/bridge/sandboxClient.d.ts.map +1 -1
  16. package/dist/customBlock.d.ts.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/init.d.ts.map +1 -1
  19. package/dist/init.js +1 -1
  20. package/dist/protocol/contrast.d.ts +0 -1
  21. package/dist/protocol/dataSources/dataSource.d.ts +0 -1
  22. package/dist/protocol/dataSources/dataSourcePage.d.ts +0 -1
  23. package/dist/protocol/dataSources/dataSourceValue.d.ts +0 -1
  24. package/dist/protocol/dataSources/dateValue.d.ts +0 -1
  25. package/dist/protocol/dataSources/errors.d.ts +0 -1
  26. package/dist/protocol/dataSources/propertySchema.d.ts +7 -1
  27. package/dist/protocol/dataSources/propertySchema.js +17 -0
  28. package/dist/protocol/dataSources/recordPointer.d.ts +0 -1
  29. package/dist/protocol/errors.d.ts +0 -1
  30. package/dist/protocol/ids.d.ts +0 -1
  31. package/dist/protocol/incomingType.d.ts +0 -1
  32. package/dist/protocol/index.d.ts +0 -1
  33. package/dist/protocol/manifest.d.ts +0 -1
  34. package/dist/protocol/messagePayload.d.ts +0 -1
  35. package/dist/protocol/messages/connect.d.ts +0 -1
  36. package/dist/protocol/messages/contrastModeChanged.d.ts +0 -1
  37. package/dist/protocol/messages/createPage.d.ts +0 -1
  38. package/dist/protocol/messages/createPage.js +0 -1
  39. package/dist/protocol/messages/createPageResult.d.ts +0 -1
  40. package/dist/protocol/messages/currentUserChanged.d.ts +0 -1
  41. package/dist/protocol/messages/dataSourcesChanged.d.ts +0 -1
  42. package/dist/protocol/messages/getPage.d.ts +0 -1
  43. package/dist/protocol/messages/getUser.d.ts +0 -1
  44. package/dist/protocol/messages/hostToSandbox.d.ts +3 -1
  45. package/dist/protocol/messages/init.d.ts +0 -1
  46. package/dist/protocol/messages/initResult.d.ts +0 -1
  47. package/dist/protocol/messages/invalidHostMessage.d.ts +0 -1
  48. package/dist/protocol/messages/invalidSandboxMessage.d.ts +0 -1
  49. package/dist/protocol/messages/listUsers.d.ts +0 -1
  50. package/dist/protocol/messages/pageChanged.d.ts +0 -1
  51. package/dist/protocol/messages/parentChanged.d.ts +0 -1
  52. package/dist/protocol/messages/queryDataSource.d.ts +15 -1
  53. package/dist/protocol/messages/queryDataSource.js +8 -0
  54. package/dist/protocol/messages/queryDataSourceResult.d.ts +1 -2
  55. package/dist/protocol/messages/resize.d.ts +0 -1
  56. package/dist/protocol/messages/sandboxToHost.d.ts +4 -1
  57. package/dist/protocol/messages/themeChanged.d.ts +0 -1
  58. package/dist/protocol/messages/updatePage.d.ts +0 -1
  59. package/dist/protocol/messages/updatePageResult.d.ts +0 -1
  60. package/dist/protocol/pages/page.d.ts +0 -1
  61. package/dist/protocol/pages/page.js +0 -1
  62. package/dist/protocol/parent.d.ts +0 -1
  63. package/dist/protocol/protocolVersion.d.ts +0 -1
  64. package/dist/protocol/theme.d.ts +0 -1
  65. package/dist/protocol/users/user.d.ts +0 -1
  66. package/dist/react/DebugMessageLog.d.ts.map +1 -1
  67. package/dist/react/NotionCustomBlock.css +0 -11
  68. package/dist/react/NotionCustomBlock.d.ts.map +1 -1
  69. package/dist/react/NotionCustomBlock.js +14 -3
  70. package/dist/react/NotionTokenScope.d.ts.map +1 -1
  71. package/dist/react/index.d.ts.map +1 -1
  72. package/dist/react/standalonePreview.d.ts.map +1 -1
  73. package/dist/react/useCustomBlockAutoResize.d.ts.map +1 -1
  74. package/dist/react/useCustomBlockInit.d.ts.map +1 -1
  75. package/dist/react/useDataSource.d.ts +1 -1
  76. package/dist/react/useDataSource.d.ts.map +1 -1
  77. package/dist/react/useDataSource.js +1 -1
  78. package/dist/react/useHostState.d.ts.map +1 -1
  79. package/dist/react/useRuntimeState.d.ts.map +1 -1
  80. package/dist/testing.d.ts +17 -0
  81. package/dist/testing.d.ts.map +1 -0
  82. package/dist/testing.js +13 -0
  83. package/dist/types.d.ts +7 -0
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/utils.d.ts.map +1 -1
  86. package/dist/version.d.ts.map +1 -1
  87. package/dist/version.js +1 -1
  88. package/docs/data-sources.md +13 -1
  89. package/package.json +5 -6
  90. package/src/bridge/SandboxBridge.ts +49 -5
  91. package/src/bridge/dataSources/query.ts +394 -170
  92. package/src/init.ts +2 -1
  93. package/src/react/NotionCustomBlock.css +0 -11
  94. package/src/react/NotionCustomBlock.tsx +28 -10
  95. package/src/react/useDataSource.ts +1 -1
  96. package/src/testing.ts +26 -0
  97. package/src/types.ts +8 -1
  98. package/dist/protocol/contrast.d.ts.map +0 -1
  99. package/dist/protocol/dataSources/dataSource.d.ts.map +0 -1
  100. package/dist/protocol/dataSources/dataSourcePage.d.ts.map +0 -1
  101. package/dist/protocol/dataSources/dataSourceValue.d.ts.map +0 -1
  102. package/dist/protocol/dataSources/dateValue.d.ts.map +0 -1
  103. package/dist/protocol/dataSources/errors.d.ts.map +0 -1
  104. package/dist/protocol/dataSources/propertySchema.d.ts.map +0 -1
  105. package/dist/protocol/dataSources/recordPointer.d.ts.map +0 -1
  106. package/dist/protocol/errors.d.ts.map +0 -1
  107. package/dist/protocol/ids.d.ts.map +0 -1
  108. package/dist/protocol/incomingType.d.ts.map +0 -1
  109. package/dist/protocol/index.d.ts.map +0 -1
  110. package/dist/protocol/manifest.d.ts.map +0 -1
  111. package/dist/protocol/messagePayload.d.ts.map +0 -1
  112. package/dist/protocol/messages/connect.d.ts.map +0 -1
  113. package/dist/protocol/messages/contrastModeChanged.d.ts.map +0 -1
  114. package/dist/protocol/messages/createPage.d.ts.map +0 -1
  115. package/dist/protocol/messages/createPageResult.d.ts.map +0 -1
  116. package/dist/protocol/messages/currentUserChanged.d.ts.map +0 -1
  117. package/dist/protocol/messages/dataSourcesChanged.d.ts.map +0 -1
  118. package/dist/protocol/messages/getPage.d.ts.map +0 -1
  119. package/dist/protocol/messages/getUser.d.ts.map +0 -1
  120. package/dist/protocol/messages/hostToSandbox.d.ts.map +0 -1
  121. package/dist/protocol/messages/init.d.ts.map +0 -1
  122. package/dist/protocol/messages/initResult.d.ts.map +0 -1
  123. package/dist/protocol/messages/invalidHostMessage.d.ts.map +0 -1
  124. package/dist/protocol/messages/invalidSandboxMessage.d.ts.map +0 -1
  125. package/dist/protocol/messages/listUsers.d.ts.map +0 -1
  126. package/dist/protocol/messages/pageChanged.d.ts.map +0 -1
  127. package/dist/protocol/messages/parentChanged.d.ts.map +0 -1
  128. package/dist/protocol/messages/queryDataSource.d.ts.map +0 -1
  129. package/dist/protocol/messages/queryDataSourceResult.d.ts.map +0 -1
  130. package/dist/protocol/messages/resize.d.ts.map +0 -1
  131. package/dist/protocol/messages/sandboxToHost.d.ts.map +0 -1
  132. package/dist/protocol/messages/themeChanged.d.ts.map +0 -1
  133. package/dist/protocol/messages/updatePage.d.ts.map +0 -1
  134. package/dist/protocol/messages/updatePageResult.d.ts.map +0 -1
  135. package/dist/protocol/pages/page.d.ts.map +0 -1
  136. package/dist/protocol/parent.d.ts.map +0 -1
  137. package/dist/protocol/protocolVersion.d.ts.map +0 -1
  138. package/dist/protocol/theme.d.ts.map +0 -1
  139. 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`
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4DAA4D,CAAA;AACxG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iEAAiE,CAAA;AAC5G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAA;AAC1G,OAAO,KAAK,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,yCAAyC,CAAA;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AAC9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAA;AACvG,OAAO,KAAK,EACX,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,+DAA+D,CAAA;AACtE,OAAO,KAAK,EACX,2BAA2B,EAC3B,oBAAoB,EACpB,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,EACX,2BAA2B,EAC3B,oBAAoB,EACpB,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,EACX,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,EACtB,MAAM,wDAAwD,CAAA;AAC/D,OAAO,KAAK,EACX,iCAAiC,EACjC,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,6BAA6B,EAC7B,MAAM,8DAA8D,CAAA;AACrE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,oEAAoE,CAAA;AAC7H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,OAAO,KAAK,EACX,8BAA8B,EAC9B,uBAAuB,EACvB,MAAM,+DAA+D,CAAA;AACtE,OAAO,KAAK,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,MAAM,gDAAgD,CAAA;AAEvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,YAAY,EACX,kBAAkB,EAClB,aAAa,GACb,MAAM,yCAAyC,CAAA;AAChD,YAAY,EACX,UAAU,EACV,YAAY,EACZ,cAAc,GACd,MAAM,gDAAgD,CAAA;AACvD,YAAY,EACX,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,mCAAmC,EACnC,8BAA8B,GAC9B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GACvC,uBAAuB,SAAS,MAAM,aAAa,GAChD,aAAa,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACnC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,KAAK,GACN,KAAK,CAAA;AAET,MAAM,MAAM,0BAA0B,GAAG;IACxC,CAAC,eAAe,EAAE,MAAM,GAAG,4BAA4B,CAAA;CACvD,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,YAAY,CAAA;IAChB;;;;OAIG;IACH,cAAc,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAAA;KAAE,CAAA;IAC3E;;;OAGG;IACH,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAAA;KAAE,CAAA;IACrE;;;OAGG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC3E,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC5C,UAAU,CAAC,EAAE,0BAA0B,CAAA;IACvC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,8BAA8B,CAAA;AAE5E;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,gBAAgB,CAAA;AAE/D,MAAM,MAAM,kCAAkC,GAAG,6BAA6B,CAAA;AAC9E,MAAM,MAAM,oCAAoC,GAC/C,+BAA+B,CAAA;AAChC,MAAM,MAAM,sCAAsC,GACjD,iCAAiC,CAAA;AAClC,MAAM,MAAM,oCAAoC,GAC/C,+BAA+B,CAAA;AAChC,MAAM,MAAM,sCAAsC,GACjD,iCAAiC,CAAA;AAClC,MAAM,MAAM,kCAAkC,GAAG,6BAA6B,CAAA;AAE9E,MAAM,MAAM,+BAA+B,GACxC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACnC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEtC,MAAM,MAAM,8BAA8B,GAAG,+BAA+B,GAC3E,CACG;IAAE,KAAK,EAAE,kCAAkC,CAAA;CAAE,GAC7C;IAAE,SAAS,EAAE,kCAAkC,CAAA;CAAE,GACjD;IAAE,GAAG,EAAE,kCAAkC,CAAA;CAAE,GAC3C;IAAE,KAAK,EAAE,kCAAkC,CAAA;CAAE,GAC7C;IAAE,YAAY,EAAE,kCAAkC,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,GAChD;IAAE,QAAQ,EAAE,sCAAsC,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,GAChD;IAAE,YAAY,EAAE,sCAAsC,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,kCAAkC,CAAA;CAAE,CAC9C,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,+BAA+B,GAAG;IACpE,SAAS,EAAE,WAAW,GAAG,YAAY,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAC/B,8BAA8B,GAC9B;IAAE,GAAG,EAAE,8BAA8B,EAAE,CAAA;CAAE,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,oBAAoB,EAAE,CAAA;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC;;;OAGG;IACH,mBAAmB,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAA;IACnE;;;OAGG;IACH,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACvD;;;;OAIG;IACH,oBAAoB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAA;KAAE,CAAA;IACzE,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,mCAAmC,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAC9B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,cAAc,EAAE,kBAAkB,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,EAAE,0BAA0B,CAAA;IACtC,QAAQ,CAAC,EAAE,wBAAwB,CAAA;CACnC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,CAAA;AAE5C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAClD,uBAAuB,EACvB,8BAA8B,CAC9B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAA;AAE1E;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,CAAA;AAE5C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAC/C,oBAAoB,EACpB,2BAA2B,CAC3B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAClD,uBAAuB,EACvB,8BAA8B,CAC9B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAA;AAExE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,CAAA;AAE1C,MAAM,MAAM,eAAe,GAAG,oBAAoB,CACjD,sBAAsB,EACtB,6BAA6B,CAC7B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAC/C,oBAAoB,EACpB,2BAA2B,CAC3B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAI/C"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAgB,CAAA"}
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
@@ -4,4 +4,4 @@
4
4
  *
5
5
  * WARNING: Generated during SDK publish. Do not edit in the published package.
6
6
  */
7
- export const CUSTOM_BLOCKS_SDK_VERSION = "0.1.34"
7
+ export const CUSTOM_BLOCKS_SDK_VERSION = "0.1.36"
@@ -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 `filter?: NotionDataSourceFilter`.
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.34",
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 { hostToSandboxMessageSchema } from "@notionhq/custom-blocks-protocol/messages/hostToSandbox.js"
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.logMessage("received", event.data)
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, event.data)
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(event.data)
304
+ const incomingType = readIncomingType(data)
262
305
  if (
263
306
  !this.hasReceivedInit &&
264
307
  incomingType === "init" &&
265
308
  this.initializationId !== undefined &&
266
- readInitializationId(event.data) === this.initializationId
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
  }