structural-codes-viewer 0.1.0-alpha.1 → 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/LICENSE +501 -0
  2. package/NOTICE +16 -0
  3. package/README.md +119 -63
  4. package/package-dist/CorpusContent.d.ts +44 -9
  5. package/package-dist/CorpusContent.js +452 -26
  6. package/package-dist/CorpusContent.js.map +1 -1
  7. package/package-dist/NormativeViewer.d.ts +23 -2
  8. package/package-dist/NormativeViewer.js +1699 -234
  9. package/package-dist/NormativeViewer.js.map +1 -1
  10. package/package-dist/ReferenceTools.d.ts +49 -0
  11. package/package-dist/ReferenceTools.js +14 -0
  12. package/package-dist/ReferenceTools.js.map +1 -0
  13. package/package-dist/annotations/AnnotationUi.d.ts +57 -0
  14. package/package-dist/annotations/AnnotationUi.js +114 -0
  15. package/package-dist/annotations/AnnotationUi.js.map +1 -0
  16. package/package-dist/annotations/annotationTargets.d.ts +39 -0
  17. package/package-dist/annotations/annotationTargets.js +94 -0
  18. package/package-dist/annotations/annotationTargets.js.map +1 -0
  19. package/package-dist/annotations/exportImport.d.ts +6 -0
  20. package/package-dist/annotations/exportImport.js +30 -0
  21. package/package-dist/annotations/exportImport.js.map +1 -0
  22. package/package-dist/annotations/index.d.ts +4 -0
  23. package/package-dist/annotations/index.js +5 -0
  24. package/package-dist/annotations/index.js.map +1 -0
  25. package/package-dist/annotations/indexedDb.d.ts +21 -0
  26. package/package-dist/annotations/indexedDb.js +210 -0
  27. package/package-dist/annotations/indexedDb.js.map +1 -0
  28. package/package-dist/annotations/schema.d.ts +8 -0
  29. package/package-dist/annotations/schema.js +102 -0
  30. package/package-dist/annotations/schema.js.map +1 -0
  31. package/package-dist/annotations/types.d.ts +52 -0
  32. package/package-dist/annotations/types.js +18 -0
  33. package/package-dist/annotations/types.js.map +1 -0
  34. package/package-dist/chatntc/canonicalization.d.ts +15 -0
  35. package/package-dist/chatntc/canonicalization.js +107 -0
  36. package/package-dist/chatntc/canonicalization.js.map +1 -0
  37. package/package-dist/chatntc/directives.d.ts +2 -0
  38. package/package-dist/chatntc/directives.js +38 -0
  39. package/package-dist/chatntc/directives.js.map +1 -0
  40. package/package-dist/chatntc/evidence.d.ts +17 -0
  41. package/package-dist/chatntc/evidence.js +116 -0
  42. package/package-dist/chatntc/evidence.js.map +1 -0
  43. package/package-dist/chatntc/index.d.ts +10 -0
  44. package/package-dist/chatntc/index.js +9 -0
  45. package/package-dist/chatntc/index.js.map +1 -0
  46. package/package-dist/chatntc/issueCategories.d.ts +2 -0
  47. package/package-dist/chatntc/issueCategories.js +11 -0
  48. package/package-dist/chatntc/issueCategories.js.map +1 -0
  49. package/package-dist/chatntc/policy.d.ts +35 -0
  50. package/package-dist/chatntc/policy.js +36 -0
  51. package/package-dist/chatntc/policy.js.map +1 -0
  52. package/package-dist/chatntc/provider.d.ts +42 -0
  53. package/package-dist/chatntc/provider.js +2 -0
  54. package/package-dist/chatntc/provider.js.map +1 -0
  55. package/package-dist/chatntc/responseContract.d.ts +52 -0
  56. package/package-dist/chatntc/responseContract.js +73 -0
  57. package/package-dist/chatntc/responseContract.js.map +1 -0
  58. package/package-dist/chatntc/retrieval.d.ts +5 -0
  59. package/package-dist/chatntc/retrieval.js +220 -0
  60. package/package-dist/chatntc/retrieval.js.map +1 -0
  61. package/package-dist/chatntc/types.d.ts +240 -0
  62. package/package-dist/chatntc/types.js +2 -0
  63. package/package-dist/chatntc/types.js.map +1 -0
  64. package/package-dist/chatntc/validation.d.ts +8 -0
  65. package/package-dist/chatntc/validation.js +299 -0
  66. package/package-dist/chatntc/validation.js.map +1 -0
  67. package/package-dist/chatntc/viewerArtifacts.d.ts +14 -0
  68. package/package-dist/chatntc/viewerArtifacts.js +168 -0
  69. package/package-dist/chatntc/viewerArtifacts.js.map +1 -0
  70. package/package-dist/chatntc-history/index.d.ts +2 -0
  71. package/package-dist/chatntc-history/index.js +3 -0
  72. package/package-dist/chatntc-history/index.js.map +1 -0
  73. package/package-dist/chatntc-history/indexedDb.d.ts +27 -0
  74. package/package-dist/chatntc-history/indexedDb.js +258 -0
  75. package/package-dist/chatntc-history/indexedDb.js.map +1 -0
  76. package/package-dist/chatntc-history/schema.d.ts +5 -0
  77. package/package-dist/chatntc-history/schema.js +102 -0
  78. package/package-dist/chatntc-history/schema.js.map +1 -0
  79. package/package-dist/chatntc-history/types.d.ts +78 -0
  80. package/package-dist/chatntc-history/types.js +23 -0
  81. package/package-dist/chatntc-history/types.js.map +1 -0
  82. package/package-dist/chatntc-ui/ChatNTCHistoryPanel.d.ts +9 -0
  83. package/package-dist/chatntc-ui/ChatNTCHistoryPanel.js +239 -0
  84. package/package-dist/chatntc-ui/ChatNTCHistoryPanel.js.map +1 -0
  85. package/package-dist/chatntc-ui/ChatNTCIcons.d.ts +10 -0
  86. package/package-dist/chatntc-ui/ChatNTCIcons.js +20 -0
  87. package/package-dist/chatntc-ui/ChatNTCIcons.js.map +1 -0
  88. package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.d.ts +1 -0
  89. package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.js +5 -0
  90. package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.js.map +1 -0
  91. package/package-dist/chatntc-ui/ChatNTCMarkdown.d.ts +14 -0
  92. package/package-dist/chatntc-ui/ChatNTCMarkdown.js +112 -0
  93. package/package-dist/chatntc-ui/ChatNTCMarkdown.js.map +1 -0
  94. package/package-dist/chatntc-ui/ChatNTCPanel.d.ts +29 -0
  95. package/package-dist/chatntc-ui/ChatNTCPanel.js +241 -0
  96. package/package-dist/chatntc-ui/ChatNTCPanel.js.map +1 -0
  97. package/package-dist/chatntc-ui/historyMessages.d.ts +5 -0
  98. package/package-dist/chatntc-ui/historyMessages.js +53 -0
  99. package/package-dist/chatntc-ui/historyMessages.js.map +1 -0
  100. package/package-dist/chatntc-ui/index.d.ts +3 -0
  101. package/package-dist/chatntc-ui/index.js +4 -0
  102. package/package-dist/chatntc-ui/index.js.map +1 -0
  103. package/package-dist/chatntc-ui/transport.d.ts +51 -0
  104. package/package-dist/chatntc-ui/transport.js +9 -0
  105. package/package-dist/chatntc-ui/transport.js.map +1 -0
  106. package/package-dist/chunkNavigation.d.ts +12 -0
  107. package/package-dist/chunkNavigation.js +44 -0
  108. package/package-dist/chunkNavigation.js.map +1 -0
  109. package/package-dist/corpusData.d.ts +176 -33
  110. package/package-dist/corpusData.js +52 -0
  111. package/package-dist/corpusData.js.map +1 -1
  112. package/package-dist/crossReferences.d.ts +46 -0
  113. package/package-dist/crossReferences.js +198 -0
  114. package/package-dist/crossReferences.js.map +1 -0
  115. package/package-dist/generate-artifacts.mjs +47 -12
  116. package/package-dist/globalScrubber.d.ts +10 -0
  117. package/package-dist/globalScrubber.js +85 -0
  118. package/package-dist/globalScrubber.js.map +1 -0
  119. package/package-dist/permalinks.d.ts +22 -0
  120. package/package-dist/permalinks.js +36 -0
  121. package/package-dist/permalinks.js.map +1 -0
  122. package/package-dist/searchClient.d.ts +22 -0
  123. package/package-dist/searchClient.js +133 -0
  124. package/package-dist/searchClient.js.map +1 -0
  125. package/package-dist/searchEngine.d.ts +68 -0
  126. package/package-dist/searchEngine.js +558 -0
  127. package/package-dist/searchEngine.js.map +1 -0
  128. package/package-dist/searchWorker.d.ts +1 -0
  129. package/package-dist/searchWorker.js +32 -0
  130. package/package-dist/searchWorker.js.map +1 -0
  131. package/package-dist/styles.css +927 -182
  132. package/package-dist/tableCaptions.d.mts +3 -0
  133. package/package-dist/tableCaptions.mjs +35 -0
  134. package/package-dist/tableCaptions.mjs.map +1 -0
  135. package/package.json +61 -15
@@ -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,4 @@
1
+ export * from "./types.js";
2
+ export * from "./indexedDb.js";
3
+ export * from "./exportImport.js";
4
+ export * from "./annotationTargets.js";
@@ -0,0 +1,5 @@
1
+ export * from "./types.js";
2
+ export * from "./indexedDb.js";
3
+ export * from "./exportImport.js";
4
+ export * from "./annotationTargets.js";
5
+ //# sourceMappingURL=index.js.map
@@ -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":"AAEA,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAA+E,MAAM,YAAY,CAAC;AAE1J,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,eAAe,GAAG,MAAO,CAAC;AAChC,MAAM,gBAAgB,GAAG,IAAK,CAAC;AAC/B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAChH,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,OAAe,EAAE,UAAU,GAAG,KAAK;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kDAAkD,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjH,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAChH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,OAAe;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,qDAAqD,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACtK,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,QAAQ;YAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC1J,uBAAS,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAG;IACxH,CAAC;IACD,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B,EAAE,OAA0B;IAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9F,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACzG,MAAM,MAAM,GAA0B;QACpC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC;QACxC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAC7C,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACrD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC;KACnD,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC5G,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACzG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,uCACK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACjG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAChG;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/I,IAAI,MAAM,CAAC,aAAa,KAAK,yBAAyB;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1M,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,SAAS,GAAG,SAAS;QAAE,MAAM,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC1E,uCAAY,KAAK,KAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,yBAAyB,EAAE,SAAS,EAAE,SAAS,IAAG;AAC5H,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;IAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/E,OAAO,SAAS,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAoB,EAAE,KAAqB;IAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC"}