@certrev/cert-block 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +7 -5
- package/dist/builder/card-contract.d.ts +12 -4
- package/dist/builder/card-contract.d.ts.map +1 -1
- package/dist/builder/card-contract.js +13 -5
- package/dist/builder/card-contract.js.map +1 -1
- package/dist/builder/contract-card.d.ts +6 -5
- package/dist/builder/contract-card.d.ts.map +1 -1
- package/dist/builder/contract-card.js +6 -5
- package/dist/builder/contract-card.js.map +1 -1
- package/dist/builder/version.d.ts +1 -1
- package/dist/builder/version.js +1 -1
- package/package.json +1 -1
- package/src/builder/card-contract.ts +13 -5
- package/src/builder/contract-card.tsx +6 -5
- package/src/builder/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,29 @@ 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.1 · 2026-11-02
|
|
9
|
+
|
|
10
|
+
**A storefront whose `script-src` is a per-request nonce with `'strict-dynamic'` logs no Content-Security-Policy
|
|
11
|
+
violation for the card.** The visual output is unchanged: every part, dialog, head fragment and JSON-LD graph the
|
|
12
|
+
Builder card prints is 2.1.0's, byte for byte. On Builder the server's HTML no longer carries the runtime's tag; the
|
|
13
|
+
card loads the runtime from the browser, as it already did beside the tag. No integration change, and the same four
|
|
14
|
+
Content-Security-Policy sources.
|
|
15
|
+
|
|
16
|
+
- **Why.** 2.0.0 to 2.1.0 printed CertREV's runtime as `<script src integrity crossorigin="anonymous" defer>` in the
|
|
17
|
+
block that carries the page's assets. A parser-inserted script carries no nonce, and `'strict-dynamic'` ignores host
|
|
18
|
+
sources (`https://portal.certrev.com`), so such a policy blocked it: one violation and one CSP report on every page
|
|
19
|
+
view. The card kept working, because its layout effect also injected the runtime, which the policy allows.
|
|
20
|
+
- **Now.** `cardHtml` prints the head fragment, the parts, both dialogs and the graph, nothing else. The same block
|
|
21
|
+
injects the runtime once per page into `document.head` (`injectCardRuntime`: its SRI integrity,
|
|
22
|
+
`crossorigin="anonymous"`, `defer`), on hydration of the server's page and on a client mount alike, unless the runtime
|
|
23
|
+
already runs. A script inserted by the page's own nonced bundle is what `'strict-dynamic'` trusts. A page whose policy
|
|
24
|
+
lists `https://portal.certrev.com` in `script-src`, or has no policy, loads the same runtime once, as before (2.0.x
|
|
25
|
+
could load it twice on such a page, the tag and the injection; its init is idempotent).
|
|
26
|
+
- **With JavaScript off** the card is complete, as before: the runtime never ran there.
|
|
27
|
+
- **A drop-in on 2.1.0 and on 2.0.1**: same `certRevCertComponent` and registration (`CertREV Cert`, the same 22
|
|
28
|
+
inputs), no new prop, no new peer dependency, the same `exports` map and runtime exports. `cardRuntimeTag` stays
|
|
29
|
+
exported, unchanged, for any other caller.
|
|
30
|
+
|
|
8
31
|
## 2.1.0 · 2026-10-30
|
|
9
32
|
|
|
10
33
|
**The card says what the expert actually reviewed.** When CertREV signs `content.expert.reviewScope: 'text'` (the
|
package/README.md
CHANGED
|
@@ -329,9 +329,8 @@ bytes; the Delivery response carries the document as its unsigned `card` sibling
|
|
|
329
329
|
|
|
330
330
|
**What a block prints.** Inside the card's wrapper (`data-certrev-face="card"`): the block's part hosts in page order
|
|
331
331
|
and, in the block that holds the document's first part (the card on a banner, else the rail, else the pill), the head
|
|
332
|
-
fragment (`<style data-certrev-card-head>`) before them
|
|
333
|
-
|
|
334
|
-
those once: a split banner's header block carries them and its memo block prints the memo only, whose controls open the
|
|
332
|
+
fragment (`<style data-certrev-card-head>`) before them and CertREV's profile and certificate dialog hosts after them
|
|
333
|
+
(2.1.1: no runtime `<script>`; the card loads the runtime from the browser, below). So a page prints each of those once: a split banner's header block carries them and its memo block prints the memo only, whose controls open the
|
|
335
334
|
page's one dialog (the runtime finds it by the placement). Keep the header block on a page that has a memo block. Each part is a
|
|
336
335
|
`<certrev-card>` with a declarative shadow root, attached by the HTML parser: the card is complete with JavaScript off
|
|
337
336
|
and no theme rule reaches inside it. The saved design decides the layout, not the block's `mode`; `part` splits a banner
|
|
@@ -343,7 +342,10 @@ page keeps one card when a brand changes its design. A sidebar card's float is l
|
|
|
343
342
|
card print it again from the seed after re-checking it. A card the client mounts with no record on the page (an in-app
|
|
344
343
|
navigation, Builder's editor) reads the Delivery API once (`clientRead`, on by default from 2.0.0; `clientRead={false}`
|
|
345
344
|
restores 1.3.1's no-read behaviour), prints the card and attaches its roots (`setHTMLUnsafe`, else from each template),
|
|
346
|
-
and loads the runtime once.
|
|
345
|
+
and loads the runtime once. On every page, server-rendered or not, the block that holds the page's assets loads
|
|
346
|
+
CertREV's runtime once, into `document.head`, with its SRI integrity and `crossorigin="anonymous"` (2.1.1; 2.0.x also
|
|
347
|
+
printed its tag in the server's HTML). So a policy whose `script-src` is a per-request nonce with `'strict-dynamic'`
|
|
348
|
+
allows it (your nonced bundle inserts it) and logs no violation; the four sources above are unchanged. A read your policy blocks prints nothing and reports `delivery_unreachable` (2.0.1; 2.0.0
|
|
347
349
|
painted the block's options face, as 1.3.1 did).
|
|
348
350
|
|
|
349
351
|
**React 19 hosts and readers with JavaScript off.** React 19 streams a Suspense boundary larger than its
|
|
@@ -1028,7 +1030,7 @@ published at `@certrev/cert-block/fixtures`).
|
|
|
1028
1030
|
|
|
1029
1031
|
## Version
|
|
1030
1032
|
|
|
1031
|
-
`2.1.
|
|
1033
|
+
`2.1.1`: see [CHANGELOG.md](./CHANGELOG.md) for the release history and the semver contract
|
|
1032
1034
|
(patch/minor never change the rendered cert output or break a compiling integration). Publishes
|
|
1033
1035
|
**publicly** to npm as `@certrev/cert-block` (`publishConfig.access: public`) via GitHub Actions
|
|
1034
1036
|
trusted publishing (OIDC); the internal `@certrev` GitHub-Packages channel mirrors it.
|
|
@@ -122,7 +122,10 @@ export declare function cardBinds(card: CardDocumentV1, binding: CardBinding, pa
|
|
|
122
122
|
* kept its split header and memo blocks after the brand chose a sidebar design shows one sidebar card, not two.
|
|
123
123
|
*/
|
|
124
124
|
export declare function cardPartsFor(card: CardDocumentV1, part: unknown): CardPartName[];
|
|
125
|
-
/**
|
|
125
|
+
/**
|
|
126
|
+
* The runtime's tag, or '' when the document names none. 2.1.1: the Builder card no longer prints it (`cardHtml`); the
|
|
127
|
+
* card loads the runtime from the browser (`injectCardRuntime`). Kept, unchanged, for any other caller.
|
|
128
|
+
*/
|
|
126
129
|
export declare function cardRuntimeTag(card: CardDocumentV1): string;
|
|
127
130
|
/**
|
|
128
131
|
* The document's first part: `top`, else `rail`, else `pill`, from the document's own parts (the lead's ruling on ADR
|
|
@@ -142,10 +145,15 @@ export declare function cardCarriesAssets(card: CardDocumentV1, names: readonly
|
|
|
142
145
|
export declare function cardGraphTag(card: CardDocumentV1): string;
|
|
143
146
|
/**
|
|
144
147
|
* Exactly what a block prints inside its wrapper: its parts in page order and, only in the block holding the document's
|
|
145
|
-
* first part (`cardCarriesAssets`), the head fragment before them and both dialogs (expert, then certificate)
|
|
146
|
-
*
|
|
148
|
+
* first part (`cardCarriesAssets`), the head fragment before them and both dialogs (expert, then certificate) and
|
|
149
|
+
* (2.0.1) the page's graph after. So a split banner (a header block and a memo block) prints the head and the dialogs
|
|
147
150
|
* once, in the header block, with no coordination between the blocks and with JavaScript off; the runtime finds a
|
|
148
|
-
* control's dialog anywhere on the page by its placement. Every byte
|
|
151
|
+
* control's dialog anywhere on the page by its placement. Every byte is the document's own, but the graph's tag.
|
|
152
|
+
*
|
|
153
|
+
* 2.1.1: no runtime tag. A `<script src>` the HTML parser meets is blocked by a policy whose `script-src` is a nonce with
|
|
154
|
+
* `'strict-dynamic'` (it carries no nonce, and `'strict-dynamic'` ignores host sources), which logged one violation and
|
|
155
|
+
* one CSP report on every page view. The block holding the assets loads the runtime from the browser instead
|
|
156
|
+
* (`injectCardRuntime`, in `ContractCardFace`'s layout effect, as 2.0.x did beside the tag), which such a policy allows.
|
|
149
157
|
*/
|
|
150
158
|
export declare function cardHtml(card: CardDocumentV1, names: readonly CardPartName[]): string;
|
|
151
159
|
//# sourceMappingURL=card-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-contract.d.ts","sourceRoot":"","sources":["../../src/builder/card-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"card-contract.d.ts","sourceRoot":"","sources":["../../src/builder/card-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAoB,MAAM,uBAAuB,CAAA;AAG5F,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAEtC,uHAAuH;AACvH,eAAO,MAAM,eAAe,4CAA6C,CAAA;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;AAG1D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD,8GAA8G;IAC9G,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7E,QAAQ,CAAC,MAAM,EAAE;QAChB,gGAAgG;QAChG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,0FAA0F;QAC1F,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KACvE,CAAA;CACD;AAED,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB;AAQD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,IAAI,CAU/G;AAwBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAyBvE;AAED,2GAA2G;AAC3G,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY9E;AAED,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAC5C;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAyB3D;AAED,iEAAiE;AACjE,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAChB,OAAO,CAQT;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAEtF;AAED,mHAAmH;AACnH,wBAAsB,SAAS,CAC9B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAUhF;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAI3D;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAEvE;AAED,wHAAwH;AACxH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAG/F;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAazD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAMrF"}
|
|
@@ -221,7 +221,10 @@ export function cardPartsFor(card, part) {
|
|
|
221
221
|
function escapeAttribute(value) {
|
|
222
222
|
return value.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
|
|
223
223
|
}
|
|
224
|
-
/**
|
|
224
|
+
/**
|
|
225
|
+
* The runtime's tag, or '' when the document names none. 2.1.1: the Builder card no longer prints it (`cardHtml`); the
|
|
226
|
+
* card loads the runtime from the browser (`injectCardRuntime`). Kept, unchanged, for any other caller.
|
|
227
|
+
*/
|
|
225
228
|
export function cardRuntimeTag(card) {
|
|
226
229
|
const runtime = card.assets.runtime;
|
|
227
230
|
if (!runtime)
|
|
@@ -269,10 +272,15 @@ export function cardGraphTag(card) {
|
|
|
269
272
|
}
|
|
270
273
|
/**
|
|
271
274
|
* Exactly what a block prints inside its wrapper: its parts in page order and, only in the block holding the document's
|
|
272
|
-
* first part (`cardCarriesAssets`), the head fragment before them and both dialogs (expert, then certificate)
|
|
273
|
-
*
|
|
275
|
+
* first part (`cardCarriesAssets`), the head fragment before them and both dialogs (expert, then certificate) and
|
|
276
|
+
* (2.0.1) the page's graph after. So a split banner (a header block and a memo block) prints the head and the dialogs
|
|
274
277
|
* once, in the header block, with no coordination between the blocks and with JavaScript off; the runtime finds a
|
|
275
|
-
* control's dialog anywhere on the page by its placement. Every byte
|
|
278
|
+
* control's dialog anywhere on the page by its placement. Every byte is the document's own, but the graph's tag.
|
|
279
|
+
*
|
|
280
|
+
* 2.1.1: no runtime tag. A `<script src>` the HTML parser meets is blocked by a policy whose `script-src` is a nonce with
|
|
281
|
+
* `'strict-dynamic'` (it carries no nonce, and `'strict-dynamic'` ignores host sources), which logged one violation and
|
|
282
|
+
* one CSP report on every page view. The block holding the assets loads the runtime from the browser instead
|
|
283
|
+
* (`injectCardRuntime`, in `ContractCardFace`'s layout effect, as 2.0.x did beside the tag), which such a policy allows.
|
|
276
284
|
*/
|
|
277
285
|
export function cardHtml(card, names) {
|
|
278
286
|
let parts = '';
|
|
@@ -281,6 +289,6 @@ export function cardHtml(card, names) {
|
|
|
281
289
|
if (!cardCarriesAssets(card, names))
|
|
282
290
|
return parts;
|
|
283
291
|
const dialogs = (card.dialogs.expert ?? '') + (card.dialogs.certificate ?? '');
|
|
284
|
-
return card.assets.head + parts + dialogs +
|
|
292
|
+
return card.assets.head + parts + dialogs + cardGraphTag(card);
|
|
285
293
|
}
|
|
286
294
|
//# sourceMappingURL=card-contract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-contract.js","sourceRoot":"","sources":["../../src/builder/card-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"card-contract.js","sourceRoot":"","sources":["../../src/builder/card-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The block's wrapper holds, as its `dangerouslySetInnerHTML`, exactly `cardHtml(card, names)`: the block's part hosts
|
|
5
5
|
* in page order and, in the block holding the document's first part, the head fragment, both CertREV dialog hosts and
|
|
6
|
-
* the
|
|
6
|
+
* the page's graph (`card-contract.ts`). 2.1.1: no runtime tag; the card loads the runtime itself (below).
|
|
7
7
|
* Each host is a `<certrev-card>` with a declarative shadow root (`<template shadowrootmode="open">`), which the
|
|
8
8
|
* browser's HTML parser attaches as it reads the server's page: the card is complete with JavaScript off, and no page
|
|
9
9
|
* rule reaches inside it. React never reconciles the hosts (they are not React children), so the hosted runtime may
|
|
@@ -16,10 +16,11 @@
|
|
|
16
16
|
* declarative shadow DOM at all) gets each root attached from its template (`attachShadow` with the template's mode
|
|
17
17
|
* and options, then the template's content). A host that already has its root is left alone, so a hydrated card,
|
|
18
18
|
* whose roots the parser attached, is not touched.
|
|
19
|
-
* - LOAD THE RUNTIME
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* - LOAD THE RUNTIME: once per page, into `document.head`, with its SRI integrity and `crossorigin="anonymous"`, unless
|
|
20
|
+
* the runtime is already running (its global guard) or already injected. Only the block that prints the page's
|
|
21
|
+
* assets loads it (`cardCarriesAssets`), on a client mount and on hydration of the server's page alike. 2.1.1: the
|
|
22
|
+
* server's HTML no longer carries the runtime's tag, so this is the one load: a script the page's own (nonced)
|
|
23
|
+
* bundle inserts is what a `'nonce-…' 'strict-dynamic'` policy allows, where a parser-inserted tag is blocked.
|
|
23
24
|
* Both run in a layout effect, before the browser paints the inserted card, so a client-mounted card never shows an
|
|
24
25
|
* empty frame; the roots are checked after every commit of the block, whatever React wrote. React writes the card only
|
|
25
26
|
* when its HTML changes: the `dangerouslySetInnerHTML` object is kept per string, since React 19 rewrites `innerHTML`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-card.d.ts","sourceRoot":"","sources":["../../src/builder/contract-card.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"contract-card.d.ts","sourceRoot":"","sources":["../../src/builder/contract-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAA+B,MAAM,oBAAoB,CAAA;AAYxG,kGAAkG;AAClG,eAAO,MAAM,oBAAoB,gCAAgC,CAAA;AAOjE,+GAA+G;AAC/G,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AA8BD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBtE;AAED,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAe5D;AAED,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,QAK9B,CAAA;AAKJ,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACvC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IACvC,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0GAA0G;IAC1G,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB,qBAqDA"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
4
4
|
*
|
|
5
5
|
* The block's wrapper holds, as its `dangerouslySetInnerHTML`, exactly `cardHtml(card, names)`: the block's part hosts
|
|
6
6
|
* in page order and, in the block holding the document's first part, the head fragment, both CertREV dialog hosts and
|
|
7
|
-
* the
|
|
7
|
+
* the page's graph (`card-contract.ts`). 2.1.1: no runtime tag; the card loads the runtime itself (below).
|
|
8
8
|
* Each host is a `<certrev-card>` with a declarative shadow root (`<template shadowrootmode="open">`), which the
|
|
9
9
|
* browser's HTML parser attaches as it reads the server's page: the card is complete with JavaScript off, and no page
|
|
10
10
|
* rule reaches inside it. React never reconciles the hosts (they are not React children), so the hosted runtime may
|
|
@@ -17,10 +17,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
17
17
|
* declarative shadow DOM at all) gets each root attached from its template (`attachShadow` with the template's mode
|
|
18
18
|
* and options, then the template's content). A host that already has its root is left alone, so a hydrated card,
|
|
19
19
|
* whose roots the parser attached, is not touched.
|
|
20
|
-
* - LOAD THE RUNTIME
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* - LOAD THE RUNTIME: once per page, into `document.head`, with its SRI integrity and `crossorigin="anonymous"`, unless
|
|
21
|
+
* the runtime is already running (its global guard) or already injected. Only the block that prints the page's
|
|
22
|
+
* assets loads it (`cardCarriesAssets`), on a client mount and on hydration of the server's page alike. 2.1.1: the
|
|
23
|
+
* server's HTML no longer carries the runtime's tag, so this is the one load: a script the page's own (nonced)
|
|
24
|
+
* bundle inserts is what a `'nonce-…' 'strict-dynamic'` policy allows, where a parser-inserted tag is blocked.
|
|
24
25
|
* Both run in a layout effect, before the browser paints the inserted card, so a client-mounted card never shows an
|
|
25
26
|
* empty frame; the roots are checked after every commit of the block, whatever React wrote. React writes the card only
|
|
26
27
|
* when its HTML changes: the `dangerouslySetInnerHTML` object is kept per string, since React 19 rewrites `innerHTML`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-card.js","sourceRoot":"","sources":["../../src/builder/contract-card.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"contract-card.js","sourceRoot":"","sources":["../../src/builder/contract-card.tsx"],"names":[],"mappings":"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"}
|
package/dist/builder/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@certrev/cert-block",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
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",
|
|
@@ -273,7 +273,10 @@ function escapeAttribute(value: string): string {
|
|
|
273
273
|
return value.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>')
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
/**
|
|
276
|
+
/**
|
|
277
|
+
* The runtime's tag, or '' when the document names none. 2.1.1: the Builder card no longer prints it (`cardHtml`); the
|
|
278
|
+
* card loads the runtime from the browser (`injectCardRuntime`). Kept, unchanged, for any other caller.
|
|
279
|
+
*/
|
|
277
280
|
export function cardRuntimeTag(card: CardDocumentV1): string {
|
|
278
281
|
const runtime = card.assets.runtime
|
|
279
282
|
if (!runtime) return ''
|
|
@@ -322,15 +325,20 @@ export function cardGraphTag(card: CardDocumentV1): string {
|
|
|
322
325
|
|
|
323
326
|
/**
|
|
324
327
|
* Exactly what a block prints inside its wrapper: its parts in page order and, only in the block holding the document's
|
|
325
|
-
* first part (`cardCarriesAssets`), the head fragment before them and both dialogs (expert, then certificate)
|
|
326
|
-
*
|
|
328
|
+
* first part (`cardCarriesAssets`), the head fragment before them and both dialogs (expert, then certificate) and
|
|
329
|
+
* (2.0.1) the page's graph after. So a split banner (a header block and a memo block) prints the head and the dialogs
|
|
327
330
|
* once, in the header block, with no coordination between the blocks and with JavaScript off; the runtime finds a
|
|
328
|
-
* control's dialog anywhere on the page by its placement. Every byte
|
|
331
|
+
* control's dialog anywhere on the page by its placement. Every byte is the document's own, but the graph's tag.
|
|
332
|
+
*
|
|
333
|
+
* 2.1.1: no runtime tag. A `<script src>` the HTML parser meets is blocked by a policy whose `script-src` is a nonce with
|
|
334
|
+
* `'strict-dynamic'` (it carries no nonce, and `'strict-dynamic'` ignores host sources), which logged one violation and
|
|
335
|
+
* one CSP report on every page view. The block holding the assets loads the runtime from the browser instead
|
|
336
|
+
* (`injectCardRuntime`, in `ContractCardFace`'s layout effect, as 2.0.x did beside the tag), which such a policy allows.
|
|
329
337
|
*/
|
|
330
338
|
export function cardHtml(card: CardDocumentV1, names: readonly CardPartName[]): string {
|
|
331
339
|
let parts = ''
|
|
332
340
|
for (const name of names) parts += card.parts[name] ?? ''
|
|
333
341
|
if (!cardCarriesAssets(card, names)) return parts
|
|
334
342
|
const dialogs = (card.dialogs.expert ?? '') + (card.dialogs.certificate ?? '')
|
|
335
|
-
return card.assets.head + parts + dialogs +
|
|
343
|
+
return card.assets.head + parts + dialogs + cardGraphTag(card)
|
|
336
344
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The block's wrapper holds, as its `dangerouslySetInnerHTML`, exactly `cardHtml(card, names)`: the block's part hosts
|
|
5
5
|
* in page order and, in the block holding the document's first part, the head fragment, both CertREV dialog hosts and
|
|
6
|
-
* the
|
|
6
|
+
* the page's graph (`card-contract.ts`). 2.1.1: no runtime tag; the card loads the runtime itself (below).
|
|
7
7
|
* Each host is a `<certrev-card>` with a declarative shadow root (`<template shadowrootmode="open">`), which the
|
|
8
8
|
* browser's HTML parser attaches as it reads the server's page: the card is complete with JavaScript off, and no page
|
|
9
9
|
* rule reaches inside it. React never reconciles the hosts (they are not React children), so the hosted runtime may
|
|
@@ -16,10 +16,11 @@
|
|
|
16
16
|
* declarative shadow DOM at all) gets each root attached from its template (`attachShadow` with the template's mode
|
|
17
17
|
* and options, then the template's content). A host that already has its root is left alone, so a hydrated card,
|
|
18
18
|
* whose roots the parser attached, is not touched.
|
|
19
|
-
* - LOAD THE RUNTIME
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* - LOAD THE RUNTIME: once per page, into `document.head`, with its SRI integrity and `crossorigin="anonymous"`, unless
|
|
20
|
+
* the runtime is already running (its global guard) or already injected. Only the block that prints the page's
|
|
21
|
+
* assets loads it (`cardCarriesAssets`), on a client mount and on hydration of the server's page alike. 2.1.1: the
|
|
22
|
+
* server's HTML no longer carries the runtime's tag, so this is the one load: a script the page's own (nonced)
|
|
23
|
+
* bundle inserts is what a `'nonce-…' 'strict-dynamic'` policy allows, where a parser-inserted tag is blocked.
|
|
23
24
|
* Both run in a layout effect, before the browser paints the inserted card, so a client-mounted card never shows an
|
|
24
25
|
* empty frame; the roots are checked after every commit of the block, whatever React wrote. React writes the card only
|
|
25
26
|
* when its HTML changes: the `dangerouslySetInnerHTML` object is kept per string, since React 19 rewrites `innerHTML`
|
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.1.
|
|
2
|
+
export const CERT_BLOCK_VERSION = '2.1.1'
|