@opengeni/contracts 0.40.0 → 0.44.1

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 (125) hide show
  1. package/dist/atlassian.d.ts +278 -0
  2. package/dist/atlassian.js +55 -0
  3. package/dist/atlassian.js.map +1 -0
  4. package/dist/chunk-52SGB2QO.js +688 -0
  5. package/dist/chunk-52SGB2QO.js.map +1 -0
  6. package/dist/{chunk-7JZMI22I.js → chunk-5UDNP7AO.js} +34 -2
  7. package/dist/chunk-5UDNP7AO.js.map +1 -0
  8. package/dist/chunk-BVGIYW7D.js +11 -0
  9. package/dist/chunk-BVGIYW7D.js.map +1 -0
  10. package/dist/chunk-CADSX6UN.js +1145 -0
  11. package/dist/chunk-CADSX6UN.js.map +1 -0
  12. package/dist/chunk-D2HKF2EF.js +1460 -0
  13. package/dist/chunk-D2HKF2EF.js.map +1 -0
  14. package/dist/chunk-FJBG5E4O.js +194 -0
  15. package/dist/chunk-FJBG5E4O.js.map +1 -0
  16. package/dist/chunk-H5BVCZKF.js +382 -0
  17. package/dist/chunk-H5BVCZKF.js.map +1 -0
  18. package/dist/chunk-LSB7GRLG.js +779 -0
  19. package/dist/chunk-LSB7GRLG.js.map +1 -0
  20. package/dist/chunk-MYBZRDTY.js +340 -0
  21. package/dist/chunk-MYBZRDTY.js.map +1 -0
  22. package/dist/chunk-RIY7GYQS.js +1204 -0
  23. package/dist/chunk-RIY7GYQS.js.map +1 -0
  24. package/dist/chunk-TZ6YEYN4.js +386 -0
  25. package/dist/chunk-TZ6YEYN4.js.map +1 -0
  26. package/dist/chunk-VA22KRHS.js +15177 -0
  27. package/dist/chunk-VA22KRHS.js.map +1 -0
  28. package/dist/chunk-Y3MLSLB4.js +392 -0
  29. package/dist/chunk-Y3MLSLB4.js.map +1 -0
  30. package/dist/chunk-YRKRZ6OF.js +134 -0
  31. package/dist/chunk-YRKRZ6OF.js.map +1 -0
  32. package/dist/company-profile.d.ts +629 -0
  33. package/dist/document-artifact-commands.d.ts +282 -0
  34. package/dist/document-artifact-commands.js +54 -0
  35. package/dist/document-artifact-commands.js.map +1 -0
  36. package/dist/document-artifact-query.d.ts +2 -0
  37. package/dist/document-artifact-query.js +54 -0
  38. package/dist/document-artifact-query.js.map +1 -0
  39. package/dist/editable-artifact-binary.d.ts +56 -0
  40. package/dist/editable-artifact-causal-frontier.d.ts +12 -0
  41. package/dist/editable-artifact-causal-frontier.js +18 -0
  42. package/dist/editable-artifact-causal-frontier.js.map +1 -0
  43. package/dist/editable-artifact-codec-registry.d.ts +48 -0
  44. package/dist/editable-artifact-codec-registry.js +20 -0
  45. package/dist/editable-artifact-codec-registry.js.map +1 -0
  46. package/dist/editable-artifact-committed-transaction.d.ts +35 -0
  47. package/dist/editable-artifact-committed-transaction.js +19 -0
  48. package/dist/editable-artifact-committed-transaction.js.map +1 -0
  49. package/dist/editable-artifact-live.d.ts +276 -0
  50. package/dist/editable-artifact-live.js +907 -0
  51. package/dist/editable-artifact-live.js.map +1 -0
  52. package/dist/editable-artifact-serialized-commit.d.ts +53 -0
  53. package/dist/editable-artifact-serialized-commit.js +26 -0
  54. package/dist/editable-artifact-serialized-commit.js.map +1 -0
  55. package/dist/editable-artifact-versions.d.ts +6 -0
  56. package/dist/editable-artifact-versions.js +11 -0
  57. package/dist/editable-artifact-versions.js.map +1 -0
  58. package/dist/editable-artifacts.d.ts +46 -0
  59. package/dist/editable-artifacts.js +236 -0
  60. package/dist/editable-artifacts.js.map +1 -0
  61. package/dist/event-preview.d.ts +1 -1
  62. package/dist/google-drive.d.ts +114 -2
  63. package/dist/google-drive.js +70 -14
  64. package/dist/google-drive.js.map +1 -1
  65. package/dist/image-generation.d.ts +70 -0
  66. package/dist/index.d.ts +4460 -155
  67. package/dist/index.js +1127 -30
  68. package/dist/interaction.d.ts +6895 -0
  69. package/dist/memory-slack-delivery.d.ts +397 -0
  70. package/dist/presentation-artifact-commands.d.ts +349 -0
  71. package/dist/presentation-artifact-commands.js +66 -0
  72. package/dist/presentation-artifact-commands.js.map +1 -0
  73. package/dist/presentation-artifact-query.d.ts +2 -0
  74. package/dist/presentation-artifact-query.js +66 -0
  75. package/dist/presentation-artifact-query.js.map +1 -0
  76. package/dist/retained-output.d.ts +24 -0
  77. package/dist/sandbox-snapshots.d.ts +9 -0
  78. package/dist/scoped-knowledge.d.ts +14 -13
  79. package/dist/slack-bot-scopes.d.ts +4 -0
  80. package/dist/slack-bot-scopes.js +3 -1
  81. package/dist/spreadsheet-artifact-commands.d.ts +101 -0
  82. package/dist/spreadsheet-artifact-commands.js +27 -0
  83. package/dist/spreadsheet-artifact-commands.js.map +1 -0
  84. package/dist/spreadsheet-artifact-date.d.ts +4 -0
  85. package/dist/spreadsheet-artifact-query.d.ts +120 -0
  86. package/dist/spreadsheet-artifact-query.js +48 -0
  87. package/dist/spreadsheet-artifact-query.js.map +1 -0
  88. package/dist/tool-catalog.d.ts +576 -0
  89. package/dist/video-generation.d.ts +532 -0
  90. package/dist/video-generation.js +51 -0
  91. package/dist/video-generation.js.map +1 -0
  92. package/dist/workspace-learning-policy.d.ts +208 -0
  93. package/package.json +61 -1
  94. package/src/atlassian.ts +160 -0
  95. package/src/company-profile.ts +306 -0
  96. package/src/document-artifact-commands.ts +1709 -0
  97. package/src/document-artifact-query.ts +2 -0
  98. package/src/editable-artifact-binary.ts +396 -0
  99. package/src/editable-artifact-causal-frontier.ts +154 -0
  100. package/src/editable-artifact-codec-registry.ts +261 -0
  101. package/src/editable-artifact-committed-transaction.ts +478 -0
  102. package/src/editable-artifact-live.ts +1379 -0
  103. package/src/editable-artifact-serialized-commit.ts +494 -0
  104. package/src/editable-artifact-versions.ts +8 -0
  105. package/src/editable-artifacts.ts +473 -0
  106. package/src/google-drive.ts +68 -15
  107. package/src/image-generation.ts +106 -0
  108. package/src/index.ts +2326 -325
  109. package/src/interaction.ts +2292 -0
  110. package/src/memory-slack-delivery.ts +183 -0
  111. package/src/presentation-artifact-commands.ts +2035 -0
  112. package/src/presentation-artifact-query.ts +2 -0
  113. package/src/retained-output.ts +149 -2
  114. package/src/sandbox-snapshots.ts +28 -1
  115. package/src/scoped-knowledge.ts +18 -4
  116. package/src/slack-bot-scopes.ts +34 -1
  117. package/src/spreadsheet-artifact-commands.ts +999 -0
  118. package/src/spreadsheet-artifact-date.ts +21 -0
  119. package/src/spreadsheet-artifact-query.ts +1411 -0
  120. package/src/tool-catalog.ts +334 -0
  121. package/src/video-generation.ts +394 -0
  122. package/src/workspace-learning-policy.ts +233 -0
  123. package/dist/chunk-5HR2GPSC.js +0 -11031
  124. package/dist/chunk-5HR2GPSC.js.map +0 -1
  125. package/dist/chunk-7JZMI22I.js.map +0 -1
@@ -0,0 +1,382 @@
1
+ import {
2
+ EDITABLE_ARTIFACT_INTENT_MAX_BYTES,
3
+ decodeEditableArtifactMutationIntent,
4
+ encodeEditableArtifactMutationIntent,
5
+ hashEditableArtifactMutationIntentBytes
6
+ } from "./chunk-TZ6YEYN4.js";
7
+ import {
8
+ editableArtifactCodecFor
9
+ } from "./chunk-FJBG5E4O.js";
10
+ import {
11
+ DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,
12
+ DOCUMENT_ARTIFACT_MAX_STRUCTURAL_COUNTER
13
+ } from "./chunk-RIY7GYQS.js";
14
+ import {
15
+ ArtifactBinaryReader,
16
+ ArtifactBinaryWriter,
17
+ EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES,
18
+ EDITABLE_ARTIFACT_BINARY_HEADER_BYTES,
19
+ decodeCountedEnvelope,
20
+ equalBytes,
21
+ fnv1a64,
22
+ strictUtf8
23
+ } from "./chunk-MYBZRDTY.js";
24
+
25
+ // src/editable-artifact-serialized-commit.ts
26
+ import { bytesToHex } from "@noble/hashes/utils";
27
+ var EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION = 1;
28
+ var EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES = 8 * 1024 * 1024;
29
+ var EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES = 512 * 1024;
30
+ var MAGIC = strictUtf8("OGAST001", "serialized commit magic");
31
+ var SHA256_TEXT = /^sha256:[0-9a-f]{64}$/u;
32
+ var STABLE_ID = /^[0-9a-f]{32}$/u;
33
+ var DOCUMENT_RECEIPT_MAGIC = "OGADR001";
34
+ var PRESENTATION_RECEIPT_MAGIC = strictUtf8("OGAPR001", "presentation receipt magic");
35
+ var DOCUMENT_RECEIPT_VERSION = 1;
36
+ var PRESENTATION_RECEIPT_VERSION = 1;
37
+ var DOCUMENT_CREATED_IDS_PER_COMMAND = 7;
38
+ var DOCUMENT_ID_BYTES = 17;
39
+ var PRESENTATION_RECEIPT_BYTES = 32;
40
+ var MODALITY_TAG = Object.freeze({ document: 1, presentation: 2 });
41
+ function encodeEditableArtifactSerializedCommit(input) {
42
+ const normalized = normalizeSerializedCommit(input);
43
+ const payload = new ArtifactBinaryWriter(
44
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES - EDITABLE_ARTIFACT_BINARY_HEADER_BYTES - EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES
45
+ );
46
+ payload.stableId(normalized.transactionId, "serialized transaction id");
47
+ payload.u64(normalized.parentHeadSequence);
48
+ payload.u64(normalized.resultHeadSequence);
49
+ payload.u64(normalized.priorNativeRevision);
50
+ payload.bytes(hashBytes(normalized.priorStateHash));
51
+ payload.bytes(hashBytes(normalized.stateHash));
52
+ payload.u32(normalized.intentBytes.byteLength);
53
+ payload.u32(normalized.nativeReceiptBytes.byteLength);
54
+ payload.bytes(normalized.intentBytes);
55
+ payload.bytes(normalized.nativeReceiptBytes);
56
+ const payloadBytes = payload.finish();
57
+ const output = new ArtifactBinaryWriter(EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES);
58
+ output.bytes(MAGIC);
59
+ output.u16(EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION);
60
+ output.u16(0);
61
+ output.u32(MODALITY_TAG[normalized.modality]);
62
+ output.u64(payloadBytes.byteLength);
63
+ output.bytes(payloadBytes);
64
+ output.u64(fnv1a64(output.view()));
65
+ return output.finish();
66
+ }
67
+ function decodeEditableArtifactSerializedCommit(bytes, durableModality) {
68
+ assertUnsharedBytes(bytes, "serialized commit");
69
+ const modality = serializedModality(durableModality);
70
+ if (bytes.byteLength > EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES) {
71
+ throw new RangeError("serialized commit exceeds its byte limit");
72
+ }
73
+ if (bytes.byteLength < EDITABLE_ARTIFACT_BINARY_HEADER_BYTES + EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES) {
74
+ throw new TypeError("truncated serialized commit envelope");
75
+ }
76
+ const header = new ArtifactBinaryReader(bytes);
77
+ if (!equalBytes(header.bytes(8), MAGIC)) {
78
+ throw new TypeError("invalid serialized commit magic");
79
+ }
80
+ if (header.u16() !== EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION) {
81
+ throw new TypeError("unsupported serialized commit version");
82
+ }
83
+ if (header.u16() !== 0) {
84
+ throw new TypeError("reserved serialized commit flags must be zero");
85
+ }
86
+ if (header.u32() !== MODALITY_TAG[modality]) {
87
+ throw new TypeError("serialized commit modality disagrees with durable artifact");
88
+ }
89
+ const payloadLength = header.u64Safe("serialized commit payload length");
90
+ const expectedLength = EDITABLE_ARTIFACT_BINARY_HEADER_BYTES + payloadLength + EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES;
91
+ if (bytes.byteLength < expectedLength) {
92
+ throw new TypeError("truncated serialized commit payload");
93
+ }
94
+ if (bytes.byteLength > expectedLength) {
95
+ throw new TypeError("serialized commit contains trailing bytes");
96
+ }
97
+ const payloadBytes = header.bytes(payloadLength);
98
+ const checksum = header.u64BigInt();
99
+ header.done();
100
+ if (checksum !== fnv1a64(bytes.subarray(0, bytes.byteLength - EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES))) {
101
+ throw new TypeError("serialized commit checksum does not match");
102
+ }
103
+ const payload = new ArtifactBinaryReader(payloadBytes);
104
+ const transactionId = payload.stableId("serialized transaction id");
105
+ const parentHeadSequence = payload.u64Safe("serialized parent head sequence");
106
+ const resultHeadSequence = payload.u64Safe("serialized result head sequence");
107
+ const priorNativeRevision = payload.u64Safe("serialized prior native revision");
108
+ const priorStateHash = stateHashText(payload.bytes(32));
109
+ const stateHash = stateHashText(payload.bytes(32));
110
+ const intentLength = payload.count(
111
+ EDITABLE_ARTIFACT_INTENT_MAX_BYTES,
112
+ "serialized intent bytes",
113
+ 1
114
+ );
115
+ const receiptLength = payload.count(
116
+ EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,
117
+ "serialized native receipt bytes",
118
+ 1
119
+ );
120
+ if (payload.remaining !== intentLength + receiptLength) {
121
+ throw new TypeError("serialized commit nested byte lengths are inconsistent");
122
+ }
123
+ const intentBytes = payload.bytes(intentLength).slice();
124
+ const nativeReceiptBytes = payload.bytes(receiptLength).slice();
125
+ payload.done();
126
+ const normalized = normalizeSerializedCommit({
127
+ modality,
128
+ transactionId,
129
+ parentHeadSequence,
130
+ resultHeadSequence,
131
+ priorNativeRevision,
132
+ priorStateHash,
133
+ stateHash,
134
+ intentBytes,
135
+ nativeReceiptBytes
136
+ });
137
+ const canonical = encodeEditableArtifactSerializedCommit(normalized);
138
+ if (!equalBytes(bytes, canonical)) {
139
+ throw new TypeError("serialized commit is not canonically encoded");
140
+ }
141
+ return Object.freeze({
142
+ commitProtocolVersion: EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION,
143
+ modality,
144
+ transactionId,
145
+ parentHeadSequence,
146
+ resultHeadSequence,
147
+ priorNativeRevision,
148
+ priorStateHash,
149
+ stateHash,
150
+ requestHash: normalized.requestHash,
151
+ intent: normalized.intent,
152
+ intentBytes,
153
+ nativeReceiptBytes,
154
+ nativeReceipt: normalized.nativeReceipt
155
+ });
156
+ }
157
+ function assertCanonicalEditableArtifactSerializedCommit(bytes, durableModality) {
158
+ decodeEditableArtifactSerializedCommit(bytes, durableModality);
159
+ }
160
+ function normalizeSerializedCommit(input) {
161
+ const modality = serializedModality(input.modality);
162
+ const transactionId = canonicalStableId(input.transactionId, "serialized transaction id");
163
+ const parentHeadSequence = safeSequence(
164
+ input.parentHeadSequence,
165
+ "serialized parent head sequence"
166
+ );
167
+ const resultHeadSequence = safeSequence(
168
+ input.resultHeadSequence,
169
+ "serialized result head sequence"
170
+ );
171
+ if (resultHeadSequence !== parentHeadSequence + 1) {
172
+ throw new TypeError("serialized commit must advance the durable head exactly once");
173
+ }
174
+ const priorNativeRevision = safeSequence(
175
+ input.priorNativeRevision,
176
+ "serialized prior native revision"
177
+ );
178
+ const priorStateHash = canonicalSha256(input.priorStateHash, "serialized prior state hash");
179
+ const stateHash = canonicalSha256(input.stateHash, "serialized resulting state hash");
180
+ assertUnsharedBytes(input.intentBytes, "serialized intent");
181
+ assertUnsharedBytes(input.nativeReceiptBytes, "serialized native receipt");
182
+ if (input.intentBytes.byteLength < 1 || input.intentBytes.byteLength > EDITABLE_ARTIFACT_INTENT_MAX_BYTES) {
183
+ throw new RangeError("serialized intent bytes exceed their limit");
184
+ }
185
+ if (input.nativeReceiptBytes.byteLength < 1 || input.nativeReceiptBytes.byteLength > EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES) {
186
+ throw new RangeError("serialized native receipt bytes exceed their limit");
187
+ }
188
+ const intentBytes = input.intentBytes.slice();
189
+ const decodedIntent = decodeEditableArtifactMutationIntent(intentBytes);
190
+ if (!equalBytes(intentBytes, encodeEditableArtifactMutationIntent(decodedIntent))) {
191
+ throw new TypeError("nested serialized intent is not canonical OGATX001");
192
+ }
193
+ if (decodedIntent.causalBase.length !== 0 || decodedIntent.selectiveUndoOperationIds.length !== 0) {
194
+ throw new TypeError("serialized commits cannot carry CRDT causality or selective undo");
195
+ }
196
+ if (decodedIntent.observedHeadSequence !== parentHeadSequence) {
197
+ throw new TypeError("serialized intent observed head does not match its parent");
198
+ }
199
+ const descriptor = editableArtifactCodecFor({
200
+ durableModality: modality,
201
+ modelSchemaVersion: decodedIntent.modelSchemaVersion,
202
+ commandProtocolVersion: decodedIntent.commandProtocolVersion
203
+ });
204
+ descriptor.command.assertCanonical(decodedIntent.commandBytes);
205
+ const commandCount = decodedCommandCount(descriptor.command.decode(decodedIntent.commandBytes));
206
+ if (commandCount < 1) {
207
+ throw new TypeError("serialized commits require a non-empty command batch");
208
+ }
209
+ const nativeReceiptBytes = input.nativeReceiptBytes.slice();
210
+ const nativeReceipt = decodeNativeReceipt(modality, nativeReceiptBytes, commandCount);
211
+ if (modality === "presentation") {
212
+ if (nativeReceipt.revision !== priorNativeRevision + 1) {
213
+ throw new TypeError(
214
+ "presentation receipt must advance its prior native revision exactly once"
215
+ );
216
+ }
217
+ if (stateHash === priorStateHash) {
218
+ throw new TypeError("presentation commit must change its canonical state hash");
219
+ }
220
+ } else if (nativeReceipt.revision === priorNativeRevision) {
221
+ if (stateHash !== priorStateHash) {
222
+ throw new TypeError("document no-op receipt cannot change the canonical state hash");
223
+ }
224
+ } else {
225
+ if (nativeReceipt.revision !== priorNativeRevision + 1) {
226
+ throw new TypeError(
227
+ "document receipt must preserve or advance its prior native revision once"
228
+ );
229
+ }
230
+ if (stateHash === priorStateHash) {
231
+ throw new TypeError("document revision advance must change the canonical state hash");
232
+ }
233
+ }
234
+ const requestHash = hashEditableArtifactMutationIntentBytes(intentBytes);
235
+ return Object.freeze({
236
+ modality,
237
+ transactionId,
238
+ parentHeadSequence,
239
+ resultHeadSequence,
240
+ priorNativeRevision,
241
+ priorStateHash,
242
+ stateHash,
243
+ intentBytes,
244
+ nativeReceiptBytes,
245
+ requestHash,
246
+ intent: decodedIntent,
247
+ nativeReceipt
248
+ });
249
+ }
250
+ function decodeNativeReceipt(modality, bytes, expectedCommandCount) {
251
+ return modality === "document" ? decodeDocumentReceipt(bytes, expectedCommandCount) : decodePresentationReceipt(bytes, expectedCommandCount);
252
+ }
253
+ function decodeDocumentReceipt(bytes, expectedCommandCount) {
254
+ const envelope = decodeCountedEnvelope(
255
+ bytes,
256
+ DOCUMENT_RECEIPT_MAGIC,
257
+ DOCUMENT_RECEIPT_VERSION,
258
+ EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,
259
+ DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS
260
+ );
261
+ const payload = new ArtifactBinaryReader(envelope.payload);
262
+ const revision = payload.u64Safe("document receipt revision");
263
+ const commandCount = payload.u32();
264
+ if (commandCount !== envelope.count || commandCount !== expectedCommandCount) {
265
+ throw new TypeError("document receipt command count does not match its intent");
266
+ }
267
+ const maximumCreatedIds = commandCount * DOCUMENT_CREATED_IDS_PER_COMMAND;
268
+ const createdIdCount = payload.count(
269
+ maximumCreatedIds,
270
+ "document receipt created ids",
271
+ DOCUMENT_ID_BYTES
272
+ );
273
+ for (let index = 0; index < createdIdCount; index += 1) {
274
+ const tag = payload.u8();
275
+ if (tag < 1 || tag > 8) {
276
+ throw new TypeError("document receipt contains an invalid id kind");
277
+ }
278
+ payload.u64BigInt();
279
+ const counter = payload.u64BigInt();
280
+ if (counter === 0n || counter > BigInt(DOCUMENT_ARTIFACT_MAX_STRUCTURAL_COUNTER)) {
281
+ throw new TypeError("document receipt contains an invalid id counter");
282
+ }
283
+ }
284
+ payload.done("document receipt contains trailing bytes");
285
+ return Object.freeze({
286
+ modality: "document",
287
+ revision,
288
+ commandCount,
289
+ createdIdCount
290
+ });
291
+ }
292
+ function decodePresentationReceipt(bytes, expectedCommandCount) {
293
+ if (bytes.byteLength !== PRESENTATION_RECEIPT_BYTES) {
294
+ throw new TypeError(
295
+ bytes.byteLength < PRESENTATION_RECEIPT_BYTES ? "truncated presentation receipt" : "presentation receipt contains trailing bytes"
296
+ );
297
+ }
298
+ const reader = new ArtifactBinaryReader(bytes);
299
+ if (!equalBytes(reader.bytes(8), PRESENTATION_RECEIPT_MAGIC)) {
300
+ throw new TypeError("invalid presentation receipt magic");
301
+ }
302
+ if (reader.u16() !== PRESENTATION_RECEIPT_VERSION) {
303
+ throw new TypeError("unsupported presentation receipt version");
304
+ }
305
+ if (reader.u16() !== 0) {
306
+ throw new TypeError("reserved presentation receipt flags must be zero");
307
+ }
308
+ const revision = reader.u64Safe("presentation receipt revision");
309
+ const commandCount = reader.u32();
310
+ if (commandCount !== expectedCommandCount) {
311
+ throw new TypeError("presentation receipt command count does not match its intent");
312
+ }
313
+ const checksum = reader.u64BigInt();
314
+ reader.done();
315
+ if (checksum !== fnv1a64(bytes.subarray(0, bytes.byteLength - EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES))) {
316
+ throw new TypeError("presentation receipt checksum does not match");
317
+ }
318
+ return Object.freeze({ modality: "presentation", revision, commandCount });
319
+ }
320
+ function decodedCommandCount(value) {
321
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
322
+ throw new TypeError("serialized command decoder returned an invalid batch");
323
+ }
324
+ const descriptor = Object.getOwnPropertyDescriptor(value, "commands");
325
+ if (!descriptor || !("value" in descriptor) || !Array.isArray(descriptor.value)) {
326
+ throw new TypeError("serialized command decoder returned an invalid batch");
327
+ }
328
+ return descriptor.value.length;
329
+ }
330
+ function serializedModality(value) {
331
+ if (value !== "document" && value !== "presentation") {
332
+ throw new TypeError("serialized commit modality is invalid");
333
+ }
334
+ return value;
335
+ }
336
+ function canonicalStableId(value, label) {
337
+ if (typeof value !== "string" || !STABLE_ID.test(value) || /^0+$/u.test(value)) {
338
+ throw new TypeError(`${label} must be a nonzero lowercase 128-bit hexadecimal id`);
339
+ }
340
+ return value;
341
+ }
342
+ function canonicalSha256(value, label) {
343
+ if (typeof value !== "string" || !SHA256_TEXT.test(value)) {
344
+ throw new TypeError(`${label} must be canonical sha256 text`);
345
+ }
346
+ return value;
347
+ }
348
+ function safeSequence(value, label) {
349
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) {
350
+ throw new TypeError(`${label} must be a nonnegative safe integer`);
351
+ }
352
+ return value;
353
+ }
354
+ function hashBytes(value) {
355
+ const hex = value.slice("sha256:".length);
356
+ const bytes = new Uint8Array(32);
357
+ for (let index = 0; index < bytes.byteLength; index += 1) {
358
+ bytes[index] = Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16);
359
+ }
360
+ return bytes;
361
+ }
362
+ function stateHashText(value) {
363
+ return `sha256:${bytesToHex(value)}`;
364
+ }
365
+ function assertUnsharedBytes(value, label) {
366
+ if (!(value instanceof Uint8Array)) {
367
+ throw new TypeError(`${label} bytes must be a Uint8Array`);
368
+ }
369
+ if (typeof SharedArrayBuffer !== "undefined" && value.buffer instanceof SharedArrayBuffer) {
370
+ throw new TypeError(`${label} bytes must not use shared mutable memory`);
371
+ }
372
+ }
373
+
374
+ export {
375
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION,
376
+ EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES,
377
+ EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,
378
+ encodeEditableArtifactSerializedCommit,
379
+ decodeEditableArtifactSerializedCommit,
380
+ assertCanonicalEditableArtifactSerializedCommit
381
+ };
382
+ //# sourceMappingURL=chunk-H5BVCZKF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/editable-artifact-serialized-commit.ts"],"sourcesContent":["import { bytesToHex } from \"@noble/hashes/utils\";\n\nimport {\n ArtifactBinaryReader,\n ArtifactBinaryWriter,\n EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES,\n EDITABLE_ARTIFACT_BINARY_HEADER_BYTES,\n decodeCountedEnvelope,\n equalBytes,\n fnv1a64,\n strictUtf8,\n} from \"./editable-artifact-binary\";\nimport {\n DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,\n DOCUMENT_ARTIFACT_MAX_STRUCTURAL_COUNTER,\n} from \"./document-artifact-commands\";\nimport {\n EDITABLE_ARTIFACT_INTENT_MAX_BYTES,\n decodeEditableArtifactMutationIntent,\n encodeEditableArtifactMutationIntent,\n hashEditableArtifactMutationIntentBytes,\n type EditableArtifactMutationIntent,\n} from \"./editable-artifacts\";\nimport { editableArtifactCodecFor } from \"./editable-artifact-codec-registry\";\n\nexport const EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION = 1 as const;\nexport const EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES = 8 * 1024 * 1024;\nexport const EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES = 512 * 1024;\n\nconst MAGIC = strictUtf8(\"OGAST001\", \"serialized commit magic\");\nconst SHA256_TEXT = /^sha256:[0-9a-f]{64}$/u;\nconst STABLE_ID = /^[0-9a-f]{32}$/u;\nconst DOCUMENT_RECEIPT_MAGIC = \"OGADR001\";\nconst PRESENTATION_RECEIPT_MAGIC = strictUtf8(\"OGAPR001\", \"presentation receipt magic\");\nconst DOCUMENT_RECEIPT_VERSION = 1;\nconst PRESENTATION_RECEIPT_VERSION = 1;\nconst DOCUMENT_CREATED_IDS_PER_COMMAND = 7;\nconst DOCUMENT_ID_BYTES = 17;\nconst PRESENTATION_RECEIPT_BYTES = 32;\nconst MODALITY_TAG = Object.freeze({ document: 1, presentation: 2 } as const);\n\nexport type EditableArtifactSerializedModality = \"document\" | \"presentation\";\n\nexport type EditableArtifactNativeReceiptSummary =\n | Readonly<{\n modality: \"document\";\n revision: number;\n commandCount: number;\n createdIdCount: number;\n }>\n | Readonly<{\n modality: \"presentation\";\n revision: number;\n commandCount: number;\n }>;\n\nexport type EditableArtifactSerializedCommitInput = Readonly<{\n modality: EditableArtifactSerializedModality;\n transactionId: string;\n parentHeadSequence: number;\n resultHeadSequence: number;\n /** Native model revision before applying this non-empty command batch. */\n priorNativeRevision: number;\n priorStateHash: string;\n stateHash: string;\n /** Exact canonical OGATX001 bytes accepted by the server. */\n intentBytes: Uint8Array;\n /** Exact canonical OGADR001 or OGAPR001 bytes returned by the native kernel. */\n nativeReceiptBytes: Uint8Array;\n}>;\n\nexport type EditableArtifactSerializedCommitSummary = Readonly<{\n commitProtocolVersion: typeof EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION;\n modality: EditableArtifactSerializedModality;\n transactionId: string;\n parentHeadSequence: number;\n resultHeadSequence: number;\n priorNativeRevision: number;\n priorStateHash: string;\n stateHash: string;\n requestHash: string;\n /** Canonical client intent nested in this authoritative commit. */\n intent: EditableArtifactMutationIntent;\n intentBytes: Uint8Array;\n nativeReceiptBytes: Uint8Array;\n nativeReceipt: EditableArtifactNativeReceiptSummary;\n}>;\n\n/**\n * Server-only encoder for one authoritative, strictly serialized commit.\n * Client identity remains solely in the exact nested OGATX envelope.\n */\nexport function encodeEditableArtifactSerializedCommit(\n input: EditableArtifactSerializedCommitInput,\n): Uint8Array {\n const normalized = normalizeSerializedCommit(input);\n const payload = new ArtifactBinaryWriter(\n EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES -\n EDITABLE_ARTIFACT_BINARY_HEADER_BYTES -\n EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES,\n );\n payload.stableId(normalized.transactionId, \"serialized transaction id\");\n payload.u64(normalized.parentHeadSequence);\n payload.u64(normalized.resultHeadSequence);\n payload.u64(normalized.priorNativeRevision);\n payload.bytes(hashBytes(normalized.priorStateHash));\n payload.bytes(hashBytes(normalized.stateHash));\n payload.u32(normalized.intentBytes.byteLength);\n payload.u32(normalized.nativeReceiptBytes.byteLength);\n payload.bytes(normalized.intentBytes);\n payload.bytes(normalized.nativeReceiptBytes);\n\n const payloadBytes = payload.finish();\n const output = new ArtifactBinaryWriter(EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES);\n output.bytes(MAGIC);\n output.u16(EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION);\n output.u16(0);\n output.u32(MODALITY_TAG[normalized.modality]);\n output.u64(payloadBytes.byteLength);\n output.bytes(payloadBytes);\n output.u64(fnv1a64(output.view()));\n return output.finish();\n}\n\n/** Durable modality must be selected before any nested receipt/command decode. */\nexport function decodeEditableArtifactSerializedCommit(\n bytes: Uint8Array,\n durableModality: EditableArtifactSerializedModality,\n): EditableArtifactSerializedCommitSummary {\n assertUnsharedBytes(bytes, \"serialized commit\");\n const modality = serializedModality(durableModality);\n if (bytes.byteLength > EDITABLE_ARTIFACT_SERIALIZED_COMMIT_MAX_BYTES) {\n throw new RangeError(\"serialized commit exceeds its byte limit\");\n }\n if (\n bytes.byteLength <\n EDITABLE_ARTIFACT_BINARY_HEADER_BYTES + EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES\n ) {\n throw new TypeError(\"truncated serialized commit envelope\");\n }\n const header = new ArtifactBinaryReader(bytes);\n if (!equalBytes(header.bytes(8), MAGIC)) {\n throw new TypeError(\"invalid serialized commit magic\");\n }\n if (header.u16() !== EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION) {\n throw new TypeError(\"unsupported serialized commit version\");\n }\n if (header.u16() !== 0) {\n throw new TypeError(\"reserved serialized commit flags must be zero\");\n }\n if (header.u32() !== MODALITY_TAG[modality]) {\n throw new TypeError(\"serialized commit modality disagrees with durable artifact\");\n }\n const payloadLength = header.u64Safe(\"serialized commit payload length\");\n const expectedLength =\n EDITABLE_ARTIFACT_BINARY_HEADER_BYTES + payloadLength + EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES;\n if (bytes.byteLength < expectedLength) {\n throw new TypeError(\"truncated serialized commit payload\");\n }\n if (bytes.byteLength > expectedLength) {\n throw new TypeError(\"serialized commit contains trailing bytes\");\n }\n const payloadBytes = header.bytes(payloadLength);\n const checksum = header.u64BigInt();\n header.done();\n if (\n checksum !==\n fnv1a64(bytes.subarray(0, bytes.byteLength - EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES))\n ) {\n throw new TypeError(\"serialized commit checksum does not match\");\n }\n\n const payload = new ArtifactBinaryReader(payloadBytes);\n const transactionId = payload.stableId(\"serialized transaction id\");\n const parentHeadSequence = payload.u64Safe(\"serialized parent head sequence\");\n const resultHeadSequence = payload.u64Safe(\"serialized result head sequence\");\n const priorNativeRevision = payload.u64Safe(\"serialized prior native revision\");\n const priorStateHash = stateHashText(payload.bytes(32));\n const stateHash = stateHashText(payload.bytes(32));\n const intentLength = payload.count(\n EDITABLE_ARTIFACT_INTENT_MAX_BYTES,\n \"serialized intent bytes\",\n 1,\n );\n const receiptLength = payload.count(\n EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,\n \"serialized native receipt bytes\",\n 1,\n );\n if (payload.remaining !== intentLength + receiptLength) {\n throw new TypeError(\"serialized commit nested byte lengths are inconsistent\");\n }\n const intentBytes = payload.bytes(intentLength).slice();\n const nativeReceiptBytes = payload.bytes(receiptLength).slice();\n payload.done();\n\n const normalized = normalizeSerializedCommit({\n modality,\n transactionId,\n parentHeadSequence,\n resultHeadSequence,\n priorNativeRevision,\n priorStateHash,\n stateHash,\n intentBytes,\n nativeReceiptBytes,\n });\n const canonical = encodeEditableArtifactSerializedCommit(normalized);\n if (!equalBytes(bytes, canonical)) {\n throw new TypeError(\"serialized commit is not canonically encoded\");\n }\n return Object.freeze({\n commitProtocolVersion: EDITABLE_ARTIFACT_SERIALIZED_COMMIT_VERSION,\n modality,\n transactionId,\n parentHeadSequence,\n resultHeadSequence,\n priorNativeRevision,\n priorStateHash,\n stateHash,\n requestHash: normalized.requestHash,\n intent: normalized.intent,\n intentBytes,\n nativeReceiptBytes,\n nativeReceipt: normalized.nativeReceipt,\n });\n}\n\nexport function assertCanonicalEditableArtifactSerializedCommit(\n bytes: Uint8Array,\n durableModality: EditableArtifactSerializedModality,\n): void {\n decodeEditableArtifactSerializedCommit(bytes, durableModality);\n}\n\ntype NormalizedSerializedCommit = EditableArtifactSerializedCommitInput &\n Readonly<{\n requestHash: string;\n intent: EditableArtifactMutationIntent;\n nativeReceipt: EditableArtifactNativeReceiptSummary;\n }>;\n\nfunction normalizeSerializedCommit(\n input: EditableArtifactSerializedCommitInput,\n): NormalizedSerializedCommit {\n const modality = serializedModality(input.modality);\n const transactionId = canonicalStableId(input.transactionId, \"serialized transaction id\");\n const parentHeadSequence = safeSequence(\n input.parentHeadSequence,\n \"serialized parent head sequence\",\n );\n const resultHeadSequence = safeSequence(\n input.resultHeadSequence,\n \"serialized result head sequence\",\n );\n if (resultHeadSequence !== parentHeadSequence + 1) {\n throw new TypeError(\"serialized commit must advance the durable head exactly once\");\n }\n const priorNativeRevision = safeSequence(\n input.priorNativeRevision,\n \"serialized prior native revision\",\n );\n const priorStateHash = canonicalSha256(input.priorStateHash, \"serialized prior state hash\");\n const stateHash = canonicalSha256(input.stateHash, \"serialized resulting state hash\");\n assertUnsharedBytes(input.intentBytes, \"serialized intent\");\n assertUnsharedBytes(input.nativeReceiptBytes, \"serialized native receipt\");\n if (\n input.intentBytes.byteLength < 1 ||\n input.intentBytes.byteLength > EDITABLE_ARTIFACT_INTENT_MAX_BYTES\n ) {\n throw new RangeError(\"serialized intent bytes exceed their limit\");\n }\n if (\n input.nativeReceiptBytes.byteLength < 1 ||\n input.nativeReceiptBytes.byteLength > EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES\n ) {\n throw new RangeError(\"serialized native receipt bytes exceed their limit\");\n }\n const intentBytes = input.intentBytes.slice();\n const decodedIntent = decodeEditableArtifactMutationIntent(intentBytes);\n if (!equalBytes(intentBytes, encodeEditableArtifactMutationIntent(decodedIntent))) {\n throw new TypeError(\"nested serialized intent is not canonical OGATX001\");\n }\n if (\n decodedIntent.causalBase.length !== 0 ||\n decodedIntent.selectiveUndoOperationIds.length !== 0\n ) {\n throw new TypeError(\"serialized commits cannot carry CRDT causality or selective undo\");\n }\n if (decodedIntent.observedHeadSequence !== parentHeadSequence) {\n throw new TypeError(\"serialized intent observed head does not match its parent\");\n }\n const descriptor = editableArtifactCodecFor({\n durableModality: modality,\n modelSchemaVersion: decodedIntent.modelSchemaVersion,\n commandProtocolVersion: decodedIntent.commandProtocolVersion,\n });\n descriptor.command.assertCanonical(decodedIntent.commandBytes);\n const commandCount = decodedCommandCount(descriptor.command.decode(decodedIntent.commandBytes));\n if (commandCount < 1) {\n throw new TypeError(\"serialized commits require a non-empty command batch\");\n }\n const nativeReceiptBytes = input.nativeReceiptBytes.slice();\n const nativeReceipt = decodeNativeReceipt(modality, nativeReceiptBytes, commandCount);\n if (modality === \"presentation\") {\n if (nativeReceipt.revision !== priorNativeRevision + 1) {\n throw new TypeError(\n \"presentation receipt must advance its prior native revision exactly once\",\n );\n }\n if (stateHash === priorStateHash) {\n throw new TypeError(\"presentation commit must change its canonical state hash\");\n }\n } else if (nativeReceipt.revision === priorNativeRevision) {\n if (stateHash !== priorStateHash) {\n throw new TypeError(\"document no-op receipt cannot change the canonical state hash\");\n }\n } else {\n if (nativeReceipt.revision !== priorNativeRevision + 1) {\n throw new TypeError(\n \"document receipt must preserve or advance its prior native revision once\",\n );\n }\n if (stateHash === priorStateHash) {\n throw new TypeError(\"document revision advance must change the canonical state hash\");\n }\n }\n const requestHash = hashEditableArtifactMutationIntentBytes(intentBytes);\n return Object.freeze({\n modality,\n transactionId,\n parentHeadSequence,\n resultHeadSequence,\n priorNativeRevision,\n priorStateHash,\n stateHash,\n intentBytes,\n nativeReceiptBytes,\n requestHash,\n intent: decodedIntent,\n nativeReceipt,\n });\n}\n\nfunction decodeNativeReceipt(\n modality: EditableArtifactSerializedModality,\n bytes: Uint8Array,\n expectedCommandCount: number,\n): EditableArtifactNativeReceiptSummary {\n return modality === \"document\"\n ? decodeDocumentReceipt(bytes, expectedCommandCount)\n : decodePresentationReceipt(bytes, expectedCommandCount);\n}\n\nfunction decodeDocumentReceipt(\n bytes: Uint8Array,\n expectedCommandCount: number,\n): Extract<EditableArtifactNativeReceiptSummary, { modality: \"document\" }> {\n const envelope = decodeCountedEnvelope(\n bytes,\n DOCUMENT_RECEIPT_MAGIC,\n DOCUMENT_RECEIPT_VERSION,\n EDITABLE_ARTIFACT_NATIVE_RECEIPT_MAX_BYTES,\n DOCUMENT_ARTIFACT_COMMAND_MAX_COMMANDS,\n );\n const payload = new ArtifactBinaryReader(envelope.payload);\n const revision = payload.u64Safe(\"document receipt revision\");\n const commandCount = payload.u32();\n if (commandCount !== envelope.count || commandCount !== expectedCommandCount) {\n throw new TypeError(\"document receipt command count does not match its intent\");\n }\n const maximumCreatedIds = commandCount * DOCUMENT_CREATED_IDS_PER_COMMAND;\n const createdIdCount = payload.count(\n maximumCreatedIds,\n \"document receipt created ids\",\n DOCUMENT_ID_BYTES,\n );\n for (let index = 0; index < createdIdCount; index += 1) {\n const tag = payload.u8();\n if (tag < 1 || tag > 8) {\n throw new TypeError(\"document receipt contains an invalid id kind\");\n }\n payload.u64BigInt();\n const counter = payload.u64BigInt();\n if (counter === 0n || counter > BigInt(DOCUMENT_ARTIFACT_MAX_STRUCTURAL_COUNTER)) {\n throw new TypeError(\"document receipt contains an invalid id counter\");\n }\n }\n payload.done(\"document receipt contains trailing bytes\");\n return Object.freeze({\n modality: \"document\",\n revision,\n commandCount,\n createdIdCount,\n });\n}\n\nfunction decodePresentationReceipt(\n bytes: Uint8Array,\n expectedCommandCount: number,\n): Extract<EditableArtifactNativeReceiptSummary, { modality: \"presentation\" }> {\n if (bytes.byteLength !== PRESENTATION_RECEIPT_BYTES) {\n throw new TypeError(\n bytes.byteLength < PRESENTATION_RECEIPT_BYTES\n ? \"truncated presentation receipt\"\n : \"presentation receipt contains trailing bytes\",\n );\n }\n const reader = new ArtifactBinaryReader(bytes);\n if (!equalBytes(reader.bytes(8), PRESENTATION_RECEIPT_MAGIC)) {\n throw new TypeError(\"invalid presentation receipt magic\");\n }\n if (reader.u16() !== PRESENTATION_RECEIPT_VERSION) {\n throw new TypeError(\"unsupported presentation receipt version\");\n }\n if (reader.u16() !== 0) {\n throw new TypeError(\"reserved presentation receipt flags must be zero\");\n }\n const revision = reader.u64Safe(\"presentation receipt revision\");\n const commandCount = reader.u32();\n if (commandCount !== expectedCommandCount) {\n throw new TypeError(\"presentation receipt command count does not match its intent\");\n }\n const checksum = reader.u64BigInt();\n reader.done();\n if (\n checksum !==\n fnv1a64(bytes.subarray(0, bytes.byteLength - EDITABLE_ARTIFACT_BINARY_CHECKSUM_BYTES))\n ) {\n throw new TypeError(\"presentation receipt checksum does not match\");\n }\n return Object.freeze({ modality: \"presentation\", revision, commandCount });\n}\n\nfunction decodedCommandCount(value: unknown): number {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"serialized command decoder returned an invalid batch\");\n }\n const descriptor = Object.getOwnPropertyDescriptor(value, \"commands\");\n if (!descriptor || !(\"value\" in descriptor) || !Array.isArray(descriptor.value)) {\n throw new TypeError(\"serialized command decoder returned an invalid batch\");\n }\n return descriptor.value.length;\n}\n\nfunction serializedModality(value: unknown): EditableArtifactSerializedModality {\n if (value !== \"document\" && value !== \"presentation\") {\n throw new TypeError(\"serialized commit modality is invalid\");\n }\n return value;\n}\n\nfunction canonicalStableId(value: unknown, label: string): string {\n if (typeof value !== \"string\" || !STABLE_ID.test(value) || /^0+$/u.test(value)) {\n throw new TypeError(`${label} must be a nonzero lowercase 128-bit hexadecimal id`);\n }\n return value;\n}\n\nfunction canonicalSha256(value: unknown, label: string): string {\n if (typeof value !== \"string\" || !SHA256_TEXT.test(value)) {\n throw new TypeError(`${label} must be canonical sha256 text`);\n }\n return value;\n}\n\nfunction safeSequence(value: unknown, label: string): number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${label} must be a nonnegative safe integer`);\n }\n return value;\n}\n\nfunction hashBytes(value: string): Uint8Array {\n const hex = value.slice(\"sha256:\".length);\n const bytes = new Uint8Array(32);\n for (let index = 0; index < bytes.byteLength; index += 1) {\n bytes[index] = Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16);\n }\n return bytes;\n}\n\nfunction stateHashText(value: Uint8Array): string {\n return `sha256:${bytesToHex(value)}`;\n}\n\nfunction assertUnsharedBytes(value: unknown, label: string): asserts value is Uint8Array {\n if (!(value instanceof Uint8Array)) {\n throw new TypeError(`${label} bytes must be a Uint8Array`);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && value.buffer instanceof SharedArrayBuffer) {\n throw new TypeError(`${label} bytes must not use shared mutable memory`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,kBAAkB;AAyBpB,IAAM,8CAA8C;AACpD,IAAM,gDAAgD,IAAI,OAAO;AACjE,IAAM,6CAA6C,MAAM;AAEhE,IAAM,QAAQ,WAAW,YAAY,yBAAyB;AAC9D,IAAM,cAAc;AACpB,IAAM,YAAY;AAClB,IAAM,yBAAyB;AAC/B,IAAM,6BAA6B,WAAW,YAAY,4BAA4B;AACtF,IAAM,2BAA2B;AACjC,IAAM,+BAA+B;AACrC,IAAM,mCAAmC;AACzC,IAAM,oBAAoB;AAC1B,IAAM,6BAA6B;AACnC,IAAM,eAAe,OAAO,OAAO,EAAE,UAAU,GAAG,cAAc,EAAE,CAAU;AAqDrE,SAAS,uCACd,OACY;AACZ,QAAM,aAAa,0BAA0B,KAAK;AAClD,QAAM,UAAU,IAAI;AAAA,IAClB,gDACE,wCACA;AAAA,EACJ;AACA,UAAQ,SAAS,WAAW,eAAe,2BAA2B;AACtE,UAAQ,IAAI,WAAW,kBAAkB;AACzC,UAAQ,IAAI,WAAW,kBAAkB;AACzC,UAAQ,IAAI,WAAW,mBAAmB;AAC1C,UAAQ,MAAM,UAAU,WAAW,cAAc,CAAC;AAClD,UAAQ,MAAM,UAAU,WAAW,SAAS,CAAC;AAC7C,UAAQ,IAAI,WAAW,YAAY,UAAU;AAC7C,UAAQ,IAAI,WAAW,mBAAmB,UAAU;AACpD,UAAQ,MAAM,WAAW,WAAW;AACpC,UAAQ,MAAM,WAAW,kBAAkB;AAE3C,QAAM,eAAe,QAAQ,OAAO;AACpC,QAAM,SAAS,IAAI,qBAAqB,6CAA6C;AACrF,SAAO,MAAM,KAAK;AAClB,SAAO,IAAI,2CAA2C;AACtD,SAAO,IAAI,CAAC;AACZ,SAAO,IAAI,aAAa,WAAW,QAAQ,CAAC;AAC5C,SAAO,IAAI,aAAa,UAAU;AAClC,SAAO,MAAM,YAAY;AACzB,SAAO,IAAI,QAAQ,OAAO,KAAK,CAAC,CAAC;AACjC,SAAO,OAAO,OAAO;AACvB;AAGO,SAAS,uCACd,OACA,iBACyC;AACzC,sBAAoB,OAAO,mBAAmB;AAC9C,QAAM,WAAW,mBAAmB,eAAe;AACnD,MAAI,MAAM,aAAa,+CAA+C;AACpE,UAAM,IAAI,WAAW,0CAA0C;AAAA,EACjE;AACA,MACE,MAAM,aACN,wCAAwC,yCACxC;AACA,UAAM,IAAI,UAAU,sCAAsC;AAAA,EAC5D;AACA,QAAM,SAAS,IAAI,qBAAqB,KAAK;AAC7C,MAAI,CAAC,WAAW,OAAO,MAAM,CAAC,GAAG,KAAK,GAAG;AACvC,UAAM,IAAI,UAAU,iCAAiC;AAAA,EACvD;AACA,MAAI,OAAO,IAAI,MAAM,6CAA6C;AAChE,UAAM,IAAI,UAAU,uCAAuC;AAAA,EAC7D;AACA,MAAI,OAAO,IAAI,MAAM,GAAG;AACtB,UAAM,IAAI,UAAU,+CAA+C;AAAA,EACrE;AACA,MAAI,OAAO,IAAI,MAAM,aAAa,QAAQ,GAAG;AAC3C,UAAM,IAAI,UAAU,4DAA4D;AAAA,EAClF;AACA,QAAM,gBAAgB,OAAO,QAAQ,kCAAkC;AACvE,QAAM,iBACJ,wCAAwC,gBAAgB;AAC1D,MAAI,MAAM,aAAa,gBAAgB;AACrC,UAAM,IAAI,UAAU,qCAAqC;AAAA,EAC3D;AACA,MAAI,MAAM,aAAa,gBAAgB;AACrC,UAAM,IAAI,UAAU,2CAA2C;AAAA,EACjE;AACA,QAAM,eAAe,OAAO,MAAM,aAAa;AAC/C,QAAM,WAAW,OAAO,UAAU;AAClC,SAAO,KAAK;AACZ,MACE,aACA,QAAQ,MAAM,SAAS,GAAG,MAAM,aAAa,uCAAuC,CAAC,GACrF;AACA,UAAM,IAAI,UAAU,2CAA2C;AAAA,EACjE;AAEA,QAAM,UAAU,IAAI,qBAAqB,YAAY;AACrD,QAAM,gBAAgB,QAAQ,SAAS,2BAA2B;AAClE,QAAM,qBAAqB,QAAQ,QAAQ,iCAAiC;AAC5E,QAAM,qBAAqB,QAAQ,QAAQ,iCAAiC;AAC5E,QAAM,sBAAsB,QAAQ,QAAQ,kCAAkC;AAC9E,QAAM,iBAAiB,cAAc,QAAQ,MAAM,EAAE,CAAC;AACtD,QAAM,YAAY,cAAc,QAAQ,MAAM,EAAE,CAAC;AACjD,QAAM,eAAe,QAAQ;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,gBAAgB,QAAQ;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,MAAI,QAAQ,cAAc,eAAe,eAAe;AACtD,UAAM,IAAI,UAAU,wDAAwD;AAAA,EAC9E;AACA,QAAM,cAAc,QAAQ,MAAM,YAAY,EAAE,MAAM;AACtD,QAAM,qBAAqB,QAAQ,MAAM,aAAa,EAAE,MAAM;AAC9D,UAAQ,KAAK;AAEb,QAAM,aAAa,0BAA0B;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,YAAY,uCAAuC,UAAU;AACnE,MAAI,CAAC,WAAW,OAAO,SAAS,GAAG;AACjC,UAAM,IAAI,UAAU,8CAA8C;AAAA,EACpE;AACA,SAAO,OAAO,OAAO;AAAA,IACnB,uBAAuB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,WAAW;AAAA,IACxB,QAAQ,WAAW;AAAA,IACnB;AAAA,IACA;AAAA,IACA,eAAe,WAAW;AAAA,EAC5B,CAAC;AACH;AAEO,SAAS,gDACd,OACA,iBACM;AACN,yCAAuC,OAAO,eAAe;AAC/D;AASA,SAAS,0BACP,OAC4B;AAC5B,QAAM,WAAW,mBAAmB,MAAM,QAAQ;AAClD,QAAM,gBAAgB,kBAAkB,MAAM,eAAe,2BAA2B;AACxF,QAAM,qBAAqB;AAAA,IACzB,MAAM;AAAA,IACN;AAAA,EACF;AACA,QAAM,qBAAqB;AAAA,IACzB,MAAM;AAAA,IACN;AAAA,EACF;AACA,MAAI,uBAAuB,qBAAqB,GAAG;AACjD,UAAM,IAAI,UAAU,8DAA8D;AAAA,EACpF;AACA,QAAM,sBAAsB;AAAA,IAC1B,MAAM;AAAA,IACN;AAAA,EACF;AACA,QAAM,iBAAiB,gBAAgB,MAAM,gBAAgB,6BAA6B;AAC1F,QAAM,YAAY,gBAAgB,MAAM,WAAW,iCAAiC;AACpF,sBAAoB,MAAM,aAAa,mBAAmB;AAC1D,sBAAoB,MAAM,oBAAoB,2BAA2B;AACzE,MACE,MAAM,YAAY,aAAa,KAC/B,MAAM,YAAY,aAAa,oCAC/B;AACA,UAAM,IAAI,WAAW,4CAA4C;AAAA,EACnE;AACA,MACE,MAAM,mBAAmB,aAAa,KACtC,MAAM,mBAAmB,aAAa,4CACtC;AACA,UAAM,IAAI,WAAW,oDAAoD;AAAA,EAC3E;AACA,QAAM,cAAc,MAAM,YAAY,MAAM;AAC5C,QAAM,gBAAgB,qCAAqC,WAAW;AACtE,MAAI,CAAC,WAAW,aAAa,qCAAqC,aAAa,CAAC,GAAG;AACjF,UAAM,IAAI,UAAU,oDAAoD;AAAA,EAC1E;AACA,MACE,cAAc,WAAW,WAAW,KACpC,cAAc,0BAA0B,WAAW,GACnD;AACA,UAAM,IAAI,UAAU,kEAAkE;AAAA,EACxF;AACA,MAAI,cAAc,yBAAyB,oBAAoB;AAC7D,UAAM,IAAI,UAAU,2DAA2D;AAAA,EACjF;AACA,QAAM,aAAa,yBAAyB;AAAA,IAC1C,iBAAiB;AAAA,IACjB,oBAAoB,cAAc;AAAA,IAClC,wBAAwB,cAAc;AAAA,EACxC,CAAC;AACD,aAAW,QAAQ,gBAAgB,cAAc,YAAY;AAC7D,QAAM,eAAe,oBAAoB,WAAW,QAAQ,OAAO,cAAc,YAAY,CAAC;AAC9F,MAAI,eAAe,GAAG;AACpB,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAC5E;AACA,QAAM,qBAAqB,MAAM,mBAAmB,MAAM;AAC1D,QAAM,gBAAgB,oBAAoB,UAAU,oBAAoB,YAAY;AACpF,MAAI,aAAa,gBAAgB;AAC/B,QAAI,cAAc,aAAa,sBAAsB,GAAG;AACtD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,QAAI,cAAc,gBAAgB;AAChC,YAAM,IAAI,UAAU,0DAA0D;AAAA,IAChF;AAAA,EACF,WAAW,cAAc,aAAa,qBAAqB;AACzD,QAAI,cAAc,gBAAgB;AAChC,YAAM,IAAI,UAAU,+DAA+D;AAAA,IACrF;AAAA,EACF,OAAO;AACL,QAAI,cAAc,aAAa,sBAAsB,GAAG;AACtD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,QAAI,cAAc,gBAAgB;AAChC,YAAM,IAAI,UAAU,gEAAgE;AAAA,IACtF;AAAA,EACF;AACA,QAAM,cAAc,wCAAwC,WAAW;AACvE,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AACH;AAEA,SAAS,oBACP,UACA,OACA,sBACsC;AACtC,SAAO,aAAa,aAChB,sBAAsB,OAAO,oBAAoB,IACjD,0BAA0B,OAAO,oBAAoB;AAC3D;AAEA,SAAS,sBACP,OACA,sBACyE;AACzE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,UAAU,IAAI,qBAAqB,SAAS,OAAO;AACzD,QAAM,WAAW,QAAQ,QAAQ,2BAA2B;AAC5D,QAAM,eAAe,QAAQ,IAAI;AACjC,MAAI,iBAAiB,SAAS,SAAS,iBAAiB,sBAAsB;AAC5E,UAAM,IAAI,UAAU,0DAA0D;AAAA,EAChF;AACA,QAAM,oBAAoB,eAAe;AACzC,QAAM,iBAAiB,QAAQ;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,WAAS,QAAQ,GAAG,QAAQ,gBAAgB,SAAS,GAAG;AACtD,UAAM,MAAM,QAAQ,GAAG;AACvB,QAAI,MAAM,KAAK,MAAM,GAAG;AACtB,YAAM,IAAI,UAAU,8CAA8C;AAAA,IACpE;AACA,YAAQ,UAAU;AAClB,UAAM,UAAU,QAAQ,UAAU;AAClC,QAAI,YAAY,MAAM,UAAU,OAAO,wCAAwC,GAAG;AAChF,YAAM,IAAI,UAAU,iDAAiD;AAAA,IACvE;AAAA,EACF;AACA,UAAQ,KAAK,0CAA0C;AACvD,SAAO,OAAO,OAAO;AAAA,IACnB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEA,SAAS,0BACP,OACA,sBAC6E;AAC7E,MAAI,MAAM,eAAe,4BAA4B;AACnD,UAAM,IAAI;AAAA,MACR,MAAM,aAAa,6BACf,mCACA;AAAA,IACN;AAAA,EACF;AACA,QAAM,SAAS,IAAI,qBAAqB,KAAK;AAC7C,MAAI,CAAC,WAAW,OAAO,MAAM,CAAC,GAAG,0BAA0B,GAAG;AAC5D,UAAM,IAAI,UAAU,oCAAoC;AAAA,EAC1D;AACA,MAAI,OAAO,IAAI,MAAM,8BAA8B;AACjD,UAAM,IAAI,UAAU,0CAA0C;AAAA,EAChE;AACA,MAAI,OAAO,IAAI,MAAM,GAAG;AACtB,UAAM,IAAI,UAAU,kDAAkD;AAAA,EACxE;AACA,QAAM,WAAW,OAAO,QAAQ,+BAA+B;AAC/D,QAAM,eAAe,OAAO,IAAI;AAChC,MAAI,iBAAiB,sBAAsB;AACzC,UAAM,IAAI,UAAU,8DAA8D;AAAA,EACpF;AACA,QAAM,WAAW,OAAO,UAAU;AAClC,SAAO,KAAK;AACZ,MACE,aACA,QAAQ,MAAM,SAAS,GAAG,MAAM,aAAa,uCAAuC,CAAC,GACrF;AACA,UAAM,IAAI,UAAU,8CAA8C;AAAA,EACpE;AACA,SAAO,OAAO,OAAO,EAAE,UAAU,gBAAgB,UAAU,aAAa,CAAC;AAC3E;AAEA,SAAS,oBAAoB,OAAwB;AACnD,MAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAAG;AACvE,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAC5E;AACA,QAAM,aAAa,OAAO,yBAAyB,OAAO,UAAU;AACpE,MAAI,CAAC,cAAc,EAAE,WAAW,eAAe,CAAC,MAAM,QAAQ,WAAW,KAAK,GAAG;AAC/E,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAC5E;AACA,SAAO,WAAW,MAAM;AAC1B;AAEA,SAAS,mBAAmB,OAAoD;AAC9E,MAAI,UAAU,cAAc,UAAU,gBAAgB;AACpD,UAAM,IAAI,UAAU,uCAAuC;AAAA,EAC7D;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,OAAgB,OAAuB;AAChE,MAAI,OAAO,UAAU,YAAY,CAAC,UAAU,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,GAAG;AAC9E,UAAM,IAAI,UAAU,GAAG,KAAK,qDAAqD;AAAA,EACnF;AACA,SAAO;AACT;AAEA,SAAS,gBAAgB,OAAgB,OAAuB;AAC9D,MAAI,OAAO,UAAU,YAAY,CAAC,YAAY,KAAK,KAAK,GAAG;AACzD,UAAM,IAAI,UAAU,GAAG,KAAK,gCAAgC;AAAA,EAC9D;AACA,SAAO;AACT;AAEA,SAAS,aAAa,OAAgB,OAAuB;AAC3D,MAAI,OAAO,UAAU,YAAY,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC1E,UAAM,IAAI,UAAU,GAAG,KAAK,qCAAqC;AAAA,EACnE;AACA,SAAO;AACT;AAEA,SAAS,UAAU,OAA2B;AAC5C,QAAM,MAAM,MAAM,MAAM,UAAU,MAAM;AACxC,QAAM,QAAQ,IAAI,WAAW,EAAE;AAC/B,WAAS,QAAQ,GAAG,QAAQ,MAAM,YAAY,SAAS,GAAG;AACxD,UAAM,KAAK,IAAI,OAAO,SAAS,IAAI,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE;AAAA,EACxE;AACA,SAAO;AACT;AAEA,SAAS,cAAc,OAA2B;AAChD,SAAO,UAAU,WAAW,KAAK,CAAC;AACpC;AAEA,SAAS,oBAAoB,OAAgB,OAA4C;AACvF,MAAI,EAAE,iBAAiB,aAAa;AAClC,UAAM,IAAI,UAAU,GAAG,KAAK,6BAA6B;AAAA,EAC3D;AACA,MAAI,OAAO,sBAAsB,eAAe,MAAM,kBAAkB,mBAAmB;AACzF,UAAM,IAAI,UAAU,GAAG,KAAK,2CAA2C;AAAA,EACzE;AACF;","names":[]}