@notionhq/custom-blocks 0.1.35 → 0.1.37

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 (132) hide show
  1. package/README.md +2 -4
  2. package/bin/notion-custom-blocks/build.js +26 -4
  3. package/bin/notion-custom-blocks/cli.js +2 -1
  4. package/dist/autoResize.d.ts.map +1 -1
  5. package/dist/bridge/SandboxBridge.d.ts +1 -0
  6. package/dist/bridge/SandboxBridge.d.ts.map +1 -1
  7. package/dist/bridge/SandboxBridge.js +255 -221
  8. package/dist/bridge/appearance.d.ts.map +1 -1
  9. package/dist/bridge/dataSources/query.d.ts.map +1 -1
  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 +0 -1
  27. package/dist/protocol/dataSources/recordPointer.d.ts +0 -1
  28. package/dist/protocol/errors.d.ts +0 -1
  29. package/dist/protocol/ids.d.ts +0 -1
  30. package/dist/protocol/incomingType.d.ts +0 -1
  31. package/dist/protocol/index.d.ts +0 -1
  32. package/dist/protocol/manifest.d.ts +0 -1
  33. package/dist/protocol/messagePayload.d.ts +0 -1
  34. package/dist/protocol/messages/connect.d.ts +0 -1
  35. package/dist/protocol/messages/contrastModeChanged.d.ts +0 -1
  36. package/dist/protocol/messages/createPage.d.ts +0 -1
  37. package/dist/protocol/messages/createPage.js +0 -1
  38. package/dist/protocol/messages/createPageResult.d.ts +0 -1
  39. package/dist/protocol/messages/currentUserChanged.d.ts +0 -1
  40. package/dist/protocol/messages/dataSourcesChanged.d.ts +0 -1
  41. package/dist/protocol/messages/getPage.d.ts +0 -1
  42. package/dist/protocol/messages/getUser.d.ts +0 -1
  43. package/dist/protocol/messages/hostToSandbox.d.ts +3 -1
  44. package/dist/protocol/messages/init.d.ts +0 -1
  45. package/dist/protocol/messages/initResult.d.ts +0 -1
  46. package/dist/protocol/messages/invalidHostMessage.d.ts +0 -1
  47. package/dist/protocol/messages/invalidSandboxMessage.d.ts +0 -1
  48. package/dist/protocol/messages/listUsers.d.ts +0 -1
  49. package/dist/protocol/messages/pageChanged.d.ts +0 -1
  50. package/dist/protocol/messages/parentChanged.d.ts +0 -1
  51. package/dist/protocol/messages/queryDataSource.d.ts +0 -1
  52. package/dist/protocol/messages/queryDataSourceResult.d.ts +0 -1
  53. package/dist/protocol/messages/resize.d.ts +0 -1
  54. package/dist/protocol/messages/sandboxToHost.d.ts +0 -1
  55. package/dist/protocol/messages/themeChanged.d.ts +0 -1
  56. package/dist/protocol/messages/updatePage.d.ts +0 -1
  57. package/dist/protocol/messages/updatePageResult.d.ts +0 -1
  58. package/dist/protocol/pages/page.d.ts +0 -1
  59. package/dist/protocol/pages/page.js +0 -1
  60. package/dist/protocol/parent.d.ts +0 -1
  61. package/dist/protocol/protocolVersion.d.ts +0 -1
  62. package/dist/protocol/theme.d.ts +0 -1
  63. package/dist/protocol/users/user.d.ts +0 -1
  64. package/dist/react/DebugMessageLog.d.ts.map +1 -1
  65. package/dist/react/NotionCustomBlock.css +0 -11
  66. package/dist/react/NotionCustomBlock.d.ts.map +1 -1
  67. package/dist/react/NotionCustomBlock.js +14 -3
  68. package/dist/react/NotionTokenScope.d.ts.map +1 -1
  69. package/dist/react/index.d.ts.map +1 -1
  70. package/dist/react/standalonePreview.d.ts.map +1 -1
  71. package/dist/react/useCustomBlockAutoResize.d.ts.map +1 -1
  72. package/dist/react/useCustomBlockInit.d.ts.map +1 -1
  73. package/dist/react/useDataSource.d.ts.map +1 -1
  74. package/dist/react/useHostState.d.ts.map +1 -1
  75. package/dist/react/useRuntimeState.d.ts.map +1 -1
  76. package/dist/testing.d.ts +17 -0
  77. package/dist/testing.d.ts.map +1 -0
  78. package/dist/testing.js +13 -0
  79. package/dist/types.d.ts.map +1 -1
  80. package/dist/utils.d.ts.map +1 -1
  81. package/dist/version.d.ts.map +1 -1
  82. package/dist/version.js +1 -1
  83. package/docs/deployment.md +11 -0
  84. package/package.json +5 -6
  85. package/src/bridge/SandboxBridge.ts +48 -5
  86. package/src/init.ts +2 -1
  87. package/src/react/NotionCustomBlock.css +0 -11
  88. package/src/react/NotionCustomBlock.tsx +28 -10
  89. package/src/testing.ts +26 -0
  90. package/src/types.ts +0 -1
  91. package/dist/protocol/contrast.d.ts.map +0 -1
  92. package/dist/protocol/dataSources/dataSource.d.ts.map +0 -1
  93. package/dist/protocol/dataSources/dataSourcePage.d.ts.map +0 -1
  94. package/dist/protocol/dataSources/dataSourceValue.d.ts.map +0 -1
  95. package/dist/protocol/dataSources/dateValue.d.ts.map +0 -1
  96. package/dist/protocol/dataSources/errors.d.ts.map +0 -1
  97. package/dist/protocol/dataSources/propertySchema.d.ts.map +0 -1
  98. package/dist/protocol/dataSources/recordPointer.d.ts.map +0 -1
  99. package/dist/protocol/errors.d.ts.map +0 -1
  100. package/dist/protocol/ids.d.ts.map +0 -1
  101. package/dist/protocol/incomingType.d.ts.map +0 -1
  102. package/dist/protocol/index.d.ts.map +0 -1
  103. package/dist/protocol/manifest.d.ts.map +0 -1
  104. package/dist/protocol/messagePayload.d.ts.map +0 -1
  105. package/dist/protocol/messages/connect.d.ts.map +0 -1
  106. package/dist/protocol/messages/contrastModeChanged.d.ts.map +0 -1
  107. package/dist/protocol/messages/createPage.d.ts.map +0 -1
  108. package/dist/protocol/messages/createPageResult.d.ts.map +0 -1
  109. package/dist/protocol/messages/currentUserChanged.d.ts.map +0 -1
  110. package/dist/protocol/messages/dataSourcesChanged.d.ts.map +0 -1
  111. package/dist/protocol/messages/getPage.d.ts.map +0 -1
  112. package/dist/protocol/messages/getUser.d.ts.map +0 -1
  113. package/dist/protocol/messages/hostToSandbox.d.ts.map +0 -1
  114. package/dist/protocol/messages/init.d.ts.map +0 -1
  115. package/dist/protocol/messages/initResult.d.ts.map +0 -1
  116. package/dist/protocol/messages/invalidHostMessage.d.ts.map +0 -1
  117. package/dist/protocol/messages/invalidSandboxMessage.d.ts.map +0 -1
  118. package/dist/protocol/messages/listUsers.d.ts.map +0 -1
  119. package/dist/protocol/messages/pageChanged.d.ts.map +0 -1
  120. package/dist/protocol/messages/parentChanged.d.ts.map +0 -1
  121. package/dist/protocol/messages/queryDataSource.d.ts.map +0 -1
  122. package/dist/protocol/messages/queryDataSourceResult.d.ts.map +0 -1
  123. package/dist/protocol/messages/resize.d.ts.map +0 -1
  124. package/dist/protocol/messages/sandboxToHost.d.ts.map +0 -1
  125. package/dist/protocol/messages/themeChanged.d.ts.map +0 -1
  126. package/dist/protocol/messages/updatePage.d.ts.map +0 -1
  127. package/dist/protocol/messages/updatePageResult.d.ts.map +0 -1
  128. package/dist/protocol/pages/page.d.ts.map +0 -1
  129. package/dist/protocol/parent.d.ts.map +0 -1
  130. package/dist/protocol/protocolVersion.d.ts.map +0 -1
  131. package/dist/protocol/theme.d.ts.map +0 -1
  132. package/dist/protocol/users/user.d.ts.map +0 -1
package/README.md CHANGED
@@ -111,7 +111,5 @@ No top-level navigation, `window.open`, or auth redirects. No direct network req
111
111
 
112
112
  ## Bridge protocol
113
113
 
114
- The bridge speaks a versioned `postMessage` protocol, but block authors should
115
- use this package's public APIs rather than send bridge messages directly.
116
- `@notionhq/custom-blocks-protocol` and `@notionhq/custom-blocks-host` are
117
- internal workspace packages and are not available to block authors.
114
+ The SDK communicates with Notion through a versioned `postMessage` protocol.
115
+ Use the SDK's public APIs and exported types. Do not send bridge messages directly.
@@ -15,8 +15,10 @@ const WORKER_ENTRY = "dist/index.js";
15
15
  export async function buildCustomBlocks(args) {
16
16
  const projectRoot = args.cwd ?? process.cwd();
17
17
  const entryPath = path.resolve(projectRoot, WORKER_ENTRY);
18
- const outDir = path.resolve(args.out);
19
- const blocks = await readCustomBlocks(entryPath);
18
+ const outDir = path.resolve(projectRoot, args.out);
19
+ const blocks = args.manifest === undefined
20
+ ? await readCustomBlocks(entryPath)
21
+ : readAppBlocks(path.resolve(projectRoot, args.manifest));
20
22
  if (blocks.length === 0) {
21
23
  return { blocks: [] };
22
24
  }
@@ -24,8 +26,13 @@ export async function buildCustomBlocks(args) {
24
26
  for (const block of blocks) {
25
27
  const bundleDir = path.join(outDir, block.key);
26
28
  buildCustomBlock({ block, projectRoot, bundleDir });
27
- const { checksumCrc32 } = packDirToTarGz(bundleDir);
28
- built.push({ key: block.key, checksumCrc32, bundleDir });
29
+ const { checksumCrc32, tarGz } = packDirToTarGz(bundleDir);
30
+ built.push({
31
+ key: block.key,
32
+ checksumCrc32,
33
+ bundleDir,
34
+ bundleSizeBytes: tarGz.length,
35
+ });
29
36
  }
30
37
  return { blocks: built };
31
38
  }
@@ -185,3 +192,18 @@ function runCommand(key, command, cwd) {
185
192
  throw new Error(`custom_block "${key}" build command "${command}" exited with code ${String(result.status)}`);
186
193
  }
187
194
  }
195
+ /** Read Apps SDK capabilities while retaining the worker manifest config contract. */
196
+ function readAppBlocks(manifestPath) {
197
+ const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
198
+ const capabilities = readProp(manifest, "capabilities");
199
+ if (!Array.isArray(capabilities)) {
200
+ throw new Error(`manifest at ${manifestPath} has no capabilities array`);
201
+ }
202
+ return capabilities.flatMap(capability => {
203
+ const block = asCustomBlock({
204
+ ...capability,
205
+ _tag: readProp(capability, "type") ?? readProp(capability, "_tag"),
206
+ });
207
+ return block ? [block] : [];
208
+ });
209
+ }
@@ -26,7 +26,8 @@ async function runBuild(args) {
26
26
  process.stderr.write("usage: notion-custom-blocks build --out <dir>\n");
27
27
  return 1;
28
28
  }
29
- const output = await buildCustomBlocks({ out });
29
+ const { manifest, cwd } = flags;
30
+ const output = await buildCustomBlocks({ out, manifest, cwd });
30
31
  printBuildOutput(output);
31
32
  return 0;
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"autoResize.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/autoResize.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAA;CACtC,GAAG,MAAM,IAAI,CA4Eb"}
1
+ {"version":3,"file":"autoResize.d.ts","sourceRoot":"","sources":["../src/autoResize.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAA;CACtC,GAAG,MAAM,IAAI,CA4Eb"}
@@ -48,6 +48,7 @@ export declare class SandboxBridge {
48
48
  private getMessageType;
49
49
  private notify;
50
50
  private handleMessage;
51
+ private receiveMessage;
51
52
  subscribe(listener: () => void): () => boolean;
52
53
  getHostState(): CustomBlockHostState;
53
54
  /**
@@ -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":["../../src/bridge/SandboxBridge.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { DEFAULT_CONTRAST_MODE } from "../protocol/contrast.js";
2
2
  import { readIncomingType } from "../protocol/incomingType.js";
3
- import { hostToSandboxMessageSchema } from "../protocol/messages/hostToSandbox.js";
3
+ import { hostToSandboxMessageSchema, } from "../protocol/messages/hostToSandbox.js";
4
4
  import { CustomBlockInitializationError, initMessageSchema, } from "../protocol/messages/init.js";
5
5
  import { CUSTOM_BLOCK_BRIDGE_PROTOCOL_VERSION } from "../protocol/protocolVersion.js";
6
6
  import * as v from "valibot";
7
+ import { globalPrimedResponsesCache } from "../testing.js";
7
8
  import { unreachable } from "../utils.js";
8
9
  import { CUSTOM_BLOCKS_SDK_VERSION } from "../version.js";
9
10
  import { NOTION_DARK_BACKGROUND_BASE, NOTION_LIGHT_BACKGROUND_BASE, } from "./appearance.js";
@@ -12,6 +13,14 @@ import { resolveDataSources } from "./dataSources/resolve.js";
12
13
  import { resolvePropertyWriteMapForDataSource } from "./dataSources/resolveProperty.js";
13
14
  import { createEmptyDataSourceQueryState, } from "./hostState.js";
14
15
  import { PendingRequests } from "./pendingRequests.js";
16
+ const RESPONSE_TYPE_BY_REQUEST = new Map([
17
+ ["getPage", "getPageResult"],
18
+ ["createPage", "createPageResult"],
19
+ ["updatePage", "updatePageResult"],
20
+ ["getUser", "getUserResult"],
21
+ ["listUsers", "listUsersResult"],
22
+ ["queryDataSource", "queryDataSourceResult"],
23
+ ]);
15
24
  const INIT_RESULT_TIMER_FALLBACK_MS = 100;
16
25
  export class SandboxBridge {
17
26
  constructor() {
@@ -49,226 +58,7 @@ export class SandboxBridge {
49
58
  if (event.source !== window.parent) {
50
59
  return;
51
60
  }
52
- this.logMessage("received", event.data);
53
- const parsed = v.safeParse(hostToSandboxMessageSchema, event.data);
54
- if (!parsed.success) {
55
- console.warn("[custom-blocks-sdk] ignoring malformed host message", parsed.issues);
56
- const incomingType = readIncomingType(event.data);
57
- if (!this.hasReceivedInit &&
58
- incomingType === "init" &&
59
- this.initializationId !== undefined &&
60
- readInitializationId(event.data) === this.initializationId) {
61
- this.hasReceivedInit = true;
62
- this.sendInitResultError(invalidInitPayloadError(parsed.issues));
63
- return;
64
- }
65
- // Loop guard: never NACK a NACK. Excludes both directions —
66
- // `invalidSandboxMessage` is what the host normally sends, but
67
- // a buggy host that echoes our own `invalidHostMessage` back
68
- // would otherwise spin a NACK feedback loop.
69
- if (incomingType !== "invalidSandboxMessage" &&
70
- incomingType !== "invalidHostMessage") {
71
- const nack = {
72
- type: "invalidHostMessage",
73
- reason: formatInvalidHostReason(incomingType, parsed.issues),
74
- };
75
- this.postToHost(nack);
76
- }
77
- return;
78
- }
79
- const message = parsed.output;
80
- // If the host couldn't parse one of our outbound sandbox-to-host messages, it sends back
81
- // an `invalidSandboxMessage` NACK with a human-readable `reason`. Log it for developer
82
- // visibility and stop. We don't retry as the sandbox can't recover from a host-side parse
83
- // failure on its own.
84
- if (message.type === "invalidSandboxMessage") {
85
- console.warn("[custom-blocks-sdk] host reported invalid sandbox message:", message.reason);
86
- return;
87
- }
88
- // `init` is the only message valid before initialization. Handle it up
89
- // front so every later case can assume `status === "initialized"`.
90
- if (message.type === "init") {
91
- if (message.initializationId !== this.initializationId) {
92
- console.warn(`[custom-blocks-sdk] ignoring init for unknown initializationId ${message.initializationId}`);
93
- return;
94
- }
95
- if (this.hasReceivedInit) {
96
- console.warn("[custom-blocks-sdk] ignoring duplicate init message");
97
- return;
98
- }
99
- this.hasReceivedInit = true;
100
- this.applyInit(message, true);
101
- return;
102
- }
103
- // Alias to keep TS's narrowed `InitializedHostState` across the switch
104
- // below. Reading `this.hostState` repeatedly would re-widen it.
105
- const hostState = this.hostState;
106
- if (hostState.status !== "initialized") {
107
- console.warn(`[custom-blocks-sdk] ignoring ${message.type} before init`);
108
- return;
109
- }
110
- switch (message.type) {
111
- case "themeChanged": {
112
- this.hostState = {
113
- ...hostState,
114
- theme: message.theme,
115
- };
116
- syncDocumentAppearance({
117
- theme: message.theme,
118
- contrastMode: hostState.contrastMode,
119
- });
120
- this.notify();
121
- return;
122
- }
123
- case "contrastModeChanged": {
124
- this.hostState = {
125
- ...hostState,
126
- contrastMode: message.contrastMode,
127
- };
128
- syncDocumentAppearance({
129
- theme: hostState.theme,
130
- contrastMode: message.contrastMode,
131
- });
132
- this.notify();
133
- return;
134
- }
135
- case "parentChanged": {
136
- this.hostState = {
137
- ...hostState,
138
- parent: message.parent,
139
- };
140
- this.notify();
141
- return;
142
- }
143
- case "pageChanged": {
144
- this.hostState = {
145
- ...hostState,
146
- page: message.page,
147
- };
148
- this.notify();
149
- return;
150
- }
151
- case "currentUserChanged": {
152
- this.hostState = {
153
- ...hostState,
154
- currentUser: message.currentUser,
155
- };
156
- this.notify();
157
- return;
158
- }
159
- case "dataSourcesChanged": {
160
- const nextBindings = message.dataSources.bindings;
161
- const dataSources = reuseDataSourcesForUnchangedBindings({
162
- previousDataSources: hostState.dataSources,
163
- previousBindings: this.latestDataSourceBindings,
164
- nextDataSources: this.isMockState
165
- ? resolveMockDataSources(nextBindings)
166
- : resolveDataSources({
167
- manifest: hostState.manifest,
168
- dataSourceBindings: nextBindings,
169
- }),
170
- nextBindings,
171
- });
172
- this.latestDataSourceBindings = nextBindings;
173
- // Drop cached query state for subscriptions whose key no longer exists.
174
- const nextKeys = new Set(dataSources.map(s => s.key));
175
- const prunedState = {};
176
- for (const [subscriptionId, state] of Object.entries(hostState.dataSourceState)) {
177
- if (nextKeys.has(state.dataSourceKey)) {
178
- prunedState[subscriptionId] = state;
179
- }
180
- }
181
- this.hostState = {
182
- ...hostState,
183
- dataSources,
184
- dataSourceState: prunedState,
185
- };
186
- this.notify();
187
- return;
188
- }
189
- case "createPageResult": {
190
- const result = message.status === "success"
191
- ? { status: "success", page: message.page }
192
- : { status: "error", error: message.error };
193
- if (!this.pendingCreatePage.resolve(message.requestId, result)) {
194
- console.warn(`[custom-blocks-sdk] createPageResult for unknown requestId ${message.requestId}`);
195
- }
196
- return;
197
- }
198
- case "getPageResult": {
199
- const result = message.status === "success"
200
- ? { status: "success", page: message.page }
201
- : { status: "error", error: message.error };
202
- if (!this.pendingGetPage.resolve(message.requestId, result)) {
203
- console.warn(`[custom-blocks-sdk] getPageResult for unknown requestId ${message.requestId}`);
204
- }
205
- return;
206
- }
207
- case "getUserResult": {
208
- const result = message.status === "success"
209
- ? { status: "success", user: message.user }
210
- : { status: "error", error: message.error };
211
- if (!this.pendingGetUser.resolve(message.requestId, result)) {
212
- console.warn(`[custom-blocks-sdk] getUserResult for unknown requestId ${message.requestId}`);
213
- }
214
- return;
215
- }
216
- case "listUsersResult": {
217
- const result = message.status === "success"
218
- ? { status: "success", list: message.list }
219
- : { status: "error", error: message.error };
220
- if (!this.pendingListUsers.resolve(message.requestId, result)) {
221
- console.warn(`[custom-blocks-sdk] listUsersResult for unknown requestId ${message.requestId}`);
222
- }
223
- return;
224
- }
225
- case "updatePageResult": {
226
- const result = message.status === "success"
227
- ? { status: "success", page: message.page }
228
- : { status: "error", error: message.error };
229
- if (!this.pendingUpdatePage.resolve(message.requestId, result)) {
230
- console.warn(`[custom-blocks-sdk] updatePageResult for unknown requestId ${message.requestId}`);
231
- }
232
- return;
233
- }
234
- case "queryDataSourceResult": {
235
- const currentState = hostState.dataSourceState[message.subscriptionId];
236
- if (currentState === undefined) {
237
- return;
238
- }
239
- const queryResult = message.status === "error"
240
- ? {
241
- items: [],
242
- hasMore: false,
243
- error: message.error,
244
- }
245
- : {
246
- items: message.items,
247
- hasMore: message.hasMore,
248
- error: undefined,
249
- };
250
- this.hostState = {
251
- ...hostState,
252
- dataSourceState: {
253
- ...hostState.dataSourceState,
254
- [message.subscriptionId]: {
255
- dataSourceKey: currentState.dataSourceKey,
256
- items: queryResult.items,
257
- isLoading: false,
258
- hasMore: queryResult.hasMore,
259
- error: queryResult.error,
260
- latestLimit: currentState.latestLimit,
261
- latestQueryIdentity: currentState.latestQueryIdentity,
262
- },
263
- },
264
- };
265
- this.notify();
266
- return;
267
- }
268
- default: {
269
- unreachable(message);
270
- }
271
- }
61
+ this.receiveMessage(event.data);
272
62
  };
273
63
  }
274
64
  startListening() {
@@ -361,6 +151,28 @@ export class SandboxBridge {
361
151
  this.sendToHost(message);
362
152
  }
363
153
  sendToHost(message) {
154
+ // Check if the message is a primed response
155
+ const messageType = readIncomingType(message);
156
+ if (messageType !== undefined &&
157
+ typeof message === "object" &&
158
+ message !== null) {
159
+ const responseType = RESPONSE_TYPE_BY_REQUEST.get(messageType);
160
+ const primed = responseType && globalPrimedResponsesCache.get(responseType);
161
+ if (responseType !== undefined && primed !== undefined) {
162
+ globalPrimedResponsesCache.delete(responseType);
163
+ const response = {
164
+ ...primed,
165
+ type: responseType,
166
+ ...("requestId" in message ? { requestId: message.requestId } : {}),
167
+ ...("subscriptionId" in message
168
+ ? { subscriptionId: message.subscriptionId }
169
+ : {}),
170
+ };
171
+ queueMicrotask(() => this.receiveMessage(response));
172
+ return;
173
+ }
174
+ }
175
+ // If no primed response is found, proceed as normal
364
176
  this.logMessage("sent", message);
365
177
  window.parent.postMessage(message, "*");
366
178
  }
@@ -376,6 +188,228 @@ export class SandboxBridge {
376
188
  ? message.type
377
189
  : undefined;
378
190
  }
191
+ receiveMessage(data) {
192
+ this.logMessage("received", data);
193
+ const parsed = v.safeParse(hostToSandboxMessageSchema, data);
194
+ if (!parsed.success) {
195
+ console.warn("[custom-blocks-sdk] ignoring malformed host message", parsed.issues);
196
+ const incomingType = readIncomingType(data);
197
+ if (!this.hasReceivedInit &&
198
+ incomingType === "init" &&
199
+ this.initializationId !== undefined &&
200
+ readInitializationId(data) === this.initializationId) {
201
+ this.hasReceivedInit = true;
202
+ this.sendInitResultError(invalidInitPayloadError(parsed.issues));
203
+ return;
204
+ }
205
+ // Loop guard: never NACK a NACK. Excludes both directions —
206
+ // `invalidSandboxMessage` is what the host normally sends, but
207
+ // a buggy host that echoes our own `invalidHostMessage` back
208
+ // would otherwise spin a NACK feedback loop.
209
+ if (incomingType !== "invalidSandboxMessage" &&
210
+ incomingType !== "invalidHostMessage") {
211
+ const nack = {
212
+ type: "invalidHostMessage",
213
+ reason: formatInvalidHostReason(incomingType, parsed.issues),
214
+ };
215
+ this.postToHost(nack);
216
+ }
217
+ return;
218
+ }
219
+ const message = parsed.output;
220
+ // If the host couldn't parse one of our outbound sandbox-to-host messages, it sends back
221
+ // an `invalidSandboxMessage` NACK with a human-readable `reason`. Log it for developer
222
+ // visibility and stop. We don't retry as the sandbox can't recover from a host-side parse
223
+ // failure on its own.
224
+ if (message.type === "invalidSandboxMessage") {
225
+ console.warn("[custom-blocks-sdk] host reported invalid sandbox message:", message.reason);
226
+ return;
227
+ }
228
+ // `init` is the only message valid before initialization. Handle it up
229
+ // front so every later case can assume `status === "initialized"`.
230
+ if (message.type === "init") {
231
+ if (message.initializationId !== this.initializationId) {
232
+ console.warn(`[custom-blocks-sdk] ignoring init for unknown initializationId ${message.initializationId}`);
233
+ return;
234
+ }
235
+ if (this.hasReceivedInit) {
236
+ console.warn("[custom-blocks-sdk] ignoring duplicate init message");
237
+ return;
238
+ }
239
+ this.hasReceivedInit = true;
240
+ this.applyInit(message, true);
241
+ return;
242
+ }
243
+ // Alias to keep TS's narrowed `InitializedHostState` across the switch
244
+ // below. Reading `this.hostState` repeatedly would re-widen it.
245
+ const hostState = this.hostState;
246
+ if (hostState.status !== "initialized") {
247
+ console.warn(`[custom-blocks-sdk] ignoring ${message.type} before init`);
248
+ return;
249
+ }
250
+ switch (message.type) {
251
+ case "themeChanged": {
252
+ this.hostState = {
253
+ ...hostState,
254
+ theme: message.theme,
255
+ };
256
+ syncDocumentAppearance({
257
+ theme: message.theme,
258
+ contrastMode: hostState.contrastMode,
259
+ });
260
+ this.notify();
261
+ return;
262
+ }
263
+ case "contrastModeChanged": {
264
+ this.hostState = {
265
+ ...hostState,
266
+ contrastMode: message.contrastMode,
267
+ };
268
+ syncDocumentAppearance({
269
+ theme: hostState.theme,
270
+ contrastMode: message.contrastMode,
271
+ });
272
+ this.notify();
273
+ return;
274
+ }
275
+ case "parentChanged": {
276
+ this.hostState = {
277
+ ...hostState,
278
+ parent: message.parent,
279
+ };
280
+ this.notify();
281
+ return;
282
+ }
283
+ case "pageChanged": {
284
+ this.hostState = {
285
+ ...hostState,
286
+ page: message.page,
287
+ };
288
+ this.notify();
289
+ return;
290
+ }
291
+ case "currentUserChanged": {
292
+ this.hostState = {
293
+ ...hostState,
294
+ currentUser: message.currentUser,
295
+ };
296
+ this.notify();
297
+ return;
298
+ }
299
+ case "dataSourcesChanged": {
300
+ const nextBindings = message.dataSources.bindings;
301
+ const dataSources = reuseDataSourcesForUnchangedBindings({
302
+ previousDataSources: hostState.dataSources,
303
+ previousBindings: this.latestDataSourceBindings,
304
+ nextDataSources: this.isMockState
305
+ ? resolveMockDataSources(nextBindings)
306
+ : resolveDataSources({
307
+ manifest: hostState.manifest,
308
+ dataSourceBindings: nextBindings,
309
+ }),
310
+ nextBindings,
311
+ });
312
+ this.latestDataSourceBindings = nextBindings;
313
+ // Drop cached query state for subscriptions whose key no longer exists.
314
+ const nextKeys = new Set(dataSources.map(s => s.key));
315
+ const prunedState = {};
316
+ for (const [subscriptionId, state] of Object.entries(hostState.dataSourceState)) {
317
+ if (nextKeys.has(state.dataSourceKey)) {
318
+ prunedState[subscriptionId] = state;
319
+ }
320
+ }
321
+ this.hostState = {
322
+ ...hostState,
323
+ dataSources,
324
+ dataSourceState: prunedState,
325
+ };
326
+ this.notify();
327
+ return;
328
+ }
329
+ case "createPageResult": {
330
+ const result = message.status === "success"
331
+ ? { status: "success", page: message.page }
332
+ : { status: "error", error: message.error };
333
+ if (!this.pendingCreatePage.resolve(message.requestId, result)) {
334
+ console.warn(`[custom-blocks-sdk] createPageResult for unknown requestId ${message.requestId}`);
335
+ }
336
+ return;
337
+ }
338
+ case "getPageResult": {
339
+ const result = message.status === "success"
340
+ ? { status: "success", page: message.page }
341
+ : { status: "error", error: message.error };
342
+ if (!this.pendingGetPage.resolve(message.requestId, result)) {
343
+ console.warn(`[custom-blocks-sdk] getPageResult for unknown requestId ${message.requestId}`);
344
+ }
345
+ return;
346
+ }
347
+ case "getUserResult": {
348
+ const result = message.status === "success"
349
+ ? { status: "success", user: message.user }
350
+ : { status: "error", error: message.error };
351
+ if (!this.pendingGetUser.resolve(message.requestId, result)) {
352
+ console.warn(`[custom-blocks-sdk] getUserResult for unknown requestId ${message.requestId}`);
353
+ }
354
+ return;
355
+ }
356
+ case "listUsersResult": {
357
+ const result = message.status === "success"
358
+ ? { status: "success", list: message.list }
359
+ : { status: "error", error: message.error };
360
+ if (!this.pendingListUsers.resolve(message.requestId, result)) {
361
+ console.warn(`[custom-blocks-sdk] listUsersResult for unknown requestId ${message.requestId}`);
362
+ }
363
+ return;
364
+ }
365
+ case "updatePageResult": {
366
+ const result = message.status === "success"
367
+ ? { status: "success", page: message.page }
368
+ : { status: "error", error: message.error };
369
+ if (!this.pendingUpdatePage.resolve(message.requestId, result)) {
370
+ console.warn(`[custom-blocks-sdk] updatePageResult for unknown requestId ${message.requestId}`);
371
+ }
372
+ return;
373
+ }
374
+ case "queryDataSourceResult": {
375
+ const currentState = hostState.dataSourceState[message.subscriptionId];
376
+ if (currentState === undefined) {
377
+ return;
378
+ }
379
+ const queryResult = message.status === "error"
380
+ ? {
381
+ items: [],
382
+ hasMore: false,
383
+ error: message.error,
384
+ }
385
+ : {
386
+ items: message.items,
387
+ hasMore: message.hasMore,
388
+ error: undefined,
389
+ };
390
+ this.hostState = {
391
+ ...hostState,
392
+ dataSourceState: {
393
+ ...hostState.dataSourceState,
394
+ [message.subscriptionId]: {
395
+ dataSourceKey: currentState.dataSourceKey,
396
+ items: queryResult.items,
397
+ isLoading: false,
398
+ hasMore: queryResult.hasMore,
399
+ error: queryResult.error,
400
+ latestLimit: currentState.latestLimit,
401
+ latestQueryIdentity: currentState.latestQueryIdentity,
402
+ },
403
+ },
404
+ };
405
+ this.notify();
406
+ return;
407
+ }
408
+ default: {
409
+ unreachable(message);
410
+ }
411
+ }
412
+ }
379
413
  subscribe(listener) {
380
414
  this.listeners.add(listener);
381
415
  return () => this.listeners.delete(listener);
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/appearance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,YAAY,CAAA;AACpD,eAAO,MAAM,4BAA4B,YAAY,CAAA"}
1
+ {"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../../src/bridge/appearance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,YAAY,CAAA;AACpD,eAAO,MAAM,4BAA4B,YAAY,CAAA"}
@@ -1 +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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/dataSources/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,wBAAwB,EACxB,MAAM,4DAA4D,CAAA;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AAEvF,KAAK,sBAAsB,GAAG;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,kBAAkB,EAAE,wBAAwB,CAAA;CAC5C,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,sBAAsB,GAC1B,gBAAgB,EAAE,CA+BpB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/bridge/dataSources/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,wBAAwB,EACxB,MAAM,4DAA4D,CAAA;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AAEvF,KAAK,sBAAsB,GAAG;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,kBAAkB,EAAE,wBAAwB,CAAA;CAC5C,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,sBAAsB,GAC1B,gBAAgB,EAAE,CA+BpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveProperty.d.ts","sourceRoot":"","sources":["../../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/dataSources/resolveProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,EAEX,4BAA4B,EAC5B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAGhG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAEhE,MAAM,MAAM,gCAAgC,GACzC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,0BAA0B,CAAA;CAAE,GAC7D;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,4BAA4B,CAAA;CAAE,CAAA;AAS3D;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE;IAC1D,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACxC,UAAU,EAAE,0BAA0B,CAAA;IACtC,aAAa,EAAE,MAAM,CAAA;CACrB,GAAG,gCAAgC,CAwDnC;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,IAAI,EAAE;IAC5D,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACrB,GACE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,4BAA4B,CAAA;CAAE,CAsB1D"}
1
+ {"version":3,"file":"resolveProperty.d.ts","sourceRoot":"","sources":["../../../src/bridge/dataSources/resolveProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,EAEX,4BAA4B,EAC5B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAGhG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAEhE,MAAM,MAAM,gCAAgC,GACzC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,0BAA0B,CAAA;CAAE,GAC7D;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,4BAA4B,CAAA;CAAE,CAAA;AAS3D;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE;IAC1D,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACxC,UAAU,EAAE,0BAA0B,CAAA;IACtC,aAAa,EAAE,MAAM,CAAA;CACrB,GAAG,gCAAgC,CAwDnC;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,IAAI,EAAE;IAC5D,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACrB,GACE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,4BAA4B,CAAA;CAAE,CAsB1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"hostState.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/hostState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostState.d.ts","sourceRoot":"","sources":["../../src/bridge/hostState.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadManifest.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/bridge/loadManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EACN,KAAK,mBAAmB,EAExB,MAAM,8CAA8C,CAAA;AAKrD,KAAK,2BAA2B,GAC7B,sBAAsB,GACtB,kBAAkB,GAClB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEhB,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,2BAA2B,CAAC,CAAA;AAEhF,MAAM,MAAM,kBAAkB,GAC3B;IACA,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACpC,KAAK,CAAC,EAAE,SAAS,CAAA;CAChB,GACD;IACA,QAAQ,EAAE,IAAI,CAAA;IACd,KAAK,EAAE,uBAAuB,CAAA;CAC7B,CAAA;AAEJ;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACpD,QAAQ,GAAE,MAAM,GAAG,SAEQ,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAgE7B"}
1
+ {"version":3,"file":"loadManifest.d.ts","sourceRoot":"","sources":["../../src/bridge/loadManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EACN,KAAK,mBAAmB,EAExB,MAAM,8CAA8C,CAAA;AAKrD,KAAK,2BAA2B,GAC7B,sBAAsB,GACtB,kBAAkB,GAClB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEhB,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,2BAA2B,CAAC,CAAA;AAEhF,MAAM,MAAM,kBAAkB,GAC3B;IACA,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACpC,KAAK,CAAC,EAAE,SAAS,CAAA;CAChB,GACD;IACA,QAAQ,EAAE,IAAI,CAAA;IACd,KAAK,EAAE,uBAAuB,CAAA;CAC7B,CAAA;AAEJ;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACpD,QAAQ,GAAE,MAAM,GAAG,SAEQ,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAgE7B"}