structural-codes-viewer 0.1.0-alpha.1 → 0.1.0-alpha.3
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 +501 -0
- package/NOTICE +16 -0
- package/README.md +57 -68
- package/package-dist/CorpusContent.d.ts +44 -9
- package/package-dist/CorpusContent.js +452 -26
- package/package-dist/CorpusContent.js.map +1 -1
- package/package-dist/NormativeViewer.d.ts +23 -2
- package/package-dist/NormativeViewer.js +1699 -234
- package/package-dist/NormativeViewer.js.map +1 -1
- package/package-dist/ReferenceTools.d.ts +49 -0
- package/package-dist/ReferenceTools.js +14 -0
- package/package-dist/ReferenceTools.js.map +1 -0
- package/package-dist/annotations/AnnotationUi.d.ts +57 -0
- package/package-dist/annotations/AnnotationUi.js +114 -0
- package/package-dist/annotations/AnnotationUi.js.map +1 -0
- package/package-dist/annotations/annotationTargets.d.ts +39 -0
- package/package-dist/annotations/annotationTargets.js +94 -0
- package/package-dist/annotations/annotationTargets.js.map +1 -0
- package/package-dist/annotations/exportImport.d.ts +6 -0
- package/package-dist/annotations/exportImport.js +30 -0
- package/package-dist/annotations/exportImport.js.map +1 -0
- package/package-dist/annotations/index.d.ts +4 -0
- package/package-dist/annotations/index.js +5 -0
- package/package-dist/annotations/index.js.map +1 -0
- package/package-dist/annotations/indexedDb.d.ts +21 -0
- package/package-dist/annotations/indexedDb.js +210 -0
- package/package-dist/annotations/indexedDb.js.map +1 -0
- package/package-dist/annotations/schema.d.ts +8 -0
- package/package-dist/annotations/schema.js +102 -0
- package/package-dist/annotations/schema.js.map +1 -0
- package/package-dist/annotations/types.d.ts +52 -0
- package/package-dist/annotations/types.js +18 -0
- package/package-dist/annotations/types.js.map +1 -0
- package/package-dist/chunkNavigation.d.ts +12 -0
- package/package-dist/chunkNavigation.js +44 -0
- package/package-dist/chunkNavigation.js.map +1 -0
- package/package-dist/corpusData.d.ts +176 -33
- package/package-dist/corpusData.js +52 -0
- package/package-dist/corpusData.js.map +1 -1
- package/package-dist/crossReferences.d.ts +46 -0
- package/package-dist/crossReferences.js +198 -0
- package/package-dist/crossReferences.js.map +1 -0
- package/package-dist/generate-artifacts.mjs +47 -12
- package/package-dist/globalScrubber.d.ts +10 -0
- package/package-dist/globalScrubber.js +85 -0
- package/package-dist/globalScrubber.js.map +1 -0
- package/package-dist/permalinks.d.ts +22 -0
- package/package-dist/permalinks.js +36 -0
- package/package-dist/permalinks.js.map +1 -0
- package/package-dist/searchClient.d.ts +22 -0
- package/package-dist/searchClient.js +133 -0
- package/package-dist/searchClient.js.map +1 -0
- package/package-dist/searchEngine.d.ts +68 -0
- package/package-dist/searchEngine.js +558 -0
- package/package-dist/searchEngine.js.map +1 -0
- package/package-dist/searchWorker.d.ts +1 -0
- package/package-dist/searchWorker.js +32 -0
- package/package-dist/searchWorker.js.map +1 -0
- package/package-dist/styles.css +762 -182
- package/package-dist/tableCaptions.d.mts +3 -0
- package/package-dist/tableCaptions.mjs +35 -0
- package/package-dist/tableCaptions.mjs.map +1 -0
- package/package.json +18 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnotationUi.js","sourceRoot":"","sources":["../../shared/annotations/AnnotationUi.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { UnitSummary } from "../corpusData.js";
|
|
2
|
+
import type { ViewerTarget } from "../permalinks.js";
|
|
3
|
+
import type { UserAnnotation } from "./types.js";
|
|
4
|
+
export interface AnnotationMarker {
|
|
5
|
+
annotation: UserAnnotation;
|
|
6
|
+
ratio: number;
|
|
7
|
+
}
|
|
8
|
+
export interface AnnotationMarkerCluster {
|
|
9
|
+
ratio: number;
|
|
10
|
+
markers: AnnotationMarker[];
|
|
11
|
+
}
|
|
12
|
+
export declare function annotationTargetFromElement(element: Element | null): ViewerTarget | null;
|
|
13
|
+
export declare function automaticAnnotationLabel(target: ViewerTarget, numbering: string, title: string, officialAssetNumber?: string | null): string;
|
|
14
|
+
export declare function annotationsForTarget(annotations: UserAnnotation[], target: ViewerTarget, type?: UserAnnotation["type"]): UserAnnotation[];
|
|
15
|
+
export declare function annotationPositionRanks(indexes: Iterable<{
|
|
16
|
+
document: "ntc2018" | "circ2019";
|
|
17
|
+
units: UnitSummary[];
|
|
18
|
+
}>): Map<string, number>;
|
|
19
|
+
export declare function sortAnnotations(annotations: UserAnnotation[], order: "position" | "recent" | "oldest", ranks?: Map<string, number>): UserAnnotation[];
|
|
20
|
+
export declare function clusterAnnotationMarkers(markers: AnnotationMarker[], thresholdRatio?: number): AnnotationMarkerCluster[];
|
|
21
|
+
export declare function createLongPressSession(onLongPress: (point: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
}) => void, options?: {
|
|
25
|
+
delay?: number;
|
|
26
|
+
movement?: number;
|
|
27
|
+
setTimer?: typeof setTimeout;
|
|
28
|
+
clearTimer?: typeof clearTimeout;
|
|
29
|
+
}): {
|
|
30
|
+
start(point: {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
}): void;
|
|
34
|
+
move(point: {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
}): void;
|
|
38
|
+
cancel: () => void;
|
|
39
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { annotationTargetKey } from "./schema.js";
|
|
2
|
+
export function annotationTargetFromElement(element) {
|
|
3
|
+
const candidate = element === null || element === void 0 ? void 0 : element.closest("[data-scv-citation-target]");
|
|
4
|
+
if (!candidate)
|
|
5
|
+
return null;
|
|
6
|
+
const unitId = candidate.dataset.scvSourceUnitId;
|
|
7
|
+
if (!unitId)
|
|
8
|
+
return null;
|
|
9
|
+
if (candidate.dataset.scvAssetId) {
|
|
10
|
+
const assetKind = candidate.dataset.scvAssetKind;
|
|
11
|
+
return Object.assign({ kind: "asset", unitId, assetId: candidate.dataset.scvAssetId }, (assetKind === "formula" || assetKind === "table" || assetKind === "figure" ? { assetKind } : {}));
|
|
12
|
+
}
|
|
13
|
+
if (candidate.dataset.scvBlockId)
|
|
14
|
+
return { kind: "block", unitId, blockId: candidate.dataset.scvBlockId };
|
|
15
|
+
return { kind: "unit", unitId };
|
|
16
|
+
}
|
|
17
|
+
export function automaticAnnotationLabel(target, numbering, title, officialAssetNumber) {
|
|
18
|
+
if (target.kind === "asset") {
|
|
19
|
+
const number = officialAssetNumber || numbering;
|
|
20
|
+
if (target.assetKind === "formula")
|
|
21
|
+
return `Formula [${number}]`;
|
|
22
|
+
if (target.assetKind === "table")
|
|
23
|
+
return `Tab. ${number}`;
|
|
24
|
+
if (target.assetKind === "figure")
|
|
25
|
+
return `Fig. ${number}`;
|
|
26
|
+
}
|
|
27
|
+
return `§ ${numbering}${title ? ` — ${title}` : ""}`;
|
|
28
|
+
}
|
|
29
|
+
export function annotationsForTarget(annotations, target, type) {
|
|
30
|
+
const key = annotationTargetKey(target);
|
|
31
|
+
return annotations.filter((annotation) => (!type || annotation.type === type) && annotationTargetKey(annotation.target) === key);
|
|
32
|
+
}
|
|
33
|
+
export function annotationPositionRanks(indexes) {
|
|
34
|
+
const documents = [...indexes].sort((left, right) => (left.document === right.document ? 0 : left.document === "ntc2018" ? -1 : 1));
|
|
35
|
+
const ranks = new Map();
|
|
36
|
+
let rank = 0;
|
|
37
|
+
for (const document of documents) {
|
|
38
|
+
for (const unit of [...document.units].sort((left, right) => left.numbering.sortKey.localeCompare(right.numbering.sortKey, "it", { numeric: true })))
|
|
39
|
+
ranks.set(unit.id, rank++);
|
|
40
|
+
}
|
|
41
|
+
return ranks;
|
|
42
|
+
}
|
|
43
|
+
export function sortAnnotations(annotations, order, ranks = new Map()) {
|
|
44
|
+
return [...annotations].sort((left, right) => {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
if (order === "recent")
|
|
47
|
+
return right.updatedAt.localeCompare(left.updatedAt) || left.id.localeCompare(right.id);
|
|
48
|
+
if (order === "oldest")
|
|
49
|
+
return left.updatedAt.localeCompare(right.updatedAt) || left.id.localeCompare(right.id);
|
|
50
|
+
const rank = ((_a = ranks.get(left.target.unitId)) !== null && _a !== void 0 ? _a : Number.MAX_SAFE_INTEGER) - ((_b = ranks.get(right.target.unitId)) !== null && _b !== void 0 ? _b : Number.MAX_SAFE_INTEGER);
|
|
51
|
+
return rank || annotationTargetKey(left.target).localeCompare(annotationTargetKey(right.target), "it", { numeric: true }) || left.createdAt.localeCompare(right.createdAt);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function clusterAnnotationMarkers(markers, thresholdRatio = 0.012) {
|
|
55
|
+
const sorted = [...markers].sort((left, right) => left.ratio - right.ratio || left.annotation.id.localeCompare(right.annotation.id));
|
|
56
|
+
const clusters = [];
|
|
57
|
+
for (const marker of sorted) {
|
|
58
|
+
const previous = clusters.at(-1);
|
|
59
|
+
if (previous && marker.ratio - previous.ratio <= thresholdRatio) {
|
|
60
|
+
previous.markers.push(marker);
|
|
61
|
+
previous.ratio = previous.markers.reduce((sum, item) => sum + item.ratio, 0) / previous.markers.length;
|
|
62
|
+
}
|
|
63
|
+
else
|
|
64
|
+
clusters.push({ ratio: marker.ratio, markers: [marker] });
|
|
65
|
+
}
|
|
66
|
+
return clusters.flatMap((cluster) => cluster.markers.length === 2 && new Set(cluster.markers.map(({ annotation }) => annotation.type)).size === 2
|
|
67
|
+
? cluster.markers.map((marker) => ({ ratio: marker.ratio, markers: [marker] }))
|
|
68
|
+
: [cluster]);
|
|
69
|
+
}
|
|
70
|
+
export function createLongPressSession(onLongPress, options = {}) {
|
|
71
|
+
var _a, _b, _c, _d;
|
|
72
|
+
const delay = (_a = options.delay) !== null && _a !== void 0 ? _a : 550;
|
|
73
|
+
const movement = (_b = options.movement) !== null && _b !== void 0 ? _b : 10;
|
|
74
|
+
const setTimer = (_c = options.setTimer) !== null && _c !== void 0 ? _c : setTimeout;
|
|
75
|
+
const clearTimer = (_d = options.clearTimer) !== null && _d !== void 0 ? _d : clearTimeout;
|
|
76
|
+
let start = null;
|
|
77
|
+
let timer = null;
|
|
78
|
+
const cancel = () => { if (timer !== null)
|
|
79
|
+
clearTimer(timer); timer = null; start = null; };
|
|
80
|
+
return {
|
|
81
|
+
start(point) {
|
|
82
|
+
cancel();
|
|
83
|
+
start = point;
|
|
84
|
+
timer = setTimer(() => { const active = start; cancel(); if (active)
|
|
85
|
+
onLongPress(active); }, delay);
|
|
86
|
+
},
|
|
87
|
+
move(point) {
|
|
88
|
+
if (start && Math.hypot(point.x - start.x, point.y - start.y) > movement)
|
|
89
|
+
cancel();
|
|
90
|
+
},
|
|
91
|
+
cancel,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=annotationTargets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotationTargets.js","sourceRoot":"","sources":["../../shared/annotations/annotationTargets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AnnotationExport, type UserAnnotation } from "./types.js";
|
|
2
|
+
export declare function createAnnotationExport(annotations: UserAnnotation[], now?: Date): AnnotationExport;
|
|
3
|
+
export declare function readAnnotationExport(value: unknown): {
|
|
4
|
+
annotations: UserAnnotation[];
|
|
5
|
+
ignored: number;
|
|
6
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ANNOTATION_SCHEMA_VERSION, AnnotationStoreError } from "./types.js";
|
|
2
|
+
import { readAnnotation } from "./schema.js";
|
|
3
|
+
export function createAnnotationExport(annotations, now = new Date()) {
|
|
4
|
+
return { schemaVersion: ANNOTATION_SCHEMA_VERSION, exportedAt: now.toISOString(), annotations: annotations.map((annotation) => structuredClone(annotation)) };
|
|
5
|
+
}
|
|
6
|
+
export function readAnnotationExport(value) {
|
|
7
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
8
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
9
|
+
const source = value;
|
|
10
|
+
if (source.schemaVersion !== ANNOTATION_SCHEMA_VERSION || !Array.isArray(source.annotations))
|
|
11
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
12
|
+
if (Object.keys(source).some((key) => key !== "schemaVersion" && key !== "exportedAt" && key !== "annotations"))
|
|
13
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
14
|
+
if (source.exportedAt !== undefined && (typeof source.exportedAt !== "string" || !Number.isFinite(Date.parse(source.exportedAt))))
|
|
15
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
16
|
+
const annotations = [];
|
|
17
|
+
let ignored = 0;
|
|
18
|
+
for (const item of source.annotations) {
|
|
19
|
+
try {
|
|
20
|
+
annotations.push(readAnnotation(item));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (!(error instanceof AnnotationStoreError))
|
|
24
|
+
throw error;
|
|
25
|
+
ignored += 1;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return { annotations, ignored };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=exportImport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportImport.js","sourceRoot":"","sources":["../../shared/annotations/exportImport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAA8C,MAAM,YAAY,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,sBAAsB,CAAC,WAA6B,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IACpF,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AAChK,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAChH,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,aAAa,KAAK,yBAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC7I,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,aAAa,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAChK,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAClL,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC;YAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAC/C,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,oBAAoB,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC1D,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../shared/annotations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type AnnotationImportResult, type AnnotationStore, type CreateAnnotationInput, type UpdateAnnotationPatch, type UserAnnotation } from "./types.js";
|
|
2
|
+
/** Browser-local adapter. Components depend only on AnnotationStore, so a remote adapter can replace it later. */
|
|
3
|
+
export declare class IndexedDbAnnotationStore implements AnnotationStore {
|
|
4
|
+
private readonly options;
|
|
5
|
+
private opening?;
|
|
6
|
+
constructor(options?: {
|
|
7
|
+
name?: string;
|
|
8
|
+
indexedDB?: IDBFactory;
|
|
9
|
+
now?: () => Date;
|
|
10
|
+
id?: () => string;
|
|
11
|
+
});
|
|
12
|
+
private open;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
private transaction;
|
|
15
|
+
listAnnotations(): Promise<UserAnnotation[]>;
|
|
16
|
+
createAnnotation(input: CreateAnnotationInput): Promise<UserAnnotation>;
|
|
17
|
+
updateAnnotation(id: string, patch: UpdateAnnotationPatch): Promise<UserAnnotation>;
|
|
18
|
+
deleteAnnotation(id: string): Promise<void>;
|
|
19
|
+
exportAnnotations(): Promise<import("./types.js").AnnotationExport>;
|
|
20
|
+
importAnnotations(value: unknown): Promise<AnnotationImportResult>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { createAnnotationExport, readAnnotationExport } from "./exportImport.js";
|
|
2
|
+
import { annotationTargetKey, readAnnotation, readCreateAnnotation, readUpdatePatch, sameAnnotationContent } from "./schema.js";
|
|
3
|
+
import { ANNOTATION_SCHEMA_VERSION, AnnotationStoreError } from "./types.js";
|
|
4
|
+
const DATABASE_VERSION = 1;
|
|
5
|
+
const STORE = "annotations";
|
|
6
|
+
function storedValue(annotation) {
|
|
7
|
+
return Object.assign(Object.assign({}, annotation), (annotation.type === "bookmark" ? { bookmarkTargetKey: annotationTargetKey(annotation.target) } : {}));
|
|
8
|
+
}
|
|
9
|
+
function publicValue(value) {
|
|
10
|
+
if (!value || typeof value !== "object")
|
|
11
|
+
throw new AnnotationStoreError("CORRUPT");
|
|
12
|
+
const annotation = Object.assign({}, value);
|
|
13
|
+
delete annotation.bookmarkTargetKey;
|
|
14
|
+
try {
|
|
15
|
+
return readAnnotation(annotation);
|
|
16
|
+
}
|
|
17
|
+
catch (_a) {
|
|
18
|
+
throw new AnnotationStoreError("CORRUPT");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** Browser-local adapter. Components depend only on AnnotationStore, so a remote adapter can replace it later. */
|
|
22
|
+
export class IndexedDbAnnotationStore {
|
|
23
|
+
constructor(options = {}) {
|
|
24
|
+
this.options = options;
|
|
25
|
+
}
|
|
26
|
+
open() {
|
|
27
|
+
if (this.opening)
|
|
28
|
+
return this.opening;
|
|
29
|
+
const opening = new Promise((resolve, reject) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
let factory;
|
|
32
|
+
try {
|
|
33
|
+
factory = (_a = this.options.indexedDB) !== null && _a !== void 0 ? _a : globalThis.indexedDB;
|
|
34
|
+
}
|
|
35
|
+
catch ( /* Browser storage policy. */_c) { /* Browser storage policy. */ }
|
|
36
|
+
if (!factory) {
|
|
37
|
+
reject(new AnnotationStoreError("UNAVAILABLE"));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
let request;
|
|
41
|
+
try {
|
|
42
|
+
request = factory.open((_b = this.options.name) !== null && _b !== void 0 ? _b : "structural-codes-annotations", DATABASE_VERSION);
|
|
43
|
+
}
|
|
44
|
+
catch (_d) {
|
|
45
|
+
reject(new AnnotationStoreError("UNAVAILABLE"));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
let failed = false;
|
|
49
|
+
let upgradeFailed = false;
|
|
50
|
+
request.onblocked = () => { failed = true; reject(new AnnotationStoreError("BLOCKED")); };
|
|
51
|
+
request.onupgradeneeded = (event) => {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
const db = request.result;
|
|
54
|
+
try {
|
|
55
|
+
if (event.oldVersion !== 0) {
|
|
56
|
+
upgradeFailed = true;
|
|
57
|
+
(_a = request.transaction) === null || _a === void 0 ? void 0 : _a.abort();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const store = db.createObjectStore(STORE, { keyPath: "id" });
|
|
61
|
+
store.createIndex("updatedAt", "updatedAt");
|
|
62
|
+
store.createIndex("bookmarkTargetKey", "bookmarkTargetKey", { unique: true });
|
|
63
|
+
}
|
|
64
|
+
catch (_c) {
|
|
65
|
+
upgradeFailed = true;
|
|
66
|
+
(_b = request.transaction) === null || _b === void 0 ? void 0 : _b.abort();
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
request.onerror = () => { var _a; failed = true; reject(new AnnotationStoreError(upgradeFailed || ((_a = request.error) === null || _a === void 0 ? void 0 : _a.name) === "VersionError" ? "UPGRADE_FAILED" : "UNAVAILABLE")); };
|
|
70
|
+
request.onsuccess = () => {
|
|
71
|
+
const db = request.result;
|
|
72
|
+
if (failed) {
|
|
73
|
+
db.close();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (!db.objectStoreNames.contains(STORE)) {
|
|
77
|
+
db.close();
|
|
78
|
+
reject(new AnnotationStoreError("CORRUPT"));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
db.onversionchange = () => { db.close(); this.opening = undefined; };
|
|
82
|
+
db.onclose = () => { this.opening = undefined; };
|
|
83
|
+
resolve(db);
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
this.opening = opening;
|
|
87
|
+
void opening.catch(() => { if (this.opening === opening)
|
|
88
|
+
this.opening = undefined; });
|
|
89
|
+
return opening;
|
|
90
|
+
}
|
|
91
|
+
async close() { const db = await this.opening; db === null || db === void 0 ? void 0 : db.close(); this.opening = undefined; }
|
|
92
|
+
async transaction(mode, work) {
|
|
93
|
+
const db = await this.open();
|
|
94
|
+
return new Promise((resolve, reject) => {
|
|
95
|
+
let tx;
|
|
96
|
+
try {
|
|
97
|
+
tx = db.transaction(STORE, mode);
|
|
98
|
+
}
|
|
99
|
+
catch (_a) {
|
|
100
|
+
reject(new AnnotationStoreError("UNAVAILABLE"));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
let result;
|
|
104
|
+
let failure;
|
|
105
|
+
const guard = (callback) => () => {
|
|
106
|
+
try {
|
|
107
|
+
callback();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
failure = error instanceof AnnotationStoreError ? error : new AnnotationStoreError(mode === "readonly" ? "CORRUPT" : "WRITE_FAILED");
|
|
111
|
+
tx.abort();
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
tx.oncomplete = () => resolve(result);
|
|
115
|
+
tx.onabort = () => reject(failure !== null && failure !== void 0 ? failure : new AnnotationStoreError(mode === "readonly" ? "CORRUPT" : "WRITE_FAILED"));
|
|
116
|
+
tx.onerror = () => { var _a; if (!failure && ((_a = tx.error) === null || _a === void 0 ? void 0 : _a.name) === "ConstraintError")
|
|
117
|
+
failure = new AnnotationStoreError("CONFLICT"); };
|
|
118
|
+
guard(() => work(tx.objectStore(STORE), (value) => { result = value; }, guard))();
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
listAnnotations() {
|
|
122
|
+
return this.transaction("readonly", (store, done, guard) => {
|
|
123
|
+
const request = store.getAll();
|
|
124
|
+
request.onsuccess = guard(() => done(request.result.map(publicValue).sort((left, right) => right.updatedAt.localeCompare(left.updatedAt) || left.id.localeCompare(right.id))));
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
createAnnotation(input) {
|
|
128
|
+
const clean = readCreateAnnotation(structuredClone(input));
|
|
129
|
+
return this.transaction("readwrite", (store, done, guard) => {
|
|
130
|
+
const save = () => {
|
|
131
|
+
var _a, _b, _c, _d, _e, _f;
|
|
132
|
+
const now = ((_c = (_b = (_a = this.options).now) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : new Date()).toISOString();
|
|
133
|
+
const annotation = readAnnotation(Object.assign(Object.assign({}, clean), { id: (_f = (_e = (_d = this.options).id) === null || _e === void 0 ? void 0 : _e.call(_d)) !== null && _f !== void 0 ? _f : crypto.randomUUID(), schemaVersion: ANNOTATION_SCHEMA_VERSION, createdAt: now, updatedAt: now }));
|
|
134
|
+
store.add(storedValue(annotation));
|
|
135
|
+
done(annotation);
|
|
136
|
+
};
|
|
137
|
+
if (clean.type !== "bookmark") {
|
|
138
|
+
save();
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const duplicate = store.index("bookmarkTargetKey").get(annotationTargetKey(clean.target));
|
|
142
|
+
duplicate.onsuccess = guard(() => duplicate.result ? done(publicValue(duplicate.result)) : save());
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
updateAnnotation(id, patch) {
|
|
146
|
+
const clean = readUpdatePatch(structuredClone(patch));
|
|
147
|
+
return this.transaction("readwrite", (store, done, guard) => {
|
|
148
|
+
const request = store.get(id);
|
|
149
|
+
request.onsuccess = guard(() => {
|
|
150
|
+
var _a, _b, _c;
|
|
151
|
+
if (!request.result)
|
|
152
|
+
throw new AnnotationStoreError("CONFLICT");
|
|
153
|
+
const previous = publicValue(request.result);
|
|
154
|
+
if ((previous.type === "bookmark" && Object.hasOwn(clean, "text")) || (previous.type === "note" && Object.hasOwn(clean, "label")))
|
|
155
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
156
|
+
const now = (_c = (_b = (_a = this.options).now) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : new Date();
|
|
157
|
+
const updatedAt = new Date(Math.max(now.getTime(), Date.parse(previous.updatedAt) + 1)).toISOString();
|
|
158
|
+
const next = readAnnotation(Object.assign(Object.assign(Object.assign({}, previous), clean), { updatedAt }));
|
|
159
|
+
store.put(storedValue(next));
|
|
160
|
+
done(next);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
deleteAnnotation(id) {
|
|
165
|
+
return this.transaction("readwrite", (store, done, guard) => {
|
|
166
|
+
const request = store.get(id);
|
|
167
|
+
request.onsuccess = guard(() => { if (!request.result)
|
|
168
|
+
throw new AnnotationStoreError("CONFLICT"); store.delete(id); done(); });
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
async exportAnnotations() { var _a, _b, _c; return createAnnotationExport(await this.listAnnotations(), (_c = (_b = (_a = this.options).now) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : new Date()); }
|
|
172
|
+
async importAnnotations(value) {
|
|
173
|
+
const parsed = readAnnotationExport(value);
|
|
174
|
+
return this.transaction("readwrite", (store, done, guard) => {
|
|
175
|
+
const request = store.getAll();
|
|
176
|
+
request.onsuccess = guard(() => {
|
|
177
|
+
var _a, _b, _c, _d, _e, _f;
|
|
178
|
+
const existing = request.result.map(publicValue);
|
|
179
|
+
const byId = new Map(existing.map((annotation) => [annotation.id, annotation]));
|
|
180
|
+
const bookmarkKeys = new Set(existing.filter((annotation) => annotation.type === "bookmark").map((annotation) => annotationTargetKey(annotation.target)));
|
|
181
|
+
let imported = 0;
|
|
182
|
+
let ignored = parsed.ignored;
|
|
183
|
+
for (const source of parsed.annotations) {
|
|
184
|
+
const sameId = byId.get(source.id);
|
|
185
|
+
if (sameId && sameAnnotationContent(sameId, source)) {
|
|
186
|
+
ignored += 1;
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
const bookmarkKey = source.type === "bookmark" ? annotationTargetKey(source.target) : null;
|
|
190
|
+
if (bookmarkKey && bookmarkKeys.has(bookmarkKey)) {
|
|
191
|
+
ignored += 1;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
let annotation = source;
|
|
195
|
+
if (sameId)
|
|
196
|
+
annotation = Object.assign(Object.assign({}, source), { id: (_c = (_b = (_a = this.options).id) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : crypto.randomUUID() });
|
|
197
|
+
while (byId.has(annotation.id))
|
|
198
|
+
annotation = Object.assign(Object.assign({}, annotation), { id: (_f = (_e = (_d = this.options).id) === null || _e === void 0 ? void 0 : _e.call(_d)) !== null && _f !== void 0 ? _f : crypto.randomUUID() });
|
|
199
|
+
store.add(storedValue(annotation));
|
|
200
|
+
byId.set(annotation.id, annotation);
|
|
201
|
+
if (bookmarkKey)
|
|
202
|
+
bookmarkKeys.add(bookmarkKey);
|
|
203
|
+
imported += 1;
|
|
204
|
+
}
|
|
205
|
+
done({ imported, ignored });
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=indexedDb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexedDb.js","sourceRoot":"","sources":["../../shared/annotations/indexedDb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ViewerTarget } from "../permalinks.js";
|
|
2
|
+
import { type CreateAnnotationInput, type UpdateAnnotationPatch, type UserAnnotation } from "./types.js";
|
|
3
|
+
export declare function readViewerTarget(value: unknown): ViewerTarget;
|
|
4
|
+
export declare function readCreateAnnotation(value: unknown): CreateAnnotationInput;
|
|
5
|
+
export declare function readUpdatePatch(value: unknown): UpdateAnnotationPatch;
|
|
6
|
+
export declare function readAnnotation(value: unknown): UserAnnotation;
|
|
7
|
+
export declare function annotationTargetKey(target: ViewerTarget): string;
|
|
8
|
+
export declare function sameAnnotationContent(left: UserAnnotation, right: UserAnnotation): boolean;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ANNOTATION_SCHEMA_VERSION, AnnotationStoreError } from "./types.js";
|
|
2
|
+
const MAX_LABEL_LENGTH = 500;
|
|
3
|
+
const MAX_TEXT_LENGTH = 100000;
|
|
4
|
+
const MAX_TITLE_LENGTH = 1000;
|
|
5
|
+
const MAX_ID_LENGTH = 256;
|
|
6
|
+
function object(value) {
|
|
7
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
8
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
function string(value, maximum, allowEmpty = false) {
|
|
12
|
+
if (typeof value !== "string")
|
|
13
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
14
|
+
const normalized = value.normalize("NFC").replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/gu, "").trim();
|
|
15
|
+
if ((!allowEmpty && !normalized) || normalized.length > maximum)
|
|
16
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
17
|
+
return normalized;
|
|
18
|
+
}
|
|
19
|
+
function optionalString(value, maximum) {
|
|
20
|
+
if (value === undefined)
|
|
21
|
+
return undefined;
|
|
22
|
+
const normalized = string(value, maximum, true);
|
|
23
|
+
return normalized || undefined;
|
|
24
|
+
}
|
|
25
|
+
function isoDate(value) {
|
|
26
|
+
const candidate = string(value, 64);
|
|
27
|
+
if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/u.test(candidate) || !Number.isFinite(Date.parse(candidate)))
|
|
28
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
29
|
+
return new Date(candidate).toISOString();
|
|
30
|
+
}
|
|
31
|
+
export function readViewerTarget(value) {
|
|
32
|
+
const source = object(value);
|
|
33
|
+
const unitId = string(source.unitId, MAX_ID_LENGTH);
|
|
34
|
+
if (source.kind === "unit")
|
|
35
|
+
return { kind: "unit", unitId };
|
|
36
|
+
if (source.kind === "block")
|
|
37
|
+
return { kind: "block", unitId, blockId: string(source.blockId, MAX_ID_LENGTH) };
|
|
38
|
+
if (source.kind === "asset") {
|
|
39
|
+
const assetKind = source.assetKind;
|
|
40
|
+
if (assetKind !== undefined && assetKind !== "formula" && assetKind !== "table" && assetKind !== "figure")
|
|
41
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
42
|
+
return Object.assign({ kind: "asset", unitId, assetId: string(source.assetId, MAX_ID_LENGTH) }, (assetKind ? { assetKind } : {}));
|
|
43
|
+
}
|
|
44
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
45
|
+
}
|
|
46
|
+
function documentId(value) {
|
|
47
|
+
if (value !== "ntc2018" && value !== "circ2019")
|
|
48
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
function assertFields(source, allowed) {
|
|
52
|
+
if (Object.keys(source).some((key) => !allowed.includes(key)))
|
|
53
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
54
|
+
}
|
|
55
|
+
export function readCreateAnnotation(value) {
|
|
56
|
+
const source = object(value);
|
|
57
|
+
assertFields(source, ["type", "target", "documentId", "numbering", "title", "label", "text"]);
|
|
58
|
+
if (source.type !== "bookmark" && source.type !== "note")
|
|
59
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
60
|
+
const result = {
|
|
61
|
+
type: source.type,
|
|
62
|
+
target: readViewerTarget(source.target),
|
|
63
|
+
documentId: documentId(source.documentId),
|
|
64
|
+
numbering: string(source.numbering, 128),
|
|
65
|
+
title: string(source.title, MAX_TITLE_LENGTH),
|
|
66
|
+
label: optionalString(source.label, MAX_LABEL_LENGTH),
|
|
67
|
+
text: optionalString(source.text, MAX_TEXT_LENGTH),
|
|
68
|
+
};
|
|
69
|
+
if (result.type === "bookmark" && result.text !== undefined)
|
|
70
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
71
|
+
if (result.type === "note" && result.label !== undefined)
|
|
72
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
export function readUpdatePatch(value) {
|
|
76
|
+
const source = object(value);
|
|
77
|
+
assertFields(source, ["label", "text"]);
|
|
78
|
+
return Object.assign(Object.assign({}, (Object.hasOwn(source, "label") ? { label: optionalString(source.label, MAX_LABEL_LENGTH) } : {})), (Object.hasOwn(source, "text") ? { text: optionalString(source.text, MAX_TEXT_LENGTH) } : {}));
|
|
79
|
+
}
|
|
80
|
+
export function readAnnotation(value) {
|
|
81
|
+
const source = object(value);
|
|
82
|
+
assertFields(source, ["id", "schemaVersion", "type", "target", "documentId", "numbering", "title", "label", "text", "createdAt", "updatedAt"]);
|
|
83
|
+
if (source.schemaVersion !== ANNOTATION_SCHEMA_VERSION)
|
|
84
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
85
|
+
const input = readCreateAnnotation({ type: source.type, target: source.target, documentId: source.documentId, numbering: source.numbering, title: source.title, label: source.label, text: source.text });
|
|
86
|
+
const createdAt = isoDate(source.createdAt);
|
|
87
|
+
const updatedAt = isoDate(source.updatedAt);
|
|
88
|
+
if (updatedAt < createdAt)
|
|
89
|
+
throw new AnnotationStoreError("INVALID_DATA");
|
|
90
|
+
return Object.assign(Object.assign({}, input), { id: string(source.id, MAX_ID_LENGTH), schemaVersion: ANNOTATION_SCHEMA_VERSION, createdAt, updatedAt });
|
|
91
|
+
}
|
|
92
|
+
export function annotationTargetKey(target) {
|
|
93
|
+
if (target.kind === "unit")
|
|
94
|
+
return `unit:${target.unitId}`;
|
|
95
|
+
if (target.kind === "block")
|
|
96
|
+
return `block:${target.unitId}:${target.blockId}`;
|
|
97
|
+
return `asset:${target.unitId}:${target.assetId}`;
|
|
98
|
+
}
|
|
99
|
+
export function sameAnnotationContent(left, right) {
|
|
100
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../shared/annotations/schema.ts"],"names":[],"mappings":"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"}
|