@certrev/cert-block 2.0.1 → 2.0.2
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/CHANGELOG.md +42 -0
- package/README.md +6 -3
- package/dist/builder/cert-review-card.d.ts +2 -0
- package/dist/builder/cert-review-card.d.ts.map +1 -1
- package/dist/builder/cert-review-card.js +95 -10
- package/dist/builder/cert-review-card.js.map +1 -1
- package/dist/builder/delivery-runtime.d.ts +25 -1
- package/dist/builder/delivery-runtime.d.ts.map +1 -1
- package/dist/builder/delivery-runtime.js +26 -1
- package/dist/builder/delivery-runtime.js.map +1 -1
- package/dist/builder/version.d.ts +1 -1
- package/dist/builder/version.js +1 -1
- package/dist/verify/cache.d.ts +24 -0
- package/dist/verify/cache.d.ts.map +1 -1
- package/dist/verify/cache.js +78 -6
- package/dist/verify/cache.js.map +1 -1
- package/dist/verify/get-verified-delivery.d.ts +14 -0
- package/dist/verify/get-verified-delivery.d.ts.map +1 -1
- package/dist/verify/get-verified-delivery.js +21 -0
- package/dist/verify/get-verified-delivery.js.map +1 -1
- package/package.json +1 -1
- package/src/builder/cert-review-card.tsx +108 -8
- package/src/builder/delivery-runtime.ts +28 -1
- package/src/builder/version.ts +1 -1
- package/src/verify/cache.ts +78 -6
- package/src/verify/get-verified-delivery.ts +27 -0
package/dist/verify/cache.js
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
* down costs the page nothing it already had. A definitive answer (a revocation, say)
|
|
19
19
|
* replaces the entry the moment the refresh lands. With the default `staleMs` of 0 an
|
|
20
20
|
* expired entry is gone, exactly as before 1.2.0.
|
|
21
|
+
* 5. (2.0.2, opt-in through `failureTtlMs`) FAILURE MEMORY: a transient result (`isTransient`: the origin was not
|
|
22
|
+
* reached) is remembered in a slot of its own for `failureTtlMs`, beside a positive entry and never over it. While
|
|
23
|
+
* it is remembered nothing loads for the key: a read with no servable entry gets the failure at once, and a stale
|
|
24
|
+
* entry is served without starting a refresh. A definitive answer clears it. So an ongoing outage costs a caller at
|
|
25
|
+
* most one load per key per failure window. `markFailed` lets a caller that stopped waiting (a render deadline)
|
|
26
|
+
* remember one before the load itself settles. Without `failureTtlMs` the cache behaves exactly as 2.0.1's.
|
|
21
27
|
*
|
|
22
28
|
* It is deliberately tiny + dependency-free (a Map + timestamps) so it runs in any server
|
|
23
29
|
* runtime (Node, edge, workerd). For multi-instance deployments this is per-instance L1 and
|
|
@@ -27,11 +33,13 @@
|
|
|
27
33
|
export class TtlCache {
|
|
28
34
|
store = new Map();
|
|
29
35
|
inflight = new Map();
|
|
36
|
+
failures = new Map();
|
|
30
37
|
ttlMs;
|
|
31
38
|
negativeTtlMs;
|
|
32
39
|
maxEntries;
|
|
33
40
|
staleMs;
|
|
34
41
|
inflightMaxMs;
|
|
42
|
+
failureTtlMs;
|
|
35
43
|
now;
|
|
36
44
|
constructor(opts = {}) {
|
|
37
45
|
this.ttlMs = opts.ttlMs ?? 60_000;
|
|
@@ -39,6 +47,7 @@ export class TtlCache {
|
|
|
39
47
|
this.maxEntries = opts.maxEntries ?? 1000;
|
|
40
48
|
this.staleMs = opts.staleMs !== undefined && opts.staleMs > 0 ? opts.staleMs : 0;
|
|
41
49
|
this.inflightMaxMs = opts.inflightMaxMs ?? Number.POSITIVE_INFINITY;
|
|
50
|
+
this.failureTtlMs = opts.failureTtlMs !== undefined && opts.failureTtlMs > 0 ? opts.failureTtlMs : 0;
|
|
42
51
|
this.now = opts.now ?? Date.now;
|
|
43
52
|
}
|
|
44
53
|
/** The entry while it may still be served (fresh, or positive and inside the stale window); prunes it past that. */
|
|
@@ -54,10 +63,22 @@ export class TtlCache {
|
|
|
54
63
|
this.store.delete(key);
|
|
55
64
|
return undefined;
|
|
56
65
|
}
|
|
66
|
+
/** 2.0.2: the remembered failure while it lasts (only with `failureTtlMs`); prunes it past that. */
|
|
67
|
+
failure(key) {
|
|
68
|
+
const f = this.failures.get(key);
|
|
69
|
+
if (!f)
|
|
70
|
+
return undefined;
|
|
71
|
+
if (f.until > this.now())
|
|
72
|
+
return f;
|
|
73
|
+
this.failures.delete(key);
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
57
76
|
/** Read a live (non-expired) entry, or undefined. Never serves a stale one; prunes an entry past its stale window. */
|
|
58
77
|
peek(key) {
|
|
59
78
|
const e = this.servable(key);
|
|
60
|
-
|
|
79
|
+
if (e && e.expiresAt > this.now())
|
|
80
|
+
return e.value;
|
|
81
|
+
return this.failure(key)?.value;
|
|
61
82
|
}
|
|
62
83
|
/**
|
|
63
84
|
* The synchronous stale-while-revalidate read: a fresh value; or a positive entry past its TTL but inside the stale
|
|
@@ -67,9 +88,11 @@ export class TtlCache {
|
|
|
67
88
|
*/
|
|
68
89
|
peekOrRefresh(key, loader, isNegative, positiveTtlMs, isTransient) {
|
|
69
90
|
const e = this.servable(key);
|
|
91
|
+
const failed = this.failure(key);
|
|
70
92
|
if (!e)
|
|
71
|
-
return
|
|
72
|
-
|
|
93
|
+
return failed?.value;
|
|
94
|
+
// 2.0.2: no refresh while a failure is remembered; the stale value is still served.
|
|
95
|
+
if (e.expiresAt <= this.now() && !failed) {
|
|
73
96
|
this.load(key, loader, isNegative, positiveTtlMs, isTransient).catch(() => undefined);
|
|
74
97
|
}
|
|
75
98
|
return e.value;
|
|
@@ -104,9 +127,22 @@ export class TtlCache {
|
|
|
104
127
|
const existing = this.inflight.get(key);
|
|
105
128
|
if (existing && this.now() - existing.startedAt < this.inflightMaxMs)
|
|
106
129
|
return existing.promise;
|
|
130
|
+
const token = {};
|
|
107
131
|
const promise = (async () => {
|
|
108
132
|
const value = await loader();
|
|
109
|
-
|
|
133
|
+
// 2.0.2: a load that was replaced (abandoned past `inflightMaxMs`) never writes: its answer may be older than
|
|
134
|
+
// the replacement's, and a late verified read must never overwrite a newer revocation.
|
|
135
|
+
if (this.inflight.get(key)?.token !== token)
|
|
136
|
+
return value;
|
|
137
|
+
if (this.failureTtlMs > 0) {
|
|
138
|
+
if (isTransient?.(value)) {
|
|
139
|
+
this.markFailed(key, value);
|
|
140
|
+
const kept = this.servable(key);
|
|
141
|
+
return kept && !kept.negative ? kept.value : value;
|
|
142
|
+
}
|
|
143
|
+
this.failures.delete(key);
|
|
144
|
+
}
|
|
145
|
+
else if (isTransient?.(value)) {
|
|
110
146
|
const kept = this.servable(key);
|
|
111
147
|
if (kept && !kept.negative)
|
|
112
148
|
return kept.value;
|
|
@@ -116,10 +152,10 @@ export class TtlCache {
|
|
|
116
152
|
return value;
|
|
117
153
|
})().finally(() => {
|
|
118
154
|
// Only this load's own slot: a newer load that replaced an abandoned one keeps its place.
|
|
119
|
-
if (this.inflight.get(key)?.
|
|
155
|
+
if (this.inflight.get(key)?.token === token)
|
|
120
156
|
this.inflight.delete(key);
|
|
121
157
|
});
|
|
122
|
-
this.inflight.set(key, { promise, startedAt: this.now() });
|
|
158
|
+
this.inflight.set(key, { promise, startedAt: this.now(), token });
|
|
123
159
|
return promise;
|
|
124
160
|
}
|
|
125
161
|
/** Insert/overwrite an entry. `ttlMsOverride` replaces the TTL this write would otherwise
|
|
@@ -135,9 +171,40 @@ export class TtlCache {
|
|
|
135
171
|
const ttl = ttlMsOverride !== undefined && Number.isFinite(ttlMsOverride) ? ttlMsOverride : configured;
|
|
136
172
|
this.store.set(key, { value, expiresAt: this.now() + ttl, negative });
|
|
137
173
|
}
|
|
174
|
+
/** 2.0.2: whether a load for `key` is running (and still joinable, younger than `inflightMaxMs`). */
|
|
175
|
+
loading(key) {
|
|
176
|
+
const existing = this.inflight.get(key);
|
|
177
|
+
return existing !== undefined && this.now() - existing.startedAt < this.inflightMaxMs;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* 2.0.2: remember a transient failure for `key` for `failureTtlMs` from now (a caller that stopped waiting for a load, or
|
|
181
|
+
* a load that settled on one), beside the key's entry: it never touches a positive entry. Without `failureTtlMs` it is
|
|
182
|
+
* a negative entry for the negative TTL, as a transient result was before 2.0.2, and like any `set` it replaces the
|
|
183
|
+
* key's entry.
|
|
184
|
+
*/
|
|
185
|
+
markFailed(key, value) {
|
|
186
|
+
if (this.failureTtlMs <= 0) {
|
|
187
|
+
this.set(key, value, true);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
// Bounded like the store (break-it B3): past `maxEntries`, drop the expired failures, then the oldest.
|
|
191
|
+
if (this.failures.size >= this.maxEntries && !this.failures.has(key)) {
|
|
192
|
+
const now = this.now();
|
|
193
|
+
for (const [k, f] of this.failures)
|
|
194
|
+
if (f.until <= now)
|
|
195
|
+
this.failures.delete(k);
|
|
196
|
+
if (this.failures.size >= this.maxEntries) {
|
|
197
|
+
const oldest = this.failures.keys().next().value;
|
|
198
|
+
if (oldest !== undefined)
|
|
199
|
+
this.failures.delete(oldest);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
this.failures.set(key, { value, until: this.now() + this.failureTtlMs });
|
|
203
|
+
}
|
|
138
204
|
/** Drop a key (e.g. on a known revocation push). */
|
|
139
205
|
delete(key) {
|
|
140
206
|
this.store.delete(key);
|
|
207
|
+
this.failures.delete(key);
|
|
141
208
|
}
|
|
142
209
|
/**
|
|
143
210
|
* Drop every key under a prefix. WHY it exists: a cache key identifies everything the
|
|
@@ -151,10 +218,15 @@ export class TtlCache {
|
|
|
151
218
|
if (key.startsWith(prefix))
|
|
152
219
|
this.store.delete(key);
|
|
153
220
|
}
|
|
221
|
+
for (const key of this.failures.keys()) {
|
|
222
|
+
if (key.startsWith(prefix))
|
|
223
|
+
this.failures.delete(key);
|
|
224
|
+
}
|
|
154
225
|
}
|
|
155
226
|
clear() {
|
|
156
227
|
this.store.clear();
|
|
157
228
|
this.inflight.clear();
|
|
229
|
+
this.failures.clear();
|
|
158
230
|
}
|
|
159
231
|
get size() {
|
|
160
232
|
return this.store.size;
|
package/dist/verify/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/verify/cache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/verify/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -208,6 +208,20 @@ export declare function readVerifiedDelivery(opts: GetVerifiedDeliveryOptions):
|
|
|
208
208
|
* caller then awaits `getVerifiedDelivery`). Never fetches.
|
|
209
209
|
*/
|
|
210
210
|
export declare function peekVerifiedDelivery(opts: Pick<GetVerifiedDeliveryOptions, 'baseUrl' | 'platform' | 'externalId' | 'context' | 'cache' | 'design'>): VerifiedDelivery | undefined;
|
|
211
|
+
/**
|
|
212
|
+
* 2.0.2: the settled answer for "CertREV was not reached in time": what a server render prints when it stops waiting
|
|
213
|
+
* (its deadline passed, or another request's read of the placement is in flight). Nothing, reported as
|
|
214
|
+
* `delivery_unreachable`, exactly as for a read that failed.
|
|
215
|
+
*/
|
|
216
|
+
export declare function unreachableDelivery(): VerifiedDelivery;
|
|
217
|
+
/**
|
|
218
|
+
* 2.0.2: remember that a read of one placement did not reach CertREV in time (a render stopped waiting for it), so the
|
|
219
|
+
* cache answers the placement at once for its failure window. A no-op on a cache with no failure window beyond 2.0.1's
|
|
220
|
+
* negative entry. Never touches a verified entry.
|
|
221
|
+
*/
|
|
222
|
+
export declare function rememberDeliveryUnreachable(opts: Pick<GetVerifiedDeliveryOptions, 'baseUrl' | 'platform' | 'externalId' | 'context' | 'cache' | 'design'>): void;
|
|
223
|
+
/** 2.0.2: whether a read of one placement is already running in `cache` (a render's, or a background refresh). */
|
|
224
|
+
export declare function deliveryLoading(opts: Pick<GetVerifiedDeliveryOptions, 'baseUrl' | 'platform' | 'externalId' | 'context' | 'cache' | 'design'>): boolean;
|
|
211
225
|
/** Drop the cached read for one placement (e.g. from a revocation webhook); with `design`, that pinned read. */
|
|
212
226
|
export declare function invalidateDelivery(opts: Pick<GetVerifiedDeliveryOptions, 'baseUrl' | 'platform' | 'externalId' | 'context' | 'design'>, cache?: TtlCache<CachedDelivery>): void;
|
|
213
227
|
export { sharedDeliveryCache };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-verified-delivery.d.ts","sourceRoot":"","sources":["../../src/verify/get-verified-delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-verified-delivery.d.ts","sourceRoot":"","sources":["../../src/verify/get-verified-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -295,6 +295,27 @@ export function peekVerifiedDelivery(opts) {
|
|
|
295
295
|
const cached = (opts.cache ?? sharedDeliveryCache).peek(deliveryCacheKey(opts));
|
|
296
296
|
return cached === undefined ? undefined : settleDelivery(cached, opts.context);
|
|
297
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* 2.0.2: the settled answer for "CertREV was not reached in time": what a server render prints when it stops waiting
|
|
300
|
+
* (its deadline passed, or another request's read of the placement is in flight). Nothing, reported as
|
|
301
|
+
* `delivery_unreachable`, exactly as for a read that failed.
|
|
302
|
+
*/
|
|
303
|
+
export function unreachableDelivery() {
|
|
304
|
+
return settleDelivery(unreachable(), { platform: 'builder', externalId: '', now: new Date(0) });
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* 2.0.2: remember that a read of one placement did not reach CertREV in time (a render stopped waiting for it), so the
|
|
308
|
+
* cache answers the placement at once for its failure window. A no-op on a cache with no failure window beyond 2.0.1's
|
|
309
|
+
* negative entry. Never touches a verified entry.
|
|
310
|
+
*/
|
|
311
|
+
export function rememberDeliveryUnreachable(opts) {
|
|
312
|
+
;
|
|
313
|
+
(opts.cache ?? sharedDeliveryCache).markFailed(deliveryCacheKey(opts), unreachable());
|
|
314
|
+
}
|
|
315
|
+
/** 2.0.2: whether a read of one placement is already running in `cache` (a render's, or a background refresh). */
|
|
316
|
+
export function deliveryLoading(opts) {
|
|
317
|
+
return (opts.cache ?? sharedDeliveryCache).loading(deliveryCacheKey(opts));
|
|
318
|
+
}
|
|
298
319
|
/** Drop the cached read for one placement (e.g. from a revocation webhook); with `design`, that pinned read. */
|
|
299
320
|
export function invalidateDelivery(opts, cache = sharedDeliveryCache) {
|
|
300
321
|
cache.delete(deliveryCacheKey(opts));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-verified-delivery.js","sourceRoot":"","sources":["../../src/verify/get-verified-delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-verified-delivery.js","sourceRoot":"","sources":["../../src/verify/get-verified-delivery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@certrev/cert-block",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Headless render edge for the CertREV CertDeliveryEnvelope: SSR-safe React cert components, a framework-agnostic <certrev-badge> Web Component, a schema.org JSON-LD projector, and a fail-closed verify layer over the shared VerdictKernel.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,9 +27,12 @@ import { type CertPayload, renderVerdict } from '../contract/kernel.js'
|
|
|
27
27
|
import {
|
|
28
28
|
type DeliveredFace,
|
|
29
29
|
type DesignPin,
|
|
30
|
+
deliveryLoading,
|
|
30
31
|
getVerifiedDelivery,
|
|
31
32
|
parseDesignPin,
|
|
32
33
|
readVerifiedDelivery,
|
|
34
|
+
rememberDeliveryUnreachable,
|
|
35
|
+
unreachableDelivery,
|
|
33
36
|
type VerifiedDelivery,
|
|
34
37
|
} from '../verify/get-verified-delivery.js'
|
|
35
38
|
import {
|
|
@@ -171,17 +174,82 @@ export function acceptedDeliveryMarker(value: unknown): { readonly baseUrl: stri
|
|
|
171
174
|
* flight; React 18 (no `use`) gets the promise thrown, the Suspense protocol it supports. Either
|
|
172
175
|
* way the retry finds the settled read in the cache through `readVerifiedDelivery`, so it never
|
|
173
176
|
* suspends on a second promise.
|
|
177
|
+
*
|
|
178
|
+
* 2.0.2, on a server (`suspendOnServer`): the render waits at most the runtime's `serverWaitMs` (300 ms). Past it, the
|
|
179
|
+
* placement's failure is remembered in the cache (so every render in the failure window answers at once, even where the
|
|
180
|
+
* runtime abandons the read when the response ends), the render prints nothing (`delivery_unreachable`), and the read
|
|
181
|
+
* runs on: when it lands, the next render paints it. A render that finds a read of the placement already running that it
|
|
182
|
+
* did not start (another request's, a background refresh, or a second card of the placement on the same page: React
|
|
183
|
+
* gives a component no way to tell these apart) never waits on it: it is `'skipped'` and prints a marker only
|
|
184
|
+
* (`SkippedRead`), which the same card instance re-renders while hydrating and replaces with the page's verified seed
|
|
185
|
+
* right after.
|
|
174
186
|
*/
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
187
|
+
/** The reads a render is suspended on, per runtime cache (a fresh runtime, a fresh page in a test, starts with none). */
|
|
188
|
+
const inflightReadsByCache = new WeakMap<object, Map<string, Promise<VerifiedDelivery>>>()
|
|
189
|
+
|
|
190
|
+
function suspendOn(cache: object, key: string, start: () => Promise<VerifiedDelivery>): VerifiedDelivery {
|
|
191
|
+
let reads = inflightReadsByCache.get(cache)
|
|
192
|
+
if (!reads) {
|
|
193
|
+
reads = new Map()
|
|
194
|
+
inflightReadsByCache.set(cache, reads)
|
|
195
|
+
}
|
|
196
|
+
let pending = reads.get(key)
|
|
178
197
|
if (!pending) {
|
|
179
|
-
|
|
180
|
-
|
|
198
|
+
const own = reads
|
|
199
|
+
pending = start().finally(() => own.delete(key))
|
|
200
|
+
reads.set(key, pending)
|
|
181
201
|
}
|
|
182
202
|
return suspendUntil(pending)
|
|
183
203
|
}
|
|
184
204
|
|
|
205
|
+
function suspendOnServer(
|
|
206
|
+
key: string,
|
|
207
|
+
read: Parameters<typeof getVerifiedDelivery>[0],
|
|
208
|
+
waitMs: number | undefined,
|
|
209
|
+
): VerifiedDelivery | 'skipped' {
|
|
210
|
+
if (deliveryLoading(read)) return 'skipped'
|
|
211
|
+
return suspendOn(read.cache ?? inflightReadsByCache, key, () => {
|
|
212
|
+
const loaded = getVerifiedDelivery(read)
|
|
213
|
+
if (waitMs === undefined || !Number.isFinite(waitMs) || waitMs <= 0) return loaded
|
|
214
|
+
return new Promise<VerifiedDelivery>((resolve) => {
|
|
215
|
+
const timer = setTimeout(() => {
|
|
216
|
+
rememberDeliveryUnreachable(read)
|
|
217
|
+
resolve(unreachableDelivery())
|
|
218
|
+
}, waitMs)
|
|
219
|
+
loaded.then(
|
|
220
|
+
(settled) => {
|
|
221
|
+
clearTimeout(timer)
|
|
222
|
+
resolve(settled)
|
|
223
|
+
},
|
|
224
|
+
() => {
|
|
225
|
+
clearTimeout(timer)
|
|
226
|
+
resolve(unreachableDelivery())
|
|
227
|
+
},
|
|
228
|
+
)
|
|
229
|
+
})
|
|
230
|
+
})
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/** 2.0.2: the attribute a skipped server render's marker carries: the card instance's `useId`. */
|
|
234
|
+
export const SKIPPED_ATTRIBUTE = 'data-certrev-skipped'
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* 2.0.2: what a server render prints when it did not wait for a read it did not start: a hidden marker naming the card
|
|
238
|
+
* instance, and no record (it knows nothing about the placement, so it must never stand in for another card's record).
|
|
239
|
+
* Not a failure: nothing is reported or remembered.
|
|
240
|
+
*/
|
|
241
|
+
function SkippedRead({ instance }: { readonly instance: string }) {
|
|
242
|
+
return <div hidden {...{ [SKIPPED_ATTRIBUTE]: instance }} />
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/** 2.0.2: whether the live document holds this card instance's skipped marker (it is hydrating one). */
|
|
246
|
+
function skippedInDocument(instance: string): boolean {
|
|
247
|
+
for (const el of Array.from(document.querySelectorAll(`[${SKIPPED_ATTRIBUTE}]`))) {
|
|
248
|
+
if (el.getAttribute(SKIPPED_ATTRIBUTE) === instance) return true
|
|
249
|
+
}
|
|
250
|
+
return false
|
|
251
|
+
}
|
|
252
|
+
|
|
185
253
|
/** `use` where React has it (19), else the thrown promise (18). */
|
|
186
254
|
function suspendUntil<T>(pending: Promise<T>): T {
|
|
187
255
|
const use = (React as unknown as { use?: <U>(p: Promise<U>) => U }).use
|
|
@@ -669,6 +737,27 @@ function StreamedRecordCard(props: EnvelopeCardProps) {
|
|
|
669
737
|
return paintRecord(record, props, context, true)
|
|
670
738
|
}
|
|
671
739
|
|
|
740
|
+
/**
|
|
741
|
+
* 2.0.2 (final review R2-1): a card whose server render skipped its read. While hydrating, its marker as the server
|
|
742
|
+
* printed it. After, the record the page holds for its placement (the seed the card that did the read printed), also
|
|
743
|
+
* when that record streams in after this card hydrated; nothing while it has not arrived, and nothing if the page loads
|
|
744
|
+
* without one. It reads nothing.
|
|
745
|
+
*/
|
|
746
|
+
function SkippedThenRecord(props: EnvelopeCardProps & { readonly instance: string; readonly hydrating: boolean }) {
|
|
747
|
+
const rt = cardDeliveryRuntime()
|
|
748
|
+
// In render, not in an effect, as `StreamedRecordCard` does.
|
|
749
|
+
watchStreamedRecords()
|
|
750
|
+
const record = React.useSyncExternalStore(
|
|
751
|
+
subscribeStreamedRecords,
|
|
752
|
+
() => streamedRecordFor(props.baseUrl, props.externalId, props.design),
|
|
753
|
+
pendingRecord,
|
|
754
|
+
)
|
|
755
|
+
if (props.hydrating) return <SkippedRead instance={props.instance} />
|
|
756
|
+
if (record === 'pending' || record === 'done') return null
|
|
757
|
+
const context = { platform: 'builder', externalId: props.externalId, now: new Date(rt.now()) }
|
|
758
|
+
return paintRecord(record, props, context, true)
|
|
759
|
+
}
|
|
760
|
+
|
|
672
761
|
const subscribeNever = () => () => {}
|
|
673
762
|
|
|
674
763
|
/**
|
|
@@ -692,7 +781,7 @@ function useHydrating(): boolean {
|
|
|
692
781
|
* storefront whose CSP `connect-src` does not name CertREV (e.l.f.'s live policy) never sees a request or a violation
|
|
693
782
|
* from it, and a page never loses its card for want of one.
|
|
694
783
|
*
|
|
695
|
-
* - Server: read (
|
|
784
|
+
* - Server: read (2.0.2: waiting at most `CARD_SERVER_WAIT_MS`, never behind another request's read; a fresh or stale-while-revalidating cache, or a remembered failure, first), verify and paint
|
|
696
785
|
* as through 1.1.1, and write a record of what it painted (`ssr-seed.ts`):
|
|
697
786
|
* - a verified envelope: its face and the envelope seed (less the fields the def hides, and with no signature if
|
|
698
787
|
* it hid any);
|
|
@@ -733,6 +822,8 @@ function useHydrating(): boolean {
|
|
|
733
822
|
function EnvelopeCertReviewCard(props: EnvelopeCardProps) {
|
|
734
823
|
const rt = cardDeliveryRuntime()
|
|
735
824
|
const hydrating = useHydrating()
|
|
825
|
+
// 2.0.2: this card instance's id, the same on the server and while hydrating (`SkippedRead`).
|
|
826
|
+
const instance = React.useId()
|
|
736
827
|
// Latched at mount: this instance hydrated server HTML (as opposed to a client mount).
|
|
737
828
|
const [hydratedMount] = React.useState(hydrating)
|
|
738
829
|
// The clock is read per render, so the lifecycle is judged NOW, not when the envelope was fetched.
|
|
@@ -751,13 +842,16 @@ function EnvelopeCertReviewCard(props: EnvelopeCardProps) {
|
|
|
751
842
|
const [awaitsStream] = React.useState(
|
|
752
843
|
() => inBrowser && !hydrating && fromPage === undefined && document.readyState === 'loading',
|
|
753
844
|
)
|
|
845
|
+
// 2.0.2, latched at mount: this instance is hydrating a server render that skipped its read (`SkippedRead`).
|
|
846
|
+
const [skippedMount] = React.useState(() => inBrowser && hydrating && skippedInDocument(instance))
|
|
847
|
+
if (skippedMount) return <SkippedThenRecord {...props} instance={instance} hydrating={hydrating} />
|
|
754
848
|
if (awaitsStream) return <StreamedRecordCard {...props} />
|
|
755
849
|
if (inBrowser) {
|
|
756
850
|
if (fromPage) return paintRecord(fromPage, props, context, !hydrating)
|
|
757
851
|
if (hydratedMount) return null
|
|
758
852
|
if (!props.clientRead) return clientMountFace(props)
|
|
759
853
|
}
|
|
760
|
-
return readAndPaint(props, context, inBrowser)
|
|
854
|
+
return readAndPaint(props, context, inBrowser, instance)
|
|
761
855
|
}
|
|
762
856
|
|
|
763
857
|
/**
|
|
@@ -768,6 +862,7 @@ function readAndPaint(
|
|
|
768
862
|
props: EnvelopeCardProps,
|
|
769
863
|
context: Parameters<typeof renderVerdict>[1],
|
|
770
864
|
inBrowser: boolean,
|
|
865
|
+
instance = '',
|
|
771
866
|
): React.ReactElement | null {
|
|
772
867
|
const rt = cardDeliveryRuntime()
|
|
773
868
|
const { design } = props
|
|
@@ -785,7 +880,12 @@ function readAndPaint(
|
|
|
785
880
|
const key = design
|
|
786
881
|
? `${props.baseUrl}|${props.externalId}|design=${design.version}|${design.brand ?? ''}`
|
|
787
882
|
: `${props.baseUrl}|${props.externalId}`
|
|
788
|
-
const settled =
|
|
883
|
+
const settled =
|
|
884
|
+
readVerifiedDelivery(read) ??
|
|
885
|
+
(inBrowser
|
|
886
|
+
? suspendOn(rt.cache, key, () => getVerifiedDelivery(read))
|
|
887
|
+
: suspendOnServer(key, read, rt.serverWaitMs))
|
|
888
|
+
if (settled === 'skipped') return <SkippedRead instance={instance} />
|
|
789
889
|
if (settled.verdict.decision !== 'render') {
|
|
790
890
|
return settleWithoutEnvelope(
|
|
791
891
|
props,
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
* A revocation still lands on the first render after its refresh does. The tests' runtime gets
|
|
15
15
|
* the same cache shape, so they exercise what production runs.
|
|
16
16
|
*
|
|
17
|
+
* 2.0.2: a server render waits at most `CARD_SERVER_WAIT_MS` (300 ms) for a cold read, never joins another request's read
|
|
18
|
+
* in flight, and a failure is remembered `CARD_DELIVERY_FAILURE_MS` (60 s) per placement, so a hanging CertREV costs a
|
|
19
|
+
* brand's page at most one short wait per placement per minute (2.0.1: 8 s, every 5 s).
|
|
20
|
+
*
|
|
17
21
|
* 2.0.0: the trust root is a key SET (`verify/key-set.ts`). `resolveKid` is still the baked set (today
|
|
18
22
|
* `cert-issuer-1`), and the card verifies with `resolveKidFor(baseUrl)`: a baked kid resolves as before, any other kid
|
|
19
23
|
* makes one read of the delivery origin's published key set, accepted only when a baked kid signs it. A rotation then
|
|
@@ -31,8 +35,26 @@ import { forgetFaceHashesForTests } from './delivered-face.js'
|
|
|
31
35
|
import { CERT_ISSUER_KID, CERT_ISSUER_PUBLIC_KEY_PEM } from './issuer-key.js'
|
|
32
36
|
import { forgetPageSeedsForTests } from './ssr-seed.js'
|
|
33
37
|
|
|
34
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* The card's fetch deadline: how long a read of the Delivery API may run (2.0.2: in the background, past the render; a
|
|
40
|
+
* browser read under `clientRead`). Not how long a server render waits: that is `CARD_SERVER_WAIT_MS`.
|
|
41
|
+
*/
|
|
35
42
|
export const CARD_DELIVERY_TIMEOUT_MS = 8_000
|
|
43
|
+
/**
|
|
44
|
+
* 2.0.2: the longest a SERVER render waits for a placement's read (2.0.1 waited the whole `CARD_DELIVERY_TIMEOUT_MS`,
|
|
45
|
+
* 8 s). Past it the render prints nothing (`delivery_unreachable`), the placement's failure is remembered
|
|
46
|
+
* (`CARD_DELIVERY_FAILURE_MS`), and the read runs on: when it lands it is cached for the next render. 300 ms covers the
|
|
47
|
+
* Delivery API's p90 function time (221 ms over 30 days of production, n = 21,368 CDN misses; 93% <= 300 ms) and a
|
|
48
|
+
* cached edge answer (~50 ms) plus a round trip; see the CHANGELOG.
|
|
49
|
+
*/
|
|
50
|
+
export const CARD_SERVER_WAIT_MS = 300
|
|
51
|
+
/**
|
|
52
|
+
* 2.0.2: how long a placement's failure (a timeout, a network error, a 5xx, a render that stopped waiting) is
|
|
53
|
+
* remembered per process. Inside it, no read of the placement starts: a render with no cached card prints nothing at
|
|
54
|
+
* once, and a stale card paints without a refresh. So an ongoing outage costs at most one short wait per placement per
|
|
55
|
+
* minute. (2.0.1: a failure was remembered 5 s.)
|
|
56
|
+
*/
|
|
57
|
+
export const CARD_DELIVERY_FAILURE_MS = 60_000
|
|
36
58
|
/**
|
|
37
59
|
* 2.0.1: how long a verified answer is fresh. With the stale window below, a card adds at most one minute to the Delivery
|
|
38
60
|
* API's own cache (`max-age=60, stale-while-revalidate=240`), so a revoked card is gone within ADR 0001 §7's five to
|
|
@@ -57,6 +79,8 @@ export interface CardDeliveryRuntime {
|
|
|
57
79
|
readonly cache: TtlCache<CachedDelivery>
|
|
58
80
|
readonly now: () => number
|
|
59
81
|
readonly timeoutMs?: number
|
|
82
|
+
/** 2.0.2: the longest a server render waits for a read (`CARD_SERVER_WAIT_MS`). */
|
|
83
|
+
readonly serverWaitMs?: number
|
|
60
84
|
}
|
|
61
85
|
|
|
62
86
|
const bakedResolveKid: ResolvePublicKeyByKid = (kid) =>
|
|
@@ -67,6 +91,8 @@ function newCardCache(now?: () => number): TtlCache<CachedDelivery> {
|
|
|
67
91
|
ttlMs: CARD_DELIVERY_TTL_MS,
|
|
68
92
|
negativeTtlMs: 5_000,
|
|
69
93
|
staleMs: CARD_DELIVERY_STALE_MS,
|
|
94
|
+
// 2.0.2: on a server only. A browser read (`clientRead`) holds no page, and keeps 2.0.1's 5 s (break-it B1).
|
|
95
|
+
...(typeof document === 'undefined' ? { failureTtlMs: CARD_DELIVERY_FAILURE_MS } : {}),
|
|
70
96
|
// A refresh the host runtime abandoned (workerd cancels a finished request's I/O) never
|
|
71
97
|
// settles; after the deadline plus a margin, the next render starts a new one.
|
|
72
98
|
inflightMaxMs: CARD_DELIVERY_TIMEOUT_MS + 2_000,
|
|
@@ -81,6 +107,7 @@ function defaultRuntime(): CardDeliveryRuntime {
|
|
|
81
107
|
cache: newCardCache(),
|
|
82
108
|
now: Date.now,
|
|
83
109
|
timeoutMs: CARD_DELIVERY_TIMEOUT_MS,
|
|
110
|
+
serverWaitMs: CARD_SERVER_WAIT_MS,
|
|
84
111
|
}
|
|
85
112
|
}
|
|
86
113
|
|
package/src/builder/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** This package's version, as its beacon reports it (held to `package.json` by `version.test.ts`). */
|
|
2
|
-
export const CERT_BLOCK_VERSION = '2.0.
|
|
2
|
+
export const CERT_BLOCK_VERSION = '2.0.2'
|