@caracalai/revocation 0.1.3-rc.1 → 0.1.4-rc.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.
- package/README.md +1 -0
- package/dist/iface.d.ts +2 -0
- package/dist/iface.d.ts.map +1 -1
- package/dist/inmem.d.ts +3 -0
- package/dist/inmem.d.ts.map +1 -1
- package/dist/inmem.js +20 -0
- package/dist/inmem.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,3 +4,4 @@ TypeScript revocation lookup interface and in-memory default for Caracal resourc
|
|
|
4
4
|
|
|
5
5
|
The in-memory store is process-local. Distributed production deployments should use a connector-backed store and fail closed when revocation cannot be checked or writes cannot be confirmed.
|
|
6
6
|
|
|
7
|
+
Docs: https://caracal.run/sdks/revocation/
|
package/dist/iface.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export interface RevocationStore {
|
|
2
2
|
isRevoked: (sid: string) => boolean | Promise<boolean>;
|
|
3
3
|
markRevoked: (sid: string, ttlMs?: number) => void | Promise<void>;
|
|
4
|
+
currentDelegationEpoch?: (zoneId: string) => number | Promise<number>;
|
|
5
|
+
markDelegationEpoch?: (zoneId: string, epoch: number, ttlMs?: number) => void | Promise<void>;
|
|
4
6
|
}
|
|
5
7
|
//# sourceMappingURL=iface.d.ts.map
|
package/dist/iface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../src/iface.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../src/iface.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACrE,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9F"}
|
package/dist/inmem.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RevocationStore } from './iface.js';
|
|
2
2
|
export declare class InMemoryRevocationStore implements RevocationStore {
|
|
3
3
|
private readonly entries;
|
|
4
|
+
private readonly delegationEpochs;
|
|
4
5
|
private readonly defaultTtlMs;
|
|
5
6
|
private readonly maxEntries;
|
|
6
7
|
constructor(opts?: {
|
|
@@ -9,6 +10,8 @@ export declare class InMemoryRevocationStore implements RevocationStore {
|
|
|
9
10
|
});
|
|
10
11
|
isRevoked(sid: string): boolean;
|
|
11
12
|
markRevoked(sid: string, ttlMs?: number): void;
|
|
13
|
+
currentDelegationEpoch(zoneId: string): number;
|
|
14
|
+
markDelegationEpoch(zoneId: string, epoch: number, ttlMs?: number): void;
|
|
12
15
|
size(): number;
|
|
13
16
|
private reapExpired;
|
|
14
17
|
}
|
package/dist/inmem.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inmem.d.ts","sourceRoot":"","sources":["../src/inmem.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMjD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEvB,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAKrE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAU/B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ9C,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,WAAW;CAOpB"}
|
|
1
|
+
{"version":3,"file":"inmem.d.ts","sourceRoot":"","sources":["../src/inmem.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMjD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+C;IAChF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEvB,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAKrE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAU/B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ9C,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAU9C,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IASxE,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,WAAW;CAOpB"}
|
package/dist/inmem.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// In-memory RevocationStore with per-entry TTLs and bounded capacity.
|
|
5
5
|
export class InMemoryRevocationStore {
|
|
6
6
|
entries = new Map();
|
|
7
|
+
delegationEpochs = new Map();
|
|
7
8
|
defaultTtlMs;
|
|
8
9
|
maxEntries;
|
|
9
10
|
constructor(opts = {}) {
|
|
@@ -28,6 +29,25 @@ export class InMemoryRevocationStore {
|
|
|
28
29
|
}
|
|
29
30
|
this.entries.set(sid, { expiresAt: Date.now() + (ttlMs ?? this.defaultTtlMs) });
|
|
30
31
|
}
|
|
32
|
+
currentDelegationEpoch(zoneId) {
|
|
33
|
+
const entry = this.delegationEpochs.get(zoneId);
|
|
34
|
+
if (!entry)
|
|
35
|
+
return 0;
|
|
36
|
+
if (entry.expiresAt <= Date.now()) {
|
|
37
|
+
this.delegationEpochs.delete(zoneId);
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
return entry.epoch;
|
|
41
|
+
}
|
|
42
|
+
markDelegationEpoch(zoneId, epoch, ttlMs) {
|
|
43
|
+
const current = this.currentDelegationEpoch(zoneId);
|
|
44
|
+
if (epoch <= current)
|
|
45
|
+
return;
|
|
46
|
+
this.delegationEpochs.set(zoneId, {
|
|
47
|
+
epoch,
|
|
48
|
+
expiresAt: Date.now() + (ttlMs ?? this.defaultTtlMs),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
31
51
|
size() {
|
|
32
52
|
return this.entries.size;
|
|
33
53
|
}
|
package/dist/inmem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inmem.js","sourceRoot":"","sources":["../src/inmem.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,qCAAqC;AACrC,EAAE;AACF,sEAAsE;AAQtE,MAAM,OAAO,uBAAuB;IACjB,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAA;IAClC,YAAY,CAAQ;IACpB,UAAU,CAAQ;IAEnC,YAAY,OAAuD,EAAE;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAA;IAC9C,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,KAAc;QACrC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAA;YAClB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACjG,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;IAEO,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;CAEF"}
|
|
1
|
+
{"version":3,"file":"inmem.js","sourceRoot":"","sources":["../src/inmem.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,qCAAqC;AACrC,EAAE;AACF,sEAAsE;AAQtE,MAAM,OAAO,uBAAuB;IACjB,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAA;IAClC,gBAAgB,GAAG,IAAI,GAAG,EAAqC,CAAA;IAC/D,YAAY,CAAQ;IACpB,UAAU,CAAQ;IAEnC,YAAY,OAAuD,EAAE;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAA;IAC9C,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,KAAc;QACrC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAA;YAClB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACjG,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,sBAAsB,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAA;QACpB,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACpC,OAAO,CAAC,CAAA;QACV,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,mBAAmB,CAAC,MAAc,EAAE,KAAa,EAAE,KAAc;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,KAAK,IAAI,OAAO;YAAE,OAAM;QAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE;YAChC,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;IAEO,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;CAEF"}
|
package/package.json
CHANGED