@phosra/gatekeeper 0.1.0 → 0.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/gatekeeper.d.ts.map +1 -1
- package/dist/gatekeeper.js +40 -1
- package/dist/gatekeeper.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +36 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +164 -0
- package/dist/testing.js.map +1 -0
- package/dist/trust-list-resolver.d.ts +14 -0
- package/dist/trust-list-resolver.d.ts.map +1 -0
- package/dist/trust-list-resolver.js +35 -0
- package/dist/trust-list-resolver.js.map +1 -0
- package/dist/types.d.ts +22 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
package/dist/gatekeeper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatekeeper.d.ts","sourceRoot":"","sources":["../src/gatekeeper.ts"],"names":[],"mappings":"AACA,OAAO,EAAuJ,KAAK,UAAU,EAAgC,MAAM,uBAAuB,CAAC;AAG3O,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEf,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AAsBpB,iCAAiC;AACjC,cAAM,uBAAuB;IAC3B,OAAO,CAAC,CAAC,CAAsC;IAC/C,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAGpD,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,IAAI;CAGlD;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIpC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGrC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAGtC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,uBAAuB,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB;8EAC0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;6CAEyC;IACzC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrC;AAOD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"gatekeeper.d.ts","sourceRoot":"","sources":["../src/gatekeeper.ts"],"names":[],"mappings":"AACA,OAAO,EAAuJ,KAAK,UAAU,EAAgC,MAAM,uBAAuB,CAAC;AAG3O,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEf,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AAsBpB,iCAAiC;AACjC,cAAM,uBAAuB;IAC3B,OAAO,CAAC,CAAC,CAAsC;IAC/C,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAGpD,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,IAAI;CAGlD;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIpC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGrC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAGtC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,uBAAuB,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB;8EAC0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;6CAEyC;IACzC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrC;AAOD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAgFrE"}
|
package/dist/gatekeeper.js
CHANGED
|
@@ -115,6 +115,10 @@ export function createGatekeeper(config) {
|
|
|
115
115
|
/* no timers in P2 */
|
|
116
116
|
},
|
|
117
117
|
_testInjectProfile: (profile) => {
|
|
118
|
+
// Re-stamp cachedAt in place rather than spreading — spreading would trigger
|
|
119
|
+
// accessor traps on "evil" test profiles (the whole-body guard test injects
|
|
120
|
+
// a profile whose `categories` getter throws to simulate corruption).
|
|
121
|
+
profile.cachedAt = rt.now();
|
|
118
122
|
rt.profileStore.put(profile.endpointId, profile);
|
|
119
123
|
rt.consentStore.markActive(profile.endpointId);
|
|
120
124
|
},
|
|
@@ -160,6 +164,7 @@ async function refreshProfile(rt, endpointId) {
|
|
|
160
164
|
profile_ref: doc.profile_ref,
|
|
161
165
|
window: doc.window,
|
|
162
166
|
categories: doc.categories,
|
|
167
|
+
cachedAt: rt.now(),
|
|
163
168
|
});
|
|
164
169
|
rt.consentStore.markActive(eid); // a router-verified in-window profile implies active consent at compile
|
|
165
170
|
}
|
|
@@ -168,18 +173,52 @@ async function refreshProfile(rt, endpointId) {
|
|
|
168
173
|
function parseParams(p) {
|
|
169
174
|
if (p == null)
|
|
170
175
|
return {};
|
|
171
|
-
|
|
176
|
+
if (typeof p !== "string")
|
|
177
|
+
return p;
|
|
178
|
+
try {
|
|
179
|
+
return JSON.parse(p);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// SAFETY (never-throw): a malformed params string returns {} so the caller's
|
|
183
|
+
// `max_allowed == null` branch fires → decision = "block" (fail-closed). An
|
|
184
|
+
// uncaught throw out of the synchronous isAllowed turns a partner's permissive
|
|
185
|
+
// catch into a fail-OPEN bypass — see the whole-body guard in isAllowed.
|
|
186
|
+
return {};
|
|
187
|
+
}
|
|
172
188
|
}
|
|
173
189
|
function failClosedVerdict(rt, category) {
|
|
174
190
|
return { decision: "block", failMode: "block", ruleSlug: category, ruleRef: null, confirm: async () => undefined };
|
|
175
191
|
}
|
|
176
192
|
function isAllowed(rt, args) {
|
|
193
|
+
// WHOLE-BODY SAFETY GUARD: isAllowed is the complete typed contract. Any throw
|
|
194
|
+
// inside the decision body (corruption, a future refactor, an unexpected shape)
|
|
195
|
+
// degrades to a fail-closed block. A partner catch can never be fail-open because
|
|
196
|
+
// there is nothing to catch.
|
|
197
|
+
try {
|
|
198
|
+
return isAllowedInner(rt, args);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// args may itself be null/undefined (a degenerate caller); optional-chain so the
|
|
202
|
+
// catch handler can NEVER throw a second error out of isAllowed — totality is absolute.
|
|
203
|
+
return failClosedVerdict(rt, args?.category);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
function isAllowedInner(rt, args) {
|
|
177
207
|
const eid = args.endpointId ?? defaultEid(rt);
|
|
178
208
|
const prof = rt.profileStore.get(eid);
|
|
179
209
|
if (!prof)
|
|
180
210
|
return failClosedVerdict(rt, args.category); // missing profile
|
|
181
211
|
if (!rt.consentStore.isActive(eid))
|
|
182
212
|
return failClosedVerdict(rt, args.category); // no active consent
|
|
213
|
+
// BOUNDED-STALENESS (stale-closed): an SDK-enforced freshness floor independent of
|
|
214
|
+
// the census window. A profile older than profileMaxAgeMs (default 60s) blocks, so a
|
|
215
|
+
// tightened rule cannot be served stale for the life of a long census window.
|
|
216
|
+
const maxAge = rt.cfg.profileMaxAgeMs ?? 60_000;
|
|
217
|
+
// Fail closed on a non-finite cachedAt too: a NaN comparison is false, which would
|
|
218
|
+
// silently SKIP the freshness floor (fail-open) if a future write path forgot to stamp.
|
|
219
|
+
if (!Number.isFinite(prof.cachedAt) || rt.now() - prof.cachedAt > maxAge) {
|
|
220
|
+
return failClosedVerdict(rt, args.category);
|
|
221
|
+
}
|
|
183
222
|
const _na = Date.parse(prof.window.not_after);
|
|
184
223
|
const _nb = Date.parse(prof.window.not_before);
|
|
185
224
|
if (!Number.isFinite(_na) || _na < rt.now() || !Number.isFinite(_nb) || _nb > rt.now())
|
package/dist/gatekeeper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatekeeper.js","sourceRoot":"","sources":["../src/gatekeeper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gatekeeper.js","sourceRoot":"","sources":["../src/gatekeeper.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { createGatekeeper } from "./gatekeeper.js";
|
|
2
2
|
export { contentAgeFor } from "./crosswalk.js";
|
|
3
3
|
export { RuleRefRequired, NoRatingMappingError, UnmappedRatingValueError, AssuranceLevelError, type RatingMapping, type GatekeeperConfig, type Verdict, type GatekeeperCategory, type VerifiedProfile, type Gatekeeper, type ReportParentChangeArgs, type ReportParentChangeResult, } from "./types.js";
|
|
4
|
+
export { TrustListCache } from "./trust-list-cache.js";
|
|
5
|
+
export { makePhosraTrustListResolver, type PhosraSandboxEnv } from "./trust-list-resolver.js";
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,4 +2,6 @@
|
|
|
2
2
|
export { createGatekeeper } from "./gatekeeper.js";
|
|
3
3
|
export { contentAgeFor } from "./crosswalk.js";
|
|
4
4
|
export { RuleRefRequired, NoRatingMappingError, UnmappedRatingValueError, AssuranceLevelError, } from "./types.js";
|
|
5
|
+
export { TrustListCache } from "./trust-list-cache.js";
|
|
6
|
+
export { makePhosraTrustListResolver } from "./trust-list-resolver.js";
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,GASpB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,GASpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAyB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type SenderKey } from "@openchildsafety/ocss";
|
|
2
|
+
import type { GatekeeperConfig, GatekeeperCategory } from "./types.js";
|
|
3
|
+
export interface SignedStack {
|
|
4
|
+
endpointId: string;
|
|
5
|
+
routerKeyId: string;
|
|
6
|
+
trustRootXB64Url: string;
|
|
7
|
+
/** Deterministic gatekeeper signing key (SenderKey) for the platform side. */
|
|
8
|
+
gatekeeperSigningKey: SenderKey;
|
|
9
|
+
/** Stubbed fetch: well-known -> trust list; /enforcement-profiles/{id} -> profile (404 for unknown). */
|
|
10
|
+
fetchImpl: typeof fetch;
|
|
11
|
+
config(overrides?: Partial<GatekeeperConfig>): GatekeeperConfig;
|
|
12
|
+
/**
|
|
13
|
+
* Re-seal the served profile with the given categories (and optional doc overrides).
|
|
14
|
+
* Also clears any active fault — restores healthy 200 serving.
|
|
15
|
+
*/
|
|
16
|
+
setProfile(categories: GatekeeperCategory[], docOverrides?: Record<string, unknown>): void;
|
|
17
|
+
/** Tamper the served profile signature (negative test). */
|
|
18
|
+
corruptProfileSig(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Fault: the profile endpoint returns 404 (simulated revocation / missing profile).
|
|
21
|
+
* refreshProfile() will throw (or not write a cache entry), so isAllowed → block.
|
|
22
|
+
*/
|
|
23
|
+
dropProfile(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Fault: the profile endpoint returns 500 (network/upstream failure).
|
|
26
|
+
* refreshProfile() will throw (or not write a cache entry), so isAllowed → block.
|
|
27
|
+
*/
|
|
28
|
+
simulateFetchError(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Fault: re-sign the served profile with a window.not_after in the past.
|
|
31
|
+
* The gatekeeper's window check rejects the expired profile → isAllowed → block.
|
|
32
|
+
*/
|
|
33
|
+
expireProfile(): void;
|
|
34
|
+
}
|
|
35
|
+
export declare function makeSignedStack(): SignedStack;
|
|
36
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAkBA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgBvE,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,oBAAoB,EAAE,SAAS,CAAC;IAChC,wGAAwG;IACxG,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;IAChE;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3F,2DAA2D;IAC3D,iBAAiB,IAAI,IAAI,CAAC;IAC1B;;;OAGG;IACH,WAAW,IAAI,IAAI,CAAC;IACpB;;;OAGG;IACH,kBAAkB,IAAI,IAAI,CAAC;IAC3B;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,wBAAgB,eAAe,IAAI,WAAW,CAwI7C"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @phosra/gatekeeper/testing — published in-process signed stack for unit tests.
|
|
3
|
+
*
|
|
4
|
+
* Exports `makeSignedStack()` which builds a real in-process Ed25519 root + signed
|
|
5
|
+
* trust-list + signed enforcement profile + a `fetchImpl` closure. Partners can
|
|
6
|
+
* unit-test `isAllowed` with NO network calls and prove the SDK's fail-closed contract
|
|
7
|
+
* via the three fault injectors:
|
|
8
|
+
*
|
|
9
|
+
* dropProfile() → 404 → no cache written → block
|
|
10
|
+
* simulateFetchError() → 500 → fetch failure → block
|
|
11
|
+
* expireProfile() → window in the past → block
|
|
12
|
+
*
|
|
13
|
+
* setProfile(categories) restores healthy 200 serving and clears any active fault.
|
|
14
|
+
*
|
|
15
|
+
* The base64/canon trap is hidden here — partners never touch the alphabet.
|
|
16
|
+
*/
|
|
17
|
+
import { generateKeyPairSync, sign as nodeSign } from "node:crypto";
|
|
18
|
+
import { marshal } from "@openchildsafety/ocss/canon";
|
|
19
|
+
import { b64urlRaw, SPEC_VERSION } from "@openchildsafety/ocss";
|
|
20
|
+
function genEd25519() {
|
|
21
|
+
const { publicKey, privateKey } = generateKeyPairSync("ed25519");
|
|
22
|
+
const xB64Url = publicKey.export({ format: "jwk" }).x; // base64url-raw
|
|
23
|
+
return { privateKey, xB64Url };
|
|
24
|
+
}
|
|
25
|
+
function signRaw(privateKey, msg) {
|
|
26
|
+
return b64urlRaw(new Uint8Array(nodeSign(null, Buffer.from(msg, "utf-8"), privateKey)));
|
|
27
|
+
}
|
|
28
|
+
const ROUTER_DID = "did:ocss:phosra-router";
|
|
29
|
+
const ROUTER_KID = "router-sandbox-2026-06";
|
|
30
|
+
const ROUTER_KEY_ID = `${ROUTER_DID}#${ROUTER_KID}`;
|
|
31
|
+
const ENDPOINT_ID = "endpoint-test-mia";
|
|
32
|
+
export function makeSignedStack() {
|
|
33
|
+
const root = genEd25519();
|
|
34
|
+
const router = genEd25519();
|
|
35
|
+
// SignedDocument.document MUST be a string (not Uint8Array): verifyDocument throws
|
|
36
|
+
// "nil or malformed signed document" when typeof document !== "string", and
|
|
37
|
+
// JSON.stringify(Uint8Array) emits a numeric-keyed object that survives res.json()
|
|
38
|
+
// as an object (never back to Uint8Array). Decode the canon bytes to a UTF-8 string
|
|
39
|
+
// once here; the sign step takes Buffer.from(canon, "utf-8") which round-trips identically.
|
|
40
|
+
const enc = (o) => new TextDecoder().decode(marshal(o));
|
|
41
|
+
const trustListDoc = {
|
|
42
|
+
document_type: "trust_list_issue",
|
|
43
|
+
schema_version: 1,
|
|
44
|
+
ocss_version: SPEC_VERSION,
|
|
45
|
+
issue: {
|
|
46
|
+
number: 1,
|
|
47
|
+
issued_at: "2026-06-26T00:00:00Z",
|
|
48
|
+
prev_issue_digest: "0".repeat(64),
|
|
49
|
+
},
|
|
50
|
+
entries: [
|
|
51
|
+
{
|
|
52
|
+
entity: "Phosra Router",
|
|
53
|
+
did: ROUTER_DID,
|
|
54
|
+
tier: "accredited",
|
|
55
|
+
jurisdiction: ["US"],
|
|
56
|
+
status: "active",
|
|
57
|
+
valid_through: "2030-01-01T00:00:00Z",
|
|
58
|
+
jwks: { signing_keys: [{ kty: "OKP", crv: "Ed25519", x: router.xB64Url, kid: ROUTER_KID }] },
|
|
59
|
+
clock_skew_tolerance_sec: 30,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
federation_health: { band: "green", accredited_count: 1, reasons: [] },
|
|
63
|
+
};
|
|
64
|
+
const trustListCanon = enc(trustListDoc);
|
|
65
|
+
const signedTrustList = {
|
|
66
|
+
document: trustListCanon,
|
|
67
|
+
key_id: "root#root-test",
|
|
68
|
+
alg: "ed25519",
|
|
69
|
+
sig: signRaw(root.privateKey, trustListCanon),
|
|
70
|
+
};
|
|
71
|
+
let profileMode = "ok";
|
|
72
|
+
function buildProfile(categories, docOverrides) {
|
|
73
|
+
const doc = {
|
|
74
|
+
document_type: "enforcement_profile",
|
|
75
|
+
ocss_version: SPEC_VERSION,
|
|
76
|
+
profile_ref: "sha256:" + "0".repeat(64),
|
|
77
|
+
window: { not_before: "2026-06-26T00:00:00Z", not_after: "2030-01-01T00:00:00Z" },
|
|
78
|
+
categories,
|
|
79
|
+
rotation_epoch: 1,
|
|
80
|
+
token_binding: "0".repeat(64),
|
|
81
|
+
...docOverrides,
|
|
82
|
+
};
|
|
83
|
+
const canon = enc(doc);
|
|
84
|
+
return { document: canon, key_id: ROUTER_KEY_ID, alg: "ed25519", sig: signRaw(router.privateKey, canon) };
|
|
85
|
+
}
|
|
86
|
+
let servedCategories = [
|
|
87
|
+
{
|
|
88
|
+
category: "content_rating",
|
|
89
|
+
decision: "allow",
|
|
90
|
+
fail_mode: "closed",
|
|
91
|
+
rule_slug: "content_rating",
|
|
92
|
+
params: { family: "numeric_threshold", scale: "ratings_age", max_allowed: 13 },
|
|
93
|
+
rule_ref: "rr-mia-content_rating",
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
let servedDocOverrides;
|
|
97
|
+
let servedProfile = buildProfile(servedCategories, servedDocOverrides);
|
|
98
|
+
const fetchImpl = async (input) => {
|
|
99
|
+
const url = String(input);
|
|
100
|
+
if (url.endsWith("/.well-known/ocss/trust-list")) {
|
|
101
|
+
return new Response(JSON.stringify(signedTrustList), { status: 200 });
|
|
102
|
+
}
|
|
103
|
+
if (url.includes(`/api/v1/enforcement-profiles/${ENDPOINT_ID}`)) {
|
|
104
|
+
if (profileMode === "drop")
|
|
105
|
+
return new Response("not found", { status: 404 });
|
|
106
|
+
if (profileMode === "error")
|
|
107
|
+
return new Response("upstream error", { status: 500 });
|
|
108
|
+
return new Response(JSON.stringify(servedProfile), { status: 200 });
|
|
109
|
+
}
|
|
110
|
+
if (url.includes("/api/v1/enforcement-profiles/")) {
|
|
111
|
+
return new Response("not found", { status: 404 }); // §9.3(b) wrong/unknown resolver
|
|
112
|
+
}
|
|
113
|
+
return new Response("no route", { status: 500 });
|
|
114
|
+
};
|
|
115
|
+
function seedFor(slug) {
|
|
116
|
+
const out = new Uint8Array(32).fill(0x01);
|
|
117
|
+
out.set(new TextEncoder().encode(slug).subarray(0, 32), 0);
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
endpointId: ENDPOINT_ID,
|
|
122
|
+
routerKeyId: ROUTER_KEY_ID,
|
|
123
|
+
trustRootXB64Url: root.xB64Url,
|
|
124
|
+
gatekeeperSigningKey: { seed: seedFor("notflix"), keyID: "did:ocss:notflix#notflix-2026-06" },
|
|
125
|
+
fetchImpl,
|
|
126
|
+
config(overrides) {
|
|
127
|
+
return {
|
|
128
|
+
platformDid: "did:ocss:notflix",
|
|
129
|
+
platformKeyId: "notflix-2026-06",
|
|
130
|
+
gatekeeperSigningKey: { seed: seedFor("notflix"), keyID: "did:ocss:notflix#notflix-2026-06" },
|
|
131
|
+
censusBaseUrl: "https://census.example",
|
|
132
|
+
trustRootXB64Url: root.xB64Url,
|
|
133
|
+
endpointId: ENDPOINT_ID,
|
|
134
|
+
ratingMappings: [{ ocssCategory: "content_rating", myField: "maturity", vocabulary: "mpaa" }],
|
|
135
|
+
fetchImpl,
|
|
136
|
+
now: () => Date.parse("2027-01-01T00:00:00Z"),
|
|
137
|
+
...overrides,
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
setProfile(categories, docOverrides) {
|
|
141
|
+
profileMode = "ok"; // a fresh good profile clears any prior fault
|
|
142
|
+
servedCategories = categories;
|
|
143
|
+
servedDocOverrides = docOverrides;
|
|
144
|
+
servedProfile = buildProfile(categories, docOverrides);
|
|
145
|
+
},
|
|
146
|
+
corruptProfileSig() {
|
|
147
|
+
servedProfile = { ...servedProfile, sig: b64urlRaw(new Uint8Array(64)) };
|
|
148
|
+
},
|
|
149
|
+
dropProfile() {
|
|
150
|
+
profileMode = "drop";
|
|
151
|
+
},
|
|
152
|
+
simulateFetchError() {
|
|
153
|
+
profileMode = "error";
|
|
154
|
+
},
|
|
155
|
+
expireProfile() {
|
|
156
|
+
profileMode = "ok";
|
|
157
|
+
servedProfile = buildProfile(servedCategories, {
|
|
158
|
+
...servedDocOverrides,
|
|
159
|
+
window: { not_before: "2019-01-01T00:00:00Z", not_after: "2020-01-01T00:00:00Z" },
|
|
160
|
+
});
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TrustListCache } from "./trust-list-cache.js";
|
|
2
|
+
/** Hosted Phosra sandbox environments with bundled OCSS roots. */
|
|
3
|
+
export type PhosraSandboxEnv = "sandbox-staging" | "sandbox-production";
|
|
4
|
+
/**
|
|
5
|
+
* Build a TrustListCache wired to a hosted Phosra sandbox: bundles the census base
|
|
6
|
+
* URL and the verify-to-root public key so partners never source the root by hand
|
|
7
|
+
* (the #1 trust-root wiring pitfall). Verifies the Trust List to root on refresh()
|
|
8
|
+
* exactly like the manual path — no weakening of verify-to-root.
|
|
9
|
+
*/
|
|
10
|
+
export declare function makePhosraTrustListResolver(env: PhosraSandboxEnv, opts?: {
|
|
11
|
+
fetchImpl?: typeof fetch;
|
|
12
|
+
now?: () => number;
|
|
13
|
+
}): TrustListCache;
|
|
14
|
+
//# sourceMappingURL=trust-list-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-list-resolver.d.ts","sourceRoot":"","sources":["../src/trust-list-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAkBxE;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,gBAAgB,EACrB,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAE,GACtD,cAAc,CAahB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TrustListCache } from "./trust-list-cache.js";
|
|
2
|
+
/**
|
|
3
|
+
* Bundled hosted-sandbox census base URLs + their OCSS Trust-List ROOT public X
|
|
4
|
+
* (base64url-raw, `-_` unpadded — PUBLIC key material, safe to embed). These match
|
|
5
|
+
* the live `root-sandbox-2026-06` root key_id served at /.well-known/ocss/trust-list.
|
|
6
|
+
*/
|
|
7
|
+
const ENVS = {
|
|
8
|
+
"sandbox-staging": {
|
|
9
|
+
baseUrl: "https://phosra-api-sandbox-staging.up.railway.app",
|
|
10
|
+
trustRootXB64Url: "jDWZfB70DM8B3ZnPG8FQ0tnanqLgwJX4ZMr_E1Ugv3w",
|
|
11
|
+
},
|
|
12
|
+
"sandbox-production": {
|
|
13
|
+
baseUrl: "https://phosra-api-sandbox-production.up.railway.app",
|
|
14
|
+
trustRootXB64Url: "CMHWy3vUAiEcYDdE_bDvkRuEqwxkklS0tV-TYHJTlWU",
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Build a TrustListCache wired to a hosted Phosra sandbox: bundles the census base
|
|
19
|
+
* URL and the verify-to-root public key so partners never source the root by hand
|
|
20
|
+
* (the #1 trust-root wiring pitfall). Verifies the Trust List to root on refresh()
|
|
21
|
+
* exactly like the manual path — no weakening of verify-to-root.
|
|
22
|
+
*/
|
|
23
|
+
export function makePhosraTrustListResolver(env, opts) {
|
|
24
|
+
const cfg = ENVS[env];
|
|
25
|
+
if (!cfg) {
|
|
26
|
+
throw new Error(`@phosra/gatekeeper: unknown env "${env}" — expected one of ${Object.keys(ENVS).join(", ")}`);
|
|
27
|
+
}
|
|
28
|
+
return new TrustListCache({
|
|
29
|
+
fetchImpl: opts?.fetchImpl ?? fetch,
|
|
30
|
+
baseUrl: cfg.baseUrl,
|
|
31
|
+
trustRootXB64Url: cfg.trustRootXB64Url,
|
|
32
|
+
now: opts?.now ?? (() => Date.now()),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=trust-list-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-list-resolver.js","sourceRoot":"","sources":["../src/trust-list-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD;;;;GAIG;AACH,MAAM,IAAI,GAA4E;IACpF,iBAAiB,EAAE;QACjB,OAAO,EAAE,mDAAmD;QAC5D,gBAAgB,EAAE,6CAA6C;KAChE;IACD,oBAAoB,EAAE;QACpB,OAAO,EAAE,sDAAsD;QAC/D,gBAAgB,EAAE,6CAA6C;KAChE;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAqB,EACrB,IAAuD;IAEvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,oCAAoC,GAAG,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,cAAc,CAAC;QACxB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,KAAK;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -16,13 +16,28 @@ export interface GatekeeperConfig {
|
|
|
16
16
|
* router-signed, not sealed to this key). NEVER shared. */
|
|
17
17
|
platformPayloadKeyJwk?: JWK;
|
|
18
18
|
censusBaseUrl: string;
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Ed25519 root X (base64url-raw, `-_` unpadded, NO `=` padding); verifies the
|
|
21
|
+
* Trust List to root. NOTE: this is a DIFFERENT alphabet from the request
|
|
22
|
+
* `Signature`/`Content-Digest` headers (those are std-base64 `+/` padded, and are
|
|
23
|
+
* produced internally by signRequest — you never supply them). Supplying a padded
|
|
24
|
+
* or std-base64 root here yields an opaque "root signature invalid". Prefer
|
|
25
|
+
* makePhosraTrustListResolver(env) which bundles the correct root for you.
|
|
26
|
+
*/
|
|
20
27
|
trustRootXB64Url: string;
|
|
21
28
|
/** High-entropy §9.3(b) bound-resolver label; presenting it IS authentication. */
|
|
22
29
|
endpointId: string;
|
|
23
30
|
ratingMappings: RatingMapping[];
|
|
24
31
|
tlRefreshIntervalMs?: number;
|
|
25
32
|
pollIntervalMs?: number;
|
|
33
|
+
/**
|
|
34
|
+
* SDK-enforced bounded-staleness floor in milliseconds (default 60_000 = 60s).
|
|
35
|
+
* A cached enforcement profile older than this is treated as stale and produces a
|
|
36
|
+
* fail-closed block, INDEPENDENT of (and tighter than) the census-signed
|
|
37
|
+
* `window.not_after`. This guarantees a tightened rule propagates within the floor
|
|
38
|
+
* even if the census issued a long window. Set lower for stricter freshness.
|
|
39
|
+
*/
|
|
40
|
+
profileMaxAgeMs?: number;
|
|
26
41
|
/** Injectable for tests/non-default runtimes. */
|
|
27
42
|
fetchImpl?: typeof fetch;
|
|
28
43
|
now?: () => number;
|
|
@@ -131,6 +146,12 @@ export interface VerifiedProfile {
|
|
|
131
146
|
not_after: string;
|
|
132
147
|
};
|
|
133
148
|
categories: GatekeeperCategory[];
|
|
149
|
+
/**
|
|
150
|
+
* Epoch-ms timestamp set by the SDK at cache-write time (refreshProfile). NOT
|
|
151
|
+
* caller-trusted — _testInjectProfile re-stamps it. Drives the bounded-staleness
|
|
152
|
+
* floor in isAllowed (profileMaxAgeMs).
|
|
153
|
+
*/
|
|
154
|
+
cachedAt: number;
|
|
134
155
|
}
|
|
135
156
|
export interface Gatekeeper {
|
|
136
157
|
refreshTrustList(): Promise<void>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAClE,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,oBAAoB,EAAE,SAAS,CAAC;IAChC;;gEAE4D;IAC5D,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAClE,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,oBAAoB,EAAE,SAAS,CAAC;IAChC;;gEAE4D;IAC5D,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CACtF;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBzD,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlD,CAAC;AAEX;gGACgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IACnE,SAAS,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC;IACtG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAChE;;;;;;;;;;;;;OAaG;IACH,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EACzC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAChC;;;sFAGkF;IAClF,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C;;;wFAGoF;IACpF,kBAAkB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtF,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;;CAKzC;AAED,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,gBAAgB,GAAG,aAAa,CAAC;CAC/C;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,CAAC;AAEzB,0FAA0F;AAC1F,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,QAAQ,EAAE,MAAM;CAI7B;AAED;;;sEAGsE;AACtE,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAIpD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,QAAQ,EAAE,MAAM;CAU7B"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA6FA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,oEAAoE;IACpE,eAAe,EAAgB,CAAC;IAChC,QAAQ,EAAuB,CAAC;IAChC,yBAAyB,EAAM,CAAC;IAChC,oBAAoB,EAAW,CAAC;IAChC,oBAAoB,EAAW,CAAC;IAChC,oBAAoB,EAAW,CAAC;IAChC,wBAAwB,EAAO,CAAC;IAChC,wBAAwB,EAAO,CAAC;IAChC,4BAA4B,EAAG,CAAC;IAChC,oEAAoE;IACpE,yEAAyE;IACzE,4EAA4E;IAC5E,kEAAkE;IAClE,sBAAsB,EAAW,CAAC;IAClC,+BAA+B,EAAE,CAAC;CAC1B,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAC7D,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,0DAA0D,CAAC;KAC1F,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqC;IAC9D,aAAa,EAAO,CAAC;IACrB,iBAAiB,EAAG,CAAC;IACrB,SAAS,EAAW,CAAC;IACrB,iBAAiB,EAAG,CAAC;IACrB,kBAAkB,EAAE,CAAC;CACb,CAAC;AAsEX,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC;QACE,KAAK,CAAC,iGAAiG,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAeD,0FAA0F;AAC1F,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,QAAgB;QAC1B,KAAK,CAAC,8CAA8C,QAAQ,qEAAqE,CAAC,CAAC;QACnI,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;sEAGsE;AACtE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,UAAkB,EAAE,WAAmB;QACjD,KAAK,CAAC,wBAAwB,WAAW,gDAAgD,UAAU,iEAAiE,CAAC,CAAC;QACtK,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,QAAgB;QAC1B,KAAK,CACH,8BAA8B,QAAQ,oCAAoC;YAC1E,sFAAsF;YACtF,uDAAuD;YACvD,+EAA+E;YAC/E,uCAAuC,CACxC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phosra/gatekeeper",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" },
|
|
10
|
-
"./protocol": { "import": "./dist/protocol.js", "types": "./dist/protocol.d.ts" }
|
|
10
|
+
"./protocol": { "import": "./dist/protocol.js", "types": "./dist/protocol.d.ts" },
|
|
11
|
+
"./testing": { "import": "./dist/testing.js", "types": "./dist/testing.d.ts" }
|
|
11
12
|
},
|
|
12
13
|
"files": ["dist", "README.md"],
|
|
13
14
|
"publishConfig": {
|