@certrev/cert-block 2.0.1 → 2.1.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/CHANGELOG.md +66 -0
- package/README.md +9 -4
- 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/envelope-face.d.ts +2 -0
- package/dist/builder/envelope-face.d.ts.map +1 -1
- package/dist/builder/envelope-face.js +9 -1
- package/dist/builder/envelope-face.js.map +1 -1
- package/dist/builder/version.d.ts +1 -1
- package/dist/builder/version.js +1 -1
- package/dist/components/CertBadge.d.ts.map +1 -1
- package/dist/components/CertBadge.js +4 -2
- package/dist/components/CertBadge.js.map +1 -1
- package/dist/components/render-cert-block.d.ts +9 -1
- package/dist/components/render-cert-block.d.ts.map +1 -1
- package/dist/components/render-cert-block.js +4 -4
- package/dist/components/render-cert-block.js.map +1 -1
- package/dist/components/render-def.d.ts +18 -0
- package/dist/components/render-def.d.ts.map +1 -1
- package/dist/components/render-def.js +15 -0
- package/dist/components/render-def.js.map +1 -1
- package/dist/modal/cert-modal-view.d.ts +3 -0
- package/dist/modal/cert-modal-view.d.ts.map +1 -1
- package/dist/modal/cert-modal-view.js +4 -3
- package/dist/modal/cert-modal-view.js.map +1 -1
- package/dist/modal/certrev-cert.js +4 -4
- package/dist/modal/display-strings.d.ts +9 -0
- package/dist/modal/display-strings.d.ts.map +1 -1
- package/dist/modal/display-strings.js +12 -1
- package/dist/modal/display-strings.js.map +1 -1
- package/dist/modal/ftc-disclosure.d.ts +6 -0
- package/dist/modal/ftc-disclosure.d.ts.map +1 -1
- package/dist/modal/ftc-disclosure.js +6 -0
- package/dist/modal/ftc-disclosure.js.map +1 -1
- package/dist/reader/render.d.ts.map +1 -1
- package/dist/reader/render.js +5 -10
- package/dist/reader/render.js.map +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/dist/webcomponent/render-badge-html.d.ts.map +1 -1
- package/dist/webcomponent/render-badge-html.js +6 -3
- package/dist/webcomponent/render-badge-html.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/envelope-face.ts +16 -1
- package/src/builder/version.ts +1 -1
- package/src/components/CertBadge.tsx +6 -3
- package/src/components/render-cert-block.ts +13 -4
- package/src/components/render-def.ts +24 -0
- package/src/modal/cert-modal-view.ts +7 -3
- package/src/modal/display-strings.ts +14 -1
- package/src/modal/ftc-disclosure.ts +8 -0
- package/src/reader/render.ts +12 -11
- package/src/verify/cache.ts +78 -6
- package/src/verify/get-verified-delivery.ts +27 -0
- package/src/webcomponent/render-badge-html.ts +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,72 @@ change the rendered cert output and never break a compiling integration** (regis
|
|
|
5
5
|
exports, types). Anything that would alter what a visitor sees, or require integration changes,
|
|
6
6
|
is announced loudly here first.
|
|
7
7
|
|
|
8
|
+
## 2.1.0 · 2026-10-30
|
|
9
|
+
|
|
10
|
+
**The card says what the expert actually reviewed.** When CertREV signs `content.expert.reviewScope: 'text'` (the
|
|
11
|
+
article has no references or sources section, so the review covered its text only), every face prints the text-only
|
|
12
|
+
scope line, the portal's `FTC_DISCLOSURE_LINE_TEXT_ONLY` byte for byte: "Independent editorial review of this
|
|
13
|
+
article’s text. Not a product endorsement, nor medical advice." (Owen, Console decision af5b0db5, 2026-10-30.)
|
|
14
|
+
|
|
15
|
+
- **Absent, or `'text_and_sources'`, prints exactly what 2.0.2 prints**, byte for byte: every envelope signed before the
|
|
16
|
+
field existed, and every article with sources. Any other value (a hostile type, a scope this version does not know)
|
|
17
|
+
prints the full line too. Every golden and snapshot of 2.0.2 is unchanged.
|
|
18
|
+
- **One rule on every path that prints the line** (`certScopeLineFor`; the standalone modal bundle repeats it as
|
|
19
|
+
`scopeLineForReview`): `renderCertBlock` (banner memo card, sidebar, custom face; a new optional
|
|
20
|
+
`CertBlockFacts.reviewScope` fact, which picks the locked line and never supplies its words), the Builder card's
|
|
21
|
+
envelope face (server render, hydration and a client read, from the verified payload), the reader face, both
|
|
22
|
+
dialogs of the modal (`certrev-cert.js`), `<CertBadge>` and the `<certrev-badge>` web component. The contract-1 card
|
|
23
|
+
and the delivered face print CertREV's server-rendered document, which carries the right line already.
|
|
24
|
+
- **A drop-in on 2.0.2**: same `certRevCertComponent` and registration (`CertREV Cert`, the same 22 inputs), no new
|
|
25
|
+
prop, no new peer dependency, the same `exports` map and runtime exports, the same four Content-Security-Policy
|
|
26
|
+
sources. The Builder block's `scopeLine` input stays a wire field the card does not read (2.0.1 retired the options
|
|
27
|
+
face).
|
|
28
|
+
- **WordPress does not share this face**: plugin 2.0.x prints the card document the portal renders and loads the
|
|
29
|
+
portal's card runtime. The portal's hosted `/embed/certrev-cert.js` is this package's modal bundle as vendored by the
|
|
30
|
+
portal; it carries the rule once the portal's pin moves to 2.1.0.
|
|
31
|
+
|
|
32
|
+
## 2.0.2 · 2026-10-29
|
|
33
|
+
|
|
34
|
+
**A CertREV outage never slows a brand's page by more than a fraction of a second.** A drop-in on 2.0.1: same package,
|
|
35
|
+
same `certRevCertComponent` and registration (`CertREV Cert`, the same 22 inputs), no new prop, no new peer dependency,
|
|
36
|
+
the same four Content-Security-Policy sources, the same records, reports and beacons. Only how long a server render
|
|
37
|
+
waits for CertREV changes. In 2.0.1 a cold placement's server render waited for the Delivery read up to 8 s, every
|
|
38
|
+
concurrent request on that placement waited with it, and a failure was remembered 5 s, so a CertREV that accepted
|
|
39
|
+
connections and never answered held a brand's HTML up to 8 s, again every 5 s.
|
|
40
|
+
|
|
41
|
+
- **A server render waits at most 300 ms** (`CARD_SERVER_WAIT_MS`) for a placement's read. Past it the block prints
|
|
42
|
+
nothing, as for any read that did not reach CertREV (`delivery_unreachable`), and the page goes out. The read itself
|
|
43
|
+
runs on (its own deadline stays 8 s): when it lands it is cached, and the next render paints the card. Why 300 ms:
|
|
44
|
+
over the 30 days to 2026-10-29, CertREV's production Delivery and card routes ran 21,368 function invocations (the
|
|
45
|
+
CDN misses; a cached edge answer runs none and took about 40-50 ms of server time when probed). Their durations:
|
|
46
|
+
p50 127 ms, p75 149 ms, p90 221 ms, p95 355 ms, p99 1,120 ms; 91.1% within 250 ms, 93.0% within 300 ms, 96.5%
|
|
47
|
+
within 400 ms, 97.8% within 500 ms. 300 ms holds a cached answer and a p90 miss with its round trip; waiting for
|
|
48
|
+
the p99 would cost over a second, which is the delay this release removes. A slower read is not lost, only not
|
|
49
|
+
waited for.
|
|
50
|
+
- **A failure is remembered 60 s** (`CARD_DELIVERY_FAILURE_MS`) per placement and process: a timeout (the render's
|
|
51
|
+
300 ms or the read's 8 s), a network error, a 5xx, a body that is not JSON. Inside that window no read of the
|
|
52
|
+
placement starts and every render answers at once, so an ongoing outage costs at most one 300 ms wait per placement
|
|
53
|
+
per minute. CertREV's recovery shows on the first render after the window.
|
|
54
|
+
- **Concurrent requests never wait behind a read in flight.** A server render that finds a read of the placement
|
|
55
|
+
already running that it did not start (another request's, a background refresh) prints nothing at once and reports
|
|
56
|
+
nothing: it is not a failure. React gives a block no way to tell another request from a second block of the same
|
|
57
|
+
placement on its own page, so on a placement's cold read the second block (a split banner's memo, say) does not wait
|
|
58
|
+
either: it prints a hidden `data-certrev-skipped` marker and no record, hydrates as that marker, and right after
|
|
59
|
+
paints from the verified seed the first block printed, with no browser read. Every warm render prints both blocks,
|
|
60
|
+
as before.
|
|
61
|
+
- **A warm card never waits.** A verified card paints from the cache while it is fresh (30 s) and through its stale
|
|
62
|
+
window (30 s more), refreshed in the background, never on the render path. While a failure is remembered the stale
|
|
63
|
+
card keeps painting and no refresh starts; past the stale window it prints nothing, at once.
|
|
64
|
+
- **Revocation within ADR 0001 §7 is unchanged.** The fresh and stale windows are 2.0.1's; a definitive no (revoked,
|
|
65
|
+
expired, a 404 or 410, an envelope that does not verify) replaces the cached card when its refresh lands and is
|
|
66
|
+
never painted over; a remembered failure only ever prints nothing.
|
|
67
|
+
- `TtlCache` (exported) gains an optional `failureTtlMs` and a `markFailed(key, value)`. Without `failureTtlMs` it
|
|
68
|
+
behaves exactly as in 2.0.1.
|
|
69
|
+
- Browser reads (a client mount with `clientRead`) are unchanged: they never hold a page.
|
|
70
|
+
- The WordPress plugin and the hosted card runtime do not share this path: the hosted runtime only reads CertREV from
|
|
71
|
+
the browser, after the card is printed, and the WordPress plugin prints from the card stored on the post, refreshed
|
|
72
|
+
in the background.
|
|
73
|
+
|
|
8
74
|
## 2.0.1 · 2026-10-25
|
|
9
75
|
|
|
10
76
|
**e.l.f.'s one install.** A drop-in on 2.0.0: same package, same `certRevCertComponent` and registration (`CertREV
|
package/README.md
CHANGED
|
@@ -518,7 +518,7 @@ browser hydrates from it:
|
|
|
518
518
|
- **Where the server had no envelope to paint, it writes what it painted instead**, in the same attribute: a
|
|
519
519
|
record `{ v: 1, baseUrl, externalId, design?, face }` with no payload, no signature and no def. The browser keeps
|
|
520
520
|
that face through hydration and any later render of the same placement, and reads nothing:
|
|
521
|
-
- **CertREV not reached** (a 5xx, a body that is not an envelope, a network error, the
|
|
521
|
+
- **CertREV not reached** (a 5xx, a body that is not an envelope, a network error, the deadline; 2.0.2: the server's 300 ms wait): the
|
|
522
522
|
block's own options face, the card 0.5.x and 1.0.x painted from the same fields, with `face: "options"`. Its
|
|
523
523
|
placement is the block's `mode`, else its def's `layout`, else the banner. A page never loses its card to an
|
|
524
524
|
outage. A pinned card (below) paints it too, with a record naming its pin. A block whose options cannot
|
|
@@ -567,7 +567,10 @@ browser hydrates from it:
|
|
|
567
567
|
- **The server's read** waits up to 8 s (the verifier's own default stays 3 s). Its cache keeps a certificate for
|
|
568
568
|
60 s, then serves it for up to 5 minutes more while one background refresh runs or while CertREV cannot be
|
|
569
569
|
reached; a refusal (revoked, expired) lands as soon as its refresh does. A cold placement waits once; a warm one
|
|
570
|
-
never waits.
|
|
570
|
+
never waits. **2.0.2:** a server render waits at most 300 ms for a cold read (the read itself runs on, up to 8 s,
|
|
571
|
+
and is cached when it lands), never waits behind another request's read of the same placement, and a failure is
|
|
572
|
+
remembered 60 s per placement and process, so a hanging CertREV costs a page at most one 300 ms wait per placement
|
|
573
|
+
per minute. 2.0.1 already keeps a certificate 30 s, and 30 s more while it is refreshed (see the CHANGELOG).
|
|
571
574
|
- **A reviewer photo the browser cannot load** (a CSP `img-src` without the photo's origin, a 404) is repainted as
|
|
572
575
|
the person's initials, the same bytes the face paints for a hidden photo (below), with no request and no change to
|
|
573
576
|
the record.
|
|
@@ -596,7 +599,9 @@ before it writes the seed, the payload is stripped:
|
|
|
596
599
|
The face is painted from the stripped payload on the server and in the browser, so the two are identical and the page
|
|
597
600
|
source holds neither the photo URL nor the memo text. `content.expert.compensationCue` is never stripped: it is a locked
|
|
598
601
|
disclosure no def can hide, and the banner, the memo and the sidebar paint "Compensated expert" from it (the floating pill's own markup carries no
|
|
599
|
-
disclosure line, as in the portal's snippets; the modal it opens paints the cue).
|
|
602
|
+
disclosure line, as in the portal's snippets; the modal it opens paints the cue). `content.expert.reviewScope` (2.1.0) is
|
|
603
|
+
never stripped either: `'text'` makes every face and both dialogs print the text-only scope line ("Independent editorial
|
|
604
|
+
review of this article’s text. …"), and anything else, absent included, the full line. **When anything was stripped the seed
|
|
600
605
|
carries no `signature`.** The signature signs the whole payload, so a stripped payload no longer verifies against it;
|
|
601
606
|
the browser never re-checks a seed's signature, only the lifecycle and subject policy at its own clock, and neither reads
|
|
602
607
|
a stripped field. A seed that stripped nothing keeps the signature, so its payload can still be checked against the issuer
|
|
@@ -1023,7 +1028,7 @@ published at `@certrev/cert-block/fixtures`).
|
|
|
1023
1028
|
|
|
1024
1029
|
## Version
|
|
1025
1030
|
|
|
1026
|
-
`2.0
|
|
1031
|
+
`2.1.0`: see [CHANGELOG.md](./CHANGELOG.md) for the release history and the semver contract
|
|
1027
1032
|
(patch/minor never change the rendered cert output or break a compiling integration). Publishes
|
|
1028
1033
|
**publicly** to npm as `@certrev/cert-block` (`publishConfig.access: public`) via GitHub Actions
|
|
1029
1034
|
trusted publishing (OIDC); the internal `@certrev` GitHub-Packages channel mirrors it.
|
|
@@ -82,6 +82,8 @@ export interface CertReviewCardProps extends Partial<BuilderCertChromeData> {
|
|
|
82
82
|
export declare function acceptedDeliveryMarker(value: unknown): {
|
|
83
83
|
readonly baseUrl: string;
|
|
84
84
|
} | null;
|
|
85
|
+
/** 2.0.2: the attribute a skipped server render's marker carries: the card instance's `useId`. */
|
|
86
|
+
export declare const SKIPPED_ATTRIBUTE = "data-certrev-skipped";
|
|
85
87
|
/**
|
|
86
88
|
* 1.2.0-canary.6: the reader sidebar card is a right float that the article's copy flows around, as it does on a
|
|
87
89
|
* WordPress or Shopify page. On a Builder page the card sits in its own block, a flex item of the flex column that holds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-review-card.d.ts","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"cert-review-card.d.ts","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ import { memoToggleFor, toggleMemo } from '../components/memo-toggle.js';
|
|
|
24
24
|
import { renderCertBlock } from '../components/render-cert-block.js';
|
|
25
25
|
import { CERT_STRINGS_VERSION } from '../components/render-def.js';
|
|
26
26
|
import { renderVerdict } from '../contract/kernel.js';
|
|
27
|
-
import { getVerifiedDelivery, parseDesignPin, readVerifiedDelivery, } from '../verify/get-verified-delivery.js';
|
|
27
|
+
import { deliveryLoading, getVerifiedDelivery, parseDesignPin, readVerifiedDelivery, rememberDeliveryUnreachable, unreachableDelivery, } from '../verify/get-verified-delivery.js';
|
|
28
28
|
import { acceptedCardBinding, cardDigestFor, cardDigestMatches, cardMatchesPlacement, cardPartsFor, parseCardDocument, } from './card-contract.js';
|
|
29
29
|
import { CARD_READER_CSS } from './card-reader-css.js';
|
|
30
30
|
import { CARD_FALLBACK_REASONS, reportCardFallbackInBrowser, reportCardFallbackOnServer, } from './card-report.js';
|
|
@@ -86,16 +86,72 @@ export function acceptedDeliveryMarker(value) {
|
|
|
86
86
|
* flight; React 18 (no `use`) gets the promise thrown, the Suspense protocol it supports. Either
|
|
87
87
|
* way the retry finds the settled read in the cache through `readVerifiedDelivery`, so it never
|
|
88
88
|
* suspends on a second promise.
|
|
89
|
+
*
|
|
90
|
+
* 2.0.2, on a server (`suspendOnServer`): the render waits at most the runtime's `serverWaitMs` (300 ms). Past it, the
|
|
91
|
+
* placement's failure is remembered in the cache (so every render in the failure window answers at once, even where the
|
|
92
|
+
* runtime abandons the read when the response ends), the render prints nothing (`delivery_unreachable`), and the read
|
|
93
|
+
* runs on: when it lands, the next render paints it. A render that finds a read of the placement already running that it
|
|
94
|
+
* did not start (another request's, a background refresh, or a second card of the placement on the same page: React
|
|
95
|
+
* gives a component no way to tell these apart) never waits on it: it is `'skipped'` and prints a marker only
|
|
96
|
+
* (`SkippedRead`), which the same card instance re-renders while hydrating and replaces with the page's verified seed
|
|
97
|
+
* right after.
|
|
89
98
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
99
|
+
/** The reads a render is suspended on, per runtime cache (a fresh runtime, a fresh page in a test, starts with none). */
|
|
100
|
+
const inflightReadsByCache = new WeakMap();
|
|
101
|
+
function suspendOn(cache, key, start) {
|
|
102
|
+
let reads = inflightReadsByCache.get(cache);
|
|
103
|
+
if (!reads) {
|
|
104
|
+
reads = new Map();
|
|
105
|
+
inflightReadsByCache.set(cache, reads);
|
|
106
|
+
}
|
|
107
|
+
let pending = reads.get(key);
|
|
93
108
|
if (!pending) {
|
|
94
|
-
|
|
95
|
-
|
|
109
|
+
const own = reads;
|
|
110
|
+
pending = start().finally(() => own.delete(key));
|
|
111
|
+
reads.set(key, pending);
|
|
96
112
|
}
|
|
97
113
|
return suspendUntil(pending);
|
|
98
114
|
}
|
|
115
|
+
function suspendOnServer(key, read, waitMs) {
|
|
116
|
+
if (deliveryLoading(read))
|
|
117
|
+
return 'skipped';
|
|
118
|
+
return suspendOn(read.cache ?? inflightReadsByCache, key, () => {
|
|
119
|
+
const loaded = getVerifiedDelivery(read);
|
|
120
|
+
if (waitMs === undefined || !Number.isFinite(waitMs) || waitMs <= 0)
|
|
121
|
+
return loaded;
|
|
122
|
+
return new Promise((resolve) => {
|
|
123
|
+
const timer = setTimeout(() => {
|
|
124
|
+
rememberDeliveryUnreachable(read);
|
|
125
|
+
resolve(unreachableDelivery());
|
|
126
|
+
}, waitMs);
|
|
127
|
+
loaded.then((settled) => {
|
|
128
|
+
clearTimeout(timer);
|
|
129
|
+
resolve(settled);
|
|
130
|
+
}, () => {
|
|
131
|
+
clearTimeout(timer);
|
|
132
|
+
resolve(unreachableDelivery());
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/** 2.0.2: the attribute a skipped server render's marker carries: the card instance's `useId`. */
|
|
138
|
+
export const SKIPPED_ATTRIBUTE = 'data-certrev-skipped';
|
|
139
|
+
/**
|
|
140
|
+
* 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
|
|
141
|
+
* instance, and no record (it knows nothing about the placement, so it must never stand in for another card's record).
|
|
142
|
+
* Not a failure: nothing is reported or remembered.
|
|
143
|
+
*/
|
|
144
|
+
function SkippedRead({ instance }) {
|
|
145
|
+
return _jsx("div", { hidden: true, [SKIPPED_ATTRIBUTE]: instance });
|
|
146
|
+
}
|
|
147
|
+
/** 2.0.2: whether the live document holds this card instance's skipped marker (it is hydrating one). */
|
|
148
|
+
function skippedInDocument(instance) {
|
|
149
|
+
for (const el of Array.from(document.querySelectorAll(`[${SKIPPED_ATTRIBUTE}]`))) {
|
|
150
|
+
if (el.getAttribute(SKIPPED_ATTRIBUTE) === instance)
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
99
155
|
/** `use` where React has it (19), else the thrown promise (18). */
|
|
100
156
|
function suspendUntil(pending) {
|
|
101
157
|
const use = React.use;
|
|
@@ -463,6 +519,24 @@ function StreamedRecordCard(props) {
|
|
|
463
519
|
return props.clientRead ? readAndPaint(props, context, true) : clientMountFace(props);
|
|
464
520
|
return paintRecord(record, props, context, true);
|
|
465
521
|
}
|
|
522
|
+
/**
|
|
523
|
+
* 2.0.2 (final review R2-1): a card whose server render skipped its read. While hydrating, its marker as the server
|
|
524
|
+
* printed it. After, the record the page holds for its placement (the seed the card that did the read printed), also
|
|
525
|
+
* when that record streams in after this card hydrated; nothing while it has not arrived, and nothing if the page loads
|
|
526
|
+
* without one. It reads nothing.
|
|
527
|
+
*/
|
|
528
|
+
function SkippedThenRecord(props) {
|
|
529
|
+
const rt = cardDeliveryRuntime();
|
|
530
|
+
// In render, not in an effect, as `StreamedRecordCard` does.
|
|
531
|
+
watchStreamedRecords();
|
|
532
|
+
const record = React.useSyncExternalStore(subscribeStreamedRecords, () => streamedRecordFor(props.baseUrl, props.externalId, props.design), pendingRecord);
|
|
533
|
+
if (props.hydrating)
|
|
534
|
+
return _jsx(SkippedRead, { instance: props.instance });
|
|
535
|
+
if (record === 'pending' || record === 'done')
|
|
536
|
+
return null;
|
|
537
|
+
const context = { platform: 'builder', externalId: props.externalId, now: new Date(rt.now()) };
|
|
538
|
+
return paintRecord(record, props, context, true);
|
|
539
|
+
}
|
|
466
540
|
const subscribeNever = () => () => { };
|
|
467
541
|
/**
|
|
468
542
|
* True on a server and while a browser hydrates server HTML; false once the client has committed, and from the first
|
|
@@ -480,7 +554,7 @@ function useHydrating() {
|
|
|
480
554
|
* storefront whose CSP `connect-src` does not name CertREV (e.l.f.'s live policy) never sees a request or a violation
|
|
481
555
|
* from it, and a page never loses its card for want of one.
|
|
482
556
|
*
|
|
483
|
-
* - Server: read (
|
|
557
|
+
* - 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
|
|
484
558
|
* as through 1.1.1, and write a record of what it painted (`ssr-seed.ts`):
|
|
485
559
|
* - a verified envelope: its face and the envelope seed (less the fields the def hides, and with no signature if
|
|
486
560
|
* it hid any);
|
|
@@ -521,6 +595,8 @@ function useHydrating() {
|
|
|
521
595
|
function EnvelopeCertReviewCard(props) {
|
|
522
596
|
const rt = cardDeliveryRuntime();
|
|
523
597
|
const hydrating = useHydrating();
|
|
598
|
+
// 2.0.2: this card instance's id, the same on the server and while hydrating (`SkippedRead`).
|
|
599
|
+
const instance = React.useId();
|
|
524
600
|
// Latched at mount: this instance hydrated server HTML (as opposed to a client mount).
|
|
525
601
|
const [hydratedMount] = React.useState(hydrating);
|
|
526
602
|
// The clock is read per render, so the lifecycle is judged NOW, not when the envelope was fetched.
|
|
@@ -536,6 +612,10 @@ function EnvelopeCertReviewCard(props) {
|
|
|
536
612
|
// record lands).
|
|
537
613
|
// 2.0.0: whatever `clientRead` says: a card that read instead of waiting would miss the record the server streams.
|
|
538
614
|
const [awaitsStream] = React.useState(() => inBrowser && !hydrating && fromPage === undefined && document.readyState === 'loading');
|
|
615
|
+
// 2.0.2, latched at mount: this instance is hydrating a server render that skipped its read (`SkippedRead`).
|
|
616
|
+
const [skippedMount] = React.useState(() => inBrowser && hydrating && skippedInDocument(instance));
|
|
617
|
+
if (skippedMount)
|
|
618
|
+
return _jsx(SkippedThenRecord, { ...props, instance: instance, hydrating: hydrating });
|
|
539
619
|
if (awaitsStream)
|
|
540
620
|
return _jsx(StreamedRecordCard, { ...props });
|
|
541
621
|
if (inBrowser) {
|
|
@@ -546,13 +626,13 @@ function EnvelopeCertReviewCard(props) {
|
|
|
546
626
|
if (!props.clientRead)
|
|
547
627
|
return clientMountFace(props);
|
|
548
628
|
}
|
|
549
|
-
return readAndPaint(props, context, inBrowser);
|
|
629
|
+
return readAndPaint(props, context, inBrowser, instance);
|
|
550
630
|
}
|
|
551
631
|
/**
|
|
552
632
|
* The Delivery read and its paint: a server render's, or a browser's (`clientRead`). Suspends on the read, and (1.3.0)
|
|
553
633
|
* on a delivered face's hashes or (2.0.0) on a card document's digest.
|
|
554
634
|
*/
|
|
555
|
-
function readAndPaint(props, context, inBrowser) {
|
|
635
|
+
function readAndPaint(props, context, inBrowser, instance = '') {
|
|
556
636
|
const rt = cardDeliveryRuntime();
|
|
557
637
|
const { design } = props;
|
|
558
638
|
const read = {
|
|
@@ -569,7 +649,12 @@ function readAndPaint(props, context, inBrowser) {
|
|
|
569
649
|
const key = design
|
|
570
650
|
? `${props.baseUrl}|${props.externalId}|design=${design.version}|${design.brand ?? ''}`
|
|
571
651
|
: `${props.baseUrl}|${props.externalId}`;
|
|
572
|
-
const settled = readVerifiedDelivery(read) ??
|
|
652
|
+
const settled = readVerifiedDelivery(read) ??
|
|
653
|
+
(inBrowser
|
|
654
|
+
? suspendOn(rt.cache, key, () => getVerifiedDelivery(read))
|
|
655
|
+
: suspendOnServer(key, read, rt.serverWaitMs));
|
|
656
|
+
if (settled === 'skipped')
|
|
657
|
+
return _jsx(SkippedRead, { instance: instance });
|
|
573
658
|
if (settled.verdict.decision !== 'render') {
|
|
574
659
|
return settleWithoutEnvelope(props, {
|
|
575
660
|
unreachable: settled.unreachable === true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-review-card.js","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cert-review-card.js","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
@@ -22,8 +26,26 @@
|
|
|
22
26
|
import type { ResolvePublicKeyByKid } from '../contract/kernel.js';
|
|
23
27
|
import { TtlCache } from '../verify/cache.js';
|
|
24
28
|
import type { CachedDelivery } from '../verify/get-verified-delivery.js';
|
|
25
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* 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
|
|
31
|
+
* browser read under `clientRead`). Not how long a server render waits: that is `CARD_SERVER_WAIT_MS`.
|
|
32
|
+
*/
|
|
26
33
|
export declare const CARD_DELIVERY_TIMEOUT_MS = 8000;
|
|
34
|
+
/**
|
|
35
|
+
* 2.0.2: the longest a SERVER render waits for a placement's read (2.0.1 waited the whole `CARD_DELIVERY_TIMEOUT_MS`,
|
|
36
|
+
* 8 s). Past it the render prints nothing (`delivery_unreachable`), the placement's failure is remembered
|
|
37
|
+
* (`CARD_DELIVERY_FAILURE_MS`), and the read runs on: when it lands it is cached for the next render. 300 ms covers the
|
|
38
|
+
* Delivery API's p90 function time (221 ms over 30 days of production, n = 21,368 CDN misses; 93% <= 300 ms) and a
|
|
39
|
+
* cached edge answer (~50 ms) plus a round trip; see the CHANGELOG.
|
|
40
|
+
*/
|
|
41
|
+
export declare const CARD_SERVER_WAIT_MS = 300;
|
|
42
|
+
/**
|
|
43
|
+
* 2.0.2: how long a placement's failure (a timeout, a network error, a 5xx, a render that stopped waiting) is
|
|
44
|
+
* remembered per process. Inside it, no read of the placement starts: a render with no cached card prints nothing at
|
|
45
|
+
* once, and a stale card paints without a refresh. So an ongoing outage costs at most one short wait per placement per
|
|
46
|
+
* minute. (2.0.1: a failure was remembered 5 s.)
|
|
47
|
+
*/
|
|
48
|
+
export declare const CARD_DELIVERY_FAILURE_MS = 60000;
|
|
27
49
|
/**
|
|
28
50
|
* 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
|
|
29
51
|
* API's own cache (`max-age=60, stale-while-revalidate=240`), so a revoked card is gone within ADR 0001 §7's five to
|
|
@@ -47,6 +69,8 @@ export interface CardDeliveryRuntime {
|
|
|
47
69
|
readonly cache: TtlCache<CachedDelivery>;
|
|
48
70
|
readonly now: () => number;
|
|
49
71
|
readonly timeoutMs?: number;
|
|
72
|
+
/** 2.0.2: the longest a server render waits for a read (`CARD_SERVER_WAIT_MS`). */
|
|
73
|
+
readonly serverWaitMs?: number;
|
|
50
74
|
}
|
|
51
75
|
export declare function cardDeliveryRuntime(): CardDeliveryRuntime;
|
|
52
76
|
/** 2.0.0: the resolver for a read from `baseUrl`: the runtime's own, else the baked kids plus the origin's key set. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-runtime.d.ts","sourceRoot":"","sources":["../../src/builder/delivery-runtime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"delivery-runtime.d.ts","sourceRoot":"","sources":["../../src/builder/delivery-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AASxE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,OAAQ,CAAA;AAC7C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAA;AACtC;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAA;AAC9C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAC1C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IACnC,0GAA0G;IAC1G,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,qBAAqB,CAAA;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,KAAK,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC9B;AAgCD,wBAAgB,mBAAmB,IAAI,mBAAmB,CAEzD;AAED,uHAAuH;AACvH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAQjG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAkBlG"}
|
|
@@ -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
|
|
@@ -27,8 +31,26 @@ import { forgetCardReportsForTests } from './card-report.js';
|
|
|
27
31
|
import { forgetFaceHashesForTests } from './delivered-face.js';
|
|
28
32
|
import { CERT_ISSUER_KID, CERT_ISSUER_PUBLIC_KEY_PEM } from './issuer-key.js';
|
|
29
33
|
import { forgetPageSeedsForTests } from './ssr-seed.js';
|
|
30
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* 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
|
|
36
|
+
* browser read under `clientRead`). Not how long a server render waits: that is `CARD_SERVER_WAIT_MS`.
|
|
37
|
+
*/
|
|
31
38
|
export const CARD_DELIVERY_TIMEOUT_MS = 8_000;
|
|
39
|
+
/**
|
|
40
|
+
* 2.0.2: the longest a SERVER render waits for a placement's read (2.0.1 waited the whole `CARD_DELIVERY_TIMEOUT_MS`,
|
|
41
|
+
* 8 s). Past it the render prints nothing (`delivery_unreachable`), the placement's failure is remembered
|
|
42
|
+
* (`CARD_DELIVERY_FAILURE_MS`), and the read runs on: when it lands it is cached for the next render. 300 ms covers the
|
|
43
|
+
* Delivery API's p90 function time (221 ms over 30 days of production, n = 21,368 CDN misses; 93% <= 300 ms) and a
|
|
44
|
+
* cached edge answer (~50 ms) plus a round trip; see the CHANGELOG.
|
|
45
|
+
*/
|
|
46
|
+
export const CARD_SERVER_WAIT_MS = 300;
|
|
47
|
+
/**
|
|
48
|
+
* 2.0.2: how long a placement's failure (a timeout, a network error, a 5xx, a render that stopped waiting) is
|
|
49
|
+
* remembered per process. Inside it, no read of the placement starts: a render with no cached card prints nothing at
|
|
50
|
+
* once, and a stale card paints without a refresh. So an ongoing outage costs at most one short wait per placement per
|
|
51
|
+
* minute. (2.0.1: a failure was remembered 5 s.)
|
|
52
|
+
*/
|
|
53
|
+
export const CARD_DELIVERY_FAILURE_MS = 60_000;
|
|
32
54
|
/**
|
|
33
55
|
* 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
|
|
34
56
|
* API's own cache (`max-age=60, stale-while-revalidate=240`), so a revoked card is gone within ADR 0001 §7's five to
|
|
@@ -46,6 +68,8 @@ function newCardCache(now) {
|
|
|
46
68
|
ttlMs: CARD_DELIVERY_TTL_MS,
|
|
47
69
|
negativeTtlMs: 5_000,
|
|
48
70
|
staleMs: CARD_DELIVERY_STALE_MS,
|
|
71
|
+
// 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).
|
|
72
|
+
...(typeof document === 'undefined' ? { failureTtlMs: CARD_DELIVERY_FAILURE_MS } : {}),
|
|
49
73
|
// A refresh the host runtime abandoned (workerd cancels a finished request's I/O) never
|
|
50
74
|
// settles; after the deadline plus a margin, the next render starts a new one.
|
|
51
75
|
inflightMaxMs: CARD_DELIVERY_TIMEOUT_MS + 2_000,
|
|
@@ -59,6 +83,7 @@ function defaultRuntime() {
|
|
|
59
83
|
cache: newCardCache(),
|
|
60
84
|
now: Date.now,
|
|
61
85
|
timeoutMs: CARD_DELIVERY_TIMEOUT_MS,
|
|
86
|
+
serverWaitMs: CARD_SERVER_WAIT_MS,
|
|
62
87
|
};
|
|
63
88
|
}
|
|
64
89
|
let runtime = defaultRuntime();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-runtime.js","sourceRoot":"","sources":["../../src/builder/delivery-runtime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"delivery-runtime.js","sourceRoot":"","sources":["../../src/builder/delivery-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
* only with the dated verification beside it; no date, no credential (the name-only face);
|
|
16
16
|
* - the compensation cue's PRESENCE is the only thing read; the words are the locked constant,
|
|
17
17
|
* and an absent or null cue is the pro-bono face with no cue;
|
|
18
|
+
* - the review scope (2.1.0) is the signed `expert.reviewScope`: `'text'` prints the text-only scope line, anything else
|
|
19
|
+
* the full one;
|
|
18
20
|
* - the def's `hidden` set removes only what is hideable (`HIDEABLE_FIELDS`); a def cannot hide
|
|
19
21
|
* the scope line, the credential verification or the certificate link.
|
|
20
22
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope-face.d.ts","sourceRoot":"","sources":["../../src/builder/envelope-face.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"envelope-face.d.ts","sourceRoot":"","sources":["../../src/builder/envelope-face.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,KAAK,oBAAoB,EAEzB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAKN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wLAanB,CAAA;AAoBV,MAAM,WAAW,mBAAmB;IACnC,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,wHAAwH;IACxH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,6HAA6H;IAC7H,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAerG;AAED,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,EAAE,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS,CAK/G;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,eAAe,CAKzF;AAED,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYlH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,mBAAmB,GAAG,IAAI,EACrC,OAAO,GAAE,mBAAwB,GAC/B,oBAAoB,GAAG,IAAI,CAoC7B;AAED,0FAA0F;AAC1F,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,0HAA0H;AAC1H,wBAAgB,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEpF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,mBAAmB,GAAG,IAAI,EACrC,OAAO,GAAE,mBAAwB,GAC/B,MAAM,CAcR"}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
* only with the dated verification beside it; no date, no credential (the name-only face);
|
|
16
16
|
* - the compensation cue's PRESENCE is the only thing read; the words are the locked constant,
|
|
17
17
|
* and an absent or null cue is the pro-bono face with no cue;
|
|
18
|
+
* - the review scope (2.1.0) is the signed `expert.reviewScope`: `'text'` prints the text-only scope line, anything else
|
|
19
|
+
* the full one;
|
|
18
20
|
* - the def's `hidden` set removes only what is hideable (`HIDEABLE_FIELDS`); a def cannot hide
|
|
19
21
|
* the scope line, the credential verification or the certificate link.
|
|
20
22
|
*
|
|
@@ -26,7 +28,7 @@
|
|
|
26
28
|
* it only returns null when the verified content cannot make a face (no reviewer, no verify URL).
|
|
27
29
|
*/
|
|
28
30
|
import { renderCertBlock, } from '../components/render-cert-block.js';
|
|
29
|
-
import { accentFg, HIDEABLE_FIELDS, isOpaqueHexColor } from '../components/render-def.js';
|
|
31
|
+
import { accentFg, HIDEABLE_FIELDS, isOpaqueHexColor, } from '../components/render-def.js';
|
|
30
32
|
import { renderReaderFace } from '../reader/render.js';
|
|
31
33
|
/**
|
|
32
34
|
* Every field id `renderCertBlock` places, in its canonical order. A def-driven face places all of
|
|
@@ -50,6 +52,9 @@ const MODES = ['banner', 'sidebar', 'floating'];
|
|
|
50
52
|
function isMode(v) {
|
|
51
53
|
return typeof v === 'string' && MODES.includes(v);
|
|
52
54
|
}
|
|
55
|
+
function isReviewScope(v) {
|
|
56
|
+
return v === 'text' || v === 'text_and_sources';
|
|
57
|
+
}
|
|
53
58
|
function text(v) {
|
|
54
59
|
return typeof v === 'string' ? v : '';
|
|
55
60
|
}
|
|
@@ -147,6 +152,9 @@ export function envelopeCardInput(content, renderDef, options = {}) {
|
|
|
147
152
|
certificateUrl: verifyUrl,
|
|
148
153
|
// Presence only: a cue string renders the locked constant; absent or null is pro-bono.
|
|
149
154
|
compensationCue: optionalText(expert.compensationCue) ? undefined : null,
|
|
155
|
+
// 2.1.0: what the review covered, as signed. Only a value this version knows is carried; absent stays absent, so
|
|
156
|
+
// an envelope signed before the field existed maps to exactly the 2.0.2 input.
|
|
157
|
+
...(isReviewScope(expert.reviewScope) ? { reviewScope: expert.reviewScope } : {}),
|
|
150
158
|
},
|
|
151
159
|
};
|
|
152
160
|
}
|