@brass-build/client 0.4.1 → 0.5.0

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 (323) hide show
  1. package/AGENTS.md +124 -45
  2. package/CHANGELOG.md +80 -4
  3. package/README.md +666 -179
  4. package/dist/api-fetch.d.ts +8 -0
  5. package/dist/api-fetch.d.ts.map +1 -1
  6. package/dist/api-fetch.js +35 -8
  7. package/dist/api-fetch.js.map +1 -1
  8. package/dist/batched-get.d.ts +11 -0
  9. package/dist/batched-get.d.ts.map +1 -0
  10. package/dist/batched-get.js +92 -0
  11. package/dist/batched-get.js.map +1 -0
  12. package/dist/call-service.d.ts +4 -0
  13. package/dist/call-service.d.ts.map +1 -1
  14. package/dist/call-service.js +66 -3
  15. package/dist/call-service.js.map +1 -1
  16. package/dist/client.d.ts +48 -2
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +918 -115
  19. package/dist/client.js.map +1 -1
  20. package/dist/document-checkpoints.d.ts +25 -2
  21. package/dist/document-checkpoints.d.ts.map +1 -1
  22. package/dist/document-checkpoints.js +258 -61
  23. package/dist/document-checkpoints.js.map +1 -1
  24. package/dist/document-commands.d.ts.map +1 -1
  25. package/dist/document-commands.js +5 -3
  26. package/dist/document-commands.js.map +1 -1
  27. package/dist/document-contents.d.ts +10 -0
  28. package/dist/document-contents.d.ts.map +1 -1
  29. package/dist/document-contents.js +23 -1
  30. package/dist/document-contents.js.map +1 -1
  31. package/dist/document-set-subscription.d.ts +56 -0
  32. package/dist/document-set-subscription.d.ts.map +1 -0
  33. package/dist/document-set-subscription.js +240 -0
  34. package/dist/document-set-subscription.js.map +1 -0
  35. package/dist/document-signals.d.ts +6 -0
  36. package/dist/document-signals.d.ts.map +1 -1
  37. package/dist/document-signals.js +31 -1
  38. package/dist/document-signals.js.map +1 -1
  39. package/dist/document-streams.d.ts +36 -2
  40. package/dist/document-streams.d.ts.map +1 -1
  41. package/dist/document-streams.js +69 -18
  42. package/dist/document-streams.js.map +1 -1
  43. package/dist/document-thumbnail-capture.d.ts +12 -2
  44. package/dist/document-thumbnail-capture.d.ts.map +1 -1
  45. package/dist/document-thumbnail-capture.js +103 -27
  46. package/dist/document-thumbnail-capture.js.map +1 -1
  47. package/dist/documents-namespace.d.ts +92 -10
  48. package/dist/documents-namespace.d.ts.map +1 -1
  49. package/dist/documents-namespace.js +285 -39
  50. package/dist/documents-namespace.js.map +1 -1
  51. package/dist/documents.d.ts +173 -8
  52. package/dist/documents.d.ts.map +1 -1
  53. package/dist/documents.js +1778 -310
  54. package/dist/documents.js.map +1 -1
  55. package/dist/errors.d.ts +3 -3
  56. package/dist/errors.d.ts.map +1 -1
  57. package/dist/errors.js.map +1 -1
  58. package/dist/fetch-retry.d.ts +1 -0
  59. package/dist/fetch-retry.d.ts.map +1 -1
  60. package/dist/fetch-retry.js +2 -0
  61. package/dist/fetch-retry.js.map +1 -1
  62. package/dist/file-choice.d.ts +2 -0
  63. package/dist/file-choice.d.ts.map +1 -0
  64. package/dist/file-choice.js +27 -0
  65. package/dist/file-choice.js.map +1 -0
  66. package/dist/guest-link.d.ts +18 -1
  67. package/dist/guest-link.d.ts.map +1 -1
  68. package/dist/guest-link.js +329 -1
  69. package/dist/guest-link.js.map +1 -1
  70. package/dist/handle-types.d.ts +67 -5
  71. package/dist/handle-types.d.ts.map +1 -1
  72. package/dist/handles.d.ts +15 -19
  73. package/dist/handles.d.ts.map +1 -1
  74. package/dist/handles.js +231 -76
  75. package/dist/handles.js.map +1 -1
  76. package/dist/hosted-ui.d.ts +61 -0
  77. package/dist/hosted-ui.d.ts.map +1 -1
  78. package/dist/hosted-ui.js +94 -42
  79. package/dist/hosted-ui.js.map +1 -1
  80. package/dist/import-contract.d.ts +74 -0
  81. package/dist/import-contract.d.ts.map +1 -0
  82. package/dist/import-contract.js +163 -0
  83. package/dist/import-contract.js.map +1 -0
  84. package/dist/import-guest.d.ts +9 -0
  85. package/dist/import-guest.d.ts.map +1 -0
  86. package/dist/import-guest.js +155 -0
  87. package/dist/import-guest.js.map +1 -0
  88. package/dist/import-report.d.ts +17 -0
  89. package/dist/import-report.d.ts.map +1 -0
  90. package/dist/import-report.js +7 -0
  91. package/dist/import-report.js.map +1 -0
  92. package/dist/importer-wait.d.ts +2 -0
  93. package/dist/importer-wait.d.ts.map +1 -0
  94. package/dist/importer-wait.js +5 -0
  95. package/dist/importer-wait.js.map +1 -0
  96. package/dist/importer.d.ts +18 -4
  97. package/dist/importer.d.ts.map +1 -1
  98. package/dist/importer.js +322 -105
  99. package/dist/importer.js.map +1 -1
  100. package/dist/in-development.d.ts +2 -0
  101. package/dist/in-development.d.ts.map +1 -0
  102. package/dist/in-development.js +10 -0
  103. package/dist/in-development.js.map +1 -0
  104. package/dist/index.d.ts +16 -8
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +24 -8
  107. package/dist/index.js.map +1 -1
  108. package/dist/init-keys.d.ts +1 -1
  109. package/dist/init-keys.d.ts.map +1 -1
  110. package/dist/init-keys.js +6 -1
  111. package/dist/init-keys.js.map +1 -1
  112. package/dist/input-documents.d.ts +67 -0
  113. package/dist/input-documents.d.ts.map +1 -0
  114. package/dist/input-documents.js +693 -0
  115. package/dist/input-documents.js.map +1 -0
  116. package/dist/inputs-status.d.ts +80 -0
  117. package/dist/inputs-status.d.ts.map +1 -0
  118. package/dist/inputs-status.js +460 -0
  119. package/dist/inputs-status.js.map +1 -0
  120. package/dist/inputs.d.ts +2 -0
  121. package/dist/inputs.d.ts.map +1 -0
  122. package/dist/inputs.js +793 -0
  123. package/dist/inputs.js.map +1 -0
  124. package/dist/internal.d.ts +6 -1
  125. package/dist/internal.d.ts.map +1 -1
  126. package/dist/internal.js +4 -1
  127. package/dist/internal.js.map +1 -1
  128. package/dist/join-content.d.ts +33 -0
  129. package/dist/join-content.d.ts.map +1 -0
  130. package/dist/join-content.js +114 -0
  131. package/dist/join-content.js.map +1 -0
  132. package/dist/join-stamp.d.ts +3 -0
  133. package/dist/join-stamp.d.ts.map +1 -0
  134. package/dist/join-stamp.js +12 -0
  135. package/dist/join-stamp.js.map +1 -0
  136. package/dist/manifest-drift.d.ts +9 -0
  137. package/dist/manifest-drift.d.ts.map +1 -0
  138. package/dist/manifest-drift.js +46 -0
  139. package/dist/manifest-drift.js.map +1 -0
  140. package/dist/open-document.d.ts +109 -2
  141. package/dist/open-document.d.ts.map +1 -1
  142. package/dist/open-document.js +1822 -811
  143. package/dist/open-document.js.map +1 -1
  144. package/dist/page-restore.d.ts +12 -0
  145. package/dist/page-restore.d.ts.map +1 -0
  146. package/dist/page-restore.js +23 -0
  147. package/dist/page-restore.js.map +1 -0
  148. package/dist/placement.d.ts +13 -0
  149. package/dist/placement.d.ts.map +1 -0
  150. package/dist/placement.js +34 -0
  151. package/dist/placement.js.map +1 -0
  152. package/dist/presence.d.ts +1 -0
  153. package/dist/presence.d.ts.map +1 -1
  154. package/dist/presence.js +16 -4
  155. package/dist/presence.js.map +1 -1
  156. package/dist/read-only-document.d.ts +87 -0
  157. package/dist/read-only-document.d.ts.map +1 -0
  158. package/dist/read-only-document.js +4 -0
  159. package/dist/read-only-document.js.map +1 -0
  160. package/dist/record-paging.d.ts +63 -6
  161. package/dist/record-paging.d.ts.map +1 -1
  162. package/dist/record-paging.js +122 -29
  163. package/dist/record-paging.js.map +1 -1
  164. package/dist/references.d.ts +40 -0
  165. package/dist/references.d.ts.map +1 -0
  166. package/dist/references.js +135 -0
  167. package/dist/references.js.map +1 -0
  168. package/dist/request-lane.d.ts +5 -0
  169. package/dist/request-lane.d.ts.map +1 -0
  170. package/dist/request-lane.js +48 -0
  171. package/dist/request-lane.js.map +1 -0
  172. package/dist/sealed-arrow.d.ts +170 -0
  173. package/dist/sealed-arrow.d.ts.map +1 -0
  174. package/dist/sealed-arrow.js +769 -0
  175. package/dist/sealed-arrow.js.map +1 -0
  176. package/dist/sealed-cache.d.ts +21 -0
  177. package/dist/sealed-cache.d.ts.map +1 -0
  178. package/dist/sealed-cache.js +247 -0
  179. package/dist/sealed-cache.js.map +1 -0
  180. package/dist/sealed-encode.d.ts +87 -0
  181. package/dist/sealed-encode.d.ts.map +1 -0
  182. package/dist/sealed-encode.js +876 -0
  183. package/dist/sealed-encode.js.map +1 -0
  184. package/dist/sealed-handles.d.ts +45 -0
  185. package/dist/sealed-handles.d.ts.map +1 -0
  186. package/dist/sealed-handles.js +408 -0
  187. package/dist/sealed-handles.js.map +1 -0
  188. package/dist/sealed-store.d.ts +242 -0
  189. package/dist/sealed-store.d.ts.map +1 -0
  190. package/dist/sealed-store.js +1155 -0
  191. package/dist/sealed-store.js.map +1 -0
  192. package/dist/serializer.d.ts +6 -15
  193. package/dist/serializer.d.ts.map +1 -1
  194. package/dist/session-toolbar.d.ts +20 -5
  195. package/dist/session-toolbar.d.ts.map +1 -1
  196. package/dist/session-toolbar.js +419 -67
  197. package/dist/session-toolbar.js.map +1 -1
  198. package/dist/session.d.ts +38 -1
  199. package/dist/session.d.ts.map +1 -1
  200. package/dist/session.js +562 -79
  201. package/dist/session.js.map +1 -1
  202. package/dist/sha256.d.ts +3 -0
  203. package/dist/sha256.d.ts.map +1 -0
  204. package/dist/sha256.js +74 -0
  205. package/dist/sha256.js.map +1 -0
  206. package/dist/stable-handles.d.ts +19 -0
  207. package/dist/stable-handles.d.ts.map +1 -0
  208. package/dist/stable-handles.js +193 -0
  209. package/dist/stable-handles.js.map +1 -0
  210. package/dist/staged-seal.d.ts +2 -0
  211. package/dist/staged-seal.d.ts.map +1 -0
  212. package/dist/staged-seal.js +76 -0
  213. package/dist/staged-seal.js.map +1 -0
  214. package/dist/subscriber-delivery.d.ts +8 -0
  215. package/dist/subscriber-delivery.d.ts.map +1 -0
  216. package/dist/subscriber-delivery.js +31 -0
  217. package/dist/subscriber-delivery.js.map +1 -0
  218. package/dist/tail-op-import.d.ts +10 -0
  219. package/dist/tail-op-import.d.ts.map +1 -0
  220. package/dist/tail-op-import.js +33 -0
  221. package/dist/tail-op-import.js.map +1 -0
  222. package/dist/topic-lifecycle.d.ts +6 -0
  223. package/dist/topic-lifecycle.d.ts.map +1 -1
  224. package/dist/topic-lifecycle.js +32 -2
  225. package/dist/topic-lifecycle.js.map +1 -1
  226. package/dist/trial-replace-dialog.d.ts +10 -0
  227. package/dist/trial-replace-dialog.d.ts.map +1 -0
  228. package/dist/trial-replace-dialog.js +153 -0
  229. package/dist/trial-replace-dialog.js.map +1 -0
  230. package/dist/types.d.ts +8 -1
  231. package/dist/types.d.ts.map +1 -1
  232. package/dist/undo.d.ts +60 -5
  233. package/dist/undo.d.ts.map +1 -1
  234. package/dist/undo.js +344 -75
  235. package/dist/undo.js.map +1 -1
  236. package/dist/version-bar.d.ts +1 -0
  237. package/dist/version-bar.d.ts.map +1 -1
  238. package/dist/version-bar.js +2 -1
  239. package/dist/version-bar.js.map +1 -1
  240. package/dist/version.d.ts +2 -2
  241. package/dist/version.js +1 -1
  242. package/dist/ws-client.d.ts +21 -0
  243. package/dist/ws-client.d.ts.map +1 -1
  244. package/dist/ws-client.js +192 -8
  245. package/dist/ws-client.js.map +1 -1
  246. package/dist/ws-frame-limit.d.ts +1 -0
  247. package/dist/ws-frame-limit.d.ts.map +1 -1
  248. package/dist/ws-frame-limit.js.map +1 -1
  249. package/docs/app-manifest.md +121 -17
  250. package/docs/custom-chrome.md +24 -16
  251. package/docs/hosted-ui-advanced.md +38 -6
  252. package/docs/imported-documents.md +104 -51
  253. package/docs/presence.md +16 -4
  254. package/docs/schemas.md +8 -5
  255. package/docs/services.md +6 -6
  256. package/docs/streams.md +139 -150
  257. package/docs/text-fields.md +26 -19
  258. package/package.json +5 -2
  259. package/src/api-fetch.ts +53 -3
  260. package/src/auth-flow.ts +1 -1
  261. package/src/batched-get.ts +117 -0
  262. package/src/call-service.ts +78 -3
  263. package/src/client.ts +1022 -112
  264. package/src/document-checkpoints.ts +307 -65
  265. package/src/document-commands.ts +5 -5
  266. package/src/document-contents.ts +27 -1
  267. package/src/document-set-subscription.ts +274 -0
  268. package/src/document-signals.ts +47 -5
  269. package/src/document-streams.ts +85 -16
  270. package/src/document-thumbnail-capture.ts +118 -32
  271. package/src/documents-namespace.ts +539 -84
  272. package/src/documents.ts +2017 -348
  273. package/src/errors.ts +17 -6
  274. package/src/fetch-retry.ts +5 -0
  275. package/src/file-choice.ts +26 -0
  276. package/src/guest-link.ts +362 -1
  277. package/src/handle-types.ts +73 -47
  278. package/src/handles.ts +253 -83
  279. package/src/hosted-ui.ts +211 -50
  280. package/src/import-contract.ts +227 -0
  281. package/src/import-guest.ts +193 -0
  282. package/src/import-report.ts +24 -0
  283. package/src/importer-wait.ts +4 -0
  284. package/src/importer.ts +386 -131
  285. package/src/in-development.ts +10 -0
  286. package/src/index.ts +76 -16
  287. package/src/init-keys.ts +6 -1
  288. package/src/input-documents.ts +819 -0
  289. package/src/inputs-status.ts +598 -0
  290. package/src/inputs.ts +1090 -0
  291. package/src/internal.ts +7 -0
  292. package/src/join-content.ts +135 -0
  293. package/src/join-stamp.ts +12 -0
  294. package/src/manifest-drift.ts +54 -0
  295. package/src/open-document.ts +2346 -930
  296. package/src/page-restore.ts +38 -0
  297. package/src/placement.ts +54 -0
  298. package/src/presence.ts +21 -5
  299. package/src/read-only-document.ts +133 -0
  300. package/src/record-paging.ts +147 -25
  301. package/src/references.ts +207 -0
  302. package/src/request-lane.ts +59 -0
  303. package/src/sealed-arrow.ts +843 -0
  304. package/src/sealed-cache.ts +267 -0
  305. package/src/sealed-encode.ts +1015 -0
  306. package/src/sealed-handles.ts +486 -0
  307. package/src/sealed-store.ts +1330 -0
  308. package/src/serializer.ts +8 -20
  309. package/src/session-toolbar.ts +463 -72
  310. package/src/session.ts +740 -99
  311. package/src/sha256.ts +65 -0
  312. package/src/stable-handles.ts +235 -0
  313. package/src/staged-seal.ts +90 -0
  314. package/src/subscriber-delivery.ts +37 -0
  315. package/src/tail-op-import.ts +30 -0
  316. package/src/topic-lifecycle.ts +38 -2
  317. package/src/trial-replace-dialog.ts +163 -0
  318. package/src/types.ts +6 -6
  319. package/src/undo.ts +386 -73
  320. package/src/version-bar.ts +5 -1
  321. package/src/version.ts +1 -1
  322. package/src/ws-client.ts +208 -16
  323. package/src/ws-frame-limit.ts +1 -0
@@ -3,6 +3,8 @@ export interface ApiRequest {
3
3
  method?: 'GET' | 'POST' | 'PATCH' | 'DELETE';
4
4
  path: string;
5
5
  body?: unknown;
6
+ maxAttempts?: number;
7
+ idempotent?: boolean;
6
8
  }
7
9
  interface ApiFetchOptions {
8
10
  apiBaseUrl: string;
@@ -11,6 +13,12 @@ interface ApiFetchOptions {
11
13
  }
12
14
  export type ApiFetch = <T>(req: ApiRequest) => Promise<T>;
13
15
  export declare function createApiFetch(opts: ApiFetchOptions): ApiFetch;
16
+ export interface ClaimHolder {
17
+ refreshedMsAgo: number;
18
+ expiresInMs: number;
19
+ sealing: boolean;
20
+ }
21
+ export declare function claimHolderOf(err: unknown): ClaimHolder | null;
14
22
  export declare function brassErrorFromBody(status: number, parsed: unknown): BrassError;
15
23
  export {};
16
24
  //# sourceMappingURL=api-fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-fetch.d.ts","sourceRoot":"","sources":["../src/api-fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,WAAW,UAAU;IAEzB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,QAAQ,CA4C9D;AAeD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,CAkB9E"}
1
+ {"version":3,"file":"api-fetch.d.ts","sourceRoot":"","sources":["../src/api-fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,WAAW,UAAU;IAEzB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,QAAQ,CA+C9D;AAiBD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAE9D;AAYD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,CAK9E"}
package/dist/api-fetch.js CHANGED
@@ -27,8 +27,8 @@ export function createApiFetch(opts) {
27
27
  // (e.g. a 503 while the API scales into a concurrent read burst)
28
28
  // rather than surfacing it as a hard failure; a write is never
29
29
  // replayed here.
30
- const response = method === 'GET'
31
- ? await fetchWithRetry(() => fetch(url, init))
30
+ const response = method === 'GET' || req.idempotent === true
31
+ ? await fetchWithRetry(() => fetch(url, init), req.maxAttempts !== undefined ? { maxAttempts: req.maxAttempts } : {})
32
32
  : await fetch(url, init);
33
33
  if (response.status === 204)
34
34
  return undefined;
@@ -54,12 +54,30 @@ function isErrorBody(body) {
54
54
  body !== null &&
55
55
  typeof body.error === 'string');
56
56
  }
57
- // Build the BrassError for a non-2xx response body. Every SDK fetch
58
- // (apiFetch and the hand-written document open / create paths) throws
59
- // through here so the server's machine-readable denials, in particular
60
- // `code: "app_not_installed"`, survive into the error the caller (and
61
- // the SDK's own install-consent offer) can branch on.
57
+ const claimHolders = new WeakMap();
58
+ export function claimHolderOf(err) {
59
+ return err instanceof BrassError ? (claimHolders.get(err) ?? null) : null;
60
+ }
61
+ function readClaimHolder(body) {
62
+ if (typeof body !== 'object' || body === null)
63
+ return null;
64
+ const b = body;
65
+ const ago = b['refreshed_ms_ago'];
66
+ const lapses = b['expires_in_ms'];
67
+ if (b['pending'] !== true || typeof ago !== 'number' || !Number.isFinite(ago))
68
+ return null;
69
+ if (typeof lapses !== 'number' || !Number.isFinite(lapses))
70
+ return null;
71
+ return { refreshedMsAgo: ago, expiresInMs: lapses, sealing: b['sealing'] === true };
72
+ }
62
73
  export function brassErrorFromBody(status, parsed) {
74
+ const err = brassErrorOf(status, parsed);
75
+ const holder = status === 409 ? readClaimHolder(parsed) : null;
76
+ if (holder !== null)
77
+ claimHolders.set(err, holder);
78
+ return err;
79
+ }
80
+ function brassErrorOf(status, parsed) {
63
81
  const message = isErrorBody(parsed) ? parsed.error : 'Request failed';
64
82
  if (isNotInstalledBody(parsed)) {
65
83
  return new BrassError(message, {
@@ -76,7 +94,16 @@ export function brassErrorFromBody(status, parsed) {
76
94
  ...(typeof title === 'string' ? { title } : {}),
77
95
  });
78
96
  }
79
- return new BrassError(message, { status });
97
+ const code = serverCode(parsed);
98
+ return new BrassError(message, { status, ...(code !== null ? { code } : {}) });
99
+ }
100
+ // The code a refusal body carries, when it is one: a short snake_case token.
101
+ const SERVER_CODE = /^[a-z][a-z0-9_]{0,63}$/;
102
+ function serverCode(value) {
103
+ if (typeof value !== 'object' || value === null)
104
+ return null;
105
+ const code = value.code;
106
+ return typeof code === 'string' && SERVER_CODE.test(code) ? code : null;
80
107
  }
81
108
  // The platform refuses to join a document this app's declared schema cannot
82
109
  // read, so a bookmark or a reload does not silently open one. The message is
@@ -1 +1 @@
1
- {"version":3,"file":"api-fetch.js","sourceRoot":"","sources":["../src/api-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-fetch.js","sourceRoot":"","sources":["../src/api-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ApiFetch } from './api-fetch.js';
2
+ import type { RequestLane } from './request-lane.js';
3
+ export declare const BATCH_SIZE = 20;
4
+ export interface BatchedGetOptions {
5
+ apiFetch: ApiFetch;
6
+ lane: RequestLane;
7
+ single: (docId: string) => Promise<unknown>;
8
+ maxAttempts: number;
9
+ }
10
+ export declare function createBatchedGet<T>(opts: BatchedGetOptions): (docId: string) => Promise<T>;
11
+ //# sourceMappingURL=batched-get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batched-get.d.ts","sourceRoot":"","sources":["../src/batched-get.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,UAAU,KAAK,CAAC;AAc7B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAElB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CA4E1F"}
@@ -0,0 +1,92 @@
1
+ // Answers `documents.get` calls made in the same turn with one request per
2
+ // `BATCH_SIZE` ids. An app reading the record of each of several hundred
3
+ // documents calls `get` for each, usually all at once, and one request per
4
+ // document spends the API's request budget for the app's other calls and
5
+ // every other caller's. The server reads a batch's documents on one
6
+ // invocation, so a smaller batch spreads that work across invocations.
7
+ //
8
+ // A lone call is sent as its own read. Each id in a batch resolves or rejects
9
+ // exactly as its own read would, from the status and body the server answered
10
+ // for it. A platform that does not serve the batch route answers 404 for the
11
+ // whole request, and its ids are then read one at a time.
12
+ import { brassErrorFromBody } from './api-fetch.js';
13
+ import { BrassError } from './errors.js';
14
+ export const BATCH_SIZE = 20;
15
+ export function createBatchedGet(opts) {
16
+ let waiting = new Map();
17
+ let scheduled = false;
18
+ const settle = (entry, run) => {
19
+ run().then((value) => entry.resolve(value), entry.reject);
20
+ };
21
+ const sendBatch = async (ids, entries) => {
22
+ let results;
23
+ try {
24
+ const answer = await opts.lane.run(`batch:${ids.join(',')}`, () => opts.apiFetch({
25
+ method: 'POST',
26
+ path: '/documents/details',
27
+ body: { doc_ids: ids },
28
+ idempotent: true,
29
+ maxAttempts: opts.maxAttempts,
30
+ }));
31
+ results = answer.results;
32
+ }
33
+ catch (err) {
34
+ if (err instanceof BrassError && err.status === 404) {
35
+ for (const id of ids)
36
+ settle(entries.get(id), () => opts.single(id));
37
+ return;
38
+ }
39
+ for (const id of ids)
40
+ entries.get(id).reject(err);
41
+ return;
42
+ }
43
+ const byId = new Map(results.map((r) => [r.doc_id, r]));
44
+ for (const id of ids) {
45
+ const entry = entries.get(id);
46
+ const result = byId.get(id);
47
+ if (result === undefined) {
48
+ entry.reject(new BrassError('Request failed', { status: 500 }));
49
+ }
50
+ else if (result.status >= 200 && result.status < 300) {
51
+ entry.resolve(result.body);
52
+ }
53
+ else {
54
+ entry.reject(brassErrorFromBody(result.status, result.body));
55
+ }
56
+ }
57
+ };
58
+ const flush = () => {
59
+ scheduled = false;
60
+ const entries = waiting;
61
+ waiting = new Map();
62
+ const ids = [...entries.keys()];
63
+ if (ids.length === 1) {
64
+ settle(entries.get(ids[0]), () => opts.single(ids[0]));
65
+ return;
66
+ }
67
+ for (let i = 0; i < ids.length; i += BATCH_SIZE) {
68
+ void sendBatch(ids.slice(i, i + BATCH_SIZE), entries);
69
+ }
70
+ };
71
+ return (docId) => {
72
+ const pending = waiting.get(docId);
73
+ if (pending !== undefined)
74
+ return pending.promise;
75
+ let resolve;
76
+ let reject;
77
+ const promise = new Promise((res, rej) => {
78
+ resolve = res;
79
+ reject = rej;
80
+ });
81
+ waiting.set(docId, { promise, resolve, reject });
82
+ if (!scheduled) {
83
+ scheduled = true;
84
+ // A task rather than a microtask, so a call made from a promise callback
85
+ // before the next task (a handler per input, a loop after an await)
86
+ // joins the same batch.
87
+ setTimeout(flush, 0);
88
+ }
89
+ return promise;
90
+ };
91
+ }
92
+ //# sourceMappingURL=batched-get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batched-get.js","sourceRoot":"","sources":["../src/batched-get.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,10 @@ export interface CallServiceDeps {
42
42
  */
43
43
  offerServiceCredential: (organizationId: string, host: string) => Promise<boolean>;
44
44
  fetchImpl?: typeof fetch;
45
+ /** Injected for tests; defaults to the real timer. */
46
+ sleep?: (ms: number) => Promise<void>;
47
+ /** Injected for tests; defaults to `Date.now`. */
48
+ now?: () => number;
45
49
  }
46
50
  export declare function callService(deps: CallServiceDeps, host: string, path: string, options?: CallServiceOptions): Promise<Response>;
47
51
  export interface AppServiceState {
@@ -1 +1 @@
1
- {"version":3,"file":"call-service.d.ts","sourceRoot":"","sources":["../src/call-service.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;;;;;;OASG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAaD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE5E;AAeD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAwBxD;AAgBD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,qEAAqE;IACrE,mBAAmB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;;;OAGG;IACH,sBAAsB,EAAE,CACtB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAgDnB;AA4DD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAMD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,CACR,eAAe,EACf,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,CAClE,EACD,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,EAAE,CAAC,CAkD5B"}
1
+ {"version":3,"file":"call-service.d.ts","sourceRoot":"","sources":["../src/call-service.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;;;;;;OASG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAaD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE5E;AAeD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAwBxD;AAgBD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,qEAAqE;IACrE,mBAAmB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;;;OAGG;IACH,sBAAsB,EAAE,CACtB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAkDnB;AAiID,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAMD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,CACR,eAAe,EACf,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,CAClE,EACD,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,EAAE,CAAC,CAkD5B"}
@@ -124,7 +124,7 @@ export async function callService(deps, host, path, options = {}) {
124
124
  ...(options.body !== undefined ? { body: options.body } : {}),
125
125
  });
126
126
  };
127
- const response = await send();
127
+ const response = await sendThroughFrontDoor(send, deps);
128
128
  // The service's own status is the answer, so nothing here throws on one.
129
129
  // The exceptions are the refusals that are a question for the person rather
130
130
  // than a result for the app: offer the hosted surface that asks it, and send
@@ -136,7 +136,7 @@ export async function callService(deps, host, path, options = {}) {
136
136
  const ask = response.headers.get(BRASS_ASK_HEADER);
137
137
  if (ask === 'credential') {
138
138
  return (await deps.offerServiceCredential(organizationId, host))
139
- ? send()
139
+ ? sendThroughFrontDoor(send, deps)
140
140
  : response;
141
141
  }
142
142
  if (ask !== 'install')
@@ -144,7 +144,70 @@ export async function callService(deps, host, path, options = {}) {
144
144
  const denial = await notInstalledDenial(response);
145
145
  if (!denial)
146
146
  return response;
147
- return (await deps.offerInstallConsent(denial)) ? send() : response;
147
+ return (await deps.offerInstallConsent(denial))
148
+ ? sendThroughFrontDoor(send, deps)
149
+ : response;
150
+ }
151
+ // Every answer from Brass carries this header, and the broker drops any header
152
+ // under that prefix a service sends. Without it, in the gateway's own body, the
153
+ // answer came from the gateway in front of Brass: a `429` from its rate limit,
154
+ // or a quick `503` from a call it could not start because the brokered call's
155
+ // concurrency was all in use. Nothing behind the gateway ran for either, so
156
+ // sending it again is safe whatever the method. The gateway's `503` for a call
157
+ // that ran past its 30s limit has the same body, and that call may have reached
158
+ // the service, so a `503` counts only when it came back well inside that limit.
159
+ const ANSWERED_BY_BRASS_HEADER = 'x-brass-answered';
160
+ // A quick 503 lasts until a call already running ends, which is within the
161
+ // gateway's 30s limit, so the resend lasts that long. The backoff stays short
162
+ // so the call starts soon after room frees.
163
+ const FRONT_DOOR_WINDOW_MS = 30_000;
164
+ const FRONT_DOOR_BASE_DELAY_MS = 300;
165
+ const FRONT_DOOR_MAX_DELAY_MS = 2_000;
166
+ const FRONT_DOOR_MESSAGES = {
167
+ 429: 'Too Many Requests',
168
+ 503: 'Service Unavailable',
169
+ };
170
+ const FRONT_DOOR_503_WITHIN_MS = 10_000;
171
+ async function shedByFrontDoor(response, elapsedMs) {
172
+ const message = FRONT_DOOR_MESSAGES[response.status];
173
+ if (message === undefined || response.headers.has(ANSWERED_BY_BRASS_HEADER))
174
+ return false;
175
+ if (response.status === 503 && elapsedMs >= FRONT_DOOR_503_WITHIN_MS)
176
+ return false;
177
+ try {
178
+ const body = (await response.clone().json());
179
+ return (typeof body === 'object' &&
180
+ body !== null &&
181
+ Object.keys(body).length === 1 &&
182
+ body.message === message);
183
+ }
184
+ catch {
185
+ return false;
186
+ }
187
+ }
188
+ async function sendThroughFrontDoor(send, deps) {
189
+ const now = deps.now ?? Date.now;
190
+ const sleep = deps.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
191
+ const firstSentAt = now();
192
+ let response;
193
+ for (let attempt = 0;; attempt += 1) {
194
+ const startedAt = now();
195
+ response = await send();
196
+ if (!(await shedByFrontDoor(response, now() - startedAt)))
197
+ return response;
198
+ const delay = Math.min(FRONT_DOOR_BASE_DELAY_MS * 2 ** attempt, FRONT_DOOR_MAX_DELAY_MS) +
199
+ Math.random() * FRONT_DOOR_BASE_DELAY_MS;
200
+ if (now() + delay - firstSentAt > FRONT_DOOR_WINDOW_MS)
201
+ break;
202
+ await sleep(delay);
203
+ }
204
+ // Still shed after the window: answered with the code of Brass's own
205
+ // limit, so an app branches on one `code` for both, and with an `error`
206
+ // naming the gateway's status, so a report says which one turned it away.
207
+ return new Response(JSON.stringify({
208
+ error: `The gateway in front of Brass turned the call away (${response.status})`,
209
+ code: 'rate_limited',
210
+ }), { status: 429, headers: { 'content-type': 'application/json' } });
148
211
  }
149
212
  // No organization resolved, for a caller that did not ask for the chooser.
150
213
  //
@@ -1 +1 @@
1
- {"version":3,"file":"call-service.js","sourceRoot":"","sources":["../src/call-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-service.js","sourceRoot":"","sources":["../src/call-service.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type CreateDocumentOptions, type OpenDocumentByIdOptions, type OpenedDocument } from './open-document.js';
2
- import { type DocumentHistoryResult, type SelectDocumentResult } from './hosted-ui.js';
2
+ import { type DocumentHistoryResult, type ChooseInputOptions, type ChooseInputsOptions, type DocumentFamilies, type InputReference, type SelectDocumentResult } from './hosted-ui.js';
3
3
  import type { DocumentSerializer } from './serializer.js';
4
4
  import { type DocumentImporter } from './importer.js';
5
5
  import { type AppServiceState, type CallServiceOptions } from './call-service.js';
@@ -17,13 +17,14 @@ export interface ResolvedBaseUrls {
17
17
  export declare function resolveBaseUrls(options: BrassInitOptions): ResolvedBaseUrls;
18
18
  export declare class BrassClient {
19
19
  private appId;
20
+ private initFailure;
20
21
  private authBaseUrl;
21
22
  private apiBaseUrl;
22
23
  private apiBaseUrlConfigured;
23
24
  private wsBaseUrl;
24
25
  private _dashboardBaseUrl;
25
26
  private hostedUiTheme;
26
- private openIncompatibleDocuments;
27
+ private openReadOnly;
27
28
  private syncDocToUrl;
28
29
  private docUrlParam;
29
30
  private branchUrlParam;
@@ -33,6 +34,7 @@ export declare class BrassClient {
33
34
  private user;
34
35
  private bootstrapped;
35
36
  private listeners;
37
+ private readonly sessionUserListeners;
36
38
  private readonly errorListeners;
37
39
  private inflightRefresh;
38
40
  private authEpoch;
@@ -44,7 +46,9 @@ export declare class BrassClient {
44
46
  private hostedUiLauncher;
45
47
  private documentFactory;
46
48
  private guestLinkTokenValue;
49
+ private watchingPageRestore;
47
50
  private launchOrganizationId;
51
+ private readonly installConsentByOrganization;
48
52
  private actingOrganization;
49
53
  private documentWatchForActingOrganization;
50
54
  private chromeDocumentOrganization;
@@ -55,9 +59,16 @@ export declare class BrassClient {
55
59
  private documentOrganizationIds;
56
60
  private serializer;
57
61
  private exportGuest;
62
+ private importGuest;
63
+ private importer;
64
+ private readonly importerWaiters;
65
+ private importerWaitExpired;
58
66
  private openDocuments;
59
67
  private readonly importRunner;
68
+ private guestImports;
69
+ private importsInto;
60
70
  private docWsClient;
71
+ private readonly linkWsClients;
61
72
  init(appId?: string, options?: BrassInitOptions): Promise<void>;
62
73
  signIn(): void;
63
74
  signOut(): void;
@@ -83,6 +94,8 @@ export declare class BrassClient {
83
94
  private toolbarDeps;
84
95
  selectDocument(): Promise<SelectDocumentResult | null>;
85
96
  private selectDocumentInternal;
97
+ chooseInputs(families: DocumentFamilies, options?: ChooseInputsOptions): Promise<InputReference[] | null>;
98
+ chooseInput(families: DocumentFamilies, options?: ChooseInputOptions): Promise<InputReference | null>;
86
99
  private lastSelectedDocument;
87
100
  shareDocument(docId: string): Promise<void>;
88
101
  documentHistory(docId: string, options?: {
@@ -90,16 +103,48 @@ export declare class BrassClient {
90
103
  }): Promise<DocumentHistoryResult | null>;
91
104
  private getHostedUiLauncher;
92
105
  openDocumentById(docId: string, options?: OpenDocumentByIdOptions): Promise<OpenedDocument>;
106
+ private reopensBeside;
93
107
  private openByLinkInternal;
108
+ private joinByLink;
109
+ private importedByLink;
94
110
  private openDocumentInternal;
111
+ private importBeforeResolving;
112
+ private waitForImporter;
113
+ private joinDocument;
95
114
  createDocument(options?: CreateDocumentOptions): Promise<OpenedDocument>;
96
115
  private createDocumentInternal;
97
116
  private createDocumentIdWithConsent;
117
+ private claimAnonymousDocumentWithConsent;
118
+ private anonymousUploadTypes;
119
+ private anonymousUploadTypesRead;
120
+ private appOffersNew;
121
+ private anonymousUploadAccept;
122
+ private signedOutUseRefusal;
123
+ private chooseAnonymousFile;
124
+ private enterGuestMode;
125
+ private emitGuestModeChange;
126
+ private leaveGuestMode;
127
+ private followClaimedLink;
128
+ private readLiveUnsavedWork;
129
+ private forgetUnsavedWorkFor;
130
+ private leaveClaimedLink;
131
+ private readClaimedLink;
132
+ private reloadIfRestoredStale;
133
+ private linkStillOpen;
134
+ private canKeepTemporaryWork;
135
+ private keepTemporaryWork;
136
+ private leaveLinkForOwnAccess;
137
+ private asOwnAccess;
138
+ private currentLinkCredential;
139
+ private probeAnonymousLink;
140
+ private claimAnonymousLink;
98
141
  private offerInstallConsent;
142
+ private raiseInstallConsent;
99
143
  private retireActingOrganizationState;
100
144
  private forgetActingOrganization;
101
145
  registerSerializer(serializer: DocumentSerializer): void;
102
146
  registerImporter(importer: DocumentImporter): void;
147
+ private isHeadlessGuest;
103
148
  private trackOpenDocument;
104
149
  private liveOpenDocuments;
105
150
  private liveOpenDocument;
@@ -109,6 +154,7 @@ export declare class BrassClient {
109
154
  private applyPageTitle;
110
155
  private getDocumentFactory;
111
156
  private getDocWsClient;
157
+ private getLinkWsClient;
112
158
  getAccessToken(): Promise<string | null>;
113
159
  private resolveActingOrganizationId;
114
160
  private runActingOrganizationResolve;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}