@amalgm/live 0.2.40 → 0.2.41
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.
- package/PURPOSE.md +7 -1
- package/dist/contracts/content.d.ts +5 -0
- package/dist/contracts/content.d.ts.map +1 -1
- package/dist/contracts/content.js +5 -0
- package/dist/contracts/content.js.map +1 -1
- package/dist/records/contracts.d.ts +9 -0
- package/dist/records/contracts.d.ts.map +1 -1
- package/dist/records/contracts.js +12 -0
- package/dist/records/contracts.js.map +1 -1
- package/dist/records/rail.d.ts +6 -3
- package/dist/records/rail.d.ts.map +1 -1
- package/dist/records/rail.js +2 -2
- package/dist/records/rail.js.map +1 -1
- package/dist/records/wire.d.ts +23 -1
- package/dist/records/wire.d.ts.map +1 -1
- package/dist/records/wire.js +67 -2
- package/dist/records/wire.js.map +1 -1
- package/dist-cjs/contracts/content.js +6 -1
- package/dist-cjs/contracts/content.js.map +1 -1
- package/dist-cjs/records/contracts.js +12 -0
- package/dist-cjs/records/contracts.js.map +1 -1
- package/dist-cjs/records/rail.js +2 -2
- package/dist-cjs/records/rail.js.map +1 -1
- package/dist-cjs/records/wire.js +70 -2
- package/dist-cjs/records/wire.js.map +1 -1
- package/package.json +1 -1
package/PURPOSE.md
CHANGED
|
@@ -145,7 +145,13 @@ its cutover.
|
|
|
145
145
|
sends only content the authority reports missing, a downloader fetches
|
|
146
146
|
only content its machine cache lacks, and the new state becomes visible
|
|
147
147
|
only after every dependency is durable. Repeating either operation is safe
|
|
148
|
-
and moves no bytes that the destination already has.
|
|
148
|
+
and moves no bytes that the destination already has. A Record's `cargo`
|
|
149
|
+
array is the complete transfer set for that logical change: a structural
|
|
150
|
+
change names no cargo and therefore sends no bytes. A small declared
|
|
151
|
+
artifact may ride in the submit frame, but the authority must verify and
|
|
152
|
+
store every block and the manifest, persist its sealed-manifest evidence,
|
|
153
|
+
and only then number the Record. The ordinary block path writes the same
|
|
154
|
+
evidence after its content is durable, so submit never repeats an R2 proof.
|
|
149
155
|
25. **Cold repository transfer is native Git work.** An empty destination
|
|
150
156
|
receives one binary pack containing exactly the objects reachable from the
|
|
151
157
|
repository's declared refs, plus bounded Amalgm state metadata. A Git pack
|
|
@@ -21,6 +21,11 @@ export declare const MAX_CONTENT_BLOCK_BYTES: number;
|
|
|
21
21
|
/** Maximum accepted block size. Kept as the public manifest-bound name. */
|
|
22
22
|
export declare const CHUNK_BYTES: number;
|
|
23
23
|
export declare const MAX_CONTENT_BLOCKS = 2000;
|
|
24
|
+
/** An artifact at or below this travels inline with its entity record —
|
|
25
|
+
* one frame carries record, manifest, and bytes. Larger artifacts move as
|
|
26
|
+
* blocks first and the manifest seals them. Both sender and authority
|
|
27
|
+
* enforce this same bound. */
|
|
28
|
+
export declare const INLINE_CARGO_MAX_BYTES: number;
|
|
24
29
|
export interface ContentChunk {
|
|
25
30
|
readonly sha256: string;
|
|
26
31
|
readonly bytes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/contracts/content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAEnE;;8EAE8E;AAC9E,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,GAAG,OAAO,uBAAuB,CAAC;AAEvF,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,2EAA2E;AAC3E,eAAO,MAAM,WAAW,QAA0B,CAAC;AACnD,eAAO,MAAM,kBAAkB,OAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/contracts/content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAEnE;;8EAE8E;AAC9E,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,GAAG,OAAO,uBAAuB,CAAC;AAEvF,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,2EAA2E;AAC3E,eAAO,MAAM,WAAW,QAA0B,CAAC;AACnD,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC;;;8BAG8B;AAC9B,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAIlD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAoCjH;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;qEACqE;AACrE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvD"}
|
|
@@ -20,6 +20,11 @@ export const MAX_CONTENT_BLOCK_BYTES = 16 * 1024 * 1024;
|
|
|
20
20
|
/** Maximum accepted block size. Kept as the public manifest-bound name. */
|
|
21
21
|
export const CHUNK_BYTES = MAX_CONTENT_BLOCK_BYTES;
|
|
22
22
|
export const MAX_CONTENT_BLOCKS = 2_000;
|
|
23
|
+
/** An artifact at or below this travels inline with its entity record —
|
|
24
|
+
* one frame carries record, manifest, and bytes. Larger artifacts move as
|
|
25
|
+
* blocks first and the manifest seals them. Both sender and authority
|
|
26
|
+
* enforce this same bound. */
|
|
27
|
+
export const INLINE_CARGO_MAX_BYTES = 1024 * 1024;
|
|
23
28
|
const HASH = /^[0-9a-f]{64}$/;
|
|
24
29
|
/**
|
|
25
30
|
* Validate and normalize a manifest. The laws, in conviction order:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/contracts/content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAgB,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnE;;8EAE8E;AAC9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAG1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/contracts/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* The entity UUID is the channel. `globalSequence` exists only after the
|
|
5
5
|
* authority accepts the record and is dense independently on that UUID.
|
|
6
6
|
*/
|
|
7
|
+
import type { ContentManifest } from '../contracts/content.js';
|
|
7
8
|
import { type DetectedChangeProposal } from '../detection/record-proposal.js';
|
|
8
9
|
import { type Checked } from '../contracts/validate.js';
|
|
9
10
|
export declare const ENTITY_RECORD_CONTRACT = "amalgm.entity-record@1";
|
|
@@ -24,6 +25,14 @@ export interface LocalEntityRecord {
|
|
|
24
25
|
readonly change: DetectedChangeProposal;
|
|
25
26
|
readonly createdAt: number;
|
|
26
27
|
}
|
|
28
|
+
/** One sealed artifact travelling inside the submit frame: its manifest and
|
|
29
|
+
* every block, in chunk order. Only artifacts within INLINE_CARGO_MAX_BYTES
|
|
30
|
+
* qualify; the authority stores and seals them before accepting the record,
|
|
31
|
+
* so cargo-before-record holds on this path exactly as on the block path. */
|
|
32
|
+
export interface EntityRecordInlineCargo {
|
|
33
|
+
readonly manifest: ContentManifest;
|
|
34
|
+
readonly blocks: readonly Uint8Array[];
|
|
35
|
+
}
|
|
27
36
|
export interface AcceptedEntityRecord extends LocalEntityRecord {
|
|
28
37
|
/** Dense and monotonic only within `entityId`. */
|
|
29
38
|
readonly globalSequence: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/records/contracts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/records/contracts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,OAAO,EAA+C,MAAM,0BAA0B,CAAC;AAErG,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,sBAAsB,CAAC;IACjD,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;6EAG6E;AAC7E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAuDD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8BjF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAWvF;AAED,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,YAAY,CAAC,KACzD,MAAwD,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,iBAAiB,CAepB"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { assertRecord } from '../entities/cloud.js';
|
|
8
8
|
import { UUID_PATTERN } from '../entities/types.js';
|
|
9
9
|
import { DETECTED_CHANGE_CONTRACT, } from '../detection/record-proposal.js';
|
|
10
|
+
import { artifactForRecord } from '../transfer/artifacts.js';
|
|
10
11
|
import { failShape, isNonEmptyString, isRecord, pass } from '../contracts/validate.js';
|
|
11
12
|
export const ENTITY_RECORD_CONTRACT = 'amalgm.entity-record@1';
|
|
12
13
|
const HASH = /^[0-9a-f]{64}$/;
|
|
@@ -42,6 +43,17 @@ function checkChange(value) {
|
|
|
42
43
|
if (result.uuid !== value.entityId) {
|
|
43
44
|
return failShape(EXAMPLE, 'change.entityId did not equal change.result.uuid');
|
|
44
45
|
}
|
|
46
|
+
const expected = value.replay.kind === 'structure' ? null : artifactForRecord(result);
|
|
47
|
+
const cargo = value.cargo;
|
|
48
|
+
if ((expected === null && cargo.length !== 0)
|
|
49
|
+
|| (expected !== null && (cargo.length !== 1
|
|
50
|
+
|| !isRecord(cargo[0])
|
|
51
|
+
|| cargo[0].entityId !== expected.entityId
|
|
52
|
+
|| cargo[0].entityType !== expected.entityType
|
|
53
|
+
|| cargo[0].kind !== expected.kind
|
|
54
|
+
|| cargo[0].contentHash !== expected.contentHash))) {
|
|
55
|
+
return failShape(EXAMPLE, 'change.cargo does not exactly name its complete result artifact');
|
|
56
|
+
}
|
|
45
57
|
}
|
|
46
58
|
catch (error) {
|
|
47
59
|
return failShape(EXAMPLE, `change.result was invalid: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/records/contracts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/records/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/records/rail.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Portable, event-driven Send and Receive orchestration. Hosts inject effects. */
|
|
2
2
|
import { type OutboxRow } from './outbox.js';
|
|
3
|
-
import type { AcceptedEntityRecord, LocalEntityRecord } from './contracts.js';
|
|
3
|
+
import type { AcceptedEntityRecord, EntityRecordInlineCargo, LocalEntityRecord } from './contracts.js';
|
|
4
4
|
export declare const ENTITY_RECORD_DELIVERY_LIMIT = 256;
|
|
5
5
|
export declare const ENTITY_RECORD_RETRY_BASE_MS = 1000;
|
|
6
6
|
export declare const ENTITY_RECORD_RETRY_MAX_MS = 30000;
|
|
@@ -42,11 +42,14 @@ export interface EntityRecordStorePort {
|
|
|
42
42
|
}): MaybePromise<ReceiveEntityDeliveriesResult>;
|
|
43
43
|
}
|
|
44
44
|
export interface EntityRecordCargoPort {
|
|
45
|
-
|
|
45
|
+
/** Make the record's cargo durable at the authority, or return it to
|
|
46
|
+
* travel inside the submit frame. Either way, once submit is acked the
|
|
47
|
+
* cloud holds the sealed cargo. */
|
|
48
|
+
ensure(record: LocalEntityRecord): Promise<readonly EntityRecordInlineCargo[] | undefined>;
|
|
46
49
|
}
|
|
47
50
|
/** Authenticated authority effects. `subscribe` registers before it reads. */
|
|
48
51
|
export interface EntityRecordAuthorityPort {
|
|
49
|
-
submit(record: LocalEntityRecord): Promise<AcceptedEntityRecord>;
|
|
52
|
+
submit(record: LocalEntityRecord, inlineCargo?: readonly EntityRecordInlineCargo[]): Promise<AcceptedEntityRecord>;
|
|
50
53
|
subscribe(input: {
|
|
51
54
|
readonly authorityId: string;
|
|
52
55
|
readonly afterDeliverySequence: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rail.d.ts","sourceRoot":"","sources":["../../src/records/rail.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rail.d.ts","sourceRoot":"","sources":["../../src/records/rail.ts"],"names":[],"mappings":"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"}
|
package/dist/records/rail.js
CHANGED
|
@@ -232,10 +232,10 @@ export class EntityRecordRail {
|
|
|
232
232
|
if (selected.length === 0)
|
|
233
233
|
return sent;
|
|
234
234
|
const results = await Promise.allSettled(selected.map(async (row) => {
|
|
235
|
-
await this.#cargo.ensure(row.record);
|
|
235
|
+
const inlineCargo = await this.#cargo.ensure(row.record);
|
|
236
236
|
if (this.#stopped)
|
|
237
237
|
return;
|
|
238
|
-
const accepted = await this.#authority.submit(row.record);
|
|
238
|
+
const accepted = await this.#authority.submit(row.record, inlineCargo);
|
|
239
239
|
await this.#store.stampAccepted(row, accepted);
|
|
240
240
|
sent = true;
|
|
241
241
|
}));
|
package/dist/records/rail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rail.js","sourceRoot":"","sources":["../../src/records/rail.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rail.js","sourceRoot":"","sources":["../../src/records/rail.ts"],"names":[],"mappings":"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"}
|
package/dist/records/wire.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
/** Exact wire for the entity Record/Send/Receive rail. */
|
|
2
|
+
import type { EntityRecordInlineCargo } from './contracts.js';
|
|
2
3
|
import type { DeliveredEntityRecord, EntityRecordAuthorityPort, EntityRecordAvailability } from './rail.js';
|
|
4
|
+
/** One sealed artifact riding the submit frame. The JSON header names its
|
|
5
|
+
* manifest; exact block bytes follow on the authenticated binary rail. */
|
|
6
|
+
export interface EntityRecordInlineCargoFrame {
|
|
7
|
+
readonly manifest_json: string;
|
|
8
|
+
}
|
|
3
9
|
export interface EntityRecordSubmitFrame {
|
|
4
10
|
readonly type: 'entity.record.submit';
|
|
5
11
|
readonly request_id: string;
|
|
6
12
|
readonly record_json: string;
|
|
13
|
+
/** Present only when every cargo head fits INLINE_CARGO_MAX_BYTES. */
|
|
14
|
+
readonly cargo?: readonly EntityRecordInlineCargoFrame[];
|
|
15
|
+
/** Attached by the binary transport, never serialized into JSON. */
|
|
16
|
+
readonly data_bin?: Uint8Array;
|
|
7
17
|
}
|
|
8
18
|
export interface EntityRecordSubscribeFrame {
|
|
9
19
|
readonly type: 'entity.record.subscribe';
|
|
@@ -51,10 +61,22 @@ type WithoutRequestId<T> = T extends {
|
|
|
51
61
|
} ? Omit<T, 'request_id'> : T;
|
|
52
62
|
export type EntityRecordWireRequest = WithoutRequestId<EntityRecordRuntimeFrame>;
|
|
53
63
|
export interface EntityRecordWirePort {
|
|
54
|
-
request(frame: EntityRecordWireRequest, acceptedTypes: readonly string[]): Promise<unknown>;
|
|
64
|
+
request(frame: EntityRecordWireRequest, acceptedTypes: readonly string[], binaryBody?: Uint8Array): Promise<unknown>;
|
|
55
65
|
onFrame(listener: (frame: unknown) => void): () => void;
|
|
56
66
|
onDisconnect(listener: (error: unknown) => void): () => void;
|
|
57
67
|
}
|
|
68
|
+
export declare const encodeInlineCargo: (cargo: readonly EntityRecordInlineCargo[]) => {
|
|
69
|
+
readonly frames: readonly EntityRecordInlineCargoFrame[];
|
|
70
|
+
readonly bytes: Uint8Array;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Decode and prove one submit frame's inline cargo. Every law an authority
|
|
74
|
+
* must hold before storing travels with the shape: valid manifest, the
|
|
75
|
+
* inline bound, one block per chunk, and every block hashing to its chunk.
|
|
76
|
+
* `expectedHashes` are the record's cargo heads; cargo for an unknown head
|
|
77
|
+
* is refused.
|
|
78
|
+
*/
|
|
79
|
+
export declare function decodeInlineCargo(value: unknown, binaryBody: unknown, expectedHashes: ReadonlySet<string>, sha256Hex: (bytes: Uint8Array) => string): readonly EntityRecordInlineCargo[];
|
|
58
80
|
export declare function decodeEntityRecordDeliveries(value: unknown): readonly DeliveredEntityRecord[];
|
|
59
81
|
export declare function decodeEntityRecordAvailability(value: unknown): EntityRecordAvailability;
|
|
60
82
|
/** Map one authenticated request/event wire onto the portable authority port. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/records/wire.ts"],"names":[],"mappings":"AAAA,0DAA0D;
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/records/wire.ts"],"names":[],"mappings":"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"}
|
package/dist/records/wire.js
CHANGED
|
@@ -1,7 +1,70 @@
|
|
|
1
1
|
/** Exact wire for the entity Record/Send/Receive rail. */
|
|
2
|
+
import { INLINE_CARGO_MAX_BYTES, checkContentManifest, } from '../contracts/content.js';
|
|
2
3
|
import { isRecord } from '../contracts/validate.js';
|
|
3
4
|
import { decodeAcceptedEntityRecord, encodeEntityRecord } from './codec.js';
|
|
4
5
|
const positiveSequence = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value > 0;
|
|
6
|
+
export const encodeInlineCargo = (cargo) => {
|
|
7
|
+
const total = cargo.reduce((sum, item) => sum + item.blocks.reduce((blockSum, block) => blockSum + block.byteLength, 0), 0);
|
|
8
|
+
const bytes = new Uint8Array(total);
|
|
9
|
+
let offset = 0;
|
|
10
|
+
for (const item of cargo) {
|
|
11
|
+
for (const block of item.blocks) {
|
|
12
|
+
bytes.set(block, offset);
|
|
13
|
+
offset += block.byteLength;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
frames: Object.freeze(cargo.map((item) => Object.freeze({
|
|
18
|
+
manifest_json: JSON.stringify(item.manifest),
|
|
19
|
+
}))),
|
|
20
|
+
bytes,
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Decode and prove one submit frame's inline cargo. Every law an authority
|
|
25
|
+
* must hold before storing travels with the shape: valid manifest, the
|
|
26
|
+
* inline bound, one block per chunk, and every block hashing to its chunk.
|
|
27
|
+
* `expectedHashes` are the record's cargo heads; cargo for an unknown head
|
|
28
|
+
* is refused.
|
|
29
|
+
*/
|
|
30
|
+
export function decodeInlineCargo(value, binaryBody, expectedHashes, sha256Hex) {
|
|
31
|
+
if (!Array.isArray(value) || value.length === 0 || value.length > expectedHashes.size) {
|
|
32
|
+
throw new Error('inline cargo did not match the record cargo heads');
|
|
33
|
+
}
|
|
34
|
+
if (!(binaryBody instanceof Uint8Array)) {
|
|
35
|
+
throw new Error('inline cargo bytes are missing');
|
|
36
|
+
}
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
let offset = 0;
|
|
39
|
+
const decoded = value.map((item) => {
|
|
40
|
+
if (!isRecord(item) || typeof item.manifest_json !== 'string') {
|
|
41
|
+
throw new Error('inline cargo item is invalid');
|
|
42
|
+
}
|
|
43
|
+
const manifest = checkContentManifest(JSON.parse(item.manifest_json));
|
|
44
|
+
if (!manifest.ok)
|
|
45
|
+
throw new Error(manifest.error);
|
|
46
|
+
if (!expectedHashes.has(manifest.value.contentHash) || seen.has(manifest.value.contentHash)) {
|
|
47
|
+
throw new Error('inline cargo did not match the record cargo heads');
|
|
48
|
+
}
|
|
49
|
+
seen.add(manifest.value.contentHash);
|
|
50
|
+
if (manifest.value.bytes > INLINE_CARGO_MAX_BYTES) {
|
|
51
|
+
throw new Error('inline cargo exceeds the inline bound');
|
|
52
|
+
}
|
|
53
|
+
const blocks = manifest.value.chunks.map((chunk, index) => {
|
|
54
|
+
const bytes = binaryBody.subarray(offset, offset + chunk.bytes);
|
|
55
|
+
offset += chunk.bytes;
|
|
56
|
+
if (bytes.byteLength !== chunk.bytes || sha256Hex(bytes) !== chunk.sha256) {
|
|
57
|
+
throw new Error(`inline cargo block ${index} does not match its manifest chunk`);
|
|
58
|
+
}
|
|
59
|
+
return bytes;
|
|
60
|
+
});
|
|
61
|
+
return Object.freeze({ manifest: manifest.value, blocks: Object.freeze(blocks) });
|
|
62
|
+
});
|
|
63
|
+
if (offset !== binaryBody.byteLength) {
|
|
64
|
+
throw new Error('inline cargo bytes exceed the declared manifests');
|
|
65
|
+
}
|
|
66
|
+
return Object.freeze(decoded);
|
|
67
|
+
}
|
|
5
68
|
export function decodeEntityRecordDeliveries(value) {
|
|
6
69
|
if (!Array.isArray(value))
|
|
7
70
|
throw new Error('entity record authority did not return a records array');
|
|
@@ -31,11 +94,13 @@ export function decodeEntityRecordAvailability(value) {
|
|
|
31
94
|
/** Map one authenticated request/event wire onto the portable authority port. */
|
|
32
95
|
export function createEntityRecordAuthorityPort(wire) {
|
|
33
96
|
return {
|
|
34
|
-
async submit(record) {
|
|
97
|
+
async submit(record, inlineCargo) {
|
|
98
|
+
const encoded = inlineCargo?.length ? encodeInlineCargo(inlineCargo) : null;
|
|
35
99
|
const frame = await wire.request({
|
|
36
100
|
type: 'entity.record.submit',
|
|
37
101
|
record_json: encodeEntityRecord(record),
|
|
38
|
-
|
|
102
|
+
...(encoded ? { cargo: encoded.frames } : {}),
|
|
103
|
+
}, ['entity.record.ack'], encoded?.bytes);
|
|
39
104
|
if (!isRecord(frame) || frame.type !== 'entity.record.ack' || typeof frame.record_json !== 'string') {
|
|
40
105
|
throw new Error('entity record acknowledgement is invalid');
|
|
41
106
|
}
|
package/dist/records/wire.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/records/wire.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/records/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* host effects; this file owns the shape and its laws.
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.MAX_CONTENT_BLOCKS = exports.CHUNK_BYTES = exports.MAX_CONTENT_BLOCK_BYTES = exports.MIN_CONTENT_BLOCK_BYTES = exports.CONTENT_CONTRACT = exports.LEGACY_CONTENT_CONTRACT = void 0;
|
|
14
|
+
exports.INLINE_CARGO_MAX_BYTES = exports.MAX_CONTENT_BLOCKS = exports.CHUNK_BYTES = exports.MAX_CONTENT_BLOCK_BYTES = exports.MIN_CONTENT_BLOCK_BYTES = exports.CONTENT_CONTRACT = exports.LEGACY_CONTENT_CONTRACT = void 0;
|
|
15
15
|
exports.checkContentManifest = checkContentManifest;
|
|
16
16
|
exports.manifestFromChunks = manifestFromChunks;
|
|
17
17
|
exports.contentBlockSize = contentBlockSize;
|
|
@@ -27,6 +27,11 @@ exports.MAX_CONTENT_BLOCK_BYTES = 16 * 1024 * 1024;
|
|
|
27
27
|
/** Maximum accepted block size. Kept as the public manifest-bound name. */
|
|
28
28
|
exports.CHUNK_BYTES = exports.MAX_CONTENT_BLOCK_BYTES;
|
|
29
29
|
exports.MAX_CONTENT_BLOCKS = 2_000;
|
|
30
|
+
/** An artifact at or below this travels inline with its entity record —
|
|
31
|
+
* one frame carries record, manifest, and bytes. Larger artifacts move as
|
|
32
|
+
* blocks first and the manifest seals them. Both sender and authority
|
|
33
|
+
* enforce this same bound. */
|
|
34
|
+
exports.INLINE_CARGO_MAX_BYTES = 1024 * 1024;
|
|
30
35
|
const HASH = /^[0-9a-f]{64}$/;
|
|
31
36
|
/**
|
|
32
37
|
* Validate and normalize a manifest. The laws, in conviction order:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/contracts/content.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/contracts/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ exports.createLocalEntityRecord = createLocalEntityRecord;
|
|
|
13
13
|
const cloud_js_1 = require("../entities/cloud.js");
|
|
14
14
|
const types_js_1 = require("../entities/types.js");
|
|
15
15
|
const record_proposal_js_1 = require("../detection/record-proposal.js");
|
|
16
|
+
const artifacts_js_1 = require("../transfer/artifacts.js");
|
|
16
17
|
const validate_js_1 = require("../contracts/validate.js");
|
|
17
18
|
exports.ENTITY_RECORD_CONTRACT = 'amalgm.entity-record@1';
|
|
18
19
|
const HASH = /^[0-9a-f]{64}$/;
|
|
@@ -48,6 +49,17 @@ function checkChange(value) {
|
|
|
48
49
|
if (result.uuid !== value.entityId) {
|
|
49
50
|
return (0, validate_js_1.failShape)(EXAMPLE, 'change.entityId did not equal change.result.uuid');
|
|
50
51
|
}
|
|
52
|
+
const expected = value.replay.kind === 'structure' ? null : (0, artifacts_js_1.artifactForRecord)(result);
|
|
53
|
+
const cargo = value.cargo;
|
|
54
|
+
if ((expected === null && cargo.length !== 0)
|
|
55
|
+
|| (expected !== null && (cargo.length !== 1
|
|
56
|
+
|| !(0, validate_js_1.isRecord)(cargo[0])
|
|
57
|
+
|| cargo[0].entityId !== expected.entityId
|
|
58
|
+
|| cargo[0].entityType !== expected.entityType
|
|
59
|
+
|| cargo[0].kind !== expected.kind
|
|
60
|
+
|| cargo[0].contentHash !== expected.contentHash))) {
|
|
61
|
+
return (0, validate_js_1.failShape)(EXAMPLE, 'change.cargo does not exactly name its complete result artifact');
|
|
62
|
+
}
|
|
51
63
|
}
|
|
52
64
|
catch (error) {
|
|
53
65
|
return (0, validate_js_1.failShape)(EXAMPLE, `change.result was invalid: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/records/contracts.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/records/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/records/rail.js
CHANGED
|
@@ -235,10 +235,10 @@ class EntityRecordRail {
|
|
|
235
235
|
if (selected.length === 0)
|
|
236
236
|
return sent;
|
|
237
237
|
const results = await Promise.allSettled(selected.map(async (row) => {
|
|
238
|
-
await this.#cargo.ensure(row.record);
|
|
238
|
+
const inlineCargo = await this.#cargo.ensure(row.record);
|
|
239
239
|
if (this.#stopped)
|
|
240
240
|
return;
|
|
241
|
-
const accepted = await this.#authority.submit(row.record);
|
|
241
|
+
const accepted = await this.#authority.submit(row.record, inlineCargo);
|
|
242
242
|
await this.#store.stampAccepted(row, accepted);
|
|
243
243
|
sent = true;
|
|
244
244
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rail.js","sourceRoot":"","sources":["../../src/records/rail.ts"],"names":[],"mappings":";AAAA,mFAAmF;;;AAEnF,2CAA8D;
|
|
1
|
+
{"version":3,"file":"rail.js","sourceRoot":"","sources":["../../src/records/rail.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/records/wire.js
CHANGED
|
@@ -1,12 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/** Exact wire for the entity Record/Send/Receive rail. */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.encodeInlineCargo = void 0;
|
|
5
|
+
exports.decodeInlineCargo = decodeInlineCargo;
|
|
4
6
|
exports.decodeEntityRecordDeliveries = decodeEntityRecordDeliveries;
|
|
5
7
|
exports.decodeEntityRecordAvailability = decodeEntityRecordAvailability;
|
|
6
8
|
exports.createEntityRecordAuthorityPort = createEntityRecordAuthorityPort;
|
|
9
|
+
const content_js_1 = require("../contracts/content.js");
|
|
7
10
|
const validate_js_1 = require("../contracts/validate.js");
|
|
8
11
|
const codec_js_1 = require("./codec.js");
|
|
9
12
|
const positiveSequence = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value > 0;
|
|
13
|
+
const encodeInlineCargo = (cargo) => {
|
|
14
|
+
const total = cargo.reduce((sum, item) => sum + item.blocks.reduce((blockSum, block) => blockSum + block.byteLength, 0), 0);
|
|
15
|
+
const bytes = new Uint8Array(total);
|
|
16
|
+
let offset = 0;
|
|
17
|
+
for (const item of cargo) {
|
|
18
|
+
for (const block of item.blocks) {
|
|
19
|
+
bytes.set(block, offset);
|
|
20
|
+
offset += block.byteLength;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return Object.freeze({
|
|
24
|
+
frames: Object.freeze(cargo.map((item) => Object.freeze({
|
|
25
|
+
manifest_json: JSON.stringify(item.manifest),
|
|
26
|
+
}))),
|
|
27
|
+
bytes,
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
exports.encodeInlineCargo = encodeInlineCargo;
|
|
31
|
+
/**
|
|
32
|
+
* Decode and prove one submit frame's inline cargo. Every law an authority
|
|
33
|
+
* must hold before storing travels with the shape: valid manifest, the
|
|
34
|
+
* inline bound, one block per chunk, and every block hashing to its chunk.
|
|
35
|
+
* `expectedHashes` are the record's cargo heads; cargo for an unknown head
|
|
36
|
+
* is refused.
|
|
37
|
+
*/
|
|
38
|
+
function decodeInlineCargo(value, binaryBody, expectedHashes, sha256Hex) {
|
|
39
|
+
if (!Array.isArray(value) || value.length === 0 || value.length > expectedHashes.size) {
|
|
40
|
+
throw new Error('inline cargo did not match the record cargo heads');
|
|
41
|
+
}
|
|
42
|
+
if (!(binaryBody instanceof Uint8Array)) {
|
|
43
|
+
throw new Error('inline cargo bytes are missing');
|
|
44
|
+
}
|
|
45
|
+
const seen = new Set();
|
|
46
|
+
let offset = 0;
|
|
47
|
+
const decoded = value.map((item) => {
|
|
48
|
+
if (!(0, validate_js_1.isRecord)(item) || typeof item.manifest_json !== 'string') {
|
|
49
|
+
throw new Error('inline cargo item is invalid');
|
|
50
|
+
}
|
|
51
|
+
const manifest = (0, content_js_1.checkContentManifest)(JSON.parse(item.manifest_json));
|
|
52
|
+
if (!manifest.ok)
|
|
53
|
+
throw new Error(manifest.error);
|
|
54
|
+
if (!expectedHashes.has(manifest.value.contentHash) || seen.has(manifest.value.contentHash)) {
|
|
55
|
+
throw new Error('inline cargo did not match the record cargo heads');
|
|
56
|
+
}
|
|
57
|
+
seen.add(manifest.value.contentHash);
|
|
58
|
+
if (manifest.value.bytes > content_js_1.INLINE_CARGO_MAX_BYTES) {
|
|
59
|
+
throw new Error('inline cargo exceeds the inline bound');
|
|
60
|
+
}
|
|
61
|
+
const blocks = manifest.value.chunks.map((chunk, index) => {
|
|
62
|
+
const bytes = binaryBody.subarray(offset, offset + chunk.bytes);
|
|
63
|
+
offset += chunk.bytes;
|
|
64
|
+
if (bytes.byteLength !== chunk.bytes || sha256Hex(bytes) !== chunk.sha256) {
|
|
65
|
+
throw new Error(`inline cargo block ${index} does not match its manifest chunk`);
|
|
66
|
+
}
|
|
67
|
+
return bytes;
|
|
68
|
+
});
|
|
69
|
+
return Object.freeze({ manifest: manifest.value, blocks: Object.freeze(blocks) });
|
|
70
|
+
});
|
|
71
|
+
if (offset !== binaryBody.byteLength) {
|
|
72
|
+
throw new Error('inline cargo bytes exceed the declared manifests');
|
|
73
|
+
}
|
|
74
|
+
return Object.freeze(decoded);
|
|
75
|
+
}
|
|
10
76
|
function decodeEntityRecordDeliveries(value) {
|
|
11
77
|
if (!Array.isArray(value))
|
|
12
78
|
throw new Error('entity record authority did not return a records array');
|
|
@@ -36,11 +102,13 @@ function decodeEntityRecordAvailability(value) {
|
|
|
36
102
|
/** Map one authenticated request/event wire onto the portable authority port. */
|
|
37
103
|
function createEntityRecordAuthorityPort(wire) {
|
|
38
104
|
return {
|
|
39
|
-
async submit(record) {
|
|
105
|
+
async submit(record, inlineCargo) {
|
|
106
|
+
const encoded = inlineCargo?.length ? (0, exports.encodeInlineCargo)(inlineCargo) : null;
|
|
40
107
|
const frame = await wire.request({
|
|
41
108
|
type: 'entity.record.submit',
|
|
42
109
|
record_json: (0, codec_js_1.encodeEntityRecord)(record),
|
|
43
|
-
|
|
110
|
+
...(encoded ? { cargo: encoded.frames } : {}),
|
|
111
|
+
}, ['entity.record.ack'], encoded?.bytes);
|
|
44
112
|
if (!(0, validate_js_1.isRecord)(frame) || frame.type !== 'entity.record.ack' || typeof frame.record_json !== 'string') {
|
|
45
113
|
throw new Error('entity record acknowledgement is invalid');
|
|
46
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/records/wire.ts"],"names":[],"mappings":";AAAA,0DAA0D
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/records/wire.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amalgm/live",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.41",
|
|
4
4
|
"description": "Portable realtime SDK for Amalgm — wire contracts, mutation discipline, and delivery state machines behind host-injected adapters.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist-cjs/index.js",
|