diff --git a/src/cultmesh-provider-client.mjs b/src/cultmesh-provider-client.mjs index 11e3380..92fc655 100644 --- a/src/cultmesh-provider-client.mjs +++ b/src/cultmesh-provider-client.mjs @@ -190,7 +190,7 @@ function normalizeTarget(value) { return { providerId: String(value.providerId || ""), advertisementRecordRef: String(value.advertisementRecordRef), peerId: String(value.peerId || "provider"), verseId: String(value.verseId || "provider"), role: String(value.role || "provider"), endpoints: Array.isArray(value.endpoints) ? value.endpoints.map(String) : [] }; } -function childRecordRef(parent, child) { return `${String(parent).replace(/\/$/u, "")}/${encodeURIComponent(child)}`; } +function childRecordRef(parent, child) { return `${String(parent).replace(/[:/]$/u, "")}:${String(child)}`; } function field(value, name, slot) { return value && typeof value === "object" ? (value[name] ?? value[slot]) : undefined; } function stringField(value, name, slot) { const result = field(value, name, slot); return typeof result === "string" ? result : ""; } function numberField(value, name, slot) { const result = field(value, name, slot); return typeof result === "number" && Number.isFinite(result) ? result : 0; } diff --git a/test/cultmesh-provider-client.test.mjs b/test/cultmesh-provider-client.test.mjs index 019fc4c..c120498 100644 --- a/test/cultmesh-provider-client.test.mjs +++ b/test/cultmesh-provider-client.test.mjs @@ -14,7 +14,7 @@ const surface = ["surface-state", "gamecult.eve.surface.v1", "test-provider", "d function harness() { const sent = []; - const records = new Map([["records/provider", advertisement], ["records/world", surface], ["records/receipts/cmd-1", { state: "accepted" }]]); + const records = new Map([["records/provider", advertisement], ["records/world", surface], ["records/receipts:cmd-1", { state: "accepted" }]]); const peer = { send: message => sent.push(message), close() {}, on() {} }; const mesh = { createPeerCatalog: () => ({ upsert() {} }), createAuthorityLeaseCatalog: () => ({ upsert() {} }), @@ -42,9 +42,9 @@ test("follows provider-advertised record references", async () => { test("submits at the advertised command boundary and reads the advertised receipt", async () => { const { client, sent } = harness(); const submission = await client.submitCommand({ surfaceId: "world", command: "move", commandId: "cmd-1", payload: { x: 1 } }); - assert.equal(sent[0].document.recordKey, "records/commands/cmd-1"); + assert.equal(sent[0].document.recordKey, "records/commands:cmd-1"); assert.equal(sent[0].document.sourceRole, "eve-runtime"); - assert.equal(submission.receiptRecordRef, "records/receipts/cmd-1"); + assert.equal(submission.receiptRecordRef, "records/receipts:cmd-1"); assert.deepEqual(await client.receipt(submission), { state: "accepted" }); });