@xyo-network/event-kit-protocol 2.1.0 → 2.2.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/admissionTypes.d.ts +28 -13
- package/dist/neutral/admissionTypes.d.ts.map +1 -1
- package/dist/neutral/grantEvidence.d.ts +3 -3
- package/dist/neutral/grantEvidence.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +3 -2
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +42 -13
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/neutral/memoryWakeQueue.d.ts +2 -3
- package/dist/neutral/memoryWakeQueue.d.ts.map +1 -1
- package/dist/neutral/staleWakeLeaseError.d.ts +7 -0
- package/dist/neutral/staleWakeLeaseError.d.ts.map +1 -0
- package/dist/neutral/statementGraphWakeGrantAuthorizer.d.ts.map +1 -1
- package/dist/neutral/wakeQueue.d.ts +16 -4
- package/dist/neutral/wakeQueue.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -2,34 +2,38 @@ import type { ChainId, DeploymentId, Hash, NormalizedAddress, WakeId, WakeJwtAud
|
|
|
2
2
|
import type { AdmittedWake } from './types.ts';
|
|
3
3
|
/** Replay records survive token expiry by this amount to cover receiver skew. */
|
|
4
4
|
export declare const EVENT_KIT_REPLAY_RETENTION_SKEW_SECONDS = 60;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
readonly authorizationChainId: ChainId;
|
|
5
|
+
/** Deployment/queue grant scope only; this port does not establish subscription activation. */
|
|
6
|
+
export interface DeploymentGrantAuthorizationRequest {
|
|
8
7
|
readonly controller: NormalizedAddress;
|
|
9
8
|
readonly deploymentId: DeploymentId;
|
|
10
|
-
/** Required by D-006's activation adapter to select the accepted tuple's exact grant. */
|
|
11
9
|
readonly exactGrantHash?: Hash;
|
|
12
10
|
readonly expectedHead: number;
|
|
13
|
-
readonly filterHash: Hash;
|
|
14
11
|
readonly publisher: NormalizedAddress;
|
|
15
12
|
readonly queueId?: string;
|
|
16
|
-
readonly sourceHash: Hash;
|
|
17
|
-
readonly subscriptionHash: Hash;
|
|
18
13
|
}
|
|
19
|
-
|
|
20
|
-
export interface WakeGrantEvidence {
|
|
14
|
+
export interface DeploymentGrantEvidence {
|
|
21
15
|
readonly assertedAtBlock: number;
|
|
22
|
-
/** Checked for every authorization decision. */
|
|
23
|
-
readonly authorizationChainId: ChainId;
|
|
24
16
|
readonly controller: NormalizedAddress;
|
|
25
17
|
readonly deploymentId: DeploymentId;
|
|
26
|
-
readonly filterHash: Hash;
|
|
27
18
|
readonly id: string;
|
|
28
19
|
readonly objectHash?: Hash;
|
|
29
20
|
readonly queueId?: string;
|
|
21
|
+
readonly target: NormalizedAddress;
|
|
22
|
+
}
|
|
23
|
+
export interface WakeGrantAuthorizationRequest extends DeploymentGrantAuthorizationRequest {
|
|
24
|
+
/** Must match the independently pinned grant viewer. */
|
|
25
|
+
readonly authorizationChainId: ChainId;
|
|
26
|
+
readonly filterHash: Hash;
|
|
27
|
+
readonly sourceHash: Hash;
|
|
28
|
+
readonly subscriptionHash: Hash;
|
|
29
|
+
}
|
|
30
|
+
/** Complete evidence is produced only after exact finalized subscription activation. */
|
|
31
|
+
export interface WakeGrantEvidence extends DeploymentGrantEvidence {
|
|
32
|
+
readonly authorizationChainId: ChainId;
|
|
33
|
+
readonly authorizationKind: 'activated-subscription';
|
|
34
|
+
readonly filterHash: Hash;
|
|
30
35
|
readonly sourceHash: Hash;
|
|
31
36
|
readonly subscriptionHash: Hash;
|
|
32
|
-
readonly target: NormalizedAddress;
|
|
33
37
|
}
|
|
34
38
|
export interface WakeGrantAuthorizationDisabled {
|
|
35
39
|
readonly atBlock: number;
|
|
@@ -39,6 +43,17 @@ export interface WakeGrantAuthorizationDisabled {
|
|
|
39
43
|
/** Optional diagnostics. The core recomputes lag instead of trusting this value. */
|
|
40
44
|
readonly lag?: number;
|
|
41
45
|
}
|
|
46
|
+
export interface DeploymentGrantAuthorizationEnabled {
|
|
47
|
+
readonly atBlock: number;
|
|
48
|
+
readonly enabled: true;
|
|
49
|
+
readonly expectedHead?: number;
|
|
50
|
+
readonly grant: DeploymentGrantEvidence;
|
|
51
|
+
readonly lag?: number;
|
|
52
|
+
}
|
|
53
|
+
export type DeploymentGrantAuthorizationDecision = WakeGrantAuthorizationDisabled | DeploymentGrantAuthorizationEnabled;
|
|
54
|
+
export interface DeploymentGrantAuthorizer {
|
|
55
|
+
authorizePublisher: (request: DeploymentGrantAuthorizationRequest) => Promise<DeploymentGrantAuthorizationDecision>;
|
|
56
|
+
}
|
|
42
57
|
export interface WakeGrantAuthorizationEnabled {
|
|
43
58
|
readonly atBlock: number;
|
|
44
59
|
readonly enabled: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admissionTypes.d.ts","sourceRoot":"","sources":["../../src/admissionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,iBAAiB,EACjB,MAAM,EACN,eAAe,EACf,SAAS,EACV,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,iFAAiF;AACjF,eAAO,MAAM,uCAAuC,KAAK,CAAA;AAEzD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"admissionTypes.d.ts","sourceRoot":"","sources":["../../src/admissionTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DeploymentGrantAuthorizer } from './admissionTypes.ts';
|
|
2
2
|
import type { StatementGraphGrantReadModel } from './statementGraphPorts.ts';
|
|
3
3
|
export interface DeploymentGrantAuthorizerOptions {
|
|
4
4
|
readonly viewer: StatementGraphGrantReadModel;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Adapts a canonical Statement Graph v2 read model to the evidence-bearing
|
|
8
|
-
*
|
|
8
|
+
* deployment-only grant authorization port. Each decision is bound to one stable head.
|
|
9
9
|
*
|
|
10
10
|
* v2 is append-only with no lifecycle `state`, so this layer owns two things
|
|
11
11
|
* the protocol used to:
|
|
@@ -16,5 +16,5 @@ export interface DeploymentGrantAuthorizerOptions {
|
|
|
16
16
|
* controller*, of a revocation object referencing that grant's hash.
|
|
17
17
|
* Revocations from any other source are ignored.
|
|
18
18
|
*/
|
|
19
|
-
export declare function createDeploymentGrantAuthorizer(options: DeploymentGrantAuthorizerOptions):
|
|
19
|
+
export declare function createDeploymentGrantAuthorizer(options: DeploymentGrantAuthorizerOptions): DeploymentGrantAuthorizer;
|
|
20
20
|
//# sourceMappingURL=grantEvidence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grantEvidence.d.ts","sourceRoot":"","sources":["../../src/grantEvidence.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,
|
|
1
|
+
{"version":3,"file":"grantEvidence.d.ts","sourceRoot":"","sources":["../../src/grantEvidence.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,yBAAyB,EAE1B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAEV,4BAA4B,EAC7B,MAAM,0BAA0B,CAAA;AAEjC,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAA;CAC9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CAgD3B"}
|
package/dist/neutral/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { AtomicWakeInbox, AuthorizedWakeGrant, WakeAdmissionAttempt, WakeAdmissionReceipt, WakeAttemptResolution, WakeCommitResult, WakeGrantAuthorizationDecision, WakeGrantAuthorizationDisabled, WakeGrantAuthorizationEnabled, WakeGrantAuthorizationRequest, WakeGrantAuthorizer, WakeGrantEvidence, } from './admissionTypes.ts';
|
|
1
|
+
export type { AtomicWakeInbox, AuthorizedWakeGrant, DeploymentGrantAuthorizationDecision, DeploymentGrantAuthorizationEnabled, DeploymentGrantAuthorizationRequest, DeploymentGrantAuthorizer, DeploymentGrantEvidence, WakeAdmissionAttempt, WakeAdmissionReceipt, WakeAttemptResolution, WakeCommitResult, WakeGrantAuthorizationDecision, WakeGrantAuthorizationDisabled, WakeGrantAuthorizationEnabled, WakeGrantAuthorizationRequest, WakeGrantAuthorizer, WakeGrantEvidence, } from './admissionTypes.ts';
|
|
2
2
|
export { EVENT_KIT_REPLAY_RETENTION_SKEW_SECONDS } from './admissionTypes.ts';
|
|
3
3
|
export type { AdmitAndEnqueueFailure, AdmitAndEnqueueFailureReason, AdmitAndEnqueueInput, AdmitAndEnqueueResult, AdmitAndEnqueueSuccess, } from './admitAndEnqueue.ts';
|
|
4
4
|
export { admitAndEnqueue } from './admitAndEnqueue.ts';
|
|
@@ -21,6 +21,7 @@ export type { BeginPublisherEndpointChallengeAttemptApiInput, BeginPublisherEndp
|
|
|
21
21
|
export { beginPublisherEndpointChallengeAttempt, completePublisherEndpointChallenge, endpointChallengeMatchesPublisherContext, issuePublisherEndpointChallenge, validateAndDecryptPublisherSubscription, } from './publisherSubscription.ts';
|
|
22
22
|
export * from './sourceWakeActivation.ts';
|
|
23
23
|
export * from './sourceWakeIdentity.ts';
|
|
24
|
+
export { StaleWakeLeaseError } from './staleWakeLeaseError.ts';
|
|
24
25
|
export type { StatementGrantClaim, StatementGrantClaimQuery, StatementGrantObject, StatementGraphGrantReadModel, } from './statementGraphPorts.ts';
|
|
25
26
|
export type { StatementGraphWakeGrantAuthorizerOptions } from './statementGraphWakeGrantAuthorizer.ts';
|
|
26
27
|
export { createStatementGraphWakeGrantAuthorizer } from './statementGraphWakeGrantAuthorizer.ts';
|
|
@@ -28,7 +29,7 @@ export type { AdmittedWake } from './types.ts';
|
|
|
28
29
|
export { AdmittedWakeZod, parseAdmittedWake } from './types.ts';
|
|
29
30
|
export type { VerifiedWakeRequest, VerifyWakeRequestFailure, VerifyWakeRequestInput, VerifyWakeRequestRejectionReason, VerifyWakeRequestResult, VerifyWakeRequestSuccess, WakeAdmissionRoute, } from './verifyWakeRequest.ts';
|
|
30
31
|
export { EVENT_KIT_MAX_FUTURE_IAT_SECONDS, EVENT_KIT_MAX_JWT_LIFETIME_SECONDS, verifyWakeRequest, WakeAdmissionRouteZod, } from './verifyWakeRequest.ts';
|
|
31
|
-
export type { LeasedWake, WakeHandler, WakeQueue, } from './wakeQueue.ts';
|
|
32
|
+
export type { LeasedWake, RecoverInflightOptions, WakeHandler, WakeQueue, } from './wakeQueue.ts';
|
|
32
33
|
export { drainQueue } from './wakeQueue.ts';
|
|
33
34
|
export { wakeSubscriptionAadBytes, wakeSubscriptionPlaintextBytes, wakeSubscriptionPlaintextFromBytes, } from './wakeSubscriptionEncoding.ts';
|
|
34
35
|
export type { DecryptWakeSubscriptionInput, EncryptWakeSubscriptionInput, WakeSubscriptionEncryptionKeyPair, WakeSubscriptionPrivateKey, WakeSubscriptionPublicKey, } from './wakeSubscriptionHpke.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -133,6 +133,7 @@ function validateGrantEvidence(evidence, verified, atBlock) {
|
|
|
133
133
|
if (!isRecord(evidence)) return reject("grant-view-invalid", ["enabled grant decision omitted evidence"]);
|
|
134
134
|
const requiredFields = [
|
|
135
135
|
"assertedAtBlock",
|
|
136
|
+
"authorizationKind",
|
|
136
137
|
"authorizationChainId",
|
|
137
138
|
"filterHash",
|
|
138
139
|
"sourceHash",
|
|
@@ -145,6 +146,9 @@ function validateGrantEvidence(evidence, verified, atBlock) {
|
|
|
145
146
|
if (requiredFields.some((field) => !Object.hasOwn(evidence, field))) {
|
|
146
147
|
return reject("grant-view-invalid", ["enabled grant evidence requires own canonical fields"]);
|
|
147
148
|
}
|
|
149
|
+
if (evidence.authorizationKind !== "activated-subscription") {
|
|
150
|
+
return reject("grant-view-invalid", ["enabled authorization requires finalized subscription activation"]);
|
|
151
|
+
}
|
|
148
152
|
if (typeof evidence.id !== "string" || evidence.id.length === 0) {
|
|
149
153
|
return reject("grant-view-invalid", ["enabled grant evidence requires a non-empty id"]);
|
|
150
154
|
}
|
|
@@ -180,6 +184,7 @@ function validateReceipt(receipt, attempt) {
|
|
|
180
184
|
function snapshotGrantEvidence(evidence) {
|
|
181
185
|
return Object.freeze({
|
|
182
186
|
assertedAtBlock: evidence.assertedAtBlock,
|
|
187
|
+
authorizationKind: evidence.authorizationKind,
|
|
183
188
|
authorizationChainId: evidence.authorizationChainId,
|
|
184
189
|
sourceHash: evidence.sourceHash,
|
|
185
190
|
filterHash: evidence.filterHash,
|
|
@@ -1588,11 +1593,24 @@ function wakeKey(attempt) {
|
|
|
1588
1593
|
return JSON.stringify([attempt.audience, attempt.publisher, attempt.wakeId]);
|
|
1589
1594
|
}
|
|
1590
1595
|
|
|
1596
|
+
// src/staleWakeLeaseError.ts
|
|
1597
|
+
var StaleWakeLeaseError = class extends Error {
|
|
1598
|
+
code = "stale-wake-lease";
|
|
1599
|
+
name = "StaleWakeLeaseError";
|
|
1600
|
+
constructor(message = "Wake lease is no longer current") {
|
|
1601
|
+
super(message);
|
|
1602
|
+
}
|
|
1603
|
+
};
|
|
1604
|
+
|
|
1591
1605
|
// src/memoryWakeQueue.ts
|
|
1592
1606
|
function createMemoryWakeQueue() {
|
|
1593
1607
|
const pending = [];
|
|
1594
1608
|
const inflight = /* @__PURE__ */ new Map();
|
|
1595
1609
|
let sequence = 0;
|
|
1610
|
+
function restore(entry) {
|
|
1611
|
+
pending.push(entry);
|
|
1612
|
+
pending.sort((left, right) => left.sequence - right.sequence);
|
|
1613
|
+
}
|
|
1596
1614
|
return {
|
|
1597
1615
|
async append(wake) {
|
|
1598
1616
|
pending.push({ sequence: sequence += 1, wake });
|
|
@@ -1600,26 +1618,35 @@ function createMemoryWakeQueue() {
|
|
|
1600
1618
|
async claim() {
|
|
1601
1619
|
const entry = pending.shift();
|
|
1602
1620
|
if (entry === void 0) return void 0;
|
|
1603
|
-
|
|
1621
|
+
const token = /* @__PURE__ */ Symbol("wake-lease");
|
|
1622
|
+
let completed2;
|
|
1623
|
+
inflight.set(entry.sequence, { entry, token });
|
|
1624
|
+
const finish = (operation) => {
|
|
1625
|
+
if (completed2 === operation) return;
|
|
1626
|
+
if (completed2 !== void 0 || inflight.get(entry.sequence)?.token !== token) {
|
|
1627
|
+
throw new StaleWakeLeaseError();
|
|
1628
|
+
}
|
|
1629
|
+
inflight.delete(entry.sequence);
|
|
1630
|
+
if (operation === "release") restore(entry);
|
|
1631
|
+
completed2 = operation;
|
|
1632
|
+
};
|
|
1604
1633
|
return {
|
|
1605
1634
|
wake: entry.wake,
|
|
1606
1635
|
async ack() {
|
|
1607
|
-
|
|
1636
|
+
finish("ack");
|
|
1608
1637
|
},
|
|
1609
1638
|
async release() {
|
|
1610
|
-
|
|
1611
|
-
pending.push(entry);
|
|
1612
|
-
pending.sort((left, right) => left.sequence - right.sequence);
|
|
1639
|
+
finish("release");
|
|
1613
1640
|
}
|
|
1614
1641
|
};
|
|
1615
1642
|
},
|
|
1616
1643
|
inflightCount: async () => inflight.size,
|
|
1617
1644
|
pendingCount: async () => pending.length,
|
|
1618
|
-
async recoverInflight() {
|
|
1645
|
+
async recoverInflight(options) {
|
|
1646
|
+
if (options?.consumersStopped !== true) throw new TypeError("Recovery requires all consumers to be stopped");
|
|
1619
1647
|
const recovered = inflight.size;
|
|
1620
|
-
for (const entry of inflight.values())
|
|
1648
|
+
for (const { entry } of inflight.values()) restore(entry);
|
|
1621
1649
|
inflight.clear();
|
|
1622
|
-
pending.sort((left, right) => left.sequence - right.sequence);
|
|
1623
1650
|
return recovered;
|
|
1624
1651
|
}
|
|
1625
1652
|
};
|
|
@@ -2008,10 +2035,6 @@ async function resolveEvidence(viewer, claim, request, atBlock, revokedGrantHash
|
|
|
2008
2035
|
if (!grant.permissions.includes("enqueue")) return void 0;
|
|
2009
2036
|
return Object.freeze({
|
|
2010
2037
|
assertedAtBlock: claim.firstBlock,
|
|
2011
|
-
authorizationChainId: request.authorizationChainId,
|
|
2012
|
-
sourceHash: request.sourceHash,
|
|
2013
|
-
filterHash: request.filterHash,
|
|
2014
|
-
subscriptionHash: request.subscriptionHash,
|
|
2015
2038
|
controller: request.controller,
|
|
2016
2039
|
deploymentId: grant.deploymentId,
|
|
2017
2040
|
id: claim.firstEventHash,
|
|
@@ -2091,6 +2114,7 @@ function createStatementGraphWakeGrantAuthorizer(options) {
|
|
|
2091
2114
|
...decision,
|
|
2092
2115
|
grant: Object.freeze({
|
|
2093
2116
|
...decision.grant,
|
|
2117
|
+
authorizationKind: "activated-subscription",
|
|
2094
2118
|
authorizationChainId,
|
|
2095
2119
|
sourceHash,
|
|
2096
2120
|
filterHash: activation.filterHash,
|
|
@@ -2110,7 +2134,11 @@ async function drainQueue(queue, handler) {
|
|
|
2110
2134
|
try {
|
|
2111
2135
|
await handler(leased.wake);
|
|
2112
2136
|
} catch (error) {
|
|
2113
|
-
|
|
2137
|
+
try {
|
|
2138
|
+
await leased.release();
|
|
2139
|
+
} catch (releaseError) {
|
|
2140
|
+
throw new AggregateError([error, releaseError], "Wake handler and lease release both failed", { cause: releaseError });
|
|
2141
|
+
}
|
|
2114
2142
|
throw error;
|
|
2115
2143
|
}
|
|
2116
2144
|
await leased.ack();
|
|
@@ -2125,6 +2153,7 @@ export {
|
|
|
2125
2153
|
EVENT_KIT_MAX_JWT_LIFETIME_SECONDS,
|
|
2126
2154
|
EVENT_KIT_REPLAY_RETENTION_SKEW_SECONDS,
|
|
2127
2155
|
SourceWakeSubscriptionActivationZod,
|
|
2156
|
+
StaleWakeLeaseError,
|
|
2128
2157
|
WakeAdmissionRouteZod,
|
|
2129
2158
|
WakeSubscriptionDecryptionError,
|
|
2130
2159
|
admitAndEnqueue,
|