@brass-build/client 0.1.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 (258) hide show
  1. package/AGENTS.md +255 -0
  2. package/CHANGELOG.md +15 -0
  3. package/LICENSE +21 -0
  4. package/README.md +836 -0
  5. package/dist/api-fetch.d.ts +16 -0
  6. package/dist/api-fetch.d.ts.map +1 -0
  7. package/dist/api-fetch.js +97 -0
  8. package/dist/api-fetch.js.map +1 -0
  9. package/dist/api-headers.d.ts +3 -0
  10. package/dist/api-headers.d.ts.map +1 -0
  11. package/dist/api-headers.js +25 -0
  12. package/dist/api-headers.js.map +1 -0
  13. package/dist/auth-flow.d.ts +23 -0
  14. package/dist/auth-flow.d.ts.map +1 -0
  15. package/dist/auth-flow.js +76 -0
  16. package/dist/auth-flow.js.map +1 -0
  17. package/dist/client.d.ts +106 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/client.js +1278 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/doc-url-sync.d.ts +19 -0
  22. package/dist/doc-url-sync.d.ts.map +1 -0
  23. package/dist/doc-url-sync.js +181 -0
  24. package/dist/doc-url-sync.js.map +1 -0
  25. package/dist/document-branches.d.ts +32 -0
  26. package/dist/document-branches.d.ts.map +1 -0
  27. package/dist/document-branches.js +89 -0
  28. package/dist/document-branches.js.map +1 -0
  29. package/dist/document-checkpoints.d.ts +24 -0
  30. package/dist/document-checkpoints.d.ts.map +1 -0
  31. package/dist/document-checkpoints.js +115 -0
  32. package/dist/document-checkpoints.js.map +1 -0
  33. package/dist/document-commands.d.ts +93 -0
  34. package/dist/document-commands.d.ts.map +1 -0
  35. package/dist/document-commands.js +423 -0
  36. package/dist/document-commands.js.map +1 -0
  37. package/dist/document-signals.d.ts +53 -0
  38. package/dist/document-signals.d.ts.map +1 -0
  39. package/dist/document-signals.js +114 -0
  40. package/dist/document-signals.js.map +1 -0
  41. package/dist/document-streams.d.ts +22 -0
  42. package/dist/document-streams.d.ts.map +1 -0
  43. package/dist/document-streams.js +98 -0
  44. package/dist/document-streams.js.map +1 -0
  45. package/dist/document-thumbnail-capture.d.ts +27 -0
  46. package/dist/document-thumbnail-capture.d.ts.map +1 -0
  47. package/dist/document-thumbnail-capture.js +160 -0
  48. package/dist/document-thumbnail-capture.js.map +1 -0
  49. package/dist/documents-namespace.d.ts +134 -0
  50. package/dist/documents-namespace.d.ts.map +1 -0
  51. package/dist/documents-namespace.js +190 -0
  52. package/dist/documents-namespace.js.map +1 -0
  53. package/dist/documents.d.ts +146 -0
  54. package/dist/documents.d.ts.map +1 -0
  55. package/dist/documents.js +2045 -0
  56. package/dist/documents.js.map +1 -0
  57. package/dist/emitter.d.ts +15 -0
  58. package/dist/emitter.d.ts.map +1 -0
  59. package/dist/emitter.js +90 -0
  60. package/dist/emitter.js.map +1 -0
  61. package/dist/errors.d.ts +18 -0
  62. package/dist/errors.d.ts.map +1 -0
  63. package/dist/errors.js +22 -0
  64. package/dist/errors.js.map +1 -0
  65. package/dist/export-guest.d.ts +9 -0
  66. package/dist/export-guest.d.ts.map +1 -0
  67. package/dist/export-guest.js +225 -0
  68. package/dist/export-guest.js.map +1 -0
  69. package/dist/fetch-retry.d.ts +16 -0
  70. package/dist/fetch-retry.d.ts.map +1 -0
  71. package/dist/fetch-retry.js +90 -0
  72. package/dist/fetch-retry.js.map +1 -0
  73. package/dist/guest-link.d.ts +3 -0
  74. package/dist/guest-link.d.ts.map +1 -0
  75. package/dist/guest-link.js +13 -0
  76. package/dist/guest-link.js.map +1 -0
  77. package/dist/handles.d.ts +57 -0
  78. package/dist/handles.d.ts.map +1 -0
  79. package/dist/handles.js +1375 -0
  80. package/dist/handles.js.map +1 -0
  81. package/dist/hosted-runtime.d.ts +33 -0
  82. package/dist/hosted-runtime.d.ts.map +1 -0
  83. package/dist/hosted-runtime.js +99 -0
  84. package/dist/hosted-runtime.js.map +1 -0
  85. package/dist/hosted-ui.d.ts +84 -0
  86. package/dist/hosted-ui.d.ts.map +1 -0
  87. package/dist/hosted-ui.js +673 -0
  88. package/dist/hosted-ui.js.map +1 -0
  89. package/dist/importer.d.ts +22 -0
  90. package/dist/importer.d.ts.map +1 -0
  91. package/dist/importer.js +54 -0
  92. package/dist/importer.js.map +1 -0
  93. package/dist/index.d.ts +54 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +132 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/init-keys.d.ts +3 -0
  98. package/dist/init-keys.d.ts.map +1 -0
  99. package/dist/init-keys.js +13 -0
  100. package/dist/init-keys.js.map +1 -0
  101. package/dist/internal.d.ts +6 -0
  102. package/dist/internal.d.ts.map +1 -0
  103. package/dist/internal.js +17 -0
  104. package/dist/internal.js.map +1 -0
  105. package/dist/jwt.d.ts +3 -0
  106. package/dist/jwt.d.ts.map +1 -0
  107. package/dist/jwt.js +22 -0
  108. package/dist/jwt.js.map +1 -0
  109. package/dist/launch-context.d.ts +4 -0
  110. package/dist/launch-context.d.ts.map +1 -0
  111. package/dist/launch-context.js +44 -0
  112. package/dist/launch-context.js.map +1 -0
  113. package/dist/login-hint.d.ts +4 -0
  114. package/dist/login-hint.d.ts.map +1 -0
  115. package/dist/login-hint.js +63 -0
  116. package/dist/login-hint.js.map +1 -0
  117. package/dist/mutate-batching.d.ts +14 -0
  118. package/dist/mutate-batching.d.ts.map +1 -0
  119. package/dist/mutate-batching.js +65 -0
  120. package/dist/mutate-batching.js.map +1 -0
  121. package/dist/open-document.d.ts +127 -0
  122. package/dist/open-document.d.ts.map +1 -0
  123. package/dist/open-document.js +2121 -0
  124. package/dist/open-document.js.map +1 -0
  125. package/dist/page-title.d.ts +3 -0
  126. package/dist/page-title.d.ts.map +1 -0
  127. package/dist/page-title.js +32 -0
  128. package/dist/page-title.js.map +1 -0
  129. package/dist/perf.d.ts +9 -0
  130. package/dist/perf.d.ts.map +1 -0
  131. package/dist/perf.js +39 -0
  132. package/dist/perf.js.map +1 -0
  133. package/dist/presence.d.ts +62 -0
  134. package/dist/presence.d.ts.map +1 -0
  135. package/dist/presence.js +331 -0
  136. package/dist/presence.js.map +1 -0
  137. package/dist/record-paging.d.ts +99 -0
  138. package/dist/record-paging.d.ts.map +1 -0
  139. package/dist/record-paging.js +220 -0
  140. package/dist/record-paging.js.map +1 -0
  141. package/dist/schema-conflict-dialog.d.ts +10 -0
  142. package/dist/schema-conflict-dialog.d.ts.map +1 -0
  143. package/dist/schema-conflict-dialog.js +164 -0
  144. package/dist/schema-conflict-dialog.js.map +1 -0
  145. package/dist/selection-persistence.d.ts +5 -0
  146. package/dist/selection-persistence.d.ts.map +1 -0
  147. package/dist/selection-persistence.js +90 -0
  148. package/dist/selection-persistence.js.map +1 -0
  149. package/dist/serializer.d.ts +3 -0
  150. package/dist/serializer.d.ts.map +1 -0
  151. package/dist/serializer.js +2 -0
  152. package/dist/serializer.js.map +1 -0
  153. package/dist/session-persistence.d.ts +4 -0
  154. package/dist/session-persistence.d.ts.map +1 -0
  155. package/dist/session-persistence.js +68 -0
  156. package/dist/session-persistence.js.map +1 -0
  157. package/dist/session-toolbar.d.ts +62 -0
  158. package/dist/session-toolbar.d.ts.map +1 -0
  159. package/dist/session-toolbar.js +1205 -0
  160. package/dist/session-toolbar.js.map +1 -0
  161. package/dist/session.d.ts +69 -0
  162. package/dist/session.d.ts.map +1 -0
  163. package/dist/session.js +926 -0
  164. package/dist/session.js.map +1 -0
  165. package/dist/tail-ops.d.ts +28 -0
  166. package/dist/tail-ops.d.ts.map +1 -0
  167. package/dist/tail-ops.js +46 -0
  168. package/dist/tail-ops.js.map +1 -0
  169. package/dist/topic-lifecycle.d.ts +41 -0
  170. package/dist/topic-lifecycle.d.ts.map +1 -0
  171. package/dist/topic-lifecycle.js +169 -0
  172. package/dist/topic-lifecycle.js.map +1 -0
  173. package/dist/types.d.ts +22 -0
  174. package/dist/types.d.ts.map +1 -0
  175. package/dist/types.js +2 -0
  176. package/dist/types.js.map +1 -0
  177. package/dist/undo.d.ts +18 -0
  178. package/dist/undo.d.ts.map +1 -0
  179. package/dist/undo.js +110 -0
  180. package/dist/undo.js.map +1 -0
  181. package/dist/version-bar.d.ts +22 -0
  182. package/dist/version-bar.d.ts.map +1 -0
  183. package/dist/version-bar.js +169 -0
  184. package/dist/version-bar.js.map +1 -0
  185. package/dist/version.d.ts +3 -0
  186. package/dist/version.d.ts.map +1 -0
  187. package/dist/version.js +8 -0
  188. package/dist/version.js.map +1 -0
  189. package/dist/vite.d.ts +15 -0
  190. package/dist/vite.d.ts.map +1 -0
  191. package/dist/vite.js +36 -0
  192. package/dist/vite.js.map +1 -0
  193. package/dist/ws-client.d.ts +53 -0
  194. package/dist/ws-client.d.ts.map +1 -0
  195. package/dist/ws-client.js +604 -0
  196. package/dist/ws-client.js.map +1 -0
  197. package/dist/ws-frame-limit.d.ts +21 -0
  198. package/dist/ws-frame-limit.d.ts.map +1 -0
  199. package/dist/ws-frame-limit.js +40 -0
  200. package/dist/ws-frame-limit.js.map +1 -0
  201. package/docs/app-manifest.md +65 -0
  202. package/docs/custom-chrome.md +147 -0
  203. package/docs/hosted-ui-advanced.md +77 -0
  204. package/docs/imported-documents.md +261 -0
  205. package/docs/presence.md +129 -0
  206. package/docs/schemas.md +135 -0
  207. package/docs/streams.md +248 -0
  208. package/package.json +60 -0
  209. package/scripts/prepare.mjs +50 -0
  210. package/src/api-fetch.ts +127 -0
  211. package/src/api-headers.ts +28 -0
  212. package/src/auth-flow.ts +125 -0
  213. package/src/client.ts +1457 -0
  214. package/src/doc-url-sync.ts +183 -0
  215. package/src/document-branches.ts +124 -0
  216. package/src/document-checkpoints.ts +135 -0
  217. package/src/document-commands.ts +651 -0
  218. package/src/document-signals.ts +234 -0
  219. package/src/document-streams.ts +132 -0
  220. package/src/document-thumbnail-capture.ts +191 -0
  221. package/src/documents-namespace.ts +516 -0
  222. package/src/documents.ts +2426 -0
  223. package/src/emitter.ts +129 -0
  224. package/src/errors.ts +45 -0
  225. package/src/export-guest.ts +282 -0
  226. package/src/fetch-retry.ts +119 -0
  227. package/src/guest-link.ts +14 -0
  228. package/src/handles.ts +1731 -0
  229. package/src/hosted-runtime.ts +109 -0
  230. package/src/hosted-ui.ts +1020 -0
  231. package/src/importer.ts +89 -0
  232. package/src/index.ts +267 -0
  233. package/src/init-keys.ts +15 -0
  234. package/src/internal.ts +23 -0
  235. package/src/jwt.ts +18 -0
  236. package/src/launch-context.ts +43 -0
  237. package/src/login-hint.ts +60 -0
  238. package/src/mutate-batching.ts +63 -0
  239. package/src/open-document.ts +2869 -0
  240. package/src/page-title.ts +33 -0
  241. package/src/perf.ts +46 -0
  242. package/src/presence.ts +471 -0
  243. package/src/record-paging.ts +270 -0
  244. package/src/schema-conflict-dialog.ts +176 -0
  245. package/src/selection-persistence.ts +98 -0
  246. package/src/serializer.ts +15 -0
  247. package/src/session-persistence.ts +69 -0
  248. package/src/session-toolbar.ts +1457 -0
  249. package/src/session.ts +1262 -0
  250. package/src/tail-ops.ts +63 -0
  251. package/src/topic-lifecycle.ts +217 -0
  252. package/src/types.ts +75 -0
  253. package/src/undo.ts +125 -0
  254. package/src/version-bar.ts +221 -0
  255. package/src/version.ts +8 -0
  256. package/src/vite.ts +49 -0
  257. package/src/ws-client.ts +678 -0
  258. package/src/ws-frame-limit.ts +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosted-ui.js","sourceRoot":"","sources":["../src/hosted-ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Document } from './documents.js';
2
+ import type { DocumentSourceBlob } from './documents-namespace.js';
3
+ export type DocumentImporter = (source: DocumentSourceBlob, doc: Document) => void | Promise<void>;
4
+ export interface ImportClaimResponse {
5
+ claimed?: boolean;
6
+ already_imported?: boolean;
7
+ schema_ref?: {
8
+ app_id: string;
9
+ schema_hash: string;
10
+ };
11
+ }
12
+ export interface ImportRunnerDeps {
13
+ claimImport(docId: string): Promise<ImportClaimResponse>;
14
+ completeImport(docId: string): Promise<unknown>;
15
+ reportError(error: Error): void;
16
+ }
17
+ export interface ImportRunner {
18
+ setImporter(importer: DocumentImporter): void;
19
+ attempt(doc: Document): Promise<void>;
20
+ }
21
+ export declare function createImportRunner(deps: ImportRunnerDeps): ImportRunner;
22
+ //# sourceMappingURL=importer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAanE,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,QAAQ,KACV,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAM1B,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAyCvE"}
@@ -0,0 +1,54 @@
1
+ import { BrassError } from './errors.js';
2
+ // Runs the import protocol for one opened document: claim, and on the
3
+ // win fetch + parse + complete. Separated from the client so the
4
+ // protocol is testable against mocked HTTP deps.
5
+ export function createImportRunner(deps) {
6
+ let importer = null;
7
+ // One attempt per Document instance; a reopen mints a new instance,
8
+ // whose claim resolves `already_imported` as a no-op.
9
+ const attempted = new WeakSet();
10
+ return {
11
+ setImporter(fn) {
12
+ importer = fn;
13
+ },
14
+ async attempt(doc) {
15
+ if (importer === null || doc.id === null || attempted.has(doc))
16
+ return;
17
+ attempted.add(doc);
18
+ const run = importer;
19
+ const docId = doc.id;
20
+ let claim;
21
+ try {
22
+ claim = await deps.claimImport(docId);
23
+ }
24
+ catch (err) {
25
+ // The common no-op outcomes arrive as 4xx: not a stored source
26
+ // file, read-only access, another client's claim in flight. Only
27
+ // a server fault surfaces.
28
+ if (err instanceof BrassError && err.status !== undefined && err.status < 500) {
29
+ return;
30
+ }
31
+ deps.reportError(asError(err));
32
+ return;
33
+ }
34
+ if (claim.claimed !== true)
35
+ return;
36
+ // This client won the claim: run the importer, then report
37
+ // completion so the platform stamps the document with the app's
38
+ // schema. A throw leaves the claim to expire, so another client
39
+ // can retry rather than the document staying half-claimed.
40
+ try {
41
+ const source = await doc.sourceBlob();
42
+ await run(source, doc);
43
+ await deps.completeImport(docId);
44
+ }
45
+ catch (err) {
46
+ deps.reportError(asError(err));
47
+ }
48
+ },
49
+ };
50
+ }
51
+ function asError(err) {
52
+ return err instanceof Error ? err : new Error(String(err));
53
+ }
54
+ //# sourceMappingURL=importer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsCzC,sEAAsE;AACtE,iEAAiE;AACjE,iDAAiD;AACjD,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,IAAI,QAAQ,GAA4B,IAAI,CAAC;IAC7C,oEAAoE;IACpE,sDAAsD;IACtD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAY,CAAC;IAC1C,OAAO;QACL,WAAW,CAAC,EAAoB;YAC9B,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAa;YACzB,IAAI,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO;YACvE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,GAAG,GAAG,QAAQ,CAAC;YACrB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,KAA0B,CAAC;YAC/B,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,+DAA+D;gBAC/D,iEAAiE;gBACjE,2BAA2B;gBAC3B,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC9E,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;gBAAE,OAAO;YACnC,2DAA2D;YAC3D,gEAAgE;YAChE,gEAAgE;YAChE,2DAA2D;YAC3D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;gBACtC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACvB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { CreateDocumentOptions, OpenDocumentByIdOptions, OpenedDocument } from './open-document.js';
2
+ import type { SelectDocumentResult } from './hosted-ui.js';
3
+ import type { DocumentsNamespace } from './documents-namespace.js';
4
+ import type { DocumentImporter } from './importer.js';
5
+ import type { DocumentSerializer } from './serializer.js';
6
+ import type { DocumentSession } from './session.js';
7
+ import type { AuthStatus, ErrorListener, BrassInitOptions, BrassUser, UserChangeListener } from './types.js';
8
+ export type { AuthStatus, ErrorListener, BrassInitOptions, BrassUser, UserChangeListener, };
9
+ export { BrassError, type BrassErrorCode } from './errors.js';
10
+ export { type AcquireOrganizationResult, type HostedUiLauncher, type HostedUiLauncherOptions, type HostedUiTheme, type SelectDocumentResult, } from './hosted-ui.js';
11
+ export { type DocumentMember, type DocumentRecord, type DocumentRole, type DocumentCheckpoint, type DocumentSourceBlob, type DocumentSourceStream, type DocumentStreamInfo, type DocumentSummary, type DocumentThumbnail, type DocumentsNamespace, type GetThumbnailOptions, type SetThumbnailInput, } from './documents-namespace.js';
12
+ export { type CanvasSource, type Command, type CommandGroup, type CommandSurface, type DocumentSession, type DocumentSessionDeps, type SessionOpenOptions, type SessionStatus, } from './session.js';
13
+ export type { SessionToolbarHandle, SessionHeaderHandle, SessionToolbarOptions, MountedPiece, } from './session-toolbar.js';
14
+ import type { SessionToolbarHandle, SessionHeaderHandle, SessionToolbarOptions, MountedPiece } from './session-toolbar.js';
15
+ export { Document, type DocumentMutator, type DocumentOptions, type DocumentSubscriber, type SyntheticSubscribeEvent, type DocumentUnsubscribe, type DocumentGoneListener, type DocumentGoneReason, type DocumentGoneUnsubscribe, type DocumentWorkStatus, type DocumentStatusListener, type DocumentStatusUnsubscribe, type DocumentDriveStatus, type DocumentDriveStatusListener, type DocumentDriveStatusUnsubscribe, type DocumentDriveTrackingState, type DriveMirrorDirection, type EntityProxy, type UndoState, type UndoStateSubscriber, } from './documents.js';
16
+ export type { Change, ChangeOrigin, ChangeSource, HandleUnsubscribe, ListHandle, ListSubscriber, MapHandle, MapSubscriber, OrderedMapHandle, } from './handles.js';
17
+ export type { UndoControllerOptions } from './undo.js';
18
+ export type { DocumentSerializer } from './serializer.js';
19
+ export type { DocumentImporter } from './importer.js';
20
+ export { DocumentStream, type StreamRuntime } from './document-streams.js';
21
+ export { type CreateDocumentFn, type CreateDocumentOptions, type DocumentAtVersionResponse, type DocumentDriveSummaryWire, type DocumentFactory, type DocumentSnapshotResponse, type OpenDocumentFactoryOptions, type OpenDocumentByIdFn, type OpenDocumentByIdOptions, type OpenDocumentWsClient, type OpenedDocument, } from './open-document.js';
22
+ export type { PresenceChangeListener, PresenceClient, PresenceParticipant, PresenceSetInput, PresenceState, } from './presence.js';
23
+ declare function init(options?: BrassInitOptions): Promise<void>;
24
+ declare function init(appId: string, options?: BrassInitOptions): Promise<void>;
25
+ export declare const Brass: {
26
+ init: typeof init;
27
+ signIn(): void;
28
+ signOut(): void;
29
+ readonly user: BrassUser | null;
30
+ readonly authStatus: AuthStatus;
31
+ onUserChange(listener: UserChangeListener): () => void;
32
+ onError(listener: ErrorListener): () => void;
33
+ getAccessToken(): Promise<string | null>;
34
+ readonly documents: DocumentsNamespace;
35
+ readonly session: DocumentSession;
36
+ mountToolbar(container: HTMLElement, options?: SessionToolbarOptions): SessionToolbarHandle;
37
+ mountHeader(container: HTMLElement): SessionHeaderHandle;
38
+ mountFileMenu(container: HTMLElement): MountedPiece;
39
+ mountDocumentTitle(container: HTMLElement): MountedPiece;
40
+ mountUndoRedo(container: HTMLElement): MountedPiece;
41
+ mountPresenceRoster(container: HTMLElement): MountedPiece;
42
+ mountDriveSync(container: HTMLElement): MountedPiece;
43
+ mountAccountMenu(container: HTMLElement): MountedPiece;
44
+ mountVersionPreview(container: HTMLElement): MountedPiece;
45
+ selectDocument(): Promise<SelectDocumentResult | null>;
46
+ shareDocument(docId: string): Promise<void>;
47
+ openDocumentById(docId: string, options?: OpenDocumentByIdOptions): Promise<OpenedDocument>;
48
+ readonly isGuest: boolean;
49
+ createDocument(options?: CreateDocumentOptions): Promise<OpenedDocument>;
50
+ registerSerializer(serializer: DocumentSerializer): void;
51
+ registerImporter(importer: DocumentImporter): void;
52
+ };
53
+ export default Brass;
54
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,132 @@
1
+ import { BrassClient } from './client.js';
2
+ export { BrassError } from './errors.js';
3
+ export {} from './hosted-ui.js';
4
+ export {} from './documents-namespace.js';
5
+ export {} from './session.js';
6
+ export { Document, } from './documents.js';
7
+ export { DocumentStream } from './document-streams.js';
8
+ export {} from './open-document.js';
9
+ const client = new BrassClient();
10
+ function init(appIdOrOptions, options) {
11
+ if (typeof appIdOrOptions === 'string')
12
+ return client.init(appIdOrOptions, options);
13
+ return client.init(undefined, appIdOrOptions);
14
+ }
15
+ export const Brass = {
16
+ init,
17
+ signIn() {
18
+ client.signIn();
19
+ },
20
+ signOut() {
21
+ client.signOut();
22
+ },
23
+ get user() {
24
+ return client.currentUser;
25
+ },
26
+ // Tri-state auth lifecycle: `'unknown'` until `Brass.init` settles,
27
+ // then `'signed-in'` / `'signed-out'`. Gate the sign-in CTA on this,
28
+ // not on `!Brass.user`: a falsy `user` during `'unknown'` is "not
29
+ // checked yet", so gating on `!user` flashes the CTA at signed-in
30
+ // users on reload. Render the CTA only on `'signed-out'`.
31
+ get authStatus() {
32
+ return client.authStatus;
33
+ },
34
+ onUserChange(listener) {
35
+ return client.onUserChange(listener);
36
+ },
37
+ onError(listener) {
38
+ return client.onError(listener);
39
+ },
40
+ getAccessToken() {
41
+ return client.getAccessToken();
42
+ },
43
+ // Metadata read for a known id (`get`) plus thumbnails / branches /
44
+ // pushToDrive. Create / move / list / grant access are hosted-only.
45
+ get documents() {
46
+ return client.documents;
47
+ },
48
+ // The document session: owns the active-document lifecycle and exposes
49
+ // a flat command list to render. Accessible before `Brass.init` so a
50
+ // boot flow can subscribe first.
51
+ get session() {
52
+ return client.session;
53
+ },
54
+ // SDK-rendered document toolbar: file menu, title, location, account
55
+ // menu, presence roster into `container`. The app fills the returned
56
+ // `tools` slot with its own buttons.
57
+ mountToolbar(container, options) {
58
+ return client.mountToolbar(container, options);
59
+ },
60
+ // The bare header shell, for an app that wants the SDK's responsive
61
+ // layout but fills the clusters itself. Mount pieces into the returned
62
+ // `start` / `tools` / `end` slots; the account avatar in `end` stays
63
+ // pinned top-right on mobile, never wrapping when the tools wrap.
64
+ mountHeader(container) {
65
+ return client.mountHeader(container);
66
+ },
67
+ // Composable header pieces, for an app that builds its own shell and
68
+ // wants the standard clusters (account menu / presence / title / file
69
+ // menu / undo-redo) without the whole `mountToolbar` bar. Each renders
70
+ // one cluster and returns `{ destroy(): void }`.
71
+ mountFileMenu(container) {
72
+ return client.mountFileMenu(container);
73
+ },
74
+ mountDocumentTitle(container) {
75
+ return client.mountDocumentTitle(container);
76
+ },
77
+ mountUndoRedo(container) {
78
+ return client.mountUndoRedo(container);
79
+ },
80
+ mountPresenceRoster(container) {
81
+ return client.mountPresenceRoster(container);
82
+ },
83
+ mountDriveSync(container) {
84
+ return client.mountDriveSync(container);
85
+ },
86
+ mountAccountMenu(container) {
87
+ return client.mountAccountMenu(container);
88
+ },
89
+ // The historical-version preview banner (return-to-live during a hosted
90
+ // `history` preview). `mountToolbar` / `mountHeader` already include it, so
91
+ // this is only for an app that builds fully custom chrome.
92
+ mountVersionPreview(container) {
93
+ return client.mountVersionPreview(container);
94
+ },
95
+ selectDocument() {
96
+ return client.selectDocument();
97
+ },
98
+ // Opens the hosted multi-tier share dialog (document / project /
99
+ // organization in one UI) focused on the given document.
100
+ shareDocument(docId) {
101
+ return client.shareDocument(docId);
102
+ },
103
+ openDocumentById(docId, options) {
104
+ return client.openDocumentById(docId, options);
105
+ },
106
+ // `true` when the page was opened as an anonymous link guest
107
+ // (`?brass_link=`): no signed-in user, a read-only document. Apps render
108
+ // their working surface for a guest as they do for a signed-in user (the
109
+ // document is read-only) and show their sign-in CTA only when neither.
110
+ get isGuest() {
111
+ return client.isGuest;
112
+ },
113
+ createDocument(options) {
114
+ return client.createDocument(options);
115
+ },
116
+ // Register the app's export backend: serialises a blob document back
117
+ // to its source file's bytes. The platform calls it when a user
118
+ // downloads from a hosted surface (the app never initiates export).
119
+ // Call once at boot; an app with no serializer cannot export blobs.
120
+ registerSerializer(serializer) {
121
+ client.registerSerializer(serializer);
122
+ },
123
+ // Register the app's import backend: parses a stored source file into
124
+ // the document's records. Brass runs it when a document's file needs
125
+ // importing; the records reach every open client live. Call once at
126
+ // boot beside `registerSerializer`.
127
+ registerImporter(importer) {
128
+ client.registerImporter(importer);
129
+ },
130
+ };
131
+ export default Brass;
132
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const BRASS_INIT_ARG_KEYS: readonly ["app_id", "auth_base_url", "api_base_url", "ws_base_url"];
2
+ export type BrassInitArgKey = (typeof BRASS_INIT_ARG_KEYS)[number];
3
+ //# sourceMappingURL=init-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-keys.d.ts","sourceRoot":"","sources":["../src/init-keys.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,qEAKtB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Single source of truth for the set of keys an integration needs to
2
+ // plug into `Brass.init`. When you add a new field to `Brass.init`,
3
+ // add the key here first.
4
+ // Keys used in the prompt block the dashboard renders. The `app_id`
5
+ // line carries the app-specific id; the URL lines carry the env's
6
+ // auth / data / WS origins.
7
+ export const BRASS_INIT_ARG_KEYS = [
8
+ 'app_id',
9
+ 'auth_base_url',
10
+ 'api_base_url',
11
+ 'ws_base_url',
12
+ ];
13
+ //# sourceMappingURL=init-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-keys.js","sourceRoot":"","sources":["../src/init-keys.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,oEAAoE;AACpE,0BAA0B;AAE1B,oEAAoE;AACpE,kEAAkE;AAClE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,eAAe;IACf,cAAc;IACd,aAAa;CACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { BrassClient } from './client.js';
2
+ export { BrassWsClient } from './ws-client.js';
3
+ export { buildSignInUrl, refreshTokens, type RefreshCredential, type RefreshResult, type TokenSet, } from './auth-flow.js';
4
+ export { decodeIdToken } from './jwt.js';
5
+ export { BRASS_INIT_ARG_KEYS, type BrassInitArgKey } from './init-keys.js';
6
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,17 @@
1
+ // The entry point Brass's own surfaces import
2
+ // (`@brass-build/client/internal`).
3
+ //
4
+ // The dashboard, the operator console, and this package's tests consume
5
+ // the SDK as their client library and reach for primitives that sit
6
+ // below the `Brass` namespace: the client class that namespace wraps,
7
+ // the WS transport, the auth-flow helpers, and the init-key vocabulary
8
+ // the dashboard quickstart renders. They live on their own subpath so
9
+ // the default import (`@brass-build/client`) offers apps the `Brass`
10
+ // surface the README documents, and an assistant scaffolding from that
11
+ // README stays on it.
12
+ export { BrassClient } from './client.js';
13
+ export { BrassWsClient } from './ws-client.js';
14
+ export { buildSignInUrl, refreshTokens, } from './auth-flow.js';
15
+ export { decodeIdToken } from './jwt.js';
16
+ export { BRASS_INIT_ARG_KEYS } from './init-keys.js';
17
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,oCAAoC;AACpC,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,sEAAsE;AACtE,uEAAuE;AACvE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,sBAAsB;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,aAAa,GAId,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,gBAAgB,CAAC"}
package/dist/jwt.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { BrassUser } from './types.js';
2
+ export declare function decodeIdToken(idToken: string): BrassUser | null;
3
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAe/D"}
package/dist/jwt.js ADDED
@@ -0,0 +1,22 @@
1
+ export function decodeIdToken(idToken) {
2
+ const parts = idToken.split('.');
3
+ if (parts.length !== 3)
4
+ return null;
5
+ const payloadPart = parts[1];
6
+ if (!payloadPart)
7
+ return null;
8
+ try {
9
+ const json = atob(payloadPart.replace(/-/g, '+').replace(/_/g, '/'));
10
+ const claims = JSON.parse(json);
11
+ if (typeof claims.sub !== 'string')
12
+ return null;
13
+ const user = { sub: claims.sub };
14
+ if (typeof claims.email === 'string')
15
+ user.email = claims.email;
16
+ return user;
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ //# sourceMappingURL=jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuC,CAAC;QACtE,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChD,MAAM,IAAI,GAAc,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const LAUNCH_ORGANIZATION_PARAM = "brass_org";
2
+ export declare function readLaunchOrganizationId(search: string): string | null;
3
+ export declare function consumeLaunchOrganizationId(): string | null;
4
+ //# sourceMappingURL=launch-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAIrD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE;AAMD,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CAY3D"}
@@ -0,0 +1,44 @@
1
+ // The organization a launch came from. Brass appends
2
+ // `?brass_org=<organization_id>` to the app URL it opens from an
3
+ // organization's dashboard, so the first document an app creates lands in
4
+ // the organization the person was standing in when they clicked Open. A
5
+ // member of several organizations has already answered "which one" with
6
+ // that click; without the parameter the create reaches the server with no
7
+ // destination and comes back asking again.
8
+ //
9
+ // `brass_` prefixed like the platform's other boot parameters so it cannot
10
+ // collide with an app's own query string, and stripped from the address bar
11
+ // on read so it does not linger in history or a referrer.
12
+ //
13
+ // The dashboard writes this parameter in `src/lib/open-app-url.ts`; the
14
+ // published SDK cannot import the workspace, so the name is spelled in both
15
+ // places.
16
+ export const LAUNCH_ORGANIZATION_PARAM = 'brass_org';
17
+ // Pure + search-string-in so it stays testable, mirroring
18
+ // `readGuestLinkToken(search)`.
19
+ export function readLaunchOrganizationId(search) {
20
+ const value = new URLSearchParams(search).get(LAUNCH_ORGANIZATION_PARAM);
21
+ const trimmed = value?.trim() ?? '';
22
+ return trimmed === '' ? null : trimmed;
23
+ }
24
+ // Reads the parameter and strips it from the visible URL in the same tick.
25
+ // Best-effort on the strip: an exotic URL or an unavailable history API
26
+ // leaves the parameter in the address bar, which costs nothing, the value
27
+ // is already in hand.
28
+ export function consumeLaunchOrganizationId() {
29
+ if (typeof window === 'undefined')
30
+ return null;
31
+ const organizationId = readLaunchOrganizationId(window.location.search);
32
+ if (!organizationId)
33
+ return null;
34
+ try {
35
+ const url = new URL(window.location.href);
36
+ url.searchParams.delete(LAUNCH_ORGANIZATION_PARAM);
37
+ window.history.replaceState(window.history.state, '', url.toString());
38
+ }
39
+ catch {
40
+ /* address-bar tidiness only */
41
+ }
42
+ return organizationId;
43
+ }
44
+ //# sourceMappingURL=launch-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,iEAAiE;AACjE,0EAA0E;AAC1E,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,2CAA2C;AAC3C,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,0DAA0D;AAC1D,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,UAAU;AAEV,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;AAErD,0DAA0D;AAC1D,gCAAgC;AAChC,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACzC,CAAC;AAED,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,sBAAsB;AACtB,MAAM,UAAU,2BAA2B;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function storeLoginHint(appId: string): void;
2
+ export declare function readLoginHint(appId: string): boolean;
3
+ export declare function clearLoginHint(appId: string): void;
4
+ //# sourceMappingURL=login-hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-hint.d.ts","sourceRoot":"","sources":["../src/login-hint.ts"],"names":[],"mappings":"AA8BA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CASlD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAQlD"}
@@ -0,0 +1,63 @@
1
+ // Per-app "a Brass session probably exists for this app" hint.
2
+ //
3
+ // The platform session lives in an httpOnly cross-site cookie the app's
4
+ // origin can't read, so on a cold load the SDK would POST `/refresh`
5
+ // blindly; for a signed-out visitor that 401s, which the browser logs to
6
+ // the console even though the SDK handles it cleanly. The hint lets the SDK
7
+ // skip the probe when it has no reason to believe a session exists.
8
+ //
9
+ // Set after any successful refresh, cleared on sign-out or an empty
10
+ // refresh. localStorage (not sessionStorage) so a returning, already-
11
+ // approved user gets a silent restore in a brand-new tab. The value is a
12
+ // non-secret boolean flag (the real session is the server-side row gated by
13
+ // `approved_apps`, useless without the cookie), so readable storage leaks
14
+ // nothing. Keyed per app id.
15
+ const KEY_PREFIX = '__brass_login_hint_';
16
+ function getStorage() {
17
+ if (typeof localStorage === 'undefined')
18
+ return null;
19
+ try {
20
+ return localStorage;
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ function key(appId) {
27
+ return `${KEY_PREFIX}${appId}`;
28
+ }
29
+ export function storeLoginHint(appId) {
30
+ const storage = getStorage();
31
+ if (!storage)
32
+ return;
33
+ try {
34
+ storage.setItem(key(appId), '1');
35
+ }
36
+ catch {
37
+ // Quota / disabled storage. The hint is a best-effort optimisation;
38
+ // without it the SDK probes /refresh unconditionally.
39
+ }
40
+ }
41
+ export function readLoginHint(appId) {
42
+ const storage = getStorage();
43
+ if (!storage)
44
+ return false;
45
+ try {
46
+ return storage.getItem(key(appId)) === '1';
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ }
52
+ export function clearLoginHint(appId) {
53
+ const storage = getStorage();
54
+ if (!storage)
55
+ return;
56
+ try {
57
+ storage.removeItem(key(appId));
58
+ }
59
+ catch {
60
+ // See storeLoginHint.
61
+ }
62
+ }
63
+ //# sourceMappingURL=login-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-hint.js","sourceRoot":"","sources":["../src/login-hint.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,yEAAyE;AACzE,4EAA4E;AAC5E,oEAAoE;AACpE,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,6BAA6B;AAE7B,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,SAAS,UAAU;IACjB,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,sDAAsD;IACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const MUTATE_BATCH_JSON_BUDGET_CHARS: number;
2
+ /**
3
+ * Decides when a mutation should commit. The caller supplies what a commit
4
+ * means, since an ordered map reconciles its order list first.
5
+ */
6
+ export declare class MutateBatcher {
7
+ private readonly _flush;
8
+ private _chars;
9
+ constructor(_flush: () => void);
10
+ /** Account for one assignment, from the proxy's set trap. */
11
+ record(value: unknown): void;
12
+ recordDelete(): void;
13
+ }
14
+ //# sourceMappingURL=mutate-batching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutate-batching.d.ts","sourceRoot":"","sources":["../src/mutate-batching.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,8BAA8B,QAAY,CAAC;AAkBxD;;;GAGG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,MAAM,CAAK;gBAEU,MAAM,EAAE,MAAM,IAAI;IAE/C,6DAA6D;IAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAY5B,YAAY,IAAI,IAAI;CAGrB"}