@certrev/cert-block 1.3.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/README.md +162 -9
  3. package/dist/builder/card-beacon.d.ts +73 -0
  4. package/dist/builder/card-beacon.d.ts.map +1 -0
  5. package/dist/builder/card-beacon.js +178 -0
  6. package/dist/builder/card-beacon.js.map +1 -0
  7. package/dist/builder/card-contract.d.ts +151 -0
  8. package/dist/builder/card-contract.d.ts.map +1 -0
  9. package/dist/builder/card-contract.js +286 -0
  10. package/dist/builder/card-contract.js.map +1 -0
  11. package/dist/builder/card-placement.d.ts +45 -0
  12. package/dist/builder/card-placement.d.ts.map +1 -0
  13. package/dist/builder/card-placement.js +193 -0
  14. package/dist/builder/card-placement.js.map +1 -0
  15. package/dist/builder/card-report.d.ts +49 -0
  16. package/dist/builder/card-report.d.ts.map +1 -0
  17. package/dist/builder/card-report.js +97 -0
  18. package/dist/builder/card-report.js.map +1 -0
  19. package/dist/builder/cert-review-card.d.ts +7 -5
  20. package/dist/builder/cert-review-card.d.ts.map +1 -1
  21. package/dist/builder/cert-review-card.js +202 -170
  22. package/dist/builder/cert-review-card.js.map +1 -1
  23. package/dist/builder/contract-card.d.ts +70 -0
  24. package/dist/builder/contract-card.d.ts.map +1 -0
  25. package/dist/builder/contract-card.js +191 -0
  26. package/dist/builder/contract-card.js.map +1 -0
  27. package/dist/builder/delivered-face.d.ts +9 -0
  28. package/dist/builder/delivered-face.d.ts.map +1 -1
  29. package/dist/builder/delivered-face.js +18 -5
  30. package/dist/builder/delivered-face.js.map +1 -1
  31. package/dist/builder/delivery-runtime.d.ts +27 -3
  32. package/dist/builder/delivery-runtime.d.ts.map +1 -1
  33. package/dist/builder/delivery-runtime.js +40 -4
  34. package/dist/builder/delivery-runtime.js.map +1 -1
  35. package/dist/builder/index.d.ts +7 -4
  36. package/dist/builder/index.d.ts.map +1 -1
  37. package/dist/builder/index.js +8 -4
  38. package/dist/builder/index.js.map +1 -1
  39. package/dist/builder/ssr-seed.d.ts +23 -4
  40. package/dist/builder/ssr-seed.d.ts.map +1 -1
  41. package/dist/builder/ssr-seed.js +29 -6
  42. package/dist/builder/ssr-seed.js.map +1 -1
  43. package/dist/builder/version.d.ts +3 -0
  44. package/dist/builder/version.d.ts.map +1 -0
  45. package/dist/builder/version.js +3 -0
  46. package/dist/builder/version.js.map +1 -0
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +2 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/reader/reader-css.generated.d.ts +1 -1
  52. package/dist/reader/reader-css.generated.d.ts.map +1 -1
  53. package/dist/reader/reader-css.generated.js +1 -1
  54. package/dist/reader/reader-css.generated.js.map +1 -1
  55. package/dist/reader/render.d.ts.map +1 -1
  56. package/dist/reader/render.js +71 -34
  57. package/dist/reader/render.js.map +1 -1
  58. package/dist/reader/tokens.d.ts +2 -0
  59. package/dist/reader/tokens.d.ts.map +1 -1
  60. package/dist/reader/tokens.js +28 -6
  61. package/dist/reader/tokens.js.map +1 -1
  62. package/dist/verify/get-verified-delivery.d.ts +32 -0
  63. package/dist/verify/get-verified-delivery.d.ts.map +1 -1
  64. package/dist/verify/get-verified-delivery.js +30 -5
  65. package/dist/verify/get-verified-delivery.js.map +1 -1
  66. package/dist/verify/key-set.d.ts +67 -0
  67. package/dist/verify/key-set.d.ts.map +1 -0
  68. package/dist/verify/key-set.js +190 -0
  69. package/dist/verify/key-set.js.map +1 -0
  70. package/package.json +115 -112
  71. package/src/builder/card-beacon.ts +201 -0
  72. package/src/builder/card-contract.ts +336 -0
  73. package/src/builder/card-placement.ts +208 -0
  74. package/src/builder/card-report.ts +126 -0
  75. package/src/builder/cert-review-card.tsx +285 -201
  76. package/src/builder/contract-card.tsx +216 -0
  77. package/src/builder/delivered-face.ts +18 -4
  78. package/src/builder/delivery-runtime.ts +46 -4
  79. package/src/builder/index.tsx +16 -4
  80. package/src/builder/ssr-seed.ts +37 -7
  81. package/src/builder/version.ts +2 -0
  82. package/src/index.ts +9 -0
  83. package/src/reader/reader-css.generated.ts +1 -1
  84. package/src/reader/reader.css +297 -2
  85. package/src/reader/render.ts +87 -38
  86. package/src/reader/tokens.ts +29 -6
  87. package/src/verify/get-verified-delivery.ts +54 -5
  88. package/src/verify/key-set.ts +225 -0
@@ -25,10 +25,13 @@ 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
27
  import { getVerifiedDelivery, parseDesignPin, readVerifiedDelivery, } from '../verify/get-verified-delivery.js';
28
+ import { acceptedCardBinding, cardDigestFor, cardDigestMatches, cardMatchesPlacement, cardPartsFor, parseCardDocument, } from './card-contract.js';
28
29
  import { CARD_READER_CSS } from './card-reader-css.js';
30
+ import { CARD_FALLBACK_REASONS, reportCardFallbackInBrowser, reportCardFallbackOnServer, } from './card-report.js';
29
31
  import { BUILDER_CERT_CHROME_KEYS } from './cert-chrome-data.js';
32
+ import { ContractCardFace } from './contract-card.js';
30
33
  import { deliveredFaceDigest, deliveredFaceHtml, deliveredFaceMatches, faceHashesFor, showsWholeCard, } from './delivered-face.js';
31
- import { cardDeliveryRuntime } from './delivery-runtime.js';
34
+ import { cardDeliveryRuntime, cardResolveKidFor } from './delivery-runtime.js';
32
35
  import { envelopeCardHtml, envelopeCardInput, isReaderFaceDef } from './envelope-face.js';
33
36
  import { pageHoldsServerHtml, pageRecordFor, SEED_ATTRIBUTE, seedFor, serializeFallback, serializeSeed, streamedRecordFor, subscribeStreamedRecords, watchStreamedRecords, withoutPhotos, } from './ssr-seed.js';
34
37
  /**
@@ -50,27 +53,6 @@ export const CERT_COMPONENT_NAME = 'CertREV Cert';
50
53
  function text(value) {
51
54
  return typeof value === 'string' ? value : '';
52
55
  }
53
- /** The same rule where ABSENT and EMPTY are different renders (`authorTitle`, `bio`). */
54
- function optionalText(value) {
55
- return text(value) || undefined;
56
- }
57
- /**
58
- * The fused credential pair — accepted ONLY when both halves are present AND both are strings.
59
- *
60
- * The R1 gate ("a credential never displays without its dated verification") is THIS FUNCTION,
61
- * not the type: the pair arrives as untyped CMS JSON, and the old truthiness check keyed the
62
- * whole pair off the OBJECT, so `{credential:'MD'}` forwarded `verifiedAt: undefined` into the
63
- * renderer and crashed. Anything malformed — a half pair, a bare string, an array, a number
64
- * where a date belongs — degrades to the name-only face, which is the honest render of a
65
- * delivery whose verification cannot be read.
66
- */
67
- function fusedCredential(pair) {
68
- if (!pair || typeof pair !== 'object')
69
- return null;
70
- const credential = text(pair.credential);
71
- const verifiedAt = text(pair.verifiedAt);
72
- return credential && verifiedAt ? { credential, verifiedAt } : null;
73
- }
74
56
  /**
75
57
  * The delivery marker, accepted only as `{ v: 1, baseUrl }` with `baseUrl` an `https:` ORIGIN on
76
58
  * `certrev.com` or one of its subdomains (no path, query, credentials or port). Anything else is
@@ -207,9 +189,13 @@ function EnvelopeFace(props) {
207
189
  // biome-ignore lint/security/noDangerouslySetInnerHtml: renderCertBlock is the escaping-safe SSR string renderer; a delivered face paints only when its bytes hash to the signed faceDigest
208
190
  dangerouslySetInnerHTML: { __html: props.html } }));
209
191
  }
210
- /** The reader face paints the author's avatar small (`.certrev-r-face.sm`); every other avatar is the expert's. */
192
+ /**
193
+ * Whose avatar a broken photo is. The banner's two bylines take the same face (1.3.1; the author's was the small
194
+ * `.certrev-r-face.sm` before), so the person is read from the byline: the author's carries the plain "Written by"
195
+ * role, the reviewer's "Reviewed by" (`.on`), and the sidebar's and the memo's reviewer has no role at all.
196
+ */
211
197
  function photoPerson(img) {
212
- return img.parentElement?.classList.contains('sm') ? 'author' : 'expert';
198
+ return img.closest('.certrev-r-by')?.querySelector('.certrev-r-role:not(.on)') ? 'author' : 'expert';
213
199
  }
214
200
  /**
215
201
  * 1.2.0-canary.5: a pinned read paints only the design it pinned, a reader def at exactly that version. A def served
@@ -245,13 +231,16 @@ function ReaderEnvelopeFace(props) {
245
231
  * block that shows the whole card, a digest the verified content signs for the def's version, and a face whose UTF-8
246
232
  * bytes hash to it (`delivered-face.ts`). Suspends once while WebCrypto hashes a face it has not seen.
247
233
  */
248
- function deliveredFaceFor(payload, renderDef, face, props) {
234
+ function deliveredFaceFor(payload, renderDef, face, props,
235
+ /** 2.0.0: the hashes the read computed (`VerifiedDelivery.faceHashes`): then nothing suspends here. */
236
+ hashed) {
249
237
  if (!face || props.design || !showsWholeCard(props.part))
250
238
  return undefined;
251
239
  const digest = deliveredFaceDigest(payload.content, renderDef, face);
252
240
  if (!digest)
253
241
  return undefined;
254
- return deliveredFaceMatches(suspendOnFaceHashes(face), digest) ? face : undefined;
242
+ const hashes = hashed !== undefined ? hashed : suspendOnFaceHashes(face);
243
+ return deliveredFaceMatches(hashes, digest) ? face : undefined;
255
244
  }
256
245
  /**
257
246
  * 1.3.0: the delivered face, in the card's own wrapper (the same attributes as any envelope face, and
@@ -290,48 +279,115 @@ function paintEnvelope(payload, renderDef, props, seed) {
290
279
  return null;
291
280
  return _jsx(EnvelopeFace, { html: renderCertBlock(input), defVersion: defVersion, seed: seed });
292
281
  }
293
- const FALLBACK_LAYOUTS = ['banner', 'sidebar', 'floating'];
282
+ /** Where the server painted no face, an empty hidden element carries the record that says so. */
283
+ function NoFace(props) {
284
+ return _jsx("div", { hidden: true, [SEED_ATTRIBUTE]: props.record });
285
+ }
294
286
  /**
295
- * The options face a block with the delivery marker paints in place of the envelope (1.2.0), or null. Its placement is
296
- * the block's own `mode`, else its def's layout, as the envelope face's is, else the banner bridge. A pinned card (the
297
- * canary replica) paints it too, so the replica shows what a brand's page shows when CertREV is not reached; its
298
- * record names the pin and says `'options'`, so a capture can never take it for the pinned design.
287
+ * 2.0.0: reports one fallback (`card-report.ts`) and renders nothing (no element, no marker: it changes no byte of the
288
+ * page). On a server it reports as it renders; in a browser, once it has mounted. 2.0.1: the report is also a beacon to
289
+ * `origin`, the delivery origin the block reads (none: CertREV's production origin).
299
290
  */
300
- function fallbackFace(props) {
301
- const { block } = props;
302
- const layout = block.renderDef?.layout;
303
- const mode = typeof block.mode === 'string' && FALLBACK_LAYOUTS.includes(block.mode)
304
- ? block.mode
305
- : typeof layout === 'string' && FALLBACK_LAYOUTS.includes(layout)
306
- ? layout
307
- : undefined;
308
- return optionsFaceHtml(block, mode);
291
+ function FallbackReport(props) {
292
+ const { detail, server, origin } = props;
293
+ if (server)
294
+ reportCardFallbackOnServer(detail, origin);
295
+ React.useEffect(() => {
296
+ reportCardFallbackInBrowser(detail, origin);
297
+ }, [detail, origin]);
298
+ return null;
309
299
  }
310
- /** The block's options face, stamped with a fallback record when the server wrote one (`ssr-seed.ts`). */
311
- function OptionsFace(props) {
312
- return (_jsx("div", { "data-certrev-cert-chrome": "", "data-certrev-strings-version": optionalText(props.block.stringsVersion), "data-certrev-def-version": typeof props.block.renderDef?.v === 'number' ? props.block.renderDef.v : undefined, ...(props.record === undefined ? {} : { [SEED_ATTRIBUTE]: props.record }),
313
- // biome-ignore lint/security/noDangerouslySetInnerHtml: renderCertBlock is the escaping-safe SSR string renderer
314
- dangerouslySetInnerHTML: { __html: props.html } }));
300
+ /** A face with its fallback report beside it. */
301
+ function withReport(face, reason, props, server, certId, status) {
302
+ const detail = {
303
+ reason,
304
+ platform: 'builder',
305
+ externalId: props.externalId,
306
+ ...(certId === undefined ? {} : { certId }),
307
+ ...(status === undefined ? {} : { status }),
308
+ };
309
+ return (_jsxs(_Fragment, { children: [face, _jsx(FallbackReport, { detail: detail, server: server, origin: props.baseUrl })] }));
315
310
  }
316
- /** Where the server painted no face, an empty hidden element carries the record that says so. */
317
- function NoFace(props) {
318
- return _jsx("div", { hidden: true, [SEED_ATTRIBUTE]: props.record });
311
+ function contractOutcome(binding, rawCard, payload, props,
312
+ /** The digest the read computed (`VerifiedDelivery.cardDigest`): then nothing suspends here. */
313
+ digested) {
314
+ if (binding === 'unsupported')
315
+ return { kind: 'none', reason: 'card_unsupported_contract' };
316
+ // CertREV's replica pin: the signed card was painted for one design version; another pin gets nothing.
317
+ if (props.design && props.design.version !== binding.defVersion)
318
+ return { kind: 'none', reason: 'card_pin_mismatch' };
319
+ if (rawCard === undefined || rawCard === null)
320
+ return { kind: 'none', reason: 'card_missing' };
321
+ const card = parseCardDocument(rawCard);
322
+ if (!card || !cardMatchesPlacement(card, binding, payload, props.externalId)) {
323
+ return { kind: 'none', reason: 'card_verify_failed' };
324
+ }
325
+ let digest;
326
+ if (digested !== undefined) {
327
+ digest = digested;
328
+ }
329
+ else {
330
+ // A page's seed: the one suspension of this render (a render that read waits on nothing but its read).
331
+ const memo = cardDigestFor(card);
332
+ digest = memo.settled ? memo.settled.digest : suspendUntil(memo.pending);
333
+ }
334
+ if (!cardDigestMatches(digest, binding))
335
+ return { kind: 'none', reason: 'card_verify_failed' };
336
+ // A block with nothing of this design to print (a memo block of a memo-less card, or of a sidebar design) prints
337
+ // nothing, by design: not a fallback.
338
+ const names = cardPartsFor(card, props.part);
339
+ return names.length === 0 ? { kind: 'none' } : { kind: 'card', card, names };
340
+ }
341
+ /** The `'none'` record of a contract-1 placement, with its reason when it is a fallback. */
342
+ function contractNone(props, reason, server, certId) {
343
+ const record = serializeFallback({
344
+ baseUrl: props.baseUrl,
345
+ externalId: props.externalId,
346
+ ...(props.design ? { design: props.design } : {}),
347
+ face: 'none',
348
+ ...(reason ? { reason } : {}),
349
+ });
350
+ const face = _jsx(NoFace, { record: record });
351
+ return reason ? withReport(face, reason, props, server, certId) : face;
319
352
  }
320
- /** What a card with no verified envelope paints: the options face when CertREV was not reached, else nothing. */
321
- function settleWithoutEnvelope(props, unreachable) {
322
- const html = unreachable ? fallbackFace(props) : null;
323
- const face = html === null ? 'none' : 'options';
353
+ /**
354
+ * What a card with no verified envelope paints: nothing, and a `'none'` record. 2.0.1: CertREV not reached prints
355
+ * nothing too (it painted the block's export-time options through 2.0.0), and the record names `delivery_unreachable`
356
+ * so the browser reports it as well (with CertREV's HTTP status when it answered with one); an unknown kid is reported as
357
+ * `unknown_key`, and (2.0.1) an envelope that does not verify as `envelope_verify_failed`. A definitive no (revoked,
358
+ * expired, for another entry, not found) prints nothing, by design, unreported.
359
+ */
360
+ function settleWithoutEnvelope(props, verdict, server) {
361
+ const reason = verdict.unreachable
362
+ ? 'delivery_unreachable'
363
+ : verdict.reason === 'unknown_key'
364
+ ? 'unknown_key'
365
+ : verdict.reason !== undefined && ENVELOPE_VERIFY_FAILURES.has(verdict.reason)
366
+ ? 'envelope_verify_failed'
367
+ : undefined;
324
368
  const record = serializeFallback({
325
369
  baseUrl: props.baseUrl,
326
370
  externalId: props.externalId,
327
371
  ...(props.design ? { design: props.design } : {}),
328
- face,
372
+ face: 'none',
373
+ ...(reason ? { reason } : {}),
329
374
  });
330
- return html === null ? _jsx(NoFace, { record: record }) : _jsx(OptionsFace, { block: props.block, html: html, record: record });
375
+ const none = _jsx(NoFace, { record: record });
376
+ return reason
377
+ ? withReport(none, reason, props, server, undefined, verdict.unreachable ? verdict.status : undefined)
378
+ : none;
331
379
  }
380
+ /** 2.0.1: the kernel's suppress reasons that mean the envelope itself did not verify (reported, never silent). */
381
+ const ENVELOPE_VERIFY_FAILURES = new Set([
382
+ 'invalid_signature',
383
+ 'unsupported_alg',
384
+ 'platform_mismatch',
385
+ 'content_drift',
386
+ 'unsupported_contract_version',
387
+ ]);
332
388
  /**
333
389
  * Paint what the page's record for this placement says: a seed its envelope (judged at the browser's clock first when
334
- * `judge`), an `'options'` record the options face, a `'none'` record nothing.
390
+ * `judge`), a `'none'` record nothing, and (2.0.1) a 2.0.0 server's `'options'` record nothing too.
335
391
  */
336
392
  function paintRecord(record, props, context, judge) {
337
393
  if ('seed' in record) {
@@ -344,9 +400,25 @@ function paintRecord(record, props, context, judge) {
344
400
  return null;
345
401
  }
346
402
  }
403
+ const { seed } = record;
404
+ // 2.0.0: a seed whose signed binding names a contract prints the card it carries, only after the browser has
405
+ // checked it against that binding itself; otherwise nothing. Never a 1.3.1 face for such a placement.
406
+ const binding = acceptedCardBinding(seed.payload.content);
407
+ if (binding !== null) {
408
+ const outcome = contractOutcome(binding, seed.card, seed.payload, props);
409
+ if (outcome.kind === 'card')
410
+ return _jsx(ContractCardFace, { card: outcome.card, names: outcome.names, seed: record.raw, origin: props.baseUrl });
411
+ // Hydrating over the card the server printed, which the browser could not confirm (no WebCrypto): adopt the
412
+ // server's element; the render right after hydration prints nothing in its place.
413
+ if (!judge && outcome.reason === 'card_verify_failed' && seed.card !== undefined)
414
+ return _jsx(ServerFaceUntilHydrated, {});
415
+ // Nothing of this design for this block (a memo block of a sidebar card): nothing, and no record of its own.
416
+ if (outcome.reason === undefined)
417
+ return null;
418
+ return contractNone(props, outcome.reason, false, seed.payload.certId);
419
+ }
347
420
  // 1.3.0: a seed that names a delivered face repaints it only after the browser hashes it against the seed
348
421
  // payload's own digest; otherwise the seed paints what 1.2.1 paints for it.
349
- const { seed } = record;
350
422
  const delivered = deliveredFaceFor(seed.payload, seed.renderDef, seed.face, props);
351
423
  if (delivered && seed.renderDef) {
352
424
  return _jsx(DeliveredEnvelopeFace, { face: delivered, defVersion: seed.renderDef.v, seed: record.raw });
@@ -356,13 +428,20 @@ function paintRecord(record, props, context, judge) {
356
428
  return _jsx(ServerFaceUntilHydrated, {});
357
429
  return paintEnvelope(seed.payload, seed.renderDef, props, record.raw);
358
430
  }
359
- const html = record.fallback.face === 'options' ? fallbackFace(props) : null;
360
- return html === null ? (_jsx(NoFace, { record: record.raw })) : (_jsx(OptionsFace, { block: props.block, html: html, record: record.raw }));
431
+ const none = _jsx(NoFace, { record: record.raw });
432
+ // 2.0.1: an `'options'` record (a page a 2.0.0 server rendered while CertREV was not reached) prints nothing too.
433
+ if (record.fallback.face === 'options')
434
+ return withReport(none, 'delivery_unreachable', props, false);
435
+ // 2.0.0: a contract-1 placement's record names why it printed nothing; the browser reports it too.
436
+ const reason = record.fallback.reason;
437
+ return isFallbackReason(reason) ? withReport(none, reason, props, false) : none;
438
+ }
439
+ function isFallbackReason(value) {
440
+ return typeof value === 'string' && CARD_FALLBACK_REASONS.includes(value);
361
441
  }
362
- /** What a card the client mounts with no record and no `clientRead` paints: the options face, or nothing. */
442
+ /** 2.0.1: a card the client mounts with no record and `clientRead` off prints nothing (2.0.0: the options face). */
363
443
  function clientMountFace(props) {
364
- const html = fallbackFace(props);
365
- return html === null ? null : _jsx(OptionsFace, { block: props.block, html: html });
444
+ return withReport(null, 'client_read_off', props, false);
366
445
  }
367
446
  const pendingRecord = () => 'pending';
368
447
  /**
@@ -378,9 +457,10 @@ function StreamedRecordCard(props) {
378
457
  const record = React.useSyncExternalStore(subscribeStreamedRecords, () => streamedRecordFor(props.baseUrl, props.externalId, props.design), pendingRecord);
379
458
  if (record === 'pending')
380
459
  return null;
381
- if (record === 'done')
382
- return clientMountFace(props);
383
460
  const context = { platform: 'builder', externalId: props.externalId, now: new Date(rt.now()) };
461
+ // 2.0.0: the page loaded with no record for this placement: with `clientRead` (the default), the one read.
462
+ if (record === 'done')
463
+ return props.clientRead ? readAndPaint(props, context, true) : clientMountFace(props);
384
464
  return paintRecord(record, props, context, true);
385
465
  }
386
466
  const subscribeNever = () => () => { };
@@ -404,23 +484,24 @@ function useHydrating() {
404
484
  * as through 1.1.1, and write a record of what it painted (`ssr-seed.ts`):
405
485
  * - a verified envelope: its face and the envelope seed (less the fields the def hides, and with no signature if
406
486
  * it hid any);
407
- * - CertREV not reached (a timeout, a network error, a 5xx, a body that is not JSON): the block's own options face,
408
- * as 0.5.x painted it, and an `'options'` record (a pinned card too: the record names its pin);
487
+ * - CertREV not reached (a timeout, a network error, a 5xx, a body that is not JSON) with no verified answer inside
488
+ * the stale window: nothing, and a `'none'` record naming `delivery_unreachable` (2.0.1; through 2.0.0 the
489
+ * block's own options face and an `'options'` record);
409
490
  * - a definitive no (revoked, expired, unverifiable, for another entry, not found): nothing, and a `'none'` record
410
491
  * on an empty hidden element.
411
492
  * - Browser, the page carries this placement's record: paint what it says. A seed paints its envelope; while
412
493
  * hydrating the server's verdict stands (the tree is the server's, byte for byte), and once hydrated the lifecycle
413
- * and subject are judged at the browser's clock, so a card that expired since the server render is taken down. An
414
- * `'options'` record paints the options face, a `'none'` record nothing. This holds when React renders the card
494
+ * and subject are judged at the browser's clock, so a card that expired since the server render is taken down. A
495
+ * `'none'` record, and (2.0.1) a 2.0.0 server's `'options'` record, print nothing. This holds when React renders the card
415
496
  * again on the client after a hydration error elsewhere on the page: the record is still in the document (or in
416
497
  * the page's memory of it), so the browser repaints the server's answer and reads nothing.
417
498
  * - Browser, hydrating with no record: server HTML from before 1.2.0 painted nothing here, so nothing.
418
499
  * - Browser, a card mounted on the client with no record (a client-side navigation to an article this page never
419
- * server-rendered, Builder's editor): the block's options face, pinned or not. With `clientRead`, instead, the
420
- * one read, settled exactly as on the server.
500
+ * server-rendered, Builder's editor): with `clientRead` (the default), the one read, settled exactly as on the
501
+ * server; with `clientRead={false}`, nothing (`client_read_off`; 2.0.0: the block's options face).
421
502
  * - Browser, the same while the document is still loading (1.2.1; React rendered the card on the client before the
422
- * server's streamed record arrived, `ssr-seed.ts`): nothing until the record arrives, then what it says; the
423
- * options face, or nothing, if the page loads without one (`StreamedRecordCard`). `clientRead` reads as above.
503
+ * server's streamed record arrived, `ssr-seed.ts`): nothing until the record arrives, then what it says; if the page
504
+ * loads without one, what a client mount does (`StreamedRecordCard`). `clientRead` reads as above.
424
505
  *
425
506
  * WHICH OF THE TWO FIRST CASES THIS RENDER IS (server or browser) is decided from what the render can observe, with
426
507
  * no switch a test could set. A server render and a hydration are both "hydrating" to React and both see a `document`
@@ -453,7 +534,8 @@ function EnvelopeCertReviewCard(props) {
453
534
  // 1.2.1, latched at mount: a client mount with no record and no `clientRead` while the page is still loading waits
454
535
  // for a record the server may still be streaming, for the card's whole life (so it never swaps components when the
455
536
  // record lands).
456
- const [awaitsStream] = React.useState(() => inBrowser && !hydrating && fromPage === undefined && !props.clientRead && document.readyState === 'loading');
537
+ // 2.0.0: whatever `clientRead` says: a card that read instead of waiting would miss the record the server streams.
538
+ const [awaitsStream] = React.useState(() => inBrowser && !hydrating && fromPage === undefined && document.readyState === 'loading');
457
539
  if (awaitsStream)
458
540
  return _jsx(StreamedRecordCard, { ...props });
459
541
  if (inBrowser) {
@@ -464,6 +546,14 @@ function EnvelopeCertReviewCard(props) {
464
546
  if (!props.clientRead)
465
547
  return clientMountFace(props);
466
548
  }
549
+ return readAndPaint(props, context, inBrowser);
550
+ }
551
+ /**
552
+ * The Delivery read and its paint: a server render's, or a browser's (`clientRead`). Suspends on the read, and (1.3.0)
553
+ * on a delivered face's hashes or (2.0.0) on a card document's digest.
554
+ */
555
+ function readAndPaint(props, context, inBrowser) {
556
+ const rt = cardDeliveryRuntime();
467
557
  const { design } = props;
468
558
  const read = {
469
559
  baseUrl: props.baseUrl,
@@ -472,7 +562,7 @@ function EnvelopeCertReviewCard(props) {
472
562
  context,
473
563
  cache: rt.cache,
474
564
  design,
475
- resolveKid: rt.resolveKid,
565
+ resolveKid: cardResolveKidFor(rt, props.baseUrl),
476
566
  fetchImpl: rt.fetchImpl(),
477
567
  timeoutMs: rt.timeoutMs,
478
568
  };
@@ -480,8 +570,13 @@ function EnvelopeCertReviewCard(props) {
480
570
  ? `${props.baseUrl}|${props.externalId}|design=${design.version}|${design.brand ?? ''}`
481
571
  : `${props.baseUrl}|${props.externalId}`;
482
572
  const settled = readVerifiedDelivery(read) ?? suspendOn(key, () => getVerifiedDelivery(read));
483
- if (settled.verdict.decision !== 'render')
484
- return settleWithoutEnvelope(props, settled.unreachable === true);
573
+ if (settled.verdict.decision !== 'render') {
574
+ return settleWithoutEnvelope(props, {
575
+ unreachable: settled.unreachable === true,
576
+ reason: settled.verdict.reason,
577
+ ...(settled.status === undefined ? {} : { status: settled.status }),
578
+ }, !inBrowser);
579
+ }
485
580
  // The face is painted from the seed's payload (what the def hides is already out of it), so the server's HTML and
486
581
  // the browser's, which paints from the seed, are the same bytes and neither holds a hidden field.
487
582
  const seed = seedFor({
@@ -492,113 +587,50 @@ function EnvelopeCertReviewCard(props) {
492
587
  signature: settled.signature,
493
588
  renderDef: settled.renderDef,
494
589
  });
590
+ // 2.0.0: a placement whose signed binding names a contract prints CertREV's card, or nothing; never a face of its own.
591
+ const binding = acceptedCardBinding(seed.payload.content);
592
+ if (binding !== null) {
593
+ const outcome = contractOutcome(binding, settled.card, seed.payload, props, settled.cardDigest);
594
+ if (outcome.kind === 'card') {
595
+ return (_jsx(ContractCardFace, { card: outcome.card, names: outcome.names, seed: serializeSeed({ ...seed, card: outcome.card }), origin: props.baseUrl }));
596
+ }
597
+ // Nothing of this design for this block, by design: nothing at all, and NO record. A record here would sit under the
598
+ // same placement as the block that printed the card (a split header and memo pair) and, read last on hydration,
599
+ // would take that block's card down (break-it B2).
600
+ if (outcome.reason === undefined)
601
+ return null;
602
+ return contractNone(props, outcome.reason, !inBrowser, seed.payload.certId);
603
+ }
495
604
  // 1.3.0: the server-rendered face the Delivery API served beside the envelope, when its bytes hash to the digest the
496
605
  // verified payload signs; the seed then carries it, so the browser can repaint (and re-check) the same face.
497
- const delivered = deliveredFaceFor(seed.payload, seed.renderDef, settled.face, props);
606
+ const delivered = deliveredFaceFor(seed.payload, seed.renderDef, settled.face, props, settled.faceHashes);
498
607
  if (delivered && seed.renderDef) {
499
608
  return (_jsx(DeliveredEnvelopeFace, { face: delivered, defVersion: seed.renderDef.v, seed: serializeSeed({ ...seed, face: delivered }) }));
500
609
  }
501
610
  return paintEnvelope(seed.payload, seed.renderDef, props, serializeSeed(seed));
502
611
  }
503
612
  export function CertReviewCard(props) {
504
- // 1.1.0: a block that carries the delivery marker paints from the signed envelope and the
505
- // brand's def, never from the options beside it. No marker (every entry exported before 1.1.0)
506
- // takes the options path below, unchanged from 1.0.3.
507
- // 1.2.0-canary.5: a design pin (CertREV's canary replica only) fails closed. One that cannot be read renders
508
- // nothing, and so does one on a block without the delivery marker: the options face is never the pinned design.
509
- // 1.2.0: where the envelope cannot be had (CertREV not reached, or no server render and no `clientRead`), a block
510
- // with the marker paints this options face too, pinned or not: see `EnvelopeCertReviewCard`.
613
+ // 1.1.0: a block that carries the delivery marker paints from the signed envelope and the brand's def, never from
614
+ // the options beside it. 2.0.1: a block WITHOUT the marker (an entry exported before 1.1.0, a block dropped in by
615
+ // hand) prints nothing at all and reports `no_marker`; through 2.0.0 it painted its export-time options (a reviewer
616
+ // name, a credential, a memo, a verify link nobody had signed). A marker this client does not accept, or a block
617
+ // with no Builder entry to read for, prints nothing and reports `marker_invalid`.
618
+ // 1.2.0-canary.5: a design pin (CertREV's canary replica only) that cannot be read renders nothing.
511
619
  const design = parseDesignPin(props.builderContext?.context?.certrevDesignPin);
512
620
  if (design === 'invalid')
513
621
  return null;
514
- if (props.delivery != null) {
515
- const marker = acceptedDeliveryMarker(props.delivery);
516
- const entryId = text(props.builderContext?.content?.id);
517
- if (!marker || !entryId)
518
- return null;
519
- return (_jsx(Suspense, { fallback: null, children: _jsx(EnvelopeCertReviewCard, { baseUrl: marker.baseUrl, externalId: entryId, mode: props.mode, part: props.part, design: design, block: props, clientRead: props.clientRead === true }) }));
520
- }
521
- if (design)
522
- return null;
523
- const html = optionsFaceHtml(props, 'banner');
524
- if (html === null)
525
- return null; // no chrome pre-cert (or an unreadable delivery)
526
- return _jsx(OptionsFace, { block: props, html: html });
622
+ const entryId = text(props.builderContext?.content?.id);
623
+ if (props.delivery == null)
624
+ return _jsx(BlockReport, { reason: "no_marker", externalId: entryId });
625
+ const marker = acceptedDeliveryMarker(props.delivery);
626
+ if (!marker || !entryId)
627
+ return _jsx(BlockReport, { reason: "marker_invalid", externalId: entryId });
628
+ return (_jsx(Suspense, { fallback: null, children: _jsx(EnvelopeCertReviewCard, { baseUrl: marker.baseUrl, externalId: entryId, mode: props.mode, part: props.part, design: design, block: props, clientRead: props.clientRead !== false }) }));
527
629
  }
528
- /**
529
- * The options face's HTML (1.0.3's, unchanged), or null when the block lacks a reviewer or a certificate link. `bridge`
530
- * is the placement a block with no `mode` gets: `'banner'` for a block without the delivery marker (the bridge below);
531
- * the def's layout for a marked block's fallback (`fallbackFace`).
532
- */
533
- function optionsFaceHtml(props, bridge) {
534
- const reviewerName = text(props.reviewerName);
535
- const verifyUrl = text(props.verifyUrl);
536
- if (!reviewerName || !verifyUrl)
537
- return null;
538
- // Name-only face when the pair is unreadable, or when the brand set showCredentials:false.
539
- const showCred = props.display?.showCredentials !== false;
540
- const withCred = showCred ? fusedCredential(props.credentialVerification) : null;
541
- const tokens = props.renderDef?.tokens;
542
- const theme = tokens
543
- ? {
544
- accentColor: optionalText(tokens.accentColor),
545
- surface: optionalText(tokens.surface),
546
- cornerRadius: optionalText(tokens.cornerRadius),
547
- fontSlot: optionalText(tokens.fontSlot),
548
- // v2 brand-ink (post-demo): the bar + free-content ink follow the def.
549
- barInk: optionalText(tokens.barInk),
550
- inkColor: optionalText(tokens.inkColor),
551
- }
552
- : undefined;
553
- return renderCertBlock({
554
- // COMPATIBILITY BRIDGE, NOT THE DESIGN. Delete this fallback once the exporter emits an
555
- // explicit `mode` and existing entries have been backfilled; until then it must stay.
556
- //
557
- // `renderCertBlock` owns the ONE placement default (absent or unrecognised ⇒ sidebar) and
558
- // that decision STANDS: it is what a direct caller gets, and `sidebar` is the registered
559
- // input's `defaultValue`, so every block created in the editor from now on carries an
560
- // explicit `mode` and never reaches this line.
561
- //
562
- // The problem is the entries that already exist. `mode` is a PLACEMENT input, not one of
563
- // the 20 wire keys (`BUILDER_CERT_CHROME_KEYS`), and the exporter emits only the wire
564
- // projection (`options: { ...certData }`), so every entry exported to date has NO `mode`
565
- // key at all. Through 0.5.5 this line read `?? 'banner'` and those entries rendered the
566
- // banner face. Removing it in 1.0.0 did not give them the renderer's default in the
567
- // abstract; it silently repainted live pages from banner to sidebar, with no entry edit
568
- // and no version pin to protect them, because their install line is unpinned.
569
- //
570
- // So this is a bridge for pre-existing entries, NOT a reversal of the sidebar default.
571
- // The three-copies-of-a-default problem that motivated removing it is still real and is
572
- // still fixed: the helper text and the wire type's doc comment no longer name a default,
573
- // and this line names one only for input the renderer can no longer distinguish from a
574
- // deliberate choice. The exporter writing `mode` is what retires it.
575
- mode: props.mode ?? bridge ?? 'banner',
576
- theme,
577
- // First-class banner memo split — renderCertBlock composes the requested
578
- // part directly; no string-splitting. Ignored outside banner mode, and an unrecognised
579
- // value is normalised to 'full' there, same as `mode` — not here.
580
- ...(props.part ? { part: props.part } : {}),
581
- facts: {
582
- authorName: optionalText(props.authorName) ?? 'Editorial',
583
- authorTitle: optionalText(props.authorTitle),
584
- reviewerName,
585
- credential: withCred?.credential ?? '',
586
- credentialVerifiedAt: withCred?.verifiedAt ?? '',
587
- certifiedAt: text(props.certifiedAt),
588
- memo: text(props.memo),
589
- bio: optionalText(props.bio),
590
- profileUrl: text(props.reviewerProfileUrl),
591
- certificateUrl: verifyUrl,
592
- // The compliance disclosures are CONSTANTS the renderer owns — a delivered cue is
593
- // IGNORED (an editor cannot retype the FTC copy into something friendlier), and the
594
- // scope line is not forwarded at all. The ONE thing honored is an explicit `null`:
595
- // the pro-bono reviewer has no compensation to disclose, so the cue is omitted
596
- // rather than replaced by the compensated constant (the modal already gets this
597
- // right — a card claiming "Compensated expert" over a volunteer is an FTC-facing
598
- // falsehood, not a cosmetic default).
599
- compensationCue: props.compensationCue === null ? null : undefined,
600
- },
601
- });
630
+ /** 2.0.1: a block with nothing to read reports why, to CertREV's production origin (it has no delivery origin). */
631
+ function BlockReport(props) {
632
+ const detail = React.useMemo(() => ({ reason: props.reason, platform: 'builder', externalId: props.externalId }), [props.reason, props.externalId]);
633
+ return _jsx(FallbackReport, { detail: detail, server: typeof document === 'undefined' });
602
634
  }
603
635
  /** Builder input TYPE per wire-type key — the exporter serializes these option values. */
604
636
  const WIRE_INPUT_TYPE = {
@@ -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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"}