@superbee/core 0.2.0-pre.1 → 0.2.0-pre.11

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 (219) hide show
  1. package/README.md +148 -0
  2. package/dist/artifact-contract.d.ts +90 -0
  3. package/dist/artifact-contract.d.ts.map +1 -0
  4. package/dist/artifact-contract.js +205 -0
  5. package/dist/artifact-contract.js.map +1 -0
  6. package/dist/backend.d.ts +16 -1
  7. package/dist/backend.d.ts.map +1 -1
  8. package/dist/backend.js +85 -42
  9. package/dist/backend.js.map +1 -1
  10. package/dist/bundle-ops.d.ts +1 -1
  11. package/dist/bundle-ops.d.ts.map +1 -1
  12. package/dist/bundle-ops.js +2 -2
  13. package/dist/bundle-ops.js.map +1 -1
  14. package/dist/bundle.d.ts +2 -1
  15. package/dist/bundle.d.ts.map +1 -1
  16. package/dist/bundle.js +3 -3
  17. package/dist/bundle.js.map +1 -1
  18. package/dist/document-codec.d.ts +6 -1
  19. package/dist/document-codec.d.ts.map +1 -1
  20. package/dist/document-codec.js +8 -4
  21. package/dist/document-codec.js.map +1 -1
  22. package/dist/document-field-actions.d.ts +13 -1
  23. package/dist/document-field-actions.d.ts.map +1 -1
  24. package/dist/document-field-actions.js +47 -6
  25. package/dist/document-field-actions.js.map +1 -1
  26. package/dist/document-mutation.d.ts +15 -1
  27. package/dist/document-mutation.d.ts.map +1 -1
  28. package/dist/document-mutation.js +42 -11
  29. package/dist/document-mutation.js.map +1 -1
  30. package/dist/document-write-policy.d.ts.map +1 -1
  31. package/dist/document-write-policy.js +4 -2
  32. package/dist/document-write-policy.js.map +1 -1
  33. package/dist/engine.d.ts +1 -1
  34. package/dist/engine.d.ts.map +1 -1
  35. package/dist/engine.js +4 -3
  36. package/dist/engine.js.map +1 -1
  37. package/dist/file-journaled-backend-internal.d.ts +19 -0
  38. package/dist/file-journaled-backend-internal.d.ts.map +1 -0
  39. package/dist/file-journaled-backend-internal.js +10 -0
  40. package/dist/file-journaled-backend-internal.js.map +1 -0
  41. package/dist/file-journaled-backend.d.ts +162 -0
  42. package/dist/file-journaled-backend.d.ts.map +1 -0
  43. package/dist/file-journaled-backend.js +1113 -0
  44. package/dist/file-journaled-backend.js.map +1 -0
  45. package/dist/filesystem-host.d.ts +15 -0
  46. package/dist/filesystem-host.d.ts.map +1 -0
  47. package/dist/filesystem-host.js +20 -0
  48. package/dist/filesystem-host.js.map +1 -0
  49. package/dist/filesystem-identity.d.ts +86 -4
  50. package/dist/filesystem-identity.d.ts.map +1 -1
  51. package/dist/filesystem-identity.js +338 -102
  52. package/dist/filesystem-identity.js.map +1 -1
  53. package/dist/filesystem-lock.d.ts +16 -3
  54. package/dist/filesystem-lock.d.ts.map +1 -1
  55. package/dist/filesystem-lock.js +323 -77
  56. package/dist/filesystem-lock.js.map +1 -1
  57. package/dist/filesystem-push-role.d.ts +77 -0
  58. package/dist/filesystem-push-role.d.ts.map +1 -0
  59. package/dist/filesystem-push-role.js +165 -0
  60. package/dist/filesystem-push-role.js.map +1 -0
  61. package/dist/filesystem.d.ts +17 -0
  62. package/dist/filesystem.d.ts.map +1 -0
  63. package/dist/filesystem.js +18 -0
  64. package/dist/filesystem.js.map +1 -0
  65. package/dist/frontmatter.d.ts +8 -0
  66. package/dist/frontmatter.d.ts.map +1 -1
  67. package/dist/frontmatter.js +14 -4
  68. package/dist/frontmatter.js.map +1 -1
  69. package/dist/governed-body-write.d.ts +106 -0
  70. package/dist/governed-body-write.d.ts.map +1 -0
  71. package/dist/governed-body-write.js +251 -0
  72. package/dist/governed-body-write.js.map +1 -0
  73. package/dist/heads-digest.d.ts +32 -0
  74. package/dist/heads-digest.d.ts.map +1 -0
  75. package/dist/heads-digest.js +37 -0
  76. package/dist/heads-digest.js.map +1 -0
  77. package/dist/host-policy-snapshot.d.ts +9 -0
  78. package/dist/host-policy-snapshot.d.ts.map +1 -0
  79. package/dist/host-policy-snapshot.js +33 -0
  80. package/dist/host-policy-snapshot.js.map +1 -0
  81. package/dist/host-text.d.ts +31 -0
  82. package/dist/host-text.d.ts.map +1 -0
  83. package/dist/host-text.js +77 -0
  84. package/dist/host-text.js.map +1 -0
  85. package/dist/hosted-transport/answer-rows.d.ts +216 -0
  86. package/dist/hosted-transport/answer-rows.d.ts.map +1 -0
  87. package/dist/hosted-transport/answer-rows.js +396 -0
  88. package/dist/hosted-transport/answer-rows.js.map +1 -0
  89. package/dist/hosted-transport/carrier.d.ts +142 -0
  90. package/dist/hosted-transport/carrier.d.ts.map +1 -0
  91. package/dist/hosted-transport/carrier.js +241 -0
  92. package/dist/hosted-transport/carrier.js.map +1 -0
  93. package/dist/hosted-transport/history-pages.d.ts +55 -0
  94. package/dist/hosted-transport/history-pages.d.ts.map +1 -0
  95. package/dist/hosted-transport/history-pages.js +69 -0
  96. package/dist/hosted-transport/history-pages.js.map +1 -0
  97. package/dist/hosted-transport/index.d.ts +18 -0
  98. package/dist/hosted-transport/index.d.ts.map +1 -0
  99. package/dist/hosted-transport/index.js +18 -0
  100. package/dist/hosted-transport/index.js.map +1 -0
  101. package/dist/hosted-transport/operations.d.ts +85 -0
  102. package/dist/hosted-transport/operations.d.ts.map +1 -0
  103. package/dist/hosted-transport/operations.js +128 -0
  104. package/dist/hosted-transport/operations.js.map +1 -0
  105. package/dist/hosted-transport/paged-reads.d.ts +87 -0
  106. package/dist/hosted-transport/paged-reads.d.ts.map +1 -0
  107. package/dist/hosted-transport/paged-reads.js +238 -0
  108. package/dist/hosted-transport/paged-reads.js.map +1 -0
  109. package/dist/hosted-transport/read-adapter.d.ts +250 -0
  110. package/dist/hosted-transport/read-adapter.d.ts.map +1 -0
  111. package/dist/hosted-transport/read-adapter.js +557 -0
  112. package/dist/hosted-transport/read-adapter.js.map +1 -0
  113. package/dist/hosted-transport/root-write.d.ts +114 -0
  114. package/dist/hosted-transport/root-write.d.ts.map +1 -0
  115. package/dist/hosted-transport/root-write.js +171 -0
  116. package/dist/hosted-transport/root-write.js.map +1 -0
  117. package/dist/hosted-transport/whole-document-transport.d.ts +203 -0
  118. package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -0
  119. package/dist/hosted-transport/whole-document-transport.js +438 -0
  120. package/dist/hosted-transport/whole-document-transport.js.map +1 -0
  121. package/dist/index.d.ts +22 -8
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +15 -5
  124. package/dist/index.js.map +1 -1
  125. package/dist/indexeddb-backend.d.ts +38 -6
  126. package/dist/indexeddb-backend.d.ts.map +1 -1
  127. package/dist/indexeddb-backend.js +511 -46
  128. package/dist/indexeddb-backend.js.map +1 -1
  129. package/dist/journaled-backend.d.ts +296 -7
  130. package/dist/journaled-backend.d.ts.map +1 -1
  131. package/dist/journaled-backend.js +312 -0
  132. package/dist/journaled-backend.js.map +1 -1
  133. package/dist/kind-coverage.d.ts +99 -0
  134. package/dist/kind-coverage.d.ts.map +1 -0
  135. package/dist/kind-coverage.js +186 -0
  136. package/dist/kind-coverage.js.map +1 -0
  137. package/dist/kinds.d.ts +31 -1
  138. package/dist/kinds.d.ts.map +1 -1
  139. package/dist/kinds.js +83 -16
  140. package/dist/kinds.js.map +1 -1
  141. package/dist/links.d.ts +1 -1
  142. package/dist/links.d.ts.map +1 -1
  143. package/dist/links.js +5 -10
  144. package/dist/links.js.map +1 -1
  145. package/dist/managed-document-metadata.d.ts +2 -0
  146. package/dist/managed-document-metadata.d.ts.map +1 -0
  147. package/dist/managed-document-metadata.js +9 -0
  148. package/dist/managed-document-metadata.js.map +1 -0
  149. package/dist/memory-backend.d.ts +2 -2
  150. package/dist/memory-backend.d.ts.map +1 -1
  151. package/dist/memory-backend.js +32 -16
  152. package/dist/memory-backend.js.map +1 -1
  153. package/dist/paths.d.ts +6 -2
  154. package/dist/paths.d.ts.map +1 -1
  155. package/dist/paths.js +35 -33
  156. package/dist/paths.js.map +1 -1
  157. package/dist/platform.d.ts +84 -6
  158. package/dist/platform.d.ts.map +1 -1
  159. package/dist/platform.js +9 -4
  160. package/dist/platform.js.map +1 -1
  161. package/dist/portable-export.d.ts +119 -0
  162. package/dist/portable-export.d.ts.map +1 -0
  163. package/dist/portable-export.js +501 -0
  164. package/dist/portable-export.js.map +1 -0
  165. package/dist/publication-filesystem.d.ts +1 -1
  166. package/dist/publication-filesystem.d.ts.map +1 -1
  167. package/dist/publication-filesystem.js +1 -1
  168. package/dist/publication-filesystem.js.map +1 -1
  169. package/dist/query-filter.d.ts +7 -2
  170. package/dist/query-filter.d.ts.map +1 -1
  171. package/dist/query-filter.js +24 -1
  172. package/dist/query-filter.js.map +1 -1
  173. package/dist/query-order.d.ts +22 -0
  174. package/dist/query-order.d.ts.map +1 -0
  175. package/dist/query-order.js +42 -0
  176. package/dist/query-order.js.map +1 -0
  177. package/dist/remote-backend.d.ts +91 -27
  178. package/dist/remote-backend.d.ts.map +1 -1
  179. package/dist/remote-backend.js +217 -49
  180. package/dist/remote-backend.js.map +1 -1
  181. package/dist/remote-document-codec.d.ts +15 -0
  182. package/dist/remote-document-codec.d.ts.map +1 -0
  183. package/dist/remote-document-codec.js +103 -0
  184. package/dist/remote-document-codec.js.map +1 -0
  185. package/dist/remote-error.d.ts +38 -0
  186. package/dist/remote-error.d.ts.map +1 -0
  187. package/dist/remote-error.js +59 -0
  188. package/dist/remote-error.js.map +1 -0
  189. package/dist/remote-operations.d.ts +6 -3
  190. package/dist/remote-operations.d.ts.map +1 -1
  191. package/dist/remote-operations.js +20 -5
  192. package/dist/remote-operations.js.map +1 -1
  193. package/dist/remote-parsers.d.ts +86 -0
  194. package/dist/remote-parsers.d.ts.map +1 -0
  195. package/dist/remote-parsers.js +181 -0
  196. package/dist/remote-parsers.js.map +1 -0
  197. package/dist/remote.d.ts +7 -2
  198. package/dist/remote.d.ts.map +1 -1
  199. package/dist/remote.js +6 -1
  200. package/dist/remote.js.map +1 -1
  201. package/dist/site-capabilities.d.ts +339 -0
  202. package/dist/site-capabilities.d.ts.map +1 -0
  203. package/dist/site-capabilities.js +717 -0
  204. package/dist/site-capabilities.js.map +1 -0
  205. package/dist/storage.d.ts +4 -2
  206. package/dist/storage.d.ts.map +1 -1
  207. package/dist/storage.js +4 -1
  208. package/dist/storage.js.map +1 -1
  209. package/dist/types.d.ts +28 -5
  210. package/dist/types.d.ts.map +1 -1
  211. package/dist/uncertain-write.d.ts +49 -13
  212. package/dist/uncertain-write.d.ts.map +1 -1
  213. package/dist/uncertain-write.js +36 -12
  214. package/dist/uncertain-write.js.map +1 -1
  215. package/dist/versioning.d.ts +9 -4
  216. package/dist/versioning.d.ts.map +1 -1
  217. package/dist/versioning.js +9 -4
  218. package/dist/versioning.js.map +1 -1
  219. package/package.json +38 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-rows.js","sourceRoot":"","sources":["../../src/hosted-transport/answer-rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * The carrier seam: how a hosted request leaves and what comes back, with the credential kept on
3
+ * the carrier's side. The browser's carrier sends the session cookie and CSRF token; the CLI's
4
+ * sends a bearer token. Everything above the seam (the read adapter, the whole-document
5
+ * transport, the answer rows) is the same for both, so one answer grammar serves every client.
6
+ *
7
+ * A carrier reports two failures and never a third: `denied` says nothing left (the credential
8
+ * was already gone, so the request was never sent), and `unavailable` says the request may have
9
+ * left and its answer is unknown. It never reports "not applied" on its own.
10
+ */
11
+ /** A hosted answer as the route sent it: the status, the headers, and the bounded JSON body (undefined when there is none). */
12
+ export type HostedAnswer = {
13
+ status: number;
14
+ headers: Headers;
15
+ body: unknown;
16
+ };
17
+ /** A streamed answer: the body as a stream for a `2xx`, otherwise the bounded refusal envelope. */
18
+ export type HostedStream = {
19
+ status: number;
20
+ headers: Headers;
21
+ } & ({
22
+ ok: true;
23
+ body: ReadableStream<Uint8Array>;
24
+ } | {
25
+ ok: false;
26
+ body: unknown;
27
+ });
28
+ export interface HostedRequestOptions {
29
+ /** Largest answer body admitted, in bytes; a larger or undecodable body is `unavailable`. */
30
+ maximum: number;
31
+ /** The request identity of an identified write or its outcome lookup. */
32
+ writeRequest?: string;
33
+ /**
34
+ * The binding the request is pinned to: the browser's editor recovery target, or the CLI
35
+ * checkout's digest. The carrier decides which header carries it.
36
+ */
37
+ binding?: string;
38
+ /**
39
+ * The tombstone a create acknowledges it re-creates (`X-Superbee-Recreate`), on a create and
40
+ * on that create's outcome lookup only. It is part of the request identity on the host, so a
41
+ * lookup must carry exactly what the write carried.
42
+ */
43
+ recreate?: string;
44
+ /**
45
+ * The agent the client runs under, such as `claude-code` (`X-Superbee-Via`): the unverified
46
+ * `;via=` part of the host's agent label for this write. Attribution only, never authority, and
47
+ * not part of the request identity. Only the whole-document transport's write and outcome
48
+ * requests carry it, and only a token {@link isAgentLabelVia} admits is ever sent.
49
+ */
50
+ via?: string;
51
+ /**
52
+ * A person's typed acknowledgment of the host's mass-delete hold (`X-Superbee-Accept-Deletes`):
53
+ * the deletions they confirmed the bundle's 24-hour window may hold, from 1 to 100,000. Sent on
54
+ * a delete only, and never without that confirmation. Admission only, not part of the request
55
+ * identity.
56
+ */
57
+ acceptDeletes?: number;
58
+ }
59
+ /** The header that carries {@link HostedRequestOptions.acceptDeletes}. */
60
+ export declare const ACCEPT_DELETES_HEADER = "X-Superbee-Accept-Deletes";
61
+ /** The largest acknowledgment the host admits. */
62
+ export declare const MAXIMUM_ACCEPTED_DELETIONS = 100000;
63
+ /** Whether `value` is an acknowledgment count the host admits: an integer from 1 to 100,000. */
64
+ export declare function isAcceptedDeletionCount(value: unknown): value is number;
65
+ /** The header that carries {@link HostedRequestOptions.recreate}. */
66
+ export declare const RECREATE_HEADER = "X-Superbee-Recreate";
67
+ /** The header that carries {@link HostedRequestOptions.via}. */
68
+ export declare const VIA_HEADER = "X-Superbee-Via";
69
+ /**
70
+ * Whether `value` is a `via` token the host admits: 1 to 32 characters of `[a-z0-9._-]`, never
71
+ * starting with `superbee` (Superbee's own names). The same rule as the host's `isAgentLabelVia`;
72
+ * the `/sync/v1` golden exchanges (`create-200-ok-via`, `write-400-invalid-via`) pin the header
73
+ * and the host's refusal. A token the host refused would make every write a terminal 400.
74
+ */
75
+ export declare function isAgentLabelVia(value: unknown): value is string;
76
+ /**
77
+ * A raw-bytes request ({@link HostedCarrier.bytes}), such as one blob of a staged bundle creation
78
+ * (`bundle-create-blob`): the body travels as `application/octet-stream` with its exact
79
+ * `Content-Length`, and the route's own fields travel as headers.
80
+ */
81
+ export interface HostedBytesRequestOptions {
82
+ /** Largest answer body admitted, in bytes; a larger or undecodable body is `unavailable`. */
83
+ maximum: number;
84
+ /** The request identity of the identified write the bytes belong to. */
85
+ writeRequest?: string;
86
+ /**
87
+ * The route's own fields (`X-Superbee-Workspace`, say): `X-Superbee-` names only, and never a
88
+ * header the carrier owns (the request identity, the binding, `recreate`, `via`, the deletion
89
+ * acknowledgment) or a credential. Values are printable ASCII.
90
+ */
91
+ headers?: Readonly<Record<string, string>>;
92
+ }
93
+ export interface HostedCarrier {
94
+ json(path: string, input: unknown, signal: AbortSignal, options: HostedRequestOptions): Promise<HostedAnswer>;
95
+ stream(path: string, input: unknown, signal: AbortSignal): Promise<HostedStream>;
96
+ /**
97
+ * One `POST` whose body is `body` exactly, answered as {@link json} answers. Optional: a carrier
98
+ * without it (the browser's) cannot send raw bytes, and a caller that needs them says so.
99
+ */
100
+ bytes?(path: string, body: Uint8Array, signal: AbortSignal, options: HostedBytesRequestOptions): Promise<HostedAnswer>;
101
+ }
102
+ /**
103
+ * The cause a carrier's `unavailable` carries when the answer was larger than the request's
104
+ * `maximum`: the host answered, and the same request gets the same answer, so a reader may report
105
+ * it as a deterministic refusal rather than an outage. The carrier's code stays `unavailable`.
106
+ */
107
+ export declare class HostedAnswerTooLarge extends Error {
108
+ readonly name = "HostedAnswerTooLarge";
109
+ readonly maximum: number;
110
+ constructor(maximum: number);
111
+ }
112
+ /** True when `error` is a carrier failure because the answer exceeded its bound. */
113
+ export declare function isAnswerTooLarge(error: unknown): boolean;
114
+ export declare class HostedCarrierError extends Error {
115
+ readonly name = "HostedCarrierError";
116
+ readonly code: "denied" | "unavailable";
117
+ constructor(code: "denied" | "unavailable", options?: {
118
+ cause?: unknown;
119
+ });
120
+ }
121
+ export interface FetchCarrierOptions {
122
+ /** The host's origin, e.g. `https://superbee.example`; paths are resolved against it. */
123
+ baseUrl: string;
124
+ /**
125
+ * The credential headers for one request, such as `{ Authorization: "Bearer …" }`. A rejection
126
+ * means no credential is available: the request is not sent and the carrier reports `denied`.
127
+ */
128
+ credentials(signal: AbortSignal): Promise<Record<string, string>>;
129
+ /** The header that carries `binding`. Default `X-Superbee-Checkout`. */
130
+ bindingHeader?: string;
131
+ fetch?: typeof fetch;
132
+ /** Every request is answered within this many milliseconds; a stream restarts it at each chunk. Default 15 s. */
133
+ deadlineMs?: number;
134
+ }
135
+ /**
136
+ * A carrier over `fetch` with caller-supplied credential headers: the shape the CLI's bearer
137
+ * carrier takes. Requests are `POST` with a JSON body (or, through `bytes`, a raw one), never follow
138
+ * redirects, and are refused before sending when the identity, binding or a route header is
139
+ * malformed.
140
+ */
141
+ export declare function createFetchCarrier(options: FetchCarrierOptions): HostedCarrier;
142
+ //# sourceMappingURL=carrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../../src/hosted-transport/carrier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * The carrier seam: how a hosted request leaves and what comes back, with the credential kept on
3
+ * the carrier's side. The browser's carrier sends the session cookie and CSRF token; the CLI's
4
+ * sends a bearer token. Everything above the seam (the read adapter, the whole-document
5
+ * transport, the answer rows) is the same for both, so one answer grammar serves every client.
6
+ *
7
+ * A carrier reports two failures and never a third: `denied` says nothing left (the credential
8
+ * was already gone, so the request was never sent), and `unavailable` says the request may have
9
+ * left and its answer is unknown. It never reports "not applied" on its own.
10
+ */
11
+ /** The header that carries {@link HostedRequestOptions.acceptDeletes}. */
12
+ export const ACCEPT_DELETES_HEADER = "X-Superbee-Accept-Deletes";
13
+ /** The largest acknowledgment the host admits. */
14
+ export const MAXIMUM_ACCEPTED_DELETIONS = 100000;
15
+ /** Whether `value` is an acknowledgment count the host admits: an integer from 1 to 100,000. */
16
+ export function isAcceptedDeletionCount(value) {
17
+ return Number.isSafeInteger(value) && value >= 1 && value <= MAXIMUM_ACCEPTED_DELETIONS;
18
+ }
19
+ /** The header that carries {@link HostedRequestOptions.recreate}. */
20
+ export const RECREATE_HEADER = "X-Superbee-Recreate";
21
+ /** The header that carries {@link HostedRequestOptions.via}. */
22
+ export const VIA_HEADER = "X-Superbee-Via";
23
+ /**
24
+ * Whether `value` is a `via` token the host admits: 1 to 32 characters of `[a-z0-9._-]`, never
25
+ * starting with `superbee` (Superbee's own names). The same rule as the host's `isAgentLabelVia`;
26
+ * the `/sync/v1` golden exchanges (`create-200-ok-via`, `write-400-invalid-via`) pin the header
27
+ * and the host's refusal. A token the host refused would make every write a terminal 400.
28
+ */
29
+ export function isAgentLabelVia(value) {
30
+ return typeof value === "string" && /^[a-z0-9._-]{1,32}$/.test(value) && !value.startsWith("superbee");
31
+ }
32
+ /**
33
+ * The cause a carrier's `unavailable` carries when the answer was larger than the request's
34
+ * `maximum`: the host answered, and the same request gets the same answer, so a reader may report
35
+ * it as a deterministic refusal rather than an outage. The carrier's code stays `unavailable`.
36
+ */
37
+ export class HostedAnswerTooLarge extends Error {
38
+ name = "HostedAnswerTooLarge";
39
+ maximum;
40
+ constructor(maximum) {
41
+ super(`the answer is larger than ${maximum} bytes`);
42
+ this.maximum = maximum;
43
+ }
44
+ }
45
+ /** True when `error` is a carrier failure because the answer exceeded its bound. */
46
+ export function isAnswerTooLarge(error) {
47
+ return error instanceof HostedCarrierError && error.cause instanceof HostedAnswerTooLarge;
48
+ }
49
+ export class HostedCarrierError extends Error {
50
+ name = "HostedCarrierError";
51
+ code;
52
+ constructor(code, options) {
53
+ super(code, options);
54
+ this.code = code;
55
+ }
56
+ }
57
+ const WRITE_REQUEST = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
58
+ const BINDING = /^sha256:[a-f0-9]{64}$/;
59
+ const ROUTE_HEADER = /^x-superbee-[a-z0-9]+(?:-[a-z0-9]+)*$/;
60
+ const ROUTE_HEADER_VALUE = /^[\x20-\x7e]{0,1024}$/;
61
+ async function readBounded(response, maximum) {
62
+ if (!response.body)
63
+ return undefined;
64
+ const reader = response.body.getReader();
65
+ const chunks = [];
66
+ let size = 0;
67
+ try {
68
+ for (;;) {
69
+ const part = await reader.read();
70
+ if (part.done)
71
+ break;
72
+ size += part.value.byteLength;
73
+ if (size > maximum)
74
+ throw new HostedCarrierError("unavailable", { cause: new HostedAnswerTooLarge(maximum) });
75
+ chunks.push(part.value);
76
+ }
77
+ }
78
+ finally {
79
+ void reader.cancel().catch(() => { });
80
+ }
81
+ if (size === 0)
82
+ return undefined;
83
+ const bytes = new Uint8Array(size);
84
+ let offset = 0;
85
+ for (const chunk of chunks) {
86
+ bytes.set(chunk, offset);
87
+ offset += chunk.byteLength;
88
+ }
89
+ try {
90
+ return JSON.parse(new TextDecoder("utf-8", { fatal: true, ignoreBOM: false }).decode(bytes));
91
+ }
92
+ catch (cause) {
93
+ throw new HostedCarrierError("unavailable", { cause });
94
+ }
95
+ }
96
+ /** Restart `deadlineMs` at every chunk, so a slow but live stream is not cut and a stalled one is. */
97
+ function idleBounded(body, deadlineMs, abort) {
98
+ let timer;
99
+ const arm = () => {
100
+ clearTimeout(timer);
101
+ timer = setTimeout(abort, deadlineMs);
102
+ };
103
+ arm();
104
+ return body.pipeThrough(new TransformStream({
105
+ transform(chunk, controller) {
106
+ arm();
107
+ controller.enqueue(chunk);
108
+ },
109
+ flush() {
110
+ clearTimeout(timer);
111
+ },
112
+ }));
113
+ }
114
+ /** A request's headers: its own fields, then the credential and the content headers, which always win. */
115
+ function requestHeaders(credentials, extra, type) {
116
+ const headers = new Headers(extra);
117
+ for (const [name, value] of Object.entries(credentials))
118
+ headers.set(name, value);
119
+ headers.set("Content-Type", type);
120
+ headers.set("Accept", "application/json");
121
+ return headers;
122
+ }
123
+ /**
124
+ * A carrier over `fetch` with caller-supplied credential headers: the shape the CLI's bearer
125
+ * carrier takes. Requests are `POST` with a JSON body (or, through `bytes`, a raw one), never follow
126
+ * redirects, and are refused before sending when the identity, binding or a route header is
127
+ * malformed.
128
+ */
129
+ export function createFetchCarrier(options) {
130
+ const fetcher = options.fetch ?? fetch;
131
+ const deadlineMs = options.deadlineMs ?? 15_000;
132
+ const bindingHeader = options.bindingHeader ?? "X-Superbee-Checkout";
133
+ const base = new URL(options.baseUrl);
134
+ async function send(path, body, signal, extra, deadline) {
135
+ if (!path.startsWith("/"))
136
+ throw new TypeError(`hosted route '${path}' must be absolute`);
137
+ let credentials;
138
+ try {
139
+ credentials = await options.credentials(signal);
140
+ }
141
+ catch (cause) {
142
+ throw new HostedCarrierError("denied", { cause });
143
+ }
144
+ if (signal.aborted)
145
+ throw new HostedCarrierError("denied");
146
+ try {
147
+ return await fetcher(new URL(path, base), {
148
+ method: "POST",
149
+ redirect: "error",
150
+ headers: requestHeaders(credentials, extra, body.type),
151
+ body: body.content,
152
+ signal: AbortSignal.any([signal, deadline]),
153
+ });
154
+ }
155
+ catch (cause) {
156
+ throw new HostedCarrierError("unavailable", { cause });
157
+ }
158
+ }
159
+ const jsonBody = (input) => ({ type: "application/json", content: JSON.stringify(input) });
160
+ // Headers the carrier sets itself, which a route's own fields never name.
161
+ const owned = new Set(["x-superbee-write-request", bindingHeader.toLowerCase(), RECREATE_HEADER.toLowerCase(), VIA_HEADER.toLowerCase(), ACCEPT_DELETES_HEADER.toLowerCase()]);
162
+ async function answer(path, body, signal, extra, maximum) {
163
+ // An answer is always read within a bound: an unset or nonsensical maximum refuses before sending.
164
+ if (!Number.isSafeInteger(maximum) || maximum <= 0)
165
+ throw new HostedCarrierError("denied");
166
+ const deadline = AbortSignal.timeout(deadlineMs);
167
+ const response = await send(path, body, signal, extra, deadline);
168
+ let read;
169
+ try {
170
+ read = await readBounded(response, maximum);
171
+ }
172
+ catch (error) {
173
+ // A refusal's envelope is best effort: its status already decides, and an unreadable
174
+ // body must never read as "not applied".
175
+ if (response.ok)
176
+ throw error instanceof HostedCarrierError ? error : new HostedCarrierError("unavailable", { cause: error });
177
+ read = undefined;
178
+ }
179
+ return { status: response.status, headers: response.headers, body: read };
180
+ }
181
+ return {
182
+ async json(path, input, signal, request) {
183
+ if (request.writeRequest !== undefined && !WRITE_REQUEST.test(request.writeRequest))
184
+ throw new HostedCarrierError("denied");
185
+ if (request.binding !== undefined && !BINDING.test(request.binding))
186
+ throw new HostedCarrierError("denied");
187
+ if (request.recreate !== undefined && !BINDING.test(request.recreate))
188
+ throw new HostedCarrierError("denied");
189
+ if (request.via !== undefined && !isAgentLabelVia(request.via))
190
+ throw new HostedCarrierError("denied");
191
+ if (request.acceptDeletes !== undefined && !isAcceptedDeletionCount(request.acceptDeletes))
192
+ throw new HostedCarrierError("denied");
193
+ const extra = {};
194
+ if (request.writeRequest !== undefined)
195
+ extra["X-Superbee-Write-Request"] = request.writeRequest;
196
+ if (request.binding !== undefined)
197
+ extra[bindingHeader] = request.binding;
198
+ if (request.recreate !== undefined)
199
+ extra[RECREATE_HEADER] = request.recreate;
200
+ if (request.via !== undefined)
201
+ extra[VIA_HEADER] = request.via;
202
+ if (request.acceptDeletes !== undefined)
203
+ extra[ACCEPT_DELETES_HEADER] = String(request.acceptDeletes);
204
+ return answer(path, jsonBody(input), signal, extra, request.maximum);
205
+ },
206
+ async bytes(path, body, signal, request) {
207
+ if (!(body instanceof Uint8Array))
208
+ throw new HostedCarrierError("denied");
209
+ if (request.writeRequest !== undefined && !WRITE_REQUEST.test(request.writeRequest))
210
+ throw new HostedCarrierError("denied");
211
+ const extra = {};
212
+ for (const [name, value] of Object.entries(request.headers ?? {})) {
213
+ const lower = name.toLowerCase();
214
+ if (!ROUTE_HEADER.test(lower) || owned.has(lower) || lower in extra || typeof value !== "string" || !ROUTE_HEADER_VALUE.test(value))
215
+ throw new HostedCarrierError("denied");
216
+ extra[lower] = value;
217
+ }
218
+ if (request.writeRequest !== undefined)
219
+ extra["X-Superbee-Write-Request"] = request.writeRequest;
220
+ // The body is sent as given; `fetch` derives its exact Content-Length from the bytes.
221
+ return answer(path, { type: "application/octet-stream", content: body }, signal, extra, request.maximum);
222
+ },
223
+ async stream(path, input, signal) {
224
+ const idle = new AbortController();
225
+ const firstByte = setTimeout(() => idle.abort(), deadlineMs);
226
+ let response;
227
+ try {
228
+ response = await send(path, jsonBody(input), signal, {}, idle.signal);
229
+ }
230
+ finally {
231
+ clearTimeout(firstByte);
232
+ }
233
+ if (!response.ok || !response.body) {
234
+ const body = await readBounded(response, 64 * 1024).catch(() => undefined);
235
+ return { status: response.status, headers: response.headers, ok: false, body };
236
+ }
237
+ return { status: response.status, headers: response.headers, ok: true, body: idleBounded(response.body, deadlineMs, () => idle.abort()) };
238
+ },
239
+ };
240
+ }
241
+ //# sourceMappingURL=carrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../../src/hosted-transport/carrier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Paging back through one document's hosted history (`documents.history.v1`). The host serves a
3
+ * lineage newest first, a page at a time: the first page (no `before`) states the lineage's
4
+ * `total`, and each later page lists the versions older than the last one read. Older versions
5
+ * never change, so a write that only appends to the lineage while the pages are read leaves the
6
+ * listing a true picture of the lineage as the first page saw it.
7
+ *
8
+ * What does break a listing is a new lineage: the document deleted (and perhaps recreated, its
9
+ * `seq` restarting at 1) between two pages. A later page that answers `document_not_found` says
10
+ * so directly; otherwise, after a listing of more than one page, the first page's newest version
11
+ * is read again by its `seq`, and a listing whose newest version is gone or different starts
12
+ * again from the first page, after {@link pageRestartDelay}, at most {@link HEADS_PAGE_ATTEMPTS}
13
+ * times in all. Pages from two lineages are never assembled into one listing.
14
+ */
15
+ import { type HostedHistoryAnswer, type HostedHistoryRequest, type HostedHistoryVersion, type HostedOperationRefusal } from "./read-adapter.js";
16
+ /** Reads one page of a document's history (a client's bounded history read). */
17
+ export type HistoryPageReader = (request: HostedHistoryRequest) => Promise<HostedHistoryAnswer>;
18
+ export interface HistoryListingRequest {
19
+ readonly documentId: string;
20
+ /** The newest this many versions, or fewer when the lineage is shorter. */
21
+ readonly wanted: number;
22
+ /** Ask each page for its versions' stored bytes (a page's content shares the host's 1 MiB bound). */
23
+ readonly includeContent?: boolean;
24
+ /** Versions per request, 1..{@link HISTORY_PAGE_LIMIT} (default: the limit). */
25
+ readonly pageSize?: number;
26
+ }
27
+ export type HistoryListing =
28
+ /** Newest first; `total` is the lineage's length as the first page stated it. */
29
+ {
30
+ readonly status: "listed";
31
+ readonly versions: readonly HostedHistoryVersion[];
32
+ readonly total: number;
33
+ }
34
+ /** The first page answered `document_not_found`: the host has no such document. */
35
+ | {
36
+ readonly status: "absent";
37
+ }
38
+ /** The host refused a page for another reason; the caller maps it. */
39
+ | {
40
+ readonly status: "refused";
41
+ readonly refusal: HostedOperationRefusal;
42
+ }
43
+ /** The lineage changed under every attempt. */
44
+ | {
45
+ readonly status: "moved";
46
+ };
47
+ export interface HistoryListingOptions {
48
+ readonly signal: AbortSignal;
49
+ /** Test seam: how the listing waits before starting again. */
50
+ readonly sleep?: (ms: number, signal: AbortSignal) => Promise<void>;
51
+ readonly attempts?: number;
52
+ }
53
+ /** The newest `wanted` versions of one lineage, paged back with `before`. */
54
+ export declare function readHistoryListing(readPage: HistoryPageReader, request: HistoryListingRequest, options: HistoryListingOptions): Promise<HistoryListing>;
55
+ //# sourceMappingURL=history-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-pages.d.ts","sourceRoot":"","sources":["../../src/hosted-transport/history-pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAsB,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpK,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEhG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qGAAqG;IACrG,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,cAAc;AACxB,iFAAiF;AAC/E;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC3G,mFAAmF;GACjF;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE;AAC/B,sEAAsE;GACpE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE;AAC1E,+CAA+C;GAC7C;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsCD,6EAA6E;AAC7E,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ7J"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Paging back through one document's hosted history (`documents.history.v1`). The host serves a
3
+ * lineage newest first, a page at a time: the first page (no `before`) states the lineage's
4
+ * `total`, and each later page lists the versions older than the last one read. Older versions
5
+ * never change, so a write that only appends to the lineage while the pages are read leaves the
6
+ * listing a true picture of the lineage as the first page saw it.
7
+ *
8
+ * What does break a listing is a new lineage: the document deleted (and perhaps recreated, its
9
+ * `seq` restarting at 1) between two pages. A later page that answers `document_not_found` says
10
+ * so directly; otherwise, after a listing of more than one page, the first page's newest version
11
+ * is read again by its `seq`, and a listing whose newest version is gone or different starts
12
+ * again from the first page, after {@link pageRestartDelay}, at most {@link HEADS_PAGE_ATTEMPTS}
13
+ * times in all. Pages from two lineages are never assembled into one listing.
14
+ */
15
+ import { HEADS_PAGE_ATTEMPTS, pageRestartDelay, pause } from "./paged-reads.js";
16
+ import { HISTORY_PAGE_LIMIT } from "./read-adapter.js";
17
+ async function listOnce(readPage, request) {
18
+ const size = request.pageSize ?? HISTORY_PAGE_LIMIT;
19
+ if (!Number.isSafeInteger(size) || size < 1 || size > HISTORY_PAGE_LIMIT)
20
+ throw new RangeError(`history page size must be 1..${HISTORY_PAGE_LIMIT}`);
21
+ const versions = [];
22
+ let total = 0;
23
+ let before;
24
+ for (;;) {
25
+ const answer = await readPage({
26
+ documentId: request.documentId,
27
+ limit: Math.min(size, request.wanted - versions.length),
28
+ ...(before === undefined ? {} : { before }),
29
+ ...(request.includeContent ? { includeContent: true } : {}),
30
+ });
31
+ if (!answer.ok) {
32
+ // Absent on the first page is the answer; absent on a later page, the lineage ended meanwhile.
33
+ if (answer.refusal.code === "document_not_found")
34
+ return before === undefined ? { status: "absent" } : "moved";
35
+ return { status: "refused", refusal: answer.refusal };
36
+ }
37
+ const { page } = answer;
38
+ if (before === undefined)
39
+ total = page.total;
40
+ versions.push(...page.versions);
41
+ if (!page.more || versions.length >= request.wanted)
42
+ break;
43
+ before = page.versions.at(-1).seq;
44
+ }
45
+ if (before === undefined)
46
+ return { status: "listed", versions, total };
47
+ // More than one page: the first page's newest version must still be the lineage's, by its seq.
48
+ const newest = versions[0];
49
+ const check = await readPage({ documentId: request.documentId, limit: 1, before: newest.seq + 1 });
50
+ if (!check.ok)
51
+ return check.refusal.code === "document_not_found" ? "moved" : { status: "refused", refusal: check.refusal };
52
+ const again = check.page.versions[0];
53
+ if (!again || again.seq !== newest.seq || again.version !== newest.version || again.timestamp !== newest.timestamp)
54
+ return "moved";
55
+ return { status: "listed", versions, total };
56
+ }
57
+ /** The newest `wanted` versions of one lineage, paged back with `before`. */
58
+ export async function readHistoryListing(readPage, request, options) {
59
+ const attempts = options.attempts ?? HEADS_PAGE_ATTEMPTS;
60
+ for (let attempt = 1;; attempt += 1) {
61
+ const result = await listOnce(readPage, request);
62
+ if (result !== "moved")
63
+ return result;
64
+ if (attempt >= attempts)
65
+ return { status: "moved" };
66
+ await (options.sleep ?? pause)(pageRestartDelay(attempt), options.signal);
67
+ }
68
+ }
69
+ //# sourceMappingURL=history-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-pages.js","sourceRoot":"","sources":["../../src/hosted-transport/history-pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Experimental (`0.2.0-pre`): names and exports may change before a stable release, and the
3
+ * `/sync/v1` routes this module targets are not yet served.
4
+ *
5
+ * `@superbee/core/hosted-transport`: one client grammar for a hosted Superbee bundle, shared by
6
+ * the browser working copy and the CLI checkout. The carrier seam keeps the credential
7
+ * (cookie and CSRF, or bearer) outside; the read adapter, the answer rows and the
8
+ * whole-document write transport are the same for every client.
9
+ */
10
+ export * from "./carrier.js";
11
+ export * from "./answer-rows.js";
12
+ export * from "./read-adapter.js";
13
+ export * from "./paged-reads.js";
14
+ export * from "./whole-document-transport.js";
15
+ export * from "./history-pages.js";
16
+ export * from "./operations.js";
17
+ export * from "./root-write.js";
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hosted-transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Experimental (`0.2.0-pre`): names and exports may change before a stable release, and the
3
+ * `/sync/v1` routes this module targets are not yet served.
4
+ *
5
+ * `@superbee/core/hosted-transport`: one client grammar for a hosted Superbee bundle, shared by
6
+ * the browser working copy and the CLI checkout. The carrier seam keeps the credential
7
+ * (cookie and CSRF, or bearer) outside; the read adapter, the answer rows and the
8
+ * whole-document write transport are the same for every client.
9
+ */
10
+ export * from "./carrier.js";
11
+ export * from "./answer-rows.js";
12
+ export * from "./read-adapter.js";
13
+ export * from "./paged-reads.js";
14
+ export * from "./whole-document-transport.js";
15
+ export * from "./history-pages.js";
16
+ export * from "./operations.js";
17
+ export * from "./root-write.js";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hosted-transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}