postext-epub 0.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/LICENSE +21 -0
- package/README.md +194 -0
- package/dist/__tests__/sampleBook.d.ts +17 -0
- package/dist/__tests__/sampleBook.d.ts.map +1 -0
- package/dist/__tests__/sampleBook.js +103 -0
- package/dist/__tests__/sampleBook.js.map +1 -0
- package/dist/epubcheck.test.d.ts +2 -0
- package/dist/epubcheck.test.d.ts.map +1 -0
- package/dist/epubcheck.test.js +69 -0
- package/dist/epubcheck.test.js.map +1 -0
- package/dist/fixed/fixed.test.d.ts +2 -0
- package/dist/fixed/fixed.test.d.ts.map +1 -0
- package/dist/fixed/fixed.test.js +225 -0
- package/dist/fixed/fixed.test.js.map +1 -0
- package/dist/fixed/fontUse.d.ts +21 -0
- package/dist/fixed/fontUse.d.ts.map +1 -0
- package/dist/fixed/fontUse.js +82 -0
- package/dist/fixed/fontUse.js.map +1 -0
- package/dist/fixed/index.d.ts +3 -0
- package/dist/fixed/index.d.ts.map +1 -0
- package/dist/fixed/index.js +254 -0
- package/dist/fixed/index.js.map +1 -0
- package/dist/fixed/outline.d.ts +40 -0
- package/dist/fixed/outline.d.ts.map +1 -0
- package/dist/fixed/outline.js +88 -0
- package/dist/fixed/outline.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/package/pack.d.ts +25 -0
- package/dist/package/pack.d.ts.map +1 -0
- package/dist/package/pack.js +253 -0
- package/dist/package/pack.js.map +1 -0
- package/dist/package/pack.test.d.ts +2 -0
- package/dist/package/pack.test.d.ts.map +1 -0
- package/dist/package/pack.test.js +164 -0
- package/dist/package/pack.test.js.map +1 -0
- package/dist/package/read.d.ts +15 -0
- package/dist/package/read.d.ts.map +1 -0
- package/dist/package/read.js +198 -0
- package/dist/package/read.js.map +1 -0
- package/dist/package/strings.d.ts +17 -0
- package/dist/package/strings.d.ts.map +1 -0
- package/dist/package/strings.js +24 -0
- package/dist/package/strings.js.map +1 -0
- package/dist/reflowable/__tests__/vdt.d.ts +13 -0
- package/dist/reflowable/__tests__/vdt.d.ts.map +1 -0
- package/dist/reflowable/__tests__/vdt.js +55 -0
- package/dist/reflowable/__tests__/vdt.js.map +1 -0
- package/dist/reflowable/__tests__/xml.d.ts +8 -0
- package/dist/reflowable/__tests__/xml.d.ts.map +1 -0
- package/dist/reflowable/__tests__/xml.js +107 -0
- package/dist/reflowable/__tests__/xml.js.map +1 -0
- package/dist/reflowable/css.d.ts +45 -0
- package/dist/reflowable/css.d.ts.map +1 -0
- package/dist/reflowable/css.js +491 -0
- package/dist/reflowable/css.js.map +1 -0
- package/dist/reflowable/index.d.ts +4 -0
- package/dist/reflowable/index.d.ts.map +1 -0
- package/dist/reflowable/index.js +257 -0
- package/dist/reflowable/index.js.map +1 -0
- package/dist/reflowable/inline.d.ts +56 -0
- package/dist/reflowable/inline.d.ts.map +1 -0
- package/dist/reflowable/inline.js +334 -0
- package/dist/reflowable/inline.js.map +1 -0
- package/dist/reflowable/model.d.ts +261 -0
- package/dist/reflowable/model.d.ts.map +1 -0
- package/dist/reflowable/model.js +6 -0
- package/dist/reflowable/model.js.map +1 -0
- package/dist/reflowable/reflowable.test.d.ts +2 -0
- package/dist/reflowable/reflowable.test.d.ts.map +1 -0
- package/dist/reflowable/reflowable.test.js +469 -0
- package/dist/reflowable/reflowable.test.js.map +1 -0
- package/dist/reflowable/rtl.test.d.ts +2 -0
- package/dist/reflowable/rtl.test.d.ts.map +1 -0
- package/dist/reflowable/rtl.test.js +217 -0
- package/dist/reflowable/rtl.test.js.map +1 -0
- package/dist/reflowable/walk.d.ts +42 -0
- package/dist/reflowable/walk.d.ts.map +1 -0
- package/dist/reflowable/walk.js +1096 -0
- package/dist/reflowable/walk.js.map +1 -0
- package/dist/reflowable/xhtml.d.ts +33 -0
- package/dist/reflowable/xhtml.d.ts.map +1 -0
- package/dist/reflowable/xhtml.js +472 -0
- package/dist/reflowable/xhtml.js.map +1 -0
- package/dist/shared/accessibility.d.ts +20 -0
- package/dist/shared/accessibility.d.ts.map +1 -0
- package/dist/shared/accessibility.js +30 -0
- package/dist/shared/accessibility.js.map +1 -0
- package/dist/shared/assets.d.ts +46 -0
- package/dist/shared/assets.d.ts.map +1 -0
- package/dist/shared/assets.js +143 -0
- package/dist/shared/assets.js.map +1 -0
- package/dist/shared/assets.test.d.ts +2 -0
- package/dist/shared/assets.test.d.ts.map +1 -0
- package/dist/shared/assets.test.js +106 -0
- package/dist/shared/assets.test.js.map +1 -0
- package/dist/shared/media.d.ts +11 -0
- package/dist/shared/media.d.ts.map +1 -0
- package/dist/shared/media.js +52 -0
- package/dist/shared/media.js.map +1 -0
- package/dist/shared/uuid.d.ts +7 -0
- package/dist/shared/uuid.d.ts.map +1 -0
- package/dist/shared/uuid.js +63 -0
- package/dist/shared/uuid.js.map +1 -0
- package/dist/shared/xml.d.ts +54 -0
- package/dist/shared/xml.d.ts.map +1 -0
- package/dist/shared/xml.js +214 -0
- package/dist/shared/xml.js.map +1 -0
- package/dist/shared/xml.test.d.ts +2 -0
- package/dist/shared/xml.test.d.ts.map +1 -0
- package/dist/shared/xml.test.js +71 -0
- package/dist/shared/xml.test.js.map +1 -0
- package/dist/shared/xmlRead.d.ts +19 -0
- package/dist/shared/xmlRead.d.ts.map +1 -0
- package/dist/shared/xmlRead.js +85 -0
- package/dist/shared/xmlRead.js.map +1 -0
- package/dist/types.d.ts +205 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/worker/client.d.ts +39 -0
- package/dist/worker/client.d.ts.map +1 -0
- package/dist/worker/client.js +184 -0
- package/dist/worker/client.js.map +1 -0
- package/dist/worker/epub.worker.d.ts +2 -0
- package/dist/worker/epub.worker.d.ts.map +1 -0
- package/dist/worker/epub.worker.js +7 -0
- package/dist/worker/epub.worker.js.map +1 -0
- package/dist/worker/protocol.d.ts +44 -0
- package/dist/worker/protocol.d.ts.map +1 -0
- package/dist/worker/protocol.js +6 -0
- package/dist/worker/protocol.js.map +1 -0
- package/dist/worker/serve.d.ts +11 -0
- package/dist/worker/serve.d.ts.map +1 -0
- package/dist/worker/serve.js +53 -0
- package/dist/worker/serve.js.map +1 -0
- package/dist/worker/worker.test.d.ts +2 -0
- package/dist/worker/worker.test.d.ts.map +1 -0
- package/dist/worker/worker.test.js +168 -0
- package/dist/worker/worker.test.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhtml.js","sourceRoot":"","sources":["../../src/reflowable/xhtml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { EpubAccessibility, EpubLayout } from '../types';
|
|
2
|
+
export interface AccessibilityFacts {
|
|
3
|
+
layout: EpubLayout;
|
|
4
|
+
/** Pictures (figures, design images) the book places. */
|
|
5
|
+
hasImages: boolean;
|
|
6
|
+
/** Formulas, set as SVG. */
|
|
7
|
+
hasMath: boolean;
|
|
8
|
+
/** Every picture that is content carries a text alternative. */
|
|
9
|
+
imagesDescribed: boolean;
|
|
10
|
+
hasPageList: boolean;
|
|
11
|
+
hasToc: boolean;
|
|
12
|
+
hasTables: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** The accessibility metadata of a book. Postext text is real text (never
|
|
15
|
+
* pictures of text) in reading order, so `textual` access suffices unless
|
|
16
|
+
* pictures lack alternatives. Claims no WCAG conformance by default: a
|
|
17
|
+
* fixed layout keeps the print line breaks and sizes, which reflow
|
|
18
|
+
* criteria (1.4.10) do not allow. */
|
|
19
|
+
export declare function defaultAccessibility(facts: AccessibilityFacts): EpubAccessibility;
|
|
20
|
+
//# sourceMappingURL=accessibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/shared/accessibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;sCAIsC;AACtC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAqBjF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Accessibility metadata (EPUB Accessibility 1.1, schema.org vocabulary)
|
|
2
|
+
// both renditions declare, from what the book holds.
|
|
3
|
+
/** The accessibility metadata of a book. Postext text is real text (never
|
|
4
|
+
* pictures of text) in reading order, so `textual` access suffices unless
|
|
5
|
+
* pictures lack alternatives. Claims no WCAG conformance by default: a
|
|
6
|
+
* fixed layout keeps the print line breaks and sizes, which reflow
|
|
7
|
+
* criteria (1.4.10) do not allow. */
|
|
8
|
+
export function defaultAccessibility(facts) {
|
|
9
|
+
const accessModes = ['textual', ...(facts.hasImages ? ['visual'] : [])];
|
|
10
|
+
const textualSuffices = !facts.hasImages || facts.imagesDescribed;
|
|
11
|
+
const accessModesSufficient = textualSuffices
|
|
12
|
+
? ['textual', ...(facts.hasImages ? ['textual,visual'] : [])]
|
|
13
|
+
: ['textual,visual'];
|
|
14
|
+
const features = [
|
|
15
|
+
'readingOrder',
|
|
16
|
+
'structuralNavigation',
|
|
17
|
+
...(facts.hasToc ? ['tableOfContents'] : []),
|
|
18
|
+
...(facts.hasPageList ? ['pageNavigation', 'printPageNumbers'] : []),
|
|
19
|
+
...(facts.hasImages && facts.imagesDescribed ? ['alternativeText'] : []),
|
|
20
|
+
...(facts.hasTables ? ['table'] : []),
|
|
21
|
+
...(facts.layout === 'reflowable' ? ['displayTransformability'] : []),
|
|
22
|
+
];
|
|
23
|
+
const summary = facts.layout === 'fixed'
|
|
24
|
+
? 'Fixed-layout edition: each page reproduces the printed page with selectable text in reading order, a navigable table of contents and print page numbers. Text does not reflow; readers can zoom.' +
|
|
25
|
+
(facts.hasMath ? ' Formulas are drawn as vector pictures.' : '')
|
|
26
|
+
: 'Reflowable edition with semantic headings, lists and tables, a navigable table of contents and print page numbers where the book has them. Text reflows and follows the reader\'s settings.' +
|
|
27
|
+
(facts.hasMath ? ' Formulas are drawn as vector pictures.' : '');
|
|
28
|
+
return { accessModes, accessModesSufficient, features, hazards: ['none'], summary };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=accessibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/shared/accessibility.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qDAAqD;AAiBrD;;;;sCAIsC;AACtC,MAAM,UAAU,oBAAoB,CAAC,KAAyB;IAC5D,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,CAAC;IAClE,MAAM,qBAAqB,GAAG,eAAe;QAC3C,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG;QACf,cAAc;QACd,sBAAsB;QACtB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,OAAO;QACtC,CAAC,CAAC,kMAAkM;YAClM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC,6LAA6L;YAC7L,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;AACtF,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type VDTDocument } from 'postext';
|
|
2
|
+
import type { EpubFontFile, EpubItem, EpubMetadata, EpubResourceBytes, EpubWarning } from '../types';
|
|
3
|
+
/** The embedded font files as manifest items under `fonts/` and the
|
|
4
|
+
* `@font-face` rules that declare them, with `url()`s relative to a
|
|
5
|
+
* stylesheet in `styles/` (`../fonts/…`). */
|
|
6
|
+
export interface FontAssets {
|
|
7
|
+
items: EpubItem[];
|
|
8
|
+
css: string;
|
|
9
|
+
/** Families that have at least one face. */
|
|
10
|
+
families: Set<string>;
|
|
11
|
+
}
|
|
12
|
+
/** A lower-case ASCII slug for file names and manifest ids. */
|
|
13
|
+
export declare function slug(text: string, max?: number): string;
|
|
14
|
+
/** A CSS string literal. */
|
|
15
|
+
export declare function cssString(text: string): string;
|
|
16
|
+
export declare function fontAssets(fonts: readonly EpubFontFile[]): FontAssets;
|
|
17
|
+
/** The pictures the documents place (resource bitmaps/SVGs, table-cell
|
|
18
|
+
* images, design images), each written once under `images/`. `hrefOf`
|
|
19
|
+
* answers the href (relative to the package document) of a `fileId`, or
|
|
20
|
+
* undefined when the host had no bytes (reported once as `missingImage`). */
|
|
21
|
+
export interface ImageAssets {
|
|
22
|
+
items: EpubItem[];
|
|
23
|
+
hrefOf(fileId: string): string | undefined;
|
|
24
|
+
}
|
|
25
|
+
/** Every `fileId` the pages of `doc` place, in order of first appearance:
|
|
26
|
+
* figures, table-cell images, callout icons and markers, design images of
|
|
27
|
+
* headers, footers, opener bands and heading designs. A walk over the page
|
|
28
|
+
* tree rather than a list of fields, so a picture a future block kind
|
|
29
|
+
* places is not left behind. (`pdfFileId` print masters are the PDF's
|
|
30
|
+
* business: the HTML renderers ask for `fileId`.) */
|
|
31
|
+
export declare function placedFileIds(doc: VDTDocument): string[];
|
|
32
|
+
/** The ink SVG pictures are recoloured to, or null without single ink. */
|
|
33
|
+
export declare function singleInkOf(doc: VDTDocument | undefined): string | null;
|
|
34
|
+
/** The pictures' files. Single-ink diagrams (`diagramStyle.singleInk`) are
|
|
35
|
+
* recoloured once here, as the PDF recolours their markup, rather than
|
|
36
|
+
* tinted by a CSS filter readers may not apply: the host hands over the
|
|
37
|
+
* SVG source. */
|
|
38
|
+
export declare function imageAssets(docs: readonly VDTDocument[], resourceBytes: EpubResourceBytes | undefined, onWarning?: (warning: EpubWarning) => void): Promise<ImageAssets>;
|
|
39
|
+
/** The `dc:identifier` of the book: the given one (a bare ISBN becomes
|
|
40
|
+
* `urn:isbn:…`), else a stable `urn:uuid:` derived from the title,
|
|
41
|
+
* creators and language, so rebuilding a book keeps its identity. */
|
|
42
|
+
export declare function bookIdentifier(metadata: EpubMetadata): string;
|
|
43
|
+
/** Page progression of the book: rtl for a right-bound book (Arabic,
|
|
44
|
+
* vertical Chinese), else ltr. */
|
|
45
|
+
export declare function pageProgressionOf(docs: readonly VDTDocument[]): 'ltr' | 'rtl';
|
|
46
|
+
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/shared/assets.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIrG;;8CAE8C;AAC9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AAED,+DAA+D;AAC/D,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAUnD;AAiBD,4BAA4B;AAC5B,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,UAAU,CA4BrE;AAED;;;8EAG8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;sDAKsD;AACtD,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,CAiBxD;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED;;;kBAGkB;AAClB,wBAAsB,WAAW,CAC/B,IAAI,EAAE,SAAS,WAAW,EAAE,EAC5B,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACzC,OAAO,CAAC,WAAW,CAAC,CAyBtB;AAKD;;sEAEsE;AACtE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAK7D;AAED;mCACmC;AACnC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,KAAK,GAAG,KAAK,CAE7E"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// Fonts, pictures and identity shared by both renditions.
|
|
2
|
+
import { applySingleInkToSvg, resolveColorValue } from 'postext';
|
|
3
|
+
import { FONT_MEDIA_TYPES, IMAGE_EXTENSIONS, sniffFontFormat, sniffImageType } from './media';
|
|
4
|
+
import { uuidV5 } from './uuid';
|
|
5
|
+
/** A lower-case ASCII slug for file names and manifest ids. */
|
|
6
|
+
export function slug(text, max = 48) {
|
|
7
|
+
const s = text
|
|
8
|
+
.normalize('NFKD')
|
|
9
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
12
|
+
.replace(/^-+|-+$/g, '')
|
|
13
|
+
.slice(0, max)
|
|
14
|
+
.replace(/-+$/, '');
|
|
15
|
+
return s || 'x';
|
|
16
|
+
}
|
|
17
|
+
/** A name not in `taken` (adds it): `base`, else `base-2`, `base-3`… */
|
|
18
|
+
function unique(base, taken) {
|
|
19
|
+
let name = base;
|
|
20
|
+
for (let n = 2; taken.has(name); n++)
|
|
21
|
+
name = `${base}-${n}`;
|
|
22
|
+
taken.add(name);
|
|
23
|
+
return name;
|
|
24
|
+
}
|
|
25
|
+
const CSS_FORMAT = {
|
|
26
|
+
woff2: 'woff2',
|
|
27
|
+
woff: 'woff',
|
|
28
|
+
ttf: 'truetype',
|
|
29
|
+
otf: 'opentype',
|
|
30
|
+
};
|
|
31
|
+
/** A CSS string literal. */
|
|
32
|
+
export function cssString(text) {
|
|
33
|
+
return `"${text.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/[\n\r\f]/g, ' ')}"`;
|
|
34
|
+
}
|
|
35
|
+
export function fontAssets(fonts) {
|
|
36
|
+
const items = [];
|
|
37
|
+
const rules = [];
|
|
38
|
+
const families = new Set();
|
|
39
|
+
const names = new Set();
|
|
40
|
+
const seen = new Set();
|
|
41
|
+
for (const font of fonts) {
|
|
42
|
+
// The bytes decide the format: a host that names a TrueType file
|
|
43
|
+
// `woff2` would otherwise get an item EPUBCheck rejects.
|
|
44
|
+
const format = sniffFontFormat(font.bytes) ?? font.format;
|
|
45
|
+
const key = `${font.family}\u0000${font.weight}\u0000${font.style}\u0000${font.unicodeRange ?? ''}`;
|
|
46
|
+
if (seen.has(key))
|
|
47
|
+
continue;
|
|
48
|
+
seen.add(key);
|
|
49
|
+
const name = unique(`${slug(font.family, 32)}-${slug(String(font.weight), 12)}-${font.style}`, names);
|
|
50
|
+
const href = `fonts/${name}.${format}`;
|
|
51
|
+
items.push({ id: `font-${name}`, href, mediaType: FONT_MEDIA_TYPES[format], data: font.bytes });
|
|
52
|
+
families.add(font.family);
|
|
53
|
+
rules.push(`@font-face {\n` +
|
|
54
|
+
` font-family: ${cssString(font.family)};\n` +
|
|
55
|
+
` font-weight: ${font.weight};\n` +
|
|
56
|
+
` font-style: ${font.style};\n` +
|
|
57
|
+
` src: url("../${href}") format("${CSS_FORMAT[format]}");\n` +
|
|
58
|
+
(font.unicodeRange ? ` unicode-range: ${font.unicodeRange};\n` : '') +
|
|
59
|
+
`}\n`);
|
|
60
|
+
}
|
|
61
|
+
return { items, css: rules.join(''), families };
|
|
62
|
+
}
|
|
63
|
+
/** Every `fileId` the pages of `doc` place, in order of first appearance:
|
|
64
|
+
* figures, table-cell images, callout icons and markers, design images of
|
|
65
|
+
* headers, footers, opener bands and heading designs. A walk over the page
|
|
66
|
+
* tree rather than a list of fields, so a picture a future block kind
|
|
67
|
+
* places is not left behind. (`pdfFileId` print masters are the PDF's
|
|
68
|
+
* business: the HTML renderers ask for `fileId`.) */
|
|
69
|
+
export function placedFileIds(doc) {
|
|
70
|
+
const out = new Set();
|
|
71
|
+
const visited = new Set();
|
|
72
|
+
const walk = (value) => {
|
|
73
|
+
if (value === null || typeof value !== 'object' || visited.has(value))
|
|
74
|
+
return;
|
|
75
|
+
visited.add(value);
|
|
76
|
+
if (Array.isArray(value)) {
|
|
77
|
+
for (const v of value)
|
|
78
|
+
walk(v);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
for (const [key, v] of Object.entries(value)) {
|
|
82
|
+
if (key === 'fileId' && typeof v === 'string' && v)
|
|
83
|
+
out.add(v);
|
|
84
|
+
else if (typeof v === 'object')
|
|
85
|
+
walk(v);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
walk(doc.pages);
|
|
89
|
+
return [...out];
|
|
90
|
+
}
|
|
91
|
+
/** The ink SVG pictures are recoloured to, or null without single ink. */
|
|
92
|
+
export function singleInkOf(doc) {
|
|
93
|
+
const ds = doc?.config?.diagramStyle;
|
|
94
|
+
return ds?.singleInk ? resolveColorValue(ds.inkColor, doc.config.colorPalette, ds.inkColor).hex : null;
|
|
95
|
+
}
|
|
96
|
+
/** The pictures' files. Single-ink diagrams (`diagramStyle.singleInk`) are
|
|
97
|
+
* recoloured once here, as the PDF recolours their markup, rather than
|
|
98
|
+
* tinted by a CSS filter readers may not apply: the host hands over the
|
|
99
|
+
* SVG source. */
|
|
100
|
+
export async function imageAssets(docs, resourceBytes, onWarning) {
|
|
101
|
+
const fileIds = [...new Set(docs.flatMap(placedFileIds))];
|
|
102
|
+
const fetched = await Promise.all(fileIds.map(async (fileId) => ({ fileId, payload: await resourceBytes?.(fileId) })));
|
|
103
|
+
const items = [];
|
|
104
|
+
const hrefs = new Map();
|
|
105
|
+
const names = new Set();
|
|
106
|
+
const ink = singleInkOf(docs[0]);
|
|
107
|
+
for (const { fileId, payload } of fetched) {
|
|
108
|
+
const mediaType = payload && payload.bytes.length > 0
|
|
109
|
+
? sniffImageType(payload.bytes) ?? (payload.mediaType in IMAGE_EXTENSIONS ? payload.mediaType : undefined)
|
|
110
|
+
: undefined;
|
|
111
|
+
if (!payload || !mediaType) {
|
|
112
|
+
onWarning?.({ kind: 'missingImage', fileId });
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const ext = IMAGE_EXTENSIONS[mediaType];
|
|
116
|
+
const name = unique(slug(fileId.replace(/\.[a-z0-9]+$/i, '')), names);
|
|
117
|
+
const href = `images/${name}.${ext}`;
|
|
118
|
+
const data = mediaType === 'image/svg+xml' && ink
|
|
119
|
+
? applySingleInkToSvg(new TextDecoder().decode(payload.bytes), ink)
|
|
120
|
+
: payload.bytes;
|
|
121
|
+
items.push({ id: `img-${name}`, href, mediaType, data });
|
|
122
|
+
hrefs.set(fileId, href);
|
|
123
|
+
}
|
|
124
|
+
return { items, hrefOf: (fileId) => hrefs.get(fileId) };
|
|
125
|
+
}
|
|
126
|
+
/** A bare ISBN-10/13 (digits, an X check digit, hyphens or spaces). */
|
|
127
|
+
const BARE_ISBN = /^(?:97[89][-\s]?)?(?:\d[-\s]?){9}[\dXx]$/;
|
|
128
|
+
/** The `dc:identifier` of the book: the given one (a bare ISBN becomes
|
|
129
|
+
* `urn:isbn:…`), else a stable `urn:uuid:` derived from the title,
|
|
130
|
+
* creators and language, so rebuilding a book keeps its identity. */
|
|
131
|
+
export function bookIdentifier(metadata) {
|
|
132
|
+
const given = metadata.identifier?.trim();
|
|
133
|
+
if (given)
|
|
134
|
+
return BARE_ISBN.test(given) ? `urn:isbn:${given.replace(/[-\s]/g, '').toUpperCase()}` : given;
|
|
135
|
+
const name = ['postext-epub', metadata.title.trim(), ...(metadata.creators ?? []).map((c) => c.trim()), metadata.language.trim().toLowerCase()].join('\n');
|
|
136
|
+
return `urn:uuid:${uuidV5(name)}`;
|
|
137
|
+
}
|
|
138
|
+
/** Page progression of the book: rtl for a right-bound book (Arabic,
|
|
139
|
+
* vertical Chinese), else ltr. */
|
|
140
|
+
export function pageProgressionOf(docs) {
|
|
141
|
+
return docs.some((d) => d.binding === 'right') ? 'rtl' : 'ltr';
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/shared/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.test.d.ts","sourceRoot":"","sources":["../../src/shared/assets.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { bookIdentifier, fontAssets, imageAssets, pageProgressionOf, placedFileIds } from './assets';
|
|
4
|
+
import { sniffFontFormat, sniffImageType } from './media';
|
|
5
|
+
import { sha1, uuidV5 } from './uuid';
|
|
6
|
+
const PNG = Uint8Array.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0, 0, 0, 0]);
|
|
7
|
+
const SVG = new TextEncoder().encode('<?xml version="1.0"?>\n<svg xmlns="http://www.w3.org/2000/svg"/>');
|
|
8
|
+
const TTF = Uint8Array.from([0x00, 0x01, 0x00, 0x00, 0, 0]);
|
|
9
|
+
const WOFF2 = new TextEncoder().encode('wOF2rest');
|
|
10
|
+
describe('sha1 / uuidV5', () => {
|
|
11
|
+
it('matches node:crypto on short and multi-block input', () => {
|
|
12
|
+
for (const s of ['', 'abc', 'x'.repeat(55), 'y'.repeat(56), 'z'.repeat(200), 'ñandú 中文']) {
|
|
13
|
+
const bytes = new TextEncoder().encode(s);
|
|
14
|
+
const ours = Buffer.from(sha1(bytes)).toString('hex');
|
|
15
|
+
expect(ours).toBe(createHash('sha1').update(bytes).digest('hex'));
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
it('is a version 5, RFC 4122 variant UUID', () => {
|
|
19
|
+
expect(uuidV5('https://postext.dev/')).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/);
|
|
20
|
+
// python3: uuid.uuid5(uuid.NAMESPACE_URL, 'http://python.org/')
|
|
21
|
+
expect(uuidV5('http://python.org/')).toBe('4c565f0d-3f5a-5890-b41b-20cf47701c5e');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('bookIdentifier', () => {
|
|
25
|
+
it('derives a stable urn:uuid from title, creators and language', () => {
|
|
26
|
+
const a = bookIdentifier({ title: 'Libro', creators: ['Ana'], language: 'es' });
|
|
27
|
+
expect(a).toMatch(/^urn:uuid:/);
|
|
28
|
+
expect(bookIdentifier({ title: 'Libro', creators: ['Ana'], language: 'ES' })).toBe(a);
|
|
29
|
+
expect(bookIdentifier({ title: 'Libro', creators: ['Eva'], language: 'es' })).not.toBe(a);
|
|
30
|
+
});
|
|
31
|
+
it('keeps a given identifier and prefixes a bare ISBN', () => {
|
|
32
|
+
expect(bookIdentifier({ title: 'T', language: 'en', identifier: '978-84-376-0494-7' })).toBe('urn:isbn:9788437604947');
|
|
33
|
+
expect(bookIdentifier({ title: 'T', language: 'en', identifier: 'https://example.org/b' })).toBe('https://example.org/b');
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('media sniffing', () => {
|
|
37
|
+
it('reads picture and font formats from bytes', () => {
|
|
38
|
+
expect(sniffImageType(PNG)).toBe('image/png');
|
|
39
|
+
expect(sniffImageType(Uint8Array.from([0xff, 0xd8, 0xff, 0xe0]))).toBe('image/jpeg');
|
|
40
|
+
expect(sniffImageType(SVG)).toBe('image/svg+xml');
|
|
41
|
+
expect(sniffImageType(new Uint8Array([1, 2, 3]))).toBeUndefined();
|
|
42
|
+
expect(sniffFontFormat(TTF)).toBe('ttf');
|
|
43
|
+
expect(sniffFontFormat(WOFF2)).toBe('woff2');
|
|
44
|
+
expect(sniffFontFormat(new TextEncoder().encode('OTTO'))).toBe('otf');
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('fontAssets', () => {
|
|
48
|
+
it('writes one item and one @font-face per face, format from the bytes', () => {
|
|
49
|
+
const a = fontAssets([
|
|
50
|
+
{ family: 'Lora', weight: 400, style: 'normal', bytes: TTF, format: 'woff2' },
|
|
51
|
+
{ family: 'Lora', weight: 400, style: 'normal', bytes: TTF, format: 'ttf' },
|
|
52
|
+
{ family: 'Noto Sans SC', weight: '100 900', style: 'italic', bytes: WOFF2, format: 'woff2', unicodeRange: 'U+4E00-9FFF' },
|
|
53
|
+
]);
|
|
54
|
+
expect(a.items.map((i) => [i.href, i.mediaType])).toEqual([
|
|
55
|
+
['fonts/lora-400-normal.ttf', 'font/ttf'],
|
|
56
|
+
['fonts/noto-sans-sc-100-900-italic.woff2', 'font/woff2'],
|
|
57
|
+
]);
|
|
58
|
+
expect(a.css).toContain('font-family: "Lora";');
|
|
59
|
+
expect(a.css).toContain('src: url("../fonts/lora-400-normal.ttf") format("truetype");');
|
|
60
|
+
expect(a.css).toContain('font-weight: 100 900;');
|
|
61
|
+
expect(a.css).toContain('unicode-range: U+4E00-9FFF;');
|
|
62
|
+
expect([...a.families]).toEqual(['Lora', 'Noto Sans SC']);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('imageAssets', () => {
|
|
66
|
+
const doc = {
|
|
67
|
+
pages: [
|
|
68
|
+
{
|
|
69
|
+
columns: [{ blocks: [{ resourceBlock: { fileId: 'fig.png', table: { cells: [{ image: { fileId: 'cell.svg' } }] } } }] }],
|
|
70
|
+
header: { blocks: [{ kind: 'image', fileId: 'logo' }] },
|
|
71
|
+
},
|
|
72
|
+
{ columns: [], floats: [{ resourceBlock: { fileId: 'fig.png' } }] },
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
it('collects every placed fileId once, in order', () => {
|
|
76
|
+
expect(placedFileIds(doc)).toEqual(['fig.png', 'cell.svg', 'logo']);
|
|
77
|
+
});
|
|
78
|
+
it('writes each picture once with a sniffed type and warns on a miss', async () => {
|
|
79
|
+
const warnings = [];
|
|
80
|
+
const a = await imageAssets([doc, doc], (id) => id === 'fig.png'
|
|
81
|
+
? { bytes: PNG, mediaType: 'image/jpeg' }
|
|
82
|
+
: id === 'cell.svg' ? Promise.resolve({ bytes: SVG, mediaType: 'image/svg+xml' }) : undefined, (w) => warnings.push(w));
|
|
83
|
+
expect(a.items.map((i) => [i.id, i.href, i.mediaType])).toEqual([
|
|
84
|
+
['img-fig', 'images/fig.png', 'image/png'],
|
|
85
|
+
['img-cell', 'images/cell.svg', 'image/svg+xml'],
|
|
86
|
+
]);
|
|
87
|
+
expect(a.hrefOf('cell.svg')).toBe('images/cell.svg');
|
|
88
|
+
expect(a.hrefOf('logo')).toBeUndefined();
|
|
89
|
+
expect(warnings).toEqual([{ kind: 'missingImage', fileId: 'logo' }]);
|
|
90
|
+
});
|
|
91
|
+
it('recolours SVG sources to the ink of a single-ink book', async () => {
|
|
92
|
+
const inked = { ...doc, config: { diagramStyle: { singleInk: true, inkColor: { hex: '#0000ff', model: 'hex' } } } };
|
|
93
|
+
const svg = new TextEncoder().encode('<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#ff0000" width="1" height="1"/></svg>');
|
|
94
|
+
const a = await imageAssets([inked], (id) => (id === 'cell.svg' ? { bytes: svg, mediaType: 'image/svg+xml' } : undefined));
|
|
95
|
+
const data = a.items.find((i) => i.href === 'images/cell.svg').data;
|
|
96
|
+
expect(typeof data).toBe('string');
|
|
97
|
+
expect(data).not.toContain('#ff0000');
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe('pageProgressionOf', () => {
|
|
101
|
+
it('is rtl for a right-bound book', () => {
|
|
102
|
+
expect(pageProgressionOf([{ binding: 'right' }])).toBe('rtl');
|
|
103
|
+
expect(pageProgressionOf([{}])).toBe('ltr');
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=assets.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.test.js","sourceRoot":"","sources":["../../src/shared/assets.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** The EPUB core media types of pictures, and the file extension of each. */
|
|
2
|
+
export declare const IMAGE_EXTENSIONS: Readonly<Record<string, string>>;
|
|
3
|
+
/** The EPUB core media types of fonts, by file format. */
|
|
4
|
+
export declare const FONT_MEDIA_TYPES: Readonly<Record<'woff2' | 'woff' | 'ttf' | 'otf', string>>;
|
|
5
|
+
/** The picture media type of `bytes`, or undefined when they are none of
|
|
6
|
+
* PNG, JPEG, GIF, WebP or SVG. */
|
|
7
|
+
export declare function sniffImageType(bytes: Uint8Array): string | undefined;
|
|
8
|
+
/** The font format of `bytes` (WOFF2, WOFF, TrueType or CFF OpenType), or
|
|
9
|
+
* undefined when they are none. */
|
|
10
|
+
export declare function sniffFontFormat(bytes: Uint8Array): 'woff2' | 'woff' | 'ttf' | 'otf' | undefined;
|
|
11
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/shared/media.ts"],"names":[],"mappings":"AAIA,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7D,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAKvF,CAAC;AAOF;mCACmC;AACnC,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAUpE;AAED;oCACoC;AACpC,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAM/F"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Media types of the pictures and fonts a book embeds, read from their
|
|
2
|
+
// bytes: a host's declared type can be wrong (an SVG served as a PNG), and
|
|
3
|
+
// EPUBCheck rejects an item whose bytes do not match its manifest type.
|
|
4
|
+
/** The EPUB core media types of pictures, and the file extension of each. */
|
|
5
|
+
export const IMAGE_EXTENSIONS = {
|
|
6
|
+
'image/png': 'png',
|
|
7
|
+
'image/jpeg': 'jpg',
|
|
8
|
+
'image/gif': 'gif',
|
|
9
|
+
'image/webp': 'webp',
|
|
10
|
+
'image/svg+xml': 'svg',
|
|
11
|
+
};
|
|
12
|
+
/** The EPUB core media types of fonts, by file format. */
|
|
13
|
+
export const FONT_MEDIA_TYPES = {
|
|
14
|
+
woff2: 'font/woff2',
|
|
15
|
+
woff: 'font/woff',
|
|
16
|
+
ttf: 'font/ttf',
|
|
17
|
+
otf: 'font/otf',
|
|
18
|
+
};
|
|
19
|
+
const startsWith = (bytes, sig, at = 0) => bytes.length >= at + sig.length && sig.every((b, i) => bytes[at + i] === b);
|
|
20
|
+
const ascii = (s) => [...s].map((c) => c.charCodeAt(0));
|
|
21
|
+
/** The picture media type of `bytes`, or undefined when they are none of
|
|
22
|
+
* PNG, JPEG, GIF, WebP or SVG. */
|
|
23
|
+
export function sniffImageType(bytes) {
|
|
24
|
+
if (startsWith(bytes, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))
|
|
25
|
+
return 'image/png';
|
|
26
|
+
if (startsWith(bytes, [0xff, 0xd8, 0xff]))
|
|
27
|
+
return 'image/jpeg';
|
|
28
|
+
if (startsWith(bytes, ascii('GIF87a')) || startsWith(bytes, ascii('GIF89a')))
|
|
29
|
+
return 'image/gif';
|
|
30
|
+
if (startsWith(bytes, ascii('RIFF')) && startsWith(bytes, ascii('WEBP'), 8))
|
|
31
|
+
return 'image/webp';
|
|
32
|
+
// SVG: markup (after a BOM, an XML declaration, comments or a doctype)
|
|
33
|
+
// whose root is <svg.
|
|
34
|
+
const head = new TextDecoder().decode(bytes.subarray(0, 4096)).replace(/^/, '');
|
|
35
|
+
if (/^\s*</.test(head) && /<svg[\s>]/i.test(head))
|
|
36
|
+
return 'image/svg+xml';
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
/** The font format of `bytes` (WOFF2, WOFF, TrueType or CFF OpenType), or
|
|
40
|
+
* undefined when they are none. */
|
|
41
|
+
export function sniffFontFormat(bytes) {
|
|
42
|
+
if (startsWith(bytes, ascii('wOF2')))
|
|
43
|
+
return 'woff2';
|
|
44
|
+
if (startsWith(bytes, ascii('wOFF')))
|
|
45
|
+
return 'woff';
|
|
46
|
+
if (startsWith(bytes, ascii('OTTO')))
|
|
47
|
+
return 'otf';
|
|
48
|
+
if (startsWith(bytes, [0x00, 0x01, 0x00, 0x00]) || startsWith(bytes, ascii('true')))
|
|
49
|
+
return 'ttf';
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/shared/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** SHA-1 of a byte string. Small and synchronous; used for identifiers
|
|
2
|
+
* only, never for security. */
|
|
3
|
+
export declare function sha1(bytes: Uint8Array): Uint8Array;
|
|
4
|
+
/** A version 5 UUID of `name` in the URL namespace, lower-case hex with
|
|
5
|
+
* dashes. */
|
|
6
|
+
export declare function uuidV5(name: string): string;
|
|
7
|
+
//# sourceMappingURL=uuid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/shared/uuid.ts"],"names":[],"mappings":"AAIA;gCACgC;AAChC,wBAAgB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAwClD;AAKD;cACc;AACd,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU3C"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Name-based UUIDs (RFC 9562 version 5, SHA-1) without a crypto
|
|
2
|
+
// dependency: a book's identifier must come out the same on every run, in
|
|
3
|
+
// the browser and in Node, synchronously.
|
|
4
|
+
/** SHA-1 of a byte string. Small and synchronous; used for identifiers
|
|
5
|
+
* only, never for security. */
|
|
6
|
+
export function sha1(bytes) {
|
|
7
|
+
const bitLen = bytes.length * 8;
|
|
8
|
+
const padded = new Uint8Array(((bytes.length + 9 + 63) >> 6) << 6);
|
|
9
|
+
padded.set(bytes);
|
|
10
|
+
padded[bytes.length] = 0x80;
|
|
11
|
+
const view = new DataView(padded.buffer);
|
|
12
|
+
// Message length in bits, big-endian, in the last 8 bytes.
|
|
13
|
+
view.setUint32(padded.length - 8, Math.floor(bitLen / 0x100000000));
|
|
14
|
+
view.setUint32(padded.length - 4, bitLen >>> 0);
|
|
15
|
+
let h0 = 0x67452301, h1 = 0xefcdab89, h2 = 0x98badcfe, h3 = 0x10325476, h4 = 0xc3d2e1f0;
|
|
16
|
+
const w = new Uint32Array(80);
|
|
17
|
+
for (let off = 0; off < padded.length; off += 64) {
|
|
18
|
+
for (let i = 0; i < 16; i++)
|
|
19
|
+
w[i] = view.getUint32(off + i * 4);
|
|
20
|
+
for (let i = 16; i < 80; i++) {
|
|
21
|
+
const x = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16];
|
|
22
|
+
w[i] = (x << 1) | (x >>> 31);
|
|
23
|
+
}
|
|
24
|
+
let a = h0, b = h1, c = h2, d = h3, e = h4;
|
|
25
|
+
for (let i = 0; i < 80; i++) {
|
|
26
|
+
const [f, k] = i < 20 ? [(b & c) | (~b & d), 0x5a827999]
|
|
27
|
+
: i < 40 ? [b ^ c ^ d, 0x6ed9eba1]
|
|
28
|
+
: i < 60 ? [(b & c) | (b & d) | (c & d), 0x8f1bbcdc]
|
|
29
|
+
: [b ^ c ^ d, 0xca62c1d6];
|
|
30
|
+
const t = (((a << 5) | (a >>> 27)) + f + e + k + w[i]) >>> 0;
|
|
31
|
+
e = d;
|
|
32
|
+
d = c;
|
|
33
|
+
c = (b << 30) | (b >>> 2);
|
|
34
|
+
b = a;
|
|
35
|
+
a = t;
|
|
36
|
+
}
|
|
37
|
+
h0 = (h0 + a) >>> 0;
|
|
38
|
+
h1 = (h1 + b) >>> 0;
|
|
39
|
+
h2 = (h2 + c) >>> 0;
|
|
40
|
+
h3 = (h3 + d) >>> 0;
|
|
41
|
+
h4 = (h4 + e) >>> 0;
|
|
42
|
+
}
|
|
43
|
+
const out = new Uint8Array(20);
|
|
44
|
+
const ov = new DataView(out.buffer);
|
|
45
|
+
[h0, h1, h2, h3, h4].forEach((h, i) => ov.setUint32(i * 4, h));
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
/** The URL namespace of RFC 9562 (6ba7b811-9dad-11d1-80b4-00c04fd430c8). */
|
|
49
|
+
const URL_NAMESPACE = Uint8Array.from([0x6b, 0xa7, 0xb8, 0x11, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8]);
|
|
50
|
+
/** A version 5 UUID of `name` in the URL namespace, lower-case hex with
|
|
51
|
+
* dashes. */
|
|
52
|
+
export function uuidV5(name) {
|
|
53
|
+
const nameBytes = new TextEncoder().encode(name);
|
|
54
|
+
const input = new Uint8Array(URL_NAMESPACE.length + nameBytes.length);
|
|
55
|
+
input.set(URL_NAMESPACE);
|
|
56
|
+
input.set(nameBytes, URL_NAMESPACE.length);
|
|
57
|
+
const hash = sha1(input).slice(0, 16);
|
|
58
|
+
hash[6] = (hash[6] & 0x0f) | 0x50;
|
|
59
|
+
hash[8] = (hash[8] & 0x3f) | 0x80;
|
|
60
|
+
const hex = [...hash].map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
61
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=uuid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/shared/uuid.ts"],"names":[],"mappings":"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"}
|