bookcover-web 0.13.0 → 0.15.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/README.md CHANGED
@@ -38,6 +38,12 @@ version — no setup needed). Generating still fetches three kinds of assets at
38
38
  which ship inside the npm packages: the WASM binaries, frame images (`frames/`), and the fonts
39
39
  tree. The easiest setup is the hosted tree at `https://assets.paper.bible/` (CORS enabled):
40
40
 
41
+ > The `typst/` WASM binaries are stored Brotli-compressed and served with
42
+ > `Content-Encoding: br` to every client, with no content negotiation — the compiler is 27 MB
43
+ > raw and 6.9 MB compressed, so this is not optional. Browsers handle it transparently. If you
44
+ > fetch these from a non-browser client, make sure it decodes `br` (`curl` needs `--compressed`,
45
+ > or it will write the compressed bytes to disk).
46
+
41
47
  ```ts
42
48
  // Match the wasm version to your installed @myriaddreamin/typst-ts-web-compiler version
43
49
  const typst_version = '0.7.0'
@@ -3,22 +3,101 @@ import type { CustomFont } from 'typst-fonts';
3
3
  /** Locales the widget UI supports. Lives in this published package, so adding a widget
4
4
  * locale requires a bookcover-web release. */
5
5
  export type AppLocale = 'eng' | 'vie';
6
+ /** One candidate background the host offers alongside the widget's own built-ins — typically an
7
+ * image the user already used on another of their covers, which the widget would otherwise make
8
+ * them find on disk and upload again.
9
+ *
10
+ * The widget knows nothing about these images beyond what is in this object. It renders `url`
11
+ * as a thumbnail, and when the user picks one it asks the host for the bytes
12
+ * ('bg_suggestion_selected' -> 'bg_suggestion_resolved'), so the host never has to download a
13
+ * candidate the user never looks at and only the host ever touches host storage.
14
+ *
15
+ * `id` is an OPAQUE HOST TOKEN. The widget echoes it back verbatim, never parses it, never
16
+ * stores it in the form record, and never puts it anywhere near `bg_image_builtin` — that field
17
+ * names a shipped background and is allowlisted by hosts, so a host id leaking into it would
18
+ * collide. A resolved suggestion is adopted through the UPLOAD path: it reports
19
+ * `bg_image_builtin: null` and gets no published region metadata, exactly like a user upload.
20
+ *
21
+ * `url` is UNTRUSTED and is an image source only. The widget sets it as an <img src> (with
22
+ * referrerpolicy="no-referrer") and nothing else — it is never fetched as data, never resolved
23
+ * against widget-internal paths, and never assumed same-origin. It needs no CORS headers.
24
+ *
25
+ * A HOST MUST NOT SUGGEST AN IMAGE WHOSE PROVENANCE WAS A BUILT-IN. Those are already in the
26
+ * picker, and routing one through here would convert the host's stored reference to a shipped
27
+ * image into a private copy of its bytes — the exact thing `bg_image_builtin` exists to avoid.
28
+ *
29
+ * `label` is display text (the other book's name, say), used as the tile's alt/title. The host
30
+ * supplies it already localised. */
31
+ export interface BgSuggestion {
32
+ id: string;
33
+ url: string;
34
+ label?: string;
35
+ }
6
36
  /** Host -> widget, answered to the widget's 'ready' message */
7
37
  export interface InitMessage {
8
38
  type: 'init';
9
39
  preset?: Partial<EmbedFormState>;
10
40
  bg_image?: File | null;
11
41
  bg_image_builtin?: string | null;
42
+ /** Font families to make available in the editor's font pickers.
43
+ *
44
+ * AVAILABLE IS NOT APPLIED. These land in the widget's custom-font store, which is what
45
+ * the pickers offer — putting a family here does not put it on the cover, and the store
46
+ * is returned wholesale on every data/finished message (see WidgetMessage). So a host
47
+ * that seeds families the user never picks gets them all back, indistinguishable from
48
+ * ones the user chose.
49
+ *
50
+ * Hosts normally send exactly the families they already hold for this cover, and then
51
+ * there is nothing to think about. A HOST THAT SEEDS EXTRA FAMILIES — offering fonts from
52
+ * the user's other work, say — MUST REMEMBER WHICH ONES IT SEEDED, and must not persist a
53
+ * seeded family that comes back unused. Families the host already owned and families the
54
+ * user uploaded inside the widget are always kept: a host's font library can legitimately
55
+ * hold families this cover doesn't use, so pruning by cover usage alone would delete
56
+ * them.
57
+ *
58
+ * Which families the cover actually applies is font_families_in_form(form) from
59
+ * bookcover-core — it reads the eight *_font fields straight off the returned form, with
60
+ * no schema build.
61
+ *
62
+ * Bytes are expensive to clone and a single CJK family can run to tens of megabytes, so
63
+ * everything here is fetched and cloned before the editor can open. Seeding speculatively
64
+ * is paid for on the critical path. */
12
65
  custom_fonts?: CustomFont[];
13
66
  finished_mode?: boolean;
14
67
  hide_size_section?: boolean;
68
+ bg_suggestions?: BgSuggestion[];
15
69
  locale?: AppLocale;
16
70
  }
71
+ /** Host -> widget. InitMessage is the first and must arrive before any other; later messages are
72
+ * only accepted from the same origin that sent it.
73
+ *
74
+ * 'bg_suggestion_resolved' answers a 'bg_suggestion_selected' by handing over that image's
75
+ * bytes. It is a RESPONSE, not a general "set the background" command — the widget tracks a
76
+ * single pending id and DROPS any resolution whose `id` isn't it, so a slow answer can never
77
+ * overwrite a later choice. Clicking a second tile supersedes the first.
78
+ *
79
+ * `bg_image: null` means THAT RESOLUTION FAILED. The widget clears the tile's pending state and
80
+ * shows a quiet inline error, leaving the current background untouched; it never means "clear
81
+ * the background". A host that never answers is treated the same way after a short timeout, so
82
+ * not answering is a safe way to decline. */
83
+ export type HostMessage = InitMessage | {
84
+ type: 'bg_suggestion_resolved';
85
+ id: string;
86
+ bg_image: File | null;
87
+ };
17
88
  /** Widget -> host. `bg_image` rides on every data/finished message (cloning a File is cheap);
18
89
  * `custom_fonts` byte arrays are expensive to clone, so on 'data' messages the field is only
19
90
  * present when the font set changed since the last message (absent = unchanged), while
20
91
  * 'finished' always carries the complete array.
21
92
  *
93
+ * `custom_fonts` is the editor's whole custom-font store — every family the pickers were
94
+ * OFFERING, not the families the cover APPLIES. It contains what the host seeded via
95
+ * InitMessage plus anything the user uploaded during the session, whether or not any of it
96
+ * ended up on the cover. A host that only ever seeds families it already holds can store the
97
+ * array as-is; one that seeds extra families has to drop the unused seeded ones itself (see
98
+ * InitMessage.custom_fonts for the rule, and font_families_in_form in bookcover-core for the
99
+ * applied set).
100
+ *
22
101
  * `bg_image_builtin` is ADVISORY background identity, so a host doesn't have to recover it by
23
102
  * hashing returned bytes: when the user picks one of the widget's built-in backgrounds it
24
103
  * carries that image's published filename, and it is null for a user upload or no image at all.
@@ -27,7 +106,14 @@ export interface InitMessage {
27
106
  * BACKGROUNDS in the widget's services/backgrounds.ts). It exists purely so the host can store a
28
107
  * reference instead of a private copy of a shipped image. Treat it as untrusted input — map it
29
108
  * to a built-in only after checking it against your own allowlist, and fall back to the upload
30
- * path otherwise. Nothing in bookcover ever resolves bytes from this field. */
109
+ * path otherwise. Nothing in bookcover ever resolves bytes from this field.
110
+ *
111
+ * The `bg_image` File is the one the host supplied, byte-for-byte — see the round-trip
112
+ * guarantee at the top of this file.
113
+ *
114
+ * 'bg_suggestion_selected' asks the host for the bytes behind one of the BgSuggestions it sent
115
+ * in InitMessage, carrying that suggestion's id verbatim. The host answers with
116
+ * 'bg_suggestion_resolved'. */
31
117
  export type WidgetMessage = {
32
118
  type: 'ready';
33
119
  } | {
@@ -44,5 +130,8 @@ export type WidgetMessage = {
44
130
  custom_fonts: CustomFont[];
45
131
  } | {
46
132
  type: 'cancelled';
133
+ } | {
134
+ type: 'bg_suggestion_selected';
135
+ id: string;
47
136
  };
48
137
  //# sourceMappingURL=embed_types.d.ts.map
@@ -1,11 +1,15 @@
1
1
  // Protocol types for embedding the cover-editor widget in an iframe. The host sends one
2
2
  // InitMessage in reply to the widget's 'ready' message; the widget reports edits back with
3
- // WidgetMessage.
3
+ // WidgetMessage, and may send further HostMessages afterwards.
4
4
  //
5
5
  // Binaries are never part of the stored record. The background image and custom font bytes
6
6
  // travel as separate structured-clone fields beside the pure-JSON form values, so hosts persist
7
7
  // `data` as-is (e.g. to Firestore) and own the storage and identity of the binaries themselves.
8
8
  // Messages carry no derived schema: hosts call build_schema(form) from bookcover-core, so there
9
9
  // is exactly one place that form → schema conversion happens.
10
+ //
11
+ // BACKGROUND IMAGE BYTES ROUND-TRIP UNMODIFIED. Whatever File the host hands in comes back out
12
+ // byte-for-byte — never re-encoded, resized or stripped of metadata — so a host can hash the
13
+ // bytes to recognise an image it already stores. See FormState.bg_image in bookcover-core.
10
14
  export {};
11
15
  //# sourceMappingURL=embed_types.js.map
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export { make_blank_form_values, build_schema, curly_quotes, parse_font_family,
11
11
  export type { FormState, EmbedFormState, CustomFontStyle, DerivedColors } from 'bookcover-core';
12
12
  export { resolve_dimensions } from 'bookcover-core';
13
13
  export type { GetDimensionsResult, DimensionInputs } from 'bookcover-core';
14
- export type { InitMessage, WidgetMessage, AppLocale } from './embed_types.js';
14
+ export type { InitMessage, HostMessage, WidgetMessage, BgSuggestion, AppLocale } from './embed_types.js';
15
15
  export interface InitOptions {
16
16
  wasm_url: string;
17
17
  renderer_wasm_url?: string;
@@ -0,0 +1,2 @@
1
+ export { PATTERN_SVGS, find_pattern_svg } from 'bookcover-core/patterns-svg';
2
+ //# sourceMappingURL=patterns_svg.d.ts.map
@@ -0,0 +1,5 @@
1
+ // Pattern SVG payload, re-exported on its own subpath ('bookcover-web/patterns-svg').
2
+ // Kept out of the main index so importing the barrel never pulls ~220KB of SVG strings in —
3
+ // only the pattern picker needs these, and it loads them on demand. See generator/src/patterns.ts
4
+ export { PATTERN_SVGS, find_pattern_svg } from 'bookcover-core/patterns-svg';
5
+ //# sourceMappingURL=patterns_svg.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bookcover-web",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "license": "MIT-0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,8 +12,20 @@
12
12
  "type": "module",
13
13
  "main": "dist/index.js",
14
14
  "types": "dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "default": "./dist/index.js"
19
+ },
20
+ "./patterns-svg": {
21
+ "types": "./dist/patterns_svg.d.ts",
22
+ "default": "./dist/patterns_svg.js"
23
+ },
24
+ "./package.json": "./package.json"
25
+ },
15
26
  "files": [
16
- "dist/"
27
+ "dist/",
28
+ "!dist/**/*.map"
17
29
  ],
18
30
  "scripts": {
19
31
  "build": "tsc",
@@ -23,7 +35,8 @@
23
35
  "@myriaddreamin/typst-ts-renderer": "0.7.0",
24
36
  "@myriaddreamin/typst-ts-web-compiler": "0.7.0",
25
37
  "@myriaddreamin/typst.ts": "0.7.0",
26
- "bookcover-core": "^0.13.0",
38
+ "bookcover-core": "^0.15.0",
27
39
  "typst-fonts": "^0.1.0"
28
- }
40
+ },
41
+ "sideEffects": false
29
42
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed_types.d.ts","sourceRoot":"","sources":["../src/embed_types.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AAE3C;+CAC+C;AAC/C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;AAErC,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAEhC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAItB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAEhC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAA;IAE3B,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;;;;;;;gFAagF;AAChF,MAAM,MAAM,aAAa,GACnB;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GACf;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACzD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAA;CAAC,GAC/D;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,UAAU,EAAE,CAAA;CAAC,GAC9D;IAAC,IAAI,EAAE,WAAW,CAAA;CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed_types.js","sourceRoot":"","sources":["../src/embed_types.ts"],"names":[],"mappings":"AACA,wFAAwF;AACxF,2FAA2F;AAC3F,iBAAiB;AACjB,EAAE;AACF,2FAA2F;AAC3F,gGAAgG;AAChG,gGAAgG;AAChG,gGAAgG;AAChG,8DAA8D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAA;AAInE,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAA;AAKhG,YAAY,EAAC,WAAW,EAAE,aAAa,EAAE,UAAU,EAC/C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAA;AACpG,YAAY,EAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAA;AACvD,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EACxE,uBAAuB,EAAE,sBAAsB,EAAE,kBAAkB,EACnE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAC,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EACrF,iBAAiB,EAAE,qBAAqB,EAAE,sBAAsB,EAChE,oBAAoB,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AAC3E,YAAY,EAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAG7E,OAAO,EAAC,sBAAsB,EAAE,YAAY,EAAE,YAAY,EACtD,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAC/E,aAAa,EAAC,MAAM,gBAAgB,CAAA;AACxC,YAAY,EAAC,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAG7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAC,mBAAmB,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAA;AAGxE,YAAY,EAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAI3E,MAAM,WAAW,WAAW;IAExB,QAAQ,EAAC,MAAM,CAAA;IAEf,iBAAiB,CAAC,EAAC,MAAM,CAAA;IAIzB,aAAa,CAAC,EAAC,MAAM,CAAA;IAKrB,YAAY,CAAC,EAAC,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAC,OAAO,CAAA;IAId,KAAK,CAAC,EAAC,IAAI,CAAA;IAEX,MAAM,CAAC,EAAC,YAAY,CAAA;IAEpB,GAAG,CAAC,EAAC,MAAM,CAAA;IAEX,KAAK,CAAC,EAAC,OAAO,CAAA;IAEd,YAAY,CAAC,EAAC,UAAU,EAAE,CAAA;IAK1B,aAAa,CAAC,EAAC,YAAY,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,cAAc;IAE3B,IAAI,EAAC,UAAU,GAAG,MAAM,CAAA;IAExB,KAAK,CAAC,EAAC,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;CACvD;AA2DD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACvC,KAAK,EAAC,IAAI,EACV,IAAI,EAAC,mBAAmB,GAAG,IAAI,GACjC,OAAO,CAAC,YAAY,CAAC,CAkBtB;AAED,kFAAkF;AAClF,qBAAa,cAAc;IACvB,OAAO,CAAC,IAAI,CAAY;IAGxB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAqB;IAGrC,OAAO,CAAC,YAAY,CAAK;IAGzB,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,mBAAmB,CAAI;IAK/B,OAAO,CAAC,cAAc,CAAqB;IAE3C,OAAO,CAAC,qBAAqB,CAAI;IAEjC,YAAY,IAAI,EAAC,WAAW,EAAE,QAAQ,EAAC,aAAa,GAAG,IAAI,EAG1D;IAED;;wEAEoE;IACpE,OAAO,CAAC,aAAa;IAIrB;4CACwC;YAC1B,UAAU;IAUxB,sEAAsE;IAChE,cAAc,CAAC,QAAQ,EAAC,MAAM,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,CAEpD;IAED;;oFAEgF;IAChF,OAAO,CAAC,cAAc;IAUtB;;;;gBAIY;YACE,eAAe;IAwB7B;;6FAEyF;YAC3E,eAAe;IAU7B;;;;;;;;;sFASkF;YACpE,sBAAsB;IAapC,oEAAoE;IACpE,OAAO,CAAC,UAAU;IAalB,0CAA0C;YAC5B,WAAW;IAWzB,mFAAmF;YACrE,WAAW;IA0BzB,wEAAwE;YAC1D,WAAW;IA8BzB,gDAAgD;IAChD,OAAO,CAAC,eAAe;IAQvB,wEAAwE;IAClE,QAAQ,CAAC,OAAO,EAAC,eAAe,GAAE,OAAO,CAAC,cAAc,CAAC,CA+F9D;IAED,iEAAiE;IACjE,OAAO,IAAG,IAAI,CAIb;CACJ;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAC,WAAW,GAAE,OAAO,CAAC,cAAc,CAAC,CAuBtE"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}