@xyo-network/event-kit-protocol 0.1.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/endpointChallenge.d.ts.map +1 -1
- package/dist/neutral/handshakeConstruction.d.ts.map +1 -1
- package/dist/neutral/index.mjs +81 -78
- package/dist/neutral/index.mjs.map +3 -3
- package/dist/neutral/memoryStatementGrantGraph.d.ts.map +1 -1
- package/dist/neutral/memoryWakeInbox.d.ts.map +1 -1
- package/dist/neutral/memoryWakeQueue.d.ts.map +1 -1
- package/dist/neutral/wakeSubscriptionHpke.d.ts.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpointChallenge.d.ts","sourceRoot":"","sources":["../../src/endpointChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gCAAgC,CAAA;AAevC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,IAAI,CAAA;IACnB,SAAS,EAAE,mBAAmB,CAAA;IAC9B,KAAK,EAAE,IAAI,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,EAAE,iBAAiB,CAAA;IAC7B,YAAY,EAAE,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,yBAAyB,CAAA;IACnC,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,KAAK,iCAAiC,GAAG,IAAI,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAA;AA6BjG,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"endpointChallenge.d.ts","sourceRoot":"","sources":["../../src/endpointChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gCAAgC,CAAA;AAevC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,IAAI,CAAA;IACnB,SAAS,EAAE,mBAAmB,CAAA;IAC9B,KAAK,EAAE,IAAI,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,WAAW,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,EAAE,iBAAiB,CAAA;IAC7B,YAAY,EAAE,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,yBAAyB,CAAA;IACnC,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,KAAK,iCAAiC,GAAG,IAAI,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAA;AA6BjG,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,iBAAiB,CA4B9F;AAED,uFAAuF;AACvF,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CAOpC;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,iGAAiG;AACjG,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handshakeConstruction.d.ts","sourceRoot":"","sources":["../../src/handshakeConstruction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handshakeConstruction.d.ts","sourceRoot":"","sources":["../../src/handshakeConstruction.ts"],"names":[],"mappings":"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"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -125,10 +125,10 @@ function validateGrantView(decision, expectedHead, maxGrantLagBlocks) {
|
|
|
125
125
|
if (decision.atBlock > expectedHead) {
|
|
126
126
|
return reject("grant-view-invalid", ["grant view is ahead of the trusted finalized head"]);
|
|
127
127
|
}
|
|
128
|
-
const lag = expectedHead - decision.atBlock;
|
|
129
128
|
if (decision.expectedHead !== void 0 && decision.expectedHead !== expectedHead) {
|
|
130
129
|
return reject("grant-view-invalid", ["grant diagnostic expectedHead disagrees with the trusted head"]);
|
|
131
130
|
}
|
|
131
|
+
const lag = expectedHead - decision.atBlock;
|
|
132
132
|
if (decision.lag !== void 0 && decision.lag !== lag) {
|
|
133
133
|
return reject("grant-view-invalid", ["grant diagnostic lag disagrees with the recomputed lag"]);
|
|
134
134
|
}
|
|
@@ -325,7 +325,7 @@ function canonicalize(value) {
|
|
|
325
325
|
throw new TypeError("Canonical JSON objects must be plain records");
|
|
326
326
|
}
|
|
327
327
|
const record = value;
|
|
328
|
-
const members = Object.keys(record).
|
|
328
|
+
const members = Object.keys(record).toSorted().map((key) => {
|
|
329
329
|
if (hasUnpairedSurrogate(key)) throw new TypeError("Canonical JSON keys must be valid Unicode");
|
|
330
330
|
const member = record[key];
|
|
331
331
|
if (member === void 0) throw new TypeError("Canonical JSON does not permit undefined members");
|
|
@@ -397,7 +397,8 @@ function createEndpointChallenge(input) {
|
|
|
397
397
|
if (input.issuedAt > Number.MAX_SAFE_INTEGER - lifetimeSeconds) {
|
|
398
398
|
throw new RangeError("Challenge expiry exceeds the JSON safe-integer range");
|
|
399
399
|
}
|
|
400
|
-
|
|
400
|
+
const builder = new PayloadBuilder2({ schema: EndpointChallengeSchema });
|
|
401
|
+
return EndpointChallengeZod.parse(builder.fields({
|
|
401
402
|
challengeId: generateHandshakeId(),
|
|
402
403
|
chainId: input.chainId,
|
|
403
404
|
publisher: input.publisher,
|
|
@@ -415,7 +416,8 @@ function createEndpointChallenge(input) {
|
|
|
415
416
|
}
|
|
416
417
|
async function createEndpointChallengeResponse(challenge, secret) {
|
|
417
418
|
const challengeHash = await endpointChallengeHash(challenge);
|
|
418
|
-
|
|
419
|
+
const builder = new PayloadBuilder2({ schema: EndpointChallengeResponseSchema });
|
|
420
|
+
return EndpointChallengeResponseZod.parse(builder.fields({
|
|
419
421
|
challenge: challengeHash,
|
|
420
422
|
proof: await hmacProof(secret, challengeHash)
|
|
421
423
|
}).build());
|
|
@@ -566,7 +568,8 @@ var suite = new CipherSuite({
|
|
|
566
568
|
kdf: new HkdfSha256(),
|
|
567
569
|
aead: new Aes128Gcm()
|
|
568
570
|
});
|
|
569
|
-
var
|
|
571
|
+
var textEncoder2 = new TextEncoder();
|
|
572
|
+
var hpkeInfo = textEncoder2.encode(WAKE_SUBSCRIPTION_HPKE_PROFILE2);
|
|
570
573
|
function asInternalHpkeKeyPair(value) {
|
|
571
574
|
if (typeof value !== "object" || value === null || !("privateKey" in value) || !("publicKey" in value)) {
|
|
572
575
|
throw new TypeError("HPKE implementation returned an invalid key pair");
|
|
@@ -687,7 +690,8 @@ async function withHandshakeObjectHash(body) {
|
|
|
687
690
|
return Object.freeze({ body, objectHash: await handshakeObjectHash(body) });
|
|
688
691
|
}
|
|
689
692
|
function createPublisherEncryptionKey(input) {
|
|
690
|
-
|
|
693
|
+
const builder = new PayloadBuilder3({ schema: PublisherEncryptionKeySchema });
|
|
694
|
+
return PublisherEncryptionKeyZod.parse(builder.fields({
|
|
691
695
|
keyId: input.keyId ?? generateHandshakeId2(),
|
|
692
696
|
profile: WAKE_SUBSCRIPTION_HPKE_PROFILE3,
|
|
693
697
|
publicKey: input.publicKey,
|
|
@@ -718,7 +722,8 @@ async function generatePublisherEncryptionKey(input) {
|
|
|
718
722
|
});
|
|
719
723
|
}
|
|
720
724
|
function createPublisherService(input) {
|
|
721
|
-
|
|
725
|
+
const builder = new PayloadBuilder3({ schema: PublisherServiceSchema });
|
|
726
|
+
return PublisherServiceZod.parse(builder.fields({
|
|
722
727
|
authorizationChainId: input.authorizationChainId,
|
|
723
728
|
serviceId: input.serviceId ?? generateHandshakeId2(),
|
|
724
729
|
revision: input.revision ?? 1,
|
|
@@ -744,7 +749,8 @@ function createPublisherService(input) {
|
|
|
744
749
|
}).build());
|
|
745
750
|
}
|
|
746
751
|
function createWakeGrant(input) {
|
|
747
|
-
|
|
752
|
+
const builder = new PayloadBuilder3({ schema: WakeGrantObjectSchema });
|
|
753
|
+
return WakeGrantObjectZod.parse(builder.fields({
|
|
748
754
|
grantId: input.grantId ?? generateGrantId(),
|
|
749
755
|
deploymentId: input.deploymentId,
|
|
750
756
|
publisher: input.publisher,
|
|
@@ -758,7 +764,8 @@ function createWakeSubscriptionPlaintext(input) {
|
|
|
758
764
|
globalThis.crypto.getRandomValues(secretBytes);
|
|
759
765
|
}
|
|
760
766
|
const challengeSecret = input.challengeSecret ?? bytesToCanonicalBase64Url3(secretBytes);
|
|
761
|
-
|
|
767
|
+
const builder = new PayloadBuilder3({ schema: WakeSubscriptionPlaintextSchema });
|
|
768
|
+
return WakeSubscriptionPlaintextZod2.parse(builder.fields({
|
|
762
769
|
endpoint: input.endpoint,
|
|
763
770
|
audience: input.audience,
|
|
764
771
|
deploymentId: input.deploymentId,
|
|
@@ -776,21 +783,20 @@ function createWakeSubscriptionPlaintext(input) {
|
|
|
776
783
|
}).build());
|
|
777
784
|
}
|
|
778
785
|
async function createEncryptedWakeSubscription(input) {
|
|
779
|
-
const
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
);
|
|
786
|
+
const builder = new PayloadBuilder3({ schema: EncryptedWakeSubscriptionSchema });
|
|
787
|
+
const cleartext = WakeSubscriptionCleartextZod3.parse(builder.fields({
|
|
788
|
+
subscriptionId: input.subscriptionId ?? generateHandshakeId2(),
|
|
789
|
+
revision: input.revision ?? 1,
|
|
790
|
+
...input.supersedes === void 0 ? {} : { supersedes: input.supersedes },
|
|
791
|
+
chainId: input.chainId,
|
|
792
|
+
publisher: input.publisher,
|
|
793
|
+
service: input.service,
|
|
794
|
+
encryptionKey: input.publisherKey.encryptionKey,
|
|
795
|
+
keyId: input.publisherKey.keyId,
|
|
796
|
+
grant: input.grant,
|
|
797
|
+
eventKind: SOURCE_WAKE_EVENT_KIND,
|
|
798
|
+
expiresAtBlock: input.expiresAtBlock
|
|
799
|
+
}).build());
|
|
794
800
|
return await encryptWakeSubscription({
|
|
795
801
|
plaintext: input.plaintext,
|
|
796
802
|
publisherKey: input.publisherKey,
|
|
@@ -799,7 +805,8 @@ async function createEncryptedWakeSubscription(input) {
|
|
|
799
805
|
});
|
|
800
806
|
}
|
|
801
807
|
function createWakeSubscriptionAcceptance(input) {
|
|
802
|
-
|
|
808
|
+
const builder = new PayloadBuilder3({ schema: WakeSubscriptionAcceptanceSchema });
|
|
809
|
+
return WakeSubscriptionAcceptanceZod.parse(builder.fields({
|
|
803
810
|
challenge: input.challenge,
|
|
804
811
|
encryptionKey: input.encryptionKey,
|
|
805
812
|
grant: input.grant,
|
|
@@ -809,23 +816,24 @@ function createWakeSubscriptionAcceptance(input) {
|
|
|
809
816
|
}).build());
|
|
810
817
|
}
|
|
811
818
|
function createPublisherServiceRevocation(service) {
|
|
812
|
-
|
|
819
|
+
const builder = new PayloadBuilder3({ schema: PublisherServiceRevocationSchema });
|
|
820
|
+
return PublisherServiceRevocationZod.parse(builder.fields({ service }).build());
|
|
813
821
|
}
|
|
814
822
|
function createPublisherEncryptionKeyRevocation(key) {
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
);
|
|
823
|
+
const builder = new PayloadBuilder3({ schema: PublisherEncryptionKeyRevocationSchema });
|
|
824
|
+
return PublisherEncryptionKeyRevocationZod.parse(builder.fields({ key }).build());
|
|
818
825
|
}
|
|
819
826
|
function createWakeGrantRevocation(grant) {
|
|
820
|
-
|
|
827
|
+
const builder = new PayloadBuilder3({ schema: WakeGrantRevocationSchema });
|
|
828
|
+
return WakeGrantRevocationZod.parse(builder.fields({ grant }).build());
|
|
821
829
|
}
|
|
822
830
|
function createWakeSubscriptionRevocation(subscription) {
|
|
823
|
-
|
|
831
|
+
const builder = new PayloadBuilder3({ schema: WakeSubscriptionRevocationSchema });
|
|
832
|
+
return WakeSubscriptionRevocationZod.parse(builder.fields({ subscription }).build());
|
|
824
833
|
}
|
|
825
834
|
function createWakeSubscriptionAcceptanceRevocation(acceptance) {
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
);
|
|
835
|
+
const builder = new PayloadBuilder3({ schema: WakeSubscriptionAcceptanceRevocationSchema });
|
|
836
|
+
return WakeSubscriptionAcceptanceRevocationZod.parse(builder.fields({ acceptance }).build());
|
|
829
837
|
}
|
|
830
838
|
|
|
831
839
|
// src/lifecycleSelection.ts
|
|
@@ -910,7 +918,7 @@ function selectPublisherService(input) {
|
|
|
910
918
|
const groups = groupServicesByIdentity(input.services, input);
|
|
911
919
|
const selectable = [];
|
|
912
920
|
for (const revisions of groups.values()) {
|
|
913
|
-
if (input.serviceId === void 0 &&
|
|
921
|
+
if (input.serviceId === void 0 && revisions.every((service2) => !service2.eventKinds.includes(input.eventKind))) {
|
|
914
922
|
continue;
|
|
915
923
|
}
|
|
916
924
|
const resolution = resolveLinearChain(revisions, input.finalizedHead);
|
|
@@ -1033,9 +1041,7 @@ function createMemoryStatementGrantGraph(initialHead = 0) {
|
|
|
1033
1041
|
if (input.block > head) head = input.block;
|
|
1034
1042
|
}
|
|
1035
1043
|
return {
|
|
1036
|
-
async
|
|
1037
|
-
return head;
|
|
1038
|
-
},
|
|
1044
|
+
head: async () => head,
|
|
1039
1045
|
setHead(block) {
|
|
1040
1046
|
head = block;
|
|
1041
1047
|
},
|
|
@@ -1053,9 +1059,7 @@ function createMemoryStatementGrantGraph(initialHead = 0) {
|
|
|
1053
1059
|
}
|
|
1054
1060
|
return records;
|
|
1055
1061
|
},
|
|
1056
|
-
async
|
|
1057
|
-
return objects.get(objectHash);
|
|
1058
|
-
},
|
|
1062
|
+
object: async (objectHash) => objects.get(objectHash),
|
|
1059
1063
|
claim(input) {
|
|
1060
1064
|
if (input.grant.schema !== WakeGrantObjectSchema2) {
|
|
1061
1065
|
throw new Error(`expected ${WakeGrantObjectSchema2}`);
|
|
@@ -1077,7 +1081,7 @@ function createMemoryStatementGrantGraph(initialHead = 0) {
|
|
|
1077
1081
|
revoke(input) {
|
|
1078
1082
|
const revocation = { grant: input.grantObjectHash };
|
|
1079
1083
|
const source = normalizeAddress(input.source);
|
|
1080
|
-
const subjects =
|
|
1084
|
+
const subjects = claims.values().filter((claim) => claim.source === source && claim.objectHash === input.grantObjectHash).map((claim) => claim.subject).toArray();
|
|
1081
1085
|
const uniqueSubjects = [...new Set(subjects)];
|
|
1082
1086
|
if (input.subject === void 0 && uniqueSubjects.length > 1) {
|
|
1083
1087
|
throw new Error(`cannot infer one subject for ambiguous grant Claim ${input.grantObjectHash}`);
|
|
@@ -1107,7 +1111,14 @@ function createMemoryWakeInbox(options = {}) {
|
|
|
1107
1111
|
let receiptSequence = 0;
|
|
1108
1112
|
let tail = Promise.resolve();
|
|
1109
1113
|
function exclusive(work) {
|
|
1110
|
-
const
|
|
1114
|
+
const previous = tail;
|
|
1115
|
+
const run = (async () => {
|
|
1116
|
+
try {
|
|
1117
|
+
await previous;
|
|
1118
|
+
} catch {
|
|
1119
|
+
}
|
|
1120
|
+
return await work();
|
|
1121
|
+
})();
|
|
1111
1122
|
tail = Promise.allSettled([run]);
|
|
1112
1123
|
return run;
|
|
1113
1124
|
}
|
|
@@ -1140,36 +1151,32 @@ function createMemoryWakeInbox(options = {}) {
|
|
|
1140
1151
|
get wakeRecordCount() {
|
|
1141
1152
|
return wakeRecords.size;
|
|
1142
1153
|
},
|
|
1143
|
-
async
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
id: `receipt-${receiptSequence += 1}`,
|
|
1158
|
-
publisher: attempt.publisher,
|
|
1159
|
-
wakeId: attempt.wakeId
|
|
1160
|
-
});
|
|
1161
|
-
await options.enqueue?.(wake);
|
|
1162
|
-
queued.push(wake);
|
|
1163
|
-
const binding = {
|
|
1164
|
-
eventHash: attempt.eventHash,
|
|
1165
|
-
receipt,
|
|
1166
|
-
wakeId: attempt.wakeId
|
|
1167
|
-
};
|
|
1168
|
-
tokenRecords.set(tokenKey(attempt), { ...binding, retainJwtUntil: attempt.retainJwtUntil });
|
|
1169
|
-
wakeRecords.set(wakeKey(attempt), binding);
|
|
1170
|
-
return { kind: "enqueued", receipt };
|
|
1154
|
+
resolveAttempt: async (attempt) => await exclusive(async () => {
|
|
1155
|
+
pruneExpiredTokens();
|
|
1156
|
+
return matchRecorded(attempt) ?? { kind: "new" };
|
|
1157
|
+
}),
|
|
1158
|
+
commitAuthorized: async ({ attempt, wake }) => await exclusive(async () => {
|
|
1159
|
+
pruneExpiredTokens();
|
|
1160
|
+
const recorded = matchRecorded(attempt);
|
|
1161
|
+
if (recorded !== void 0) return recorded;
|
|
1162
|
+
const receipt = Object.freeze({
|
|
1163
|
+
audience: attempt.audience,
|
|
1164
|
+
eventHash: attempt.eventHash,
|
|
1165
|
+
id: `receipt-${receiptSequence += 1}`,
|
|
1166
|
+
publisher: attempt.publisher,
|
|
1167
|
+
wakeId: attempt.wakeId
|
|
1171
1168
|
});
|
|
1172
|
-
|
|
1169
|
+
await options.enqueue?.(wake);
|
|
1170
|
+
queued.push(wake);
|
|
1171
|
+
const binding = {
|
|
1172
|
+
eventHash: attempt.eventHash,
|
|
1173
|
+
receipt,
|
|
1174
|
+
wakeId: attempt.wakeId
|
|
1175
|
+
};
|
|
1176
|
+
tokenRecords.set(tokenKey(attempt), { ...binding, retainJwtUntil: attempt.retainJwtUntil });
|
|
1177
|
+
wakeRecords.set(wakeKey(attempt), binding);
|
|
1178
|
+
return { kind: "enqueued", receipt };
|
|
1179
|
+
})
|
|
1173
1180
|
};
|
|
1174
1181
|
}
|
|
1175
1182
|
function tokenKey(attempt) {
|
|
@@ -1204,12 +1211,8 @@ function createMemoryWakeQueue() {
|
|
|
1204
1211
|
}
|
|
1205
1212
|
};
|
|
1206
1213
|
},
|
|
1207
|
-
async
|
|
1208
|
-
|
|
1209
|
-
},
|
|
1210
|
-
async pendingCount() {
|
|
1211
|
-
return pending.length;
|
|
1212
|
-
},
|
|
1214
|
+
inflightCount: async () => inflight.size,
|
|
1215
|
+
pendingCount: async () => pending.length,
|
|
1213
1216
|
async recoverInflight() {
|
|
1214
1217
|
const recovered = inflight.size;
|
|
1215
1218
|
for (const entry of inflight.values()) pending.push(entry);
|