@eightyfourthousand/data-access 2026.4.0 → 2026.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +18 -0
- package/index.js.map +1 -0
- package/lib/auth.d.ts +59 -0
- package/lib/auth.js +135 -0
- package/lib/auth.js.map +1 -0
- package/lib/bibliography.d.ts +9 -0
- package/lib/bibliography.js +31 -0
- package/lib/bibliography.js.map +1 -0
- package/lib/client-browser.d.ts +1 -0
- package/lib/client-browser.js +10 -0
- package/lib/client-browser.js.map +1 -0
- package/lib/client-server.d.ts +4 -0
- package/lib/client-server.js +19 -0
- package/lib/client-server.js.map +1 -0
- package/lib/client-ssr.d.ts +1 -0
- package/lib/client-ssr.js +24 -0
- package/lib/client-ssr.js.map +1 -0
- package/lib/client-token.d.ts +7 -0
- package/lib/client-token.js +21 -0
- package/lib/client-token.js.map +1 -0
- package/lib/feedback.d.ts +6 -0
- package/lib/feedback.js +50 -0
- package/lib/feedback.js.map +1 -0
- package/lib/folio.d.ts +11 -0
- package/lib/folio.js +32 -0
- package/lib/folio.js.map +1 -0
- package/lib/glossary/batch.d.ts +5 -0
- package/lib/glossary/batch.js +24 -0
- package/lib/glossary/batch.js.map +1 -0
- package/lib/glossary/index.js +5 -0
- package/lib/glossary/index.js.map +1 -0
- package/lib/glossary/instance.d.ts +10 -0
- package/lib/glossary/instance.js +29 -0
- package/lib/glossary/instance.js.map +1 -0
- package/lib/glossary/landing.d.ts +5 -0
- package/lib/glossary/landing.js +33 -0
- package/lib/glossary/landing.js.map +1 -0
- package/lib/glossary/pagination.d.ts +55 -0
- package/lib/glossary/pagination.js +255 -0
- package/lib/glossary/pagination.js.map +1 -0
- package/lib/imprint.d.ts +10 -0
- package/lib/imprint.js +24 -0
- package/lib/imprint.js.map +1 -0
- package/lib/library.d.ts +58 -0
- package/lib/library.js +119 -0
- package/lib/library.js.map +1 -0
- package/lib/local-storage.d.ts +10 -0
- package/lib/local-storage.js +25 -0
- package/lib/local-storage.js.map +1 -0
- package/lib/lookup-entity.d.ts +7 -0
- package/lib/lookup-entity.js +94 -0
- package/lib/lookup-entity.js.map +1 -0
- package/lib/panel-url.d.ts +10 -0
- package/lib/panel-url.js +23 -0
- package/lib/panel-url.js.map +1 -0
- package/lib/passage/batch.d.ts +17 -0
- package/lib/passage/batch.js +159 -0
- package/lib/passage/batch.js.map +1 -0
- package/lib/passage/index.js +6 -0
- package/lib/passage/index.js.map +1 -0
- package/lib/passage/pagination.d.ts +43 -0
- package/lib/passage/pagination.js +170 -0
- package/lib/passage/pagination.js.map +1 -0
- package/lib/passage/read.d.ts +15 -0
- package/lib/passage/read.js +61 -0
- package/lib/passage/read.js.map +1 -0
- package/lib/passage/replace-persistence.d.ts +46 -0
- package/lib/passage/replace-persistence.js +94 -0
- package/lib/passage/replace-persistence.js.map +1 -0
- package/lib/passage/save.d.ts +16 -0
- package/lib/passage/save.js +231 -0
- package/lib/passage/save.js.map +1 -0
- package/lib/proxy.d.ts +7 -0
- package/lib/proxy.js +48 -0
- package/lib/proxy.js.map +1 -0
- package/lib/publications.d.ts +86 -0
- package/lib/publications.js +226 -0
- package/lib/publications.js.map +1 -0
- package/lib/replace.d.ts +31 -0
- package/lib/replace.js +134 -0
- package/lib/replace.js.map +1 -0
- package/lib/storage.d.ts +7 -0
- package/lib/storage.js +11 -0
- package/lib/storage.js.map +1 -0
- package/lib/types/alignment.d.ts +18 -0
- package/lib/types/alignment.js +13 -0
- package/lib/types/alignment.js.map +1 -0
- package/lib/types/annotation/abbreviation.d.ts +3 -0
- package/lib/types/annotation/abbreviation.js +20 -0
- package/lib/types/annotation/abbreviation.js.map +1 -0
- package/lib/types/annotation/annotation-type.d.ts +31 -0
- package/lib/types/annotation/annotation-type.js +81 -0
- package/lib/types/annotation/annotation-type.js.map +1 -0
- package/lib/types/annotation/annotation.d.ts +142 -0
- package/lib/types/annotation/annotation.js +23 -0
- package/lib/types/annotation/annotation.js.map +1 -0
- package/lib/types/annotation/audio.d.ts +3 -0
- package/lib/types/annotation/audio.js +24 -0
- package/lib/types/annotation/audio.js.map +1 -0
- package/lib/types/annotation/blockquote.d.ts +3 -0
- package/lib/types/annotation/blockquote.js +8 -0
- package/lib/types/annotation/blockquote.js.map +1 -0
- package/lib/types/annotation/code.d.ts +3 -0
- package/lib/types/annotation/code.js +8 -0
- package/lib/types/annotation/code.js.map +1 -0
- package/lib/types/annotation/deprecated.d.ts +3 -0
- package/lib/types/annotation/deprecated.js +8 -0
- package/lib/types/annotation/deprecated.js.map +1 -0
- package/lib/types/annotation/end-note-link.d.ts +3 -0
- package/lib/types/annotation/end-note-link.js +23 -0
- package/lib/types/annotation/end-note-link.js.map +1 -0
- package/lib/types/annotation/export.d.ts +3 -0
- package/{src/lib/types/annotation/export.ts → lib/types/annotation/export.js} +34 -36
- package/lib/types/annotation/export.js.map +1 -0
- package/lib/types/annotation/glossary-instance.d.ts +3 -0
- package/lib/types/annotation/glossary-instance.js +23 -0
- package/lib/types/annotation/glossary-instance.js.map +1 -0
- package/lib/types/annotation/has-abbreviation.d.ts +3 -0
- package/lib/types/annotation/has-abbreviation.js +20 -0
- package/lib/types/annotation/has-abbreviation.js.map +1 -0
- package/lib/types/annotation/heading.d.ts +3 -0
- package/lib/types/annotation/heading.js +23 -0
- package/lib/types/annotation/heading.js.map +1 -0
- package/lib/types/annotation/image.d.ts +3 -0
- package/lib/types/annotation/image.js +20 -0
- package/lib/types/annotation/image.js.map +1 -0
- package/lib/types/annotation/indent.d.ts +3 -0
- package/lib/types/annotation/indent.js +8 -0
- package/lib/types/annotation/indent.js.map +1 -0
- package/lib/types/annotation/index.js +5 -0
- package/lib/types/annotation/index.js.map +1 -0
- package/lib/types/annotation/inline-title.d.ts +3 -0
- package/lib/types/annotation/inline-title.js +21 -0
- package/lib/types/annotation/inline-title.js.map +1 -0
- package/lib/types/annotation/internal-link.d.ts +3 -0
- package/lib/types/annotation/internal-link.js +62 -0
- package/lib/types/annotation/internal-link.js.map +1 -0
- package/lib/types/annotation/leading-space.d.ts +3 -0
- package/lib/types/annotation/leading-space.js +8 -0
- package/lib/types/annotation/leading-space.js.map +1 -0
- package/lib/types/annotation/line-group.d.ts +3 -0
- package/lib/types/annotation/line-group.js +8 -0
- package/lib/types/annotation/line-group.js.map +1 -0
- package/lib/types/annotation/line.d.ts +3 -0
- package/lib/types/annotation/line.js +8 -0
- package/lib/types/annotation/line.js.map +1 -0
- package/lib/types/annotation/link.d.ts +3 -0
- package/lib/types/annotation/link.js +27 -0
- package/lib/types/annotation/link.js.map +1 -0
- package/lib/types/annotation/list-item.d.ts +3 -0
- package/lib/types/annotation/list-item.js +8 -0
- package/lib/types/annotation/list-item.js.map +1 -0
- package/lib/types/annotation/list.d.ts +3 -0
- package/lib/types/annotation/list.js +31 -0
- package/lib/types/annotation/list.js.map +1 -0
- package/lib/types/annotation/mantra.d.ts +3 -0
- package/lib/types/annotation/mantra.js +21 -0
- package/lib/types/annotation/mantra.js.map +1 -0
- package/lib/types/annotation/mention.d.ts +3 -0
- package/lib/types/annotation/mention.js +50 -0
- package/lib/types/annotation/mention.js.map +1 -0
- package/lib/types/annotation/paragraph.d.ts +3 -0
- package/lib/types/annotation/paragraph.js +8 -0
- package/lib/types/annotation/paragraph.js.map +1 -0
- package/lib/types/annotation/quote.d.ts +3 -0
- package/lib/types/annotation/quote.js +21 -0
- package/lib/types/annotation/quote.js.map +1 -0
- package/lib/types/annotation/quoted.d.ts +3 -0
- package/lib/types/annotation/quoted.js +21 -0
- package/lib/types/annotation/quoted.js.map +1 -0
- package/lib/types/annotation/reference.d.ts +3 -0
- package/lib/types/annotation/reference.js +8 -0
- package/lib/types/annotation/reference.js.map +1 -0
- package/lib/types/annotation/span.d.ts +3 -0
- package/lib/types/annotation/span.js +29 -0
- package/lib/types/annotation/span.js.map +1 -0
- package/lib/types/annotation/table-body-data.d.ts +3 -0
- package/lib/types/annotation/table-body-data.js +8 -0
- package/lib/types/annotation/table-body-data.js.map +1 -0
- package/lib/types/annotation/table-body-header.d.ts +3 -0
- package/lib/types/annotation/table-body-header.js +8 -0
- package/lib/types/annotation/table-body-header.js.map +1 -0
- package/lib/types/annotation/table-body-row.d.ts +3 -0
- package/lib/types/annotation/table-body-row.js +8 -0
- package/lib/types/annotation/table-body-row.js.map +1 -0
- package/lib/types/annotation/table.d.ts +3 -0
- package/lib/types/annotation/table.js +8 -0
- package/lib/types/annotation/table.js.map +1 -0
- package/lib/types/annotation/trailer.d.ts +3 -0
- package/lib/types/annotation/trailer.js +8 -0
- package/lib/types/annotation/trailer.js.map +1 -0
- package/lib/types/annotation/transform.d.ts +6 -0
- package/lib/types/annotation/transform.js +108 -0
- package/lib/types/annotation/transform.js.map +1 -0
- package/lib/types/annotation/unknown.d.ts +3 -0
- package/lib/types/annotation/unknown.js +8 -0
- package/lib/types/annotation/unknown.js.map +1 -0
- package/lib/types/bibliography.d.ts +41 -0
- package/lib/types/bibliography.js +30 -0
- package/lib/types/bibliography.js.map +1 -0
- package/{src/lib/types/client.ts → lib/types/client.d.ts} +0 -1
- package/lib/types/client.js +2 -0
- package/lib/types/client.js.map +1 -0
- package/{src/lib/types/editor-content.ts → lib/types/editor-content.d.ts} +7 -11
- package/lib/types/editor-content.js +2 -0
- package/lib/types/editor-content.js.map +1 -0
- package/lib/types/folio.d.ts +17 -0
- package/lib/types/folio.js +11 -0
- package/lib/types/folio.js.map +1 -0
- package/lib/types/glossary-page.d.ts +48 -0
- package/lib/types/glossary-page.js +21 -0
- package/lib/types/glossary-page.js.map +1 -0
- package/lib/types/glossary.d.ts +76 -0
- package/lib/types/glossary.js +32 -0
- package/lib/types/glossary.js.map +1 -0
- package/lib/types/imprint.d.ts +78 -0
- package/lib/types/imprint.js +71 -0
- package/lib/types/imprint.js.map +1 -0
- package/lib/types/index.js +20 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/language.d.ts +9 -0
- package/lib/types/language.js +41 -0
- package/lib/types/language.js.map +1 -0
- package/lib/types/layout.d.ts +5 -0
- package/lib/types/layout.js +23 -0
- package/lib/types/layout.js.map +1 -0
- package/lib/types/library.d.ts +19 -0
- package/lib/types/library.js +8 -0
- package/lib/types/library.js.map +1 -0
- package/lib/types/passage.d.ts +73 -0
- package/lib/types/passage.js +120 -0
- package/lib/types/passage.js.map +1 -0
- package/lib/types/semver.js +2 -0
- package/lib/types/semver.js.map +1 -0
- package/lib/types/title.d.ts +21 -0
- package/lib/types/title.js +22 -0
- package/lib/types/title.js.map +1 -0
- package/lib/types/toh.js +2 -0
- package/lib/types/toh.js.map +1 -0
- package/{src/lib/types/translation.ts → lib/types/translation.d.ts} +5 -7
- package/lib/types/translation.js +2 -0
- package/lib/types/translation.js.map +1 -0
- package/{src/lib/types/user.ts → lib/types/user.d.ts} +2 -11
- package/lib/types/user.js +9 -0
- package/lib/types/user.js.map +1 -0
- package/lib/types/work.d.ts +37 -0
- package/lib/types/work.js +15 -0
- package/lib/types/work.js.map +1 -0
- package/lib/use-bookmark.d.ts +10 -0
- package/lib/use-bookmark.js +31 -0
- package/lib/use-bookmark.js.map +1 -0
- package/package.json +25 -3
- package/ssr.js +6 -0
- package/ssr.js.map +1 -0
- package/.babelrc +0 -12
- package/.eslintrc.json +0 -18
- package/README.md +0 -9
- package/jest.config.ts +0 -10
- package/project.json +0 -21
- package/src/lib/auth.ts +0 -203
- package/src/lib/bibliography.ts +0 -57
- package/src/lib/client-browser.ts +0 -12
- package/src/lib/client-server.ts +0 -30
- package/src/lib/client-ssr.ts +0 -24
- package/src/lib/client-token.ts +0 -24
- package/src/lib/feedback.ts +0 -71
- package/src/lib/folio.ts +0 -57
- package/src/lib/glossary/batch.ts +0 -35
- package/src/lib/glossary/instance.ts +0 -54
- package/src/lib/glossary/landing.ts +0 -50
- package/src/lib/glossary/pagination.ts +0 -471
- package/src/lib/imprint.ts +0 -42
- package/src/lib/library.ts +0 -209
- package/src/lib/local-storage.ts +0 -33
- package/src/lib/lookup-entity.ts +0 -122
- package/src/lib/panel-url.ts +0 -43
- package/src/lib/passage/batch.ts +0 -229
- package/src/lib/passage/pagination.ts +0 -277
- package/src/lib/passage/read.ts +0 -100
- package/src/lib/passage/replace-persistence.ts +0 -153
- package/src/lib/passage/save.ts +0 -324
- package/src/lib/proxy.ts +0 -68
- package/src/lib/publications.ts +0 -381
- package/src/lib/replace.spec.ts +0 -154
- package/src/lib/replace.ts +0 -244
- package/src/lib/storage.ts +0 -23
- package/src/lib/types/alignment.ts +0 -32
- package/src/lib/types/annotation/abbreviation.ts +0 -30
- package/src/lib/types/annotation/annotation-type.ts +0 -219
- package/src/lib/types/annotation/annotation.ts +0 -244
- package/src/lib/types/annotation/audio.ts +0 -33
- package/src/lib/types/annotation/blockquote.ts +0 -18
- package/src/lib/types/annotation/code.ts +0 -16
- package/src/lib/types/annotation/deprecated.ts +0 -18
- package/src/lib/types/annotation/end-note-link.ts +0 -35
- package/src/lib/types/annotation/glossary-instance.ts +0 -34
- package/src/lib/types/annotation/has-abbreviation.ts +0 -30
- package/src/lib/types/annotation/heading.ts +0 -37
- package/src/lib/types/annotation/image.ts +0 -29
- package/src/lib/types/annotation/indent.ts +0 -16
- package/src/lib/types/annotation/inline-title.ts +0 -34
- package/src/lib/types/annotation/internal-link.ts +0 -86
- package/src/lib/types/annotation/leading-space.ts +0 -18
- package/src/lib/types/annotation/line-group.ts +0 -18
- package/src/lib/types/annotation/line.ts +0 -16
- package/src/lib/types/annotation/link.ts +0 -38
- package/src/lib/types/annotation/list-item.ts +0 -16
- package/src/lib/types/annotation/list.ts +0 -43
- package/src/lib/types/annotation/mantra.ts +0 -31
- package/src/lib/types/annotation/mention.ts +0 -64
- package/src/lib/types/annotation/paragraph.ts +0 -18
- package/src/lib/types/annotation/quote.ts +0 -30
- package/src/lib/types/annotation/quoted.ts +0 -30
- package/src/lib/types/annotation/reference.ts +0 -18
- package/src/lib/types/annotation/span.ts +0 -39
- package/src/lib/types/annotation/table-body-data.ts +0 -18
- package/src/lib/types/annotation/table-body-header.ts +0 -18
- package/src/lib/types/annotation/table-body-row.ts +0 -18
- package/src/lib/types/annotation/table.ts +0 -16
- package/src/lib/types/annotation/trailer.ts +0 -16
- package/src/lib/types/annotation/transform.ts +0 -140
- package/src/lib/types/annotation/unknown.ts +0 -16
- package/src/lib/types/bibliography.ts +0 -86
- package/src/lib/types/folio.ts +0 -28
- package/src/lib/types/glossary-page.ts +0 -86
- package/src/lib/types/glossary.ts +0 -115
- package/src/lib/types/imprint.ts +0 -159
- package/src/lib/types/language.ts +0 -64
- package/src/lib/types/layout.ts +0 -37
- package/src/lib/types/library.ts +0 -29
- package/src/lib/types/passage.ts +0 -220
- package/src/lib/types/title.ts +0 -47
- package/src/lib/types/work.ts +0 -38
- package/src/lib/use-bookmark.ts +0 -45
- package/tsconfig.json +0 -20
- package/tsconfig.lib.json +0 -26
- package/tsconfig.spec.json +0 -22
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/lib/glossary/index.ts → lib/glossary/index.d.ts} +0 -0
- /package/{src/lib/passage/index.ts → lib/passage/index.d.ts} +0 -0
- /package/{src/lib/types/annotation/index.ts → lib/types/annotation/index.d.ts} +0 -0
- /package/{src/lib/types/index.ts → lib/types/index.d.ts} +0 -0
- /package/{src/lib/types/semver.ts → lib/types/semver.d.ts} +0 -0
- /package/{src/lib/types/toh.ts → lib/types/toh.d.ts} +0 -0
- /package/{src/ssr.ts → ssr.d.ts} +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { createServerClient } from './client-ssr';
|
|
3
|
+
import { getBibliographyEntry } from './bibliography';
|
|
4
|
+
import { getPassage, getPassageUuidByXmlId } from './passage';
|
|
5
|
+
import { getTranslationMetadataByToh, getTranslationMetadataByUuid, } from './publications';
|
|
6
|
+
import { panelAndTabForContentType } from './panel-url';
|
|
7
|
+
import { getGlossaryInstance } from './glossary';
|
|
8
|
+
const ALLOWED_TYPES = ['bibliography', 'glossary', 'passage', 'translation', 'work'];
|
|
9
|
+
export const lookupEntity = (_a) => __awaiter(void 0, [_a], void 0, function* ({ type, entity, prefix = '', xmlId, searchParams, }) {
|
|
10
|
+
if (!ALLOWED_TYPES.includes(type)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const client = yield createServerClient();
|
|
14
|
+
let path = '';
|
|
15
|
+
const query = searchParams || new URLSearchParams();
|
|
16
|
+
switch (type) {
|
|
17
|
+
case 'bibliography':
|
|
18
|
+
{
|
|
19
|
+
const item = yield getBibliographyEntry({ client, uuid: entity });
|
|
20
|
+
if (!(item === null || item === void 0 ? void 0 : item.workUuid) || !item.uuid) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
query.set('right', `open:bibliography:${item.uuid}`);
|
|
24
|
+
path = `${prefix}/${item.workUuid}?${query.toString()}`;
|
|
25
|
+
}
|
|
26
|
+
break;
|
|
27
|
+
case 'glossary':
|
|
28
|
+
{
|
|
29
|
+
const item = yield getGlossaryInstance({ client, uuid: entity });
|
|
30
|
+
if (!(item === null || item === void 0 ? void 0 : item.workUuid) || !item.authority) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
query.set('right', `open:glossary:${item.authority}`);
|
|
34
|
+
path = `${prefix}/${item.workUuid}?${query.toString()}`;
|
|
35
|
+
}
|
|
36
|
+
break;
|
|
37
|
+
case 'passage':
|
|
38
|
+
{
|
|
39
|
+
const item = yield getPassage({ client, uuid: entity });
|
|
40
|
+
if (!(item === null || item === void 0 ? void 0 : item.workUuid) || !item.uuid) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const queryTab = query.get('tab') || undefined;
|
|
44
|
+
const { panel, tab } = panelAndTabForContentType(item.type, queryTab);
|
|
45
|
+
query.delete('tab');
|
|
46
|
+
query.set(panel, `open:${tab}:${item.uuid}`);
|
|
47
|
+
if (item.toh) {
|
|
48
|
+
query.set('toh', item.toh);
|
|
49
|
+
}
|
|
50
|
+
path = `${prefix}/${item.workUuid}?${query.toString()}`;
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
case 'translation':
|
|
54
|
+
{
|
|
55
|
+
const toh = entity.replace('.html', '');
|
|
56
|
+
query.set('toh', toh);
|
|
57
|
+
if (xmlId) {
|
|
58
|
+
const item = yield getPassageUuidByXmlId({ client, xmlId });
|
|
59
|
+
const queryTab = query.get('tab') || undefined;
|
|
60
|
+
const { panel, tab } = panelAndTabForContentType(item.type, queryTab);
|
|
61
|
+
if ((item === null || item === void 0 ? void 0 : item.uuid) && (item === null || item === void 0 ? void 0 : item.workUuid)) {
|
|
62
|
+
const { uuid, workUuid } = item;
|
|
63
|
+
query.delete('tab');
|
|
64
|
+
query.set(panel, `open:${tab}:${uuid}`);
|
|
65
|
+
path = `${prefix}/${workUuid}?${query.toString()}`;
|
|
66
|
+
return path;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const item = yield getTranslationMetadataByToh({ client, toh });
|
|
70
|
+
if (!(item === null || item === void 0 ? void 0 : item.uuid)) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
path = `${prefix}/${item.uuid}?${query.toString()}`;
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
case 'work':
|
|
77
|
+
{
|
|
78
|
+
const item = yield getTranslationMetadataByUuid({
|
|
79
|
+
client,
|
|
80
|
+
uuid: entity,
|
|
81
|
+
});
|
|
82
|
+
if (!(item === null || item === void 0 ? void 0 : item.uuid)) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
path = `${prefix}/${item.uuid}?${query.toString()}`;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
default: {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return path;
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=lookup-entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-entity.js","sourceRoot":"","sources":["../../../../libs/data-access/src/lib/lookup-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PanelContentType } from './types';
|
|
2
|
+
export declare const panelAndTabForContentType: (contentType: PanelContentType, desiredTab?: string) => {
|
|
3
|
+
panel: string;
|
|
4
|
+
tab: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const urlForPanelContent: ({ location, hash, contentType, }: {
|
|
7
|
+
location: Location;
|
|
8
|
+
hash: string;
|
|
9
|
+
contentType?: PanelContentType;
|
|
10
|
+
}) => string;
|
package/lib/panel-url.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PANEL_FOR_CONTENT_SECTION, TAB_FOR_CONTENT_SECTION, VARIANT_TABS_FOR_TAB, } from './types';
|
|
2
|
+
export const panelAndTabForContentType = (contentType, desiredTab) => {
|
|
3
|
+
const section = contentType.replace('Header', '');
|
|
4
|
+
const panel = PANEL_FOR_CONTENT_SECTION[section] || 'main';
|
|
5
|
+
const defaultTab = TAB_FOR_CONTENT_SECTION[section] || 'translation';
|
|
6
|
+
const variantTabs = VARIANT_TABS_FOR_TAB[section] || [];
|
|
7
|
+
const tab = desiredTab && variantTabs.includes(desiredTab) ? desiredTab : defaultTab;
|
|
8
|
+
return { panel, tab };
|
|
9
|
+
};
|
|
10
|
+
export const urlForPanelContent = ({ location, hash, contentType, }) => {
|
|
11
|
+
const { href, search } = location;
|
|
12
|
+
const baseUrl = new URL(href);
|
|
13
|
+
const searchParams = new URLSearchParams(search);
|
|
14
|
+
if (!contentType) {
|
|
15
|
+
baseUrl.hash = `#${hash}`;
|
|
16
|
+
return baseUrl.toString();
|
|
17
|
+
}
|
|
18
|
+
const { panel, tab } = panelAndTabForContentType(contentType);
|
|
19
|
+
searchParams.set(panel, `open:${tab}:${hash}`);
|
|
20
|
+
baseUrl.search = searchParams.toString();
|
|
21
|
+
return baseUrl.toString();
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=panel-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-url.js","sourceRoot":"","sources":["../../../../libs/data-access/src/lib/panel-url.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAEzB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,WAA6B,EAC7B,UAAmB,EACa,EAAE;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC;IAC3D,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC;IACrE,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,GAAG,GACP,UAAU,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,QAAQ,EACR,IAAI,EACJ,WAAW,GAKZ,EAAU,EAAE;IACX,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC9D,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACzC,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AlignmentDTO, AnnotationDTO, DataClient, Passages } from '../types';
|
|
2
|
+
export declare const getAnnotationsByPassageUuids: ({ client, passageUuids, }: {
|
|
3
|
+
client: DataClient;
|
|
4
|
+
passageUuids: readonly string[];
|
|
5
|
+
}) => Promise<Map<string, AnnotationDTO[]>>;
|
|
6
|
+
export declare const getAlignmentsByPassageUuids: ({ client, passageUuids, }: {
|
|
7
|
+
client: DataClient;
|
|
8
|
+
passageUuids: readonly string[];
|
|
9
|
+
}) => Promise<Map<string, AlignmentDTO[]>>;
|
|
10
|
+
export declare const getPassageLabelsByUuids: ({ client, passageUuids, }: {
|
|
11
|
+
client: DataClient;
|
|
12
|
+
passageUuids: readonly string[];
|
|
13
|
+
}) => Promise<Map<string, string>>;
|
|
14
|
+
export declare const getPassageReferencesByTargetUuids: ({ client, passageUuids, }: {
|
|
15
|
+
client: DataClient;
|
|
16
|
+
passageUuids: readonly string[];
|
|
17
|
+
}) => Promise<Map<string, Passages>>;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { passageFromDTO, } from '../types';
|
|
3
|
+
export const getAnnotationsByPassageUuids = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, passageUuids, }) {
|
|
4
|
+
var _b;
|
|
5
|
+
const annotationsByPassage = new Map();
|
|
6
|
+
if (passageUuids.length === 0) {
|
|
7
|
+
return annotationsByPassage;
|
|
8
|
+
}
|
|
9
|
+
const pageSize = 1000;
|
|
10
|
+
let allData = [];
|
|
11
|
+
let offset = 0;
|
|
12
|
+
let hasMore = true;
|
|
13
|
+
while (hasMore) {
|
|
14
|
+
const { data, error } = yield client
|
|
15
|
+
.from('passage_annotations')
|
|
16
|
+
.select('uuid, passage_uuid, type, start, end, content, toh')
|
|
17
|
+
.in('passage_uuid', passageUuids)
|
|
18
|
+
.not('type', 'like', 'deprecated%')
|
|
19
|
+
.range(offset, offset + pageSize - 1);
|
|
20
|
+
if (error) {
|
|
21
|
+
console.error('Error batch loading annotations:', error);
|
|
22
|
+
return new Map();
|
|
23
|
+
}
|
|
24
|
+
allData = allData.concat((data !== null && data !== void 0 ? data : []));
|
|
25
|
+
hasMore = ((_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0) === pageSize;
|
|
26
|
+
offset += pageSize;
|
|
27
|
+
}
|
|
28
|
+
for (const annotation of allData) {
|
|
29
|
+
const passageUuid = annotation.passage_uuid;
|
|
30
|
+
if (!passageUuid)
|
|
31
|
+
continue;
|
|
32
|
+
const existing = annotationsByPassage.get(passageUuid);
|
|
33
|
+
if (existing) {
|
|
34
|
+
existing.push(annotation);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
annotationsByPassage.set(passageUuid, [annotation]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
for (const annotations of annotationsByPassage.values()) {
|
|
41
|
+
annotations.sort((a, b) => {
|
|
42
|
+
if (a.start !== b.start)
|
|
43
|
+
return a.start - b.start;
|
|
44
|
+
return b.end - a.end;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return annotationsByPassage;
|
|
48
|
+
});
|
|
49
|
+
export const getAlignmentsByPassageUuids = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, passageUuids, }) {
|
|
50
|
+
var _b;
|
|
51
|
+
const alignmentsByPassage = new Map();
|
|
52
|
+
if (passageUuids.length === 0) {
|
|
53
|
+
return alignmentsByPassage;
|
|
54
|
+
}
|
|
55
|
+
const pageSize = 1000;
|
|
56
|
+
let allData = [];
|
|
57
|
+
let offset = 0;
|
|
58
|
+
let hasMore = true;
|
|
59
|
+
while (hasMore) {
|
|
60
|
+
const { data, error } = yield client
|
|
61
|
+
.from('passage_alignments')
|
|
62
|
+
.select('passage_uuid, folio_uuid, toh, tibetan, folio_number, volume_number')
|
|
63
|
+
.in('passage_uuid', passageUuids)
|
|
64
|
+
.range(offset, offset + pageSize - 1);
|
|
65
|
+
if (error) {
|
|
66
|
+
console.error('Error batch loading alignments:', error);
|
|
67
|
+
return new Map();
|
|
68
|
+
}
|
|
69
|
+
allData = allData.concat((data !== null && data !== void 0 ? data : []));
|
|
70
|
+
hasMore = ((_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0) === pageSize;
|
|
71
|
+
offset += pageSize;
|
|
72
|
+
}
|
|
73
|
+
for (const row of allData) {
|
|
74
|
+
const existing = alignmentsByPassage.get(row.passage_uuid);
|
|
75
|
+
if (existing) {
|
|
76
|
+
existing.push(row);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
alignmentsByPassage.set(row.passage_uuid, [row]);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return alignmentsByPassage;
|
|
83
|
+
});
|
|
84
|
+
export const getPassageLabelsByUuids = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, passageUuids, }) {
|
|
85
|
+
const labelsByUuid = new Map();
|
|
86
|
+
if (passageUuids.length === 0) {
|
|
87
|
+
return labelsByUuid;
|
|
88
|
+
}
|
|
89
|
+
const { data, error } = yield client
|
|
90
|
+
.from('passages')
|
|
91
|
+
.select('uuid, label')
|
|
92
|
+
.in('uuid', passageUuids);
|
|
93
|
+
if (error) {
|
|
94
|
+
console.error('Error batch loading passage labels:', error);
|
|
95
|
+
return labelsByUuid;
|
|
96
|
+
}
|
|
97
|
+
for (const passage of data !== null && data !== void 0 ? data : []) {
|
|
98
|
+
if (passage.label) {
|
|
99
|
+
labelsByUuid.set(passage.uuid, passage.label);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return labelsByUuid;
|
|
103
|
+
});
|
|
104
|
+
export const getPassageReferencesByTargetUuids = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, passageUuids, }) {
|
|
105
|
+
var _b;
|
|
106
|
+
const referencesByTargetUuid = new Map();
|
|
107
|
+
if (passageUuids.length === 0) {
|
|
108
|
+
return referencesByTargetUuid;
|
|
109
|
+
}
|
|
110
|
+
const { data: annotations, error: annotationsError } = yield client.rpc('get_passage_annotations_by_content_uuids', {
|
|
111
|
+
annotation_type: 'end-note-link',
|
|
112
|
+
target_uuids: passageUuids,
|
|
113
|
+
});
|
|
114
|
+
if (annotationsError) {
|
|
115
|
+
console.error('Error batch loading passage reference annotations:', annotationsError);
|
|
116
|
+
return referencesByTargetUuid;
|
|
117
|
+
}
|
|
118
|
+
const targetToSourceUuids = new Map();
|
|
119
|
+
const allSourceUuids = new Set();
|
|
120
|
+
for (const row of (annotations !== null && annotations !== void 0 ? annotations : [])) {
|
|
121
|
+
if (!row.target_uuid || !row.passage_uuid)
|
|
122
|
+
continue;
|
|
123
|
+
allSourceUuids.add(row.passage_uuid);
|
|
124
|
+
const sourceSet = (_b = targetToSourceUuids.get(row.target_uuid)) !== null && _b !== void 0 ? _b : new Set();
|
|
125
|
+
sourceSet.add(row.passage_uuid);
|
|
126
|
+
targetToSourceUuids.set(row.target_uuid, sourceSet);
|
|
127
|
+
}
|
|
128
|
+
const sourceUuidArray = Array.from(allSourceUuids);
|
|
129
|
+
const passageMap = new Map();
|
|
130
|
+
const inBatchSize = 300;
|
|
131
|
+
for (let i = 0; i < sourceUuidArray.length; i += inBatchSize) {
|
|
132
|
+
const batch = sourceUuidArray.slice(i, i + inBatchSize);
|
|
133
|
+
const { data, error } = yield client
|
|
134
|
+
.from('passages')
|
|
135
|
+
.select('uuid, content, label, sort, type, toh, xmlId, work_uuid')
|
|
136
|
+
.in('uuid', batch);
|
|
137
|
+
if (error) {
|
|
138
|
+
console.error('Error batch loading passage reference data:', error);
|
|
139
|
+
return new Map();
|
|
140
|
+
}
|
|
141
|
+
for (const row of (data !== null && data !== void 0 ? data : [])) {
|
|
142
|
+
passageMap.set(row.uuid, passageFromDTO(row));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
for (const targetUuid of passageUuids) {
|
|
146
|
+
const sourceUuids = targetToSourceUuids.get(targetUuid);
|
|
147
|
+
if (!sourceUuids)
|
|
148
|
+
continue;
|
|
149
|
+
const references = [];
|
|
150
|
+
for (const sourceUuid of sourceUuids) {
|
|
151
|
+
const passage = passageMap.get(sourceUuid);
|
|
152
|
+
if (passage)
|
|
153
|
+
references.push(passage);
|
|
154
|
+
}
|
|
155
|
+
referencesByTargetUuid.set(targetUuid, references.sort((a, b) => a.sort - b.sort));
|
|
156
|
+
}
|
|
157
|
+
return referencesByTargetUuid;
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../../libs/data-access/src/lib/passage/batch.ts"],"names":[],"mappings":";AAAA,OAAO,EAOL,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAMF,EAAE,4CANO,EACjD,MAAM,EACN,YAAY,GAIb;;IACC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEhE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,OAAO,GAAoB,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACjC,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,oDAAoD,CAAC;aAC5D,EAAE,CAAC,cAAc,EAAE,YAAwB,CAAC;aAC5C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;aAClC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAExC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAoB,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,CAAC,KAAK,QAAQ,CAAC;QAC3C,MAAM,IAAI,QAAQ,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,WAAW,IAAI,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;QACxD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClD,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAMF,EAAE,4CANO,EAChD,MAAM,EACN,YAAY,GAIb;;IACC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE9D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,OAAO,GAAgD,EAAE,CAAC;IAC9D,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACjC,IAAI,CAAC,oBAAoB,CAAC;aAC1B,MAAM,CACL,qEAAqE,CACtE;aACA,EAAE,CAAC,cAAc,EAAE,YAAwB,CAAC;aAC5C,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAExC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAmB,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,CAAC,KAAK,QAAQ,CAAC;QAC3C,MAAM,IAAI,QAAQ,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAMN,EAAE,4CANW,EAC5C,MAAM,EACN,YAAY,GAIb;IACC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;SACjC,IAAI,CAAC,UAAU,CAAC;SAChB,MAAM,CAAC,aAAa,CAAC;SACrB,EAAE,CAAC,MAAM,EAAE,YAAwB,CAAC,CAAC;IAExC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAMd,EAAE,4CANmB,EACtD,MAAM,EACN,YAAY,GAIb;;IACC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACrE,0CAA0C,EAC1C;QACE,eAAe,EAAE,eAAe;QAChC,YAAY,EAAE,YAAwB;KACvC,CACF,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,gBAAgB,CACjB,CAAC;QACF,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAGlC,EAAE,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,SAAS;QACpD,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,SAAS,GACb,MAAA,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,mCAAI,IAAI,GAAG,EAAU,CAAC;QAChE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACjC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,yDAAyD,CAAC;aACjE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAErB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;YACpE,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAiB,EAAE,CAAC;YAC/C,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,sBAAsB,CAAC,GAAG,CACxB,UAAU,EACV,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/data-access/src/lib/passage/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { DataClient } from '../types';
|
|
2
|
+
type ApiPaginationDirection = 'FORWARD' | 'BACKWARD' | 'AROUND';
|
|
3
|
+
export type PassageConnectionNode = {
|
|
4
|
+
uuid: string;
|
|
5
|
+
workUuid: string;
|
|
6
|
+
content: string;
|
|
7
|
+
label: string | null;
|
|
8
|
+
sort: number;
|
|
9
|
+
type: string;
|
|
10
|
+
toh: string | null;
|
|
11
|
+
xmlId: string | null;
|
|
12
|
+
};
|
|
13
|
+
export type PassageConnectionPage = {
|
|
14
|
+
nodes: PassageConnectionNode[];
|
|
15
|
+
nextCursor: string | null;
|
|
16
|
+
prevCursor: string | null;
|
|
17
|
+
hasMoreAfter: boolean;
|
|
18
|
+
hasMoreBefore: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare const getWorkPassagesConnection: ({ client, workUuid, cursor, limit, filter, direction, }: {
|
|
21
|
+
client: DataClient;
|
|
22
|
+
workUuid: string;
|
|
23
|
+
cursor?: string;
|
|
24
|
+
limit?: number;
|
|
25
|
+
filter?: {
|
|
26
|
+
type?: string;
|
|
27
|
+
types?: string[];
|
|
28
|
+
label?: string;
|
|
29
|
+
};
|
|
30
|
+
direction?: ApiPaginationDirection;
|
|
31
|
+
}) => Promise<PassageConnectionPage>;
|
|
32
|
+
export declare const getWorkPassagesAround: ({ client, workUuid, cursor, limit, filter, }: {
|
|
33
|
+
client: DataClient;
|
|
34
|
+
workUuid: string;
|
|
35
|
+
cursor?: string;
|
|
36
|
+
limit: number;
|
|
37
|
+
filter?: {
|
|
38
|
+
type?: string;
|
|
39
|
+
types?: string[];
|
|
40
|
+
label?: string;
|
|
41
|
+
};
|
|
42
|
+
}) => Promise<PassageConnectionPage>;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
const EMPTY_PASSAGE_CONNECTION = {
|
|
3
|
+
nodes: [],
|
|
4
|
+
nextCursor: null,
|
|
5
|
+
prevCursor: null,
|
|
6
|
+
hasMoreAfter: false,
|
|
7
|
+
hasMoreBefore: false,
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_PASSAGE_CONNECTION_LIMIT = 20;
|
|
10
|
+
const MAX_PASSAGE_CONNECTION_LIMIT = 100;
|
|
11
|
+
function buildPassageConnection(nodes, nextCursor, prevCursor, hasMoreAfter, hasMoreBefore) {
|
|
12
|
+
return {
|
|
13
|
+
nodes,
|
|
14
|
+
nextCursor,
|
|
15
|
+
prevCursor,
|
|
16
|
+
hasMoreAfter,
|
|
17
|
+
hasMoreBefore,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function rowToPassageConnectionNode(row, workUuid) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
return {
|
|
23
|
+
uuid: row.uuid,
|
|
24
|
+
workUuid,
|
|
25
|
+
content: row.content,
|
|
26
|
+
label: row.label,
|
|
27
|
+
sort: row.sort,
|
|
28
|
+
type: row.type,
|
|
29
|
+
toh: (_a = row.toh) !== null && _a !== void 0 ? _a : null,
|
|
30
|
+
xmlId: (_b = row.xmlId) !== null && _b !== void 0 ? _b : null,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export const getWorkPassagesConnection = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, workUuid, cursor, limit = DEFAULT_PASSAGE_CONNECTION_LIMIT, filter, direction = 'FORWARD', }) {
|
|
34
|
+
const clampedLimit = Math.min(Math.max(limit, 1), MAX_PASSAGE_CONNECTION_LIMIT);
|
|
35
|
+
if (direction === 'AROUND') {
|
|
36
|
+
return getWorkPassagesAround({
|
|
37
|
+
client,
|
|
38
|
+
workUuid,
|
|
39
|
+
cursor,
|
|
40
|
+
limit: clampedLimit,
|
|
41
|
+
filter,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const isForward = direction === 'FORWARD';
|
|
45
|
+
let cursorSort = null;
|
|
46
|
+
if (cursor) {
|
|
47
|
+
const { data: cursorPassage } = yield client
|
|
48
|
+
.from('passages')
|
|
49
|
+
.select('sort')
|
|
50
|
+
.eq('uuid', cursor)
|
|
51
|
+
.single();
|
|
52
|
+
if (cursorPassage) {
|
|
53
|
+
cursorSort = cursorPassage.sort;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
let query = client
|
|
57
|
+
.from('passages')
|
|
58
|
+
.select('uuid, content, label, sort, type, toh, xmlId, work_uuid')
|
|
59
|
+
.eq('work_uuid', workUuid)
|
|
60
|
+
.order('sort', { ascending: isForward })
|
|
61
|
+
.limit(clampedLimit + 1);
|
|
62
|
+
if (cursorSort !== null) {
|
|
63
|
+
query = isForward
|
|
64
|
+
? query.gt('sort', cursorSort)
|
|
65
|
+
: query.lt('sort', cursorSort);
|
|
66
|
+
}
|
|
67
|
+
if ((filter === null || filter === void 0 ? void 0 : filter.types) && filter.types.length > 0) {
|
|
68
|
+
query = query.in('type', filter.types);
|
|
69
|
+
}
|
|
70
|
+
else if (filter === null || filter === void 0 ? void 0 : filter.type) {
|
|
71
|
+
query = query.filter('type', 'match', `${filter.type}.*`);
|
|
72
|
+
}
|
|
73
|
+
if (filter === null || filter === void 0 ? void 0 : filter.label) {
|
|
74
|
+
query = query.ilike('label', filter.label);
|
|
75
|
+
}
|
|
76
|
+
const { data, error } = yield query;
|
|
77
|
+
if (error) {
|
|
78
|
+
console.error('Error fetching passages:', error);
|
|
79
|
+
return EMPTY_PASSAGE_CONNECTION;
|
|
80
|
+
}
|
|
81
|
+
const passages = (data !== null && data !== void 0 ? data : []);
|
|
82
|
+
const hasMore = passages.length > clampedLimit;
|
|
83
|
+
let resultPassages = hasMore ? passages.slice(0, clampedLimit) : passages;
|
|
84
|
+
if (!isForward) {
|
|
85
|
+
resultPassages = resultPassages.reverse();
|
|
86
|
+
}
|
|
87
|
+
const hasMoreAfter = isForward ? hasMore : cursorSort !== null;
|
|
88
|
+
const hasMoreBefore = isForward ? cursorSort !== null : hasMore;
|
|
89
|
+
if (resultPassages.length === 0) {
|
|
90
|
+
return buildPassageConnection([], null, null, false, hasMoreBefore);
|
|
91
|
+
}
|
|
92
|
+
const nodes = resultPassages.map((row) => rowToPassageConnectionNode(row, workUuid));
|
|
93
|
+
const firstPassage = resultPassages[0];
|
|
94
|
+
const lastPassage = resultPassages[resultPassages.length - 1];
|
|
95
|
+
return buildPassageConnection(nodes, hasMoreAfter ? lastPassage.uuid : null, hasMoreBefore ? firstPassage.uuid : null, hasMoreAfter, hasMoreBefore);
|
|
96
|
+
});
|
|
97
|
+
export const getWorkPassagesAround = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, workUuid, cursor, limit, filter, }) {
|
|
98
|
+
var _b, _c;
|
|
99
|
+
if (!cursor) {
|
|
100
|
+
console.error('AROUND direction requires a cursor');
|
|
101
|
+
return EMPTY_PASSAGE_CONNECTION;
|
|
102
|
+
}
|
|
103
|
+
const { data: cursorPassage } = yield client
|
|
104
|
+
.from('passages')
|
|
105
|
+
.select('sort')
|
|
106
|
+
.eq('uuid', cursor)
|
|
107
|
+
.single();
|
|
108
|
+
if (!cursorPassage) {
|
|
109
|
+
console.error('Cursor passage not found');
|
|
110
|
+
return EMPTY_PASSAGE_CONNECTION;
|
|
111
|
+
}
|
|
112
|
+
const cursorSort = cursorPassage.sort;
|
|
113
|
+
const limitBefore = Math.floor(limit / 2);
|
|
114
|
+
const limitAfter = limit - limitBefore;
|
|
115
|
+
const baseSelect = 'uuid, content, label, sort, type, toh, xmlId, work_uuid';
|
|
116
|
+
let beforeQuery = client
|
|
117
|
+
.from('passages')
|
|
118
|
+
.select(baseSelect)
|
|
119
|
+
.eq('work_uuid', workUuid)
|
|
120
|
+
.lt('sort', cursorSort)
|
|
121
|
+
.order('sort', { ascending: false })
|
|
122
|
+
.limit(limitBefore + 1);
|
|
123
|
+
let afterQuery = client
|
|
124
|
+
.from('passages')
|
|
125
|
+
.select(baseSelect)
|
|
126
|
+
.eq('work_uuid', workUuid)
|
|
127
|
+
.gte('sort', cursorSort)
|
|
128
|
+
.order('sort', { ascending: true })
|
|
129
|
+
.limit(limitAfter + 1);
|
|
130
|
+
if ((filter === null || filter === void 0 ? void 0 : filter.types) && filter.types.length > 0) {
|
|
131
|
+
beforeQuery = beforeQuery.in('type', filter.types);
|
|
132
|
+
afterQuery = afterQuery.in('type', filter.types);
|
|
133
|
+
}
|
|
134
|
+
else if (filter === null || filter === void 0 ? void 0 : filter.type) {
|
|
135
|
+
const pattern = `${filter.type}.*`;
|
|
136
|
+
beforeQuery = beforeQuery.filter('type', 'match', pattern);
|
|
137
|
+
afterQuery = afterQuery.filter('type', 'match', pattern);
|
|
138
|
+
}
|
|
139
|
+
if (filter === null || filter === void 0 ? void 0 : filter.label) {
|
|
140
|
+
beforeQuery = beforeQuery.ilike('label', filter.label);
|
|
141
|
+
afterQuery = afterQuery.ilike('label', filter.label);
|
|
142
|
+
}
|
|
143
|
+
const [beforeResult, afterResult] = yield Promise.all([
|
|
144
|
+
beforeQuery,
|
|
145
|
+
afterQuery,
|
|
146
|
+
]);
|
|
147
|
+
if (beforeResult.error || afterResult.error) {
|
|
148
|
+
console.error('Error fetching passages around:', beforeResult.error || afterResult.error);
|
|
149
|
+
return EMPTY_PASSAGE_CONNECTION;
|
|
150
|
+
}
|
|
151
|
+
const passagesBefore = ((_b = beforeResult.data) !== null && _b !== void 0 ? _b : []);
|
|
152
|
+
const passagesAfter = ((_c = afterResult.data) !== null && _c !== void 0 ? _c : []);
|
|
153
|
+
const hasMoreBefore = passagesBefore.length > limitBefore;
|
|
154
|
+
const hasMoreAfter = passagesAfter.length > limitAfter;
|
|
155
|
+
const trimmedBefore = hasMoreBefore
|
|
156
|
+
? passagesBefore.slice(0, limitBefore)
|
|
157
|
+
: passagesBefore;
|
|
158
|
+
const trimmedAfter = hasMoreAfter
|
|
159
|
+
? passagesAfter.slice(0, limitAfter)
|
|
160
|
+
: passagesAfter;
|
|
161
|
+
const resultPassages = [...trimmedBefore.reverse(), ...trimmedAfter];
|
|
162
|
+
if (resultPassages.length === 0) {
|
|
163
|
+
return EMPTY_PASSAGE_CONNECTION;
|
|
164
|
+
}
|
|
165
|
+
const nodes = resultPassages.map((row) => rowToPassageConnectionNode(row, workUuid));
|
|
166
|
+
const firstPassage = resultPassages[0];
|
|
167
|
+
const lastPassage = resultPassages[resultPassages.length - 1];
|
|
168
|
+
return buildPassageConnection(nodes, hasMoreAfter ? lastPassage.uuid : null, hasMoreBefore ? firstPassage.uuid : null, hasMoreAfter, hasMoreBefore);
|
|
169
|
+
});
|
|
170
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../../../libs/data-access/src/lib/passage/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DataClient } from '../types';
|
|
2
|
+
import { PassageConnectionNode } from './pagination';
|
|
3
|
+
export declare const getPassage: ({ client, uuid, }: {
|
|
4
|
+
client: DataClient;
|
|
5
|
+
uuid: string;
|
|
6
|
+
}) => Promise<import("../types").Passage | undefined>;
|
|
7
|
+
export declare const getPassageByUuidOrXmlId: ({ client, uuid, xmlId, }: {
|
|
8
|
+
client: DataClient;
|
|
9
|
+
uuid?: string;
|
|
10
|
+
xmlId?: string;
|
|
11
|
+
}) => Promise<PassageConnectionNode | null>;
|
|
12
|
+
export declare const getPassageUuidByXmlId: ({ client, xmlId, }: {
|
|
13
|
+
client: DataClient;
|
|
14
|
+
xmlId: string;
|
|
15
|
+
}) => Promise<any>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { annotationsFromDTO, passageFromDTO, } from '../types';
|
|
3
|
+
export const getPassage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, uuid, }) {
|
|
4
|
+
const { data } = yield client
|
|
5
|
+
.rpc('get_passage_with_annotations', {
|
|
6
|
+
uuid_input: uuid,
|
|
7
|
+
})
|
|
8
|
+
.single();
|
|
9
|
+
if (!data) {
|
|
10
|
+
console.warn(`No passage found for uuid: ${uuid}`);
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const dto = data;
|
|
14
|
+
return passageFromDTO(dto, annotationsFromDTO((dto === null || dto === void 0 ? void 0 : dto.annotations) || [], (dto === null || dto === void 0 ? void 0 : dto.content.length) || 0));
|
|
15
|
+
});
|
|
16
|
+
export const getPassageByUuidOrXmlId = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, uuid, xmlId, }) {
|
|
17
|
+
var _b, _c;
|
|
18
|
+
if (!uuid && !xmlId) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
let query = client
|
|
22
|
+
.from('passages')
|
|
23
|
+
.select('uuid, content, label, sort, type, xmlId, toh, work_uuid');
|
|
24
|
+
if (uuid) {
|
|
25
|
+
query = query.eq('uuid', uuid);
|
|
26
|
+
}
|
|
27
|
+
else if (xmlId) {
|
|
28
|
+
query = query.eq('xmlId', xmlId);
|
|
29
|
+
}
|
|
30
|
+
const { data, error } = yield query.single();
|
|
31
|
+
if (error) {
|
|
32
|
+
console.error(`Error fetching passage ${uuid || xmlId}:`, error);
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (!data) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
uuid: data.uuid,
|
|
40
|
+
workUuid: data.work_uuid,
|
|
41
|
+
content: data.content,
|
|
42
|
+
label: data.label,
|
|
43
|
+
sort: data.sort,
|
|
44
|
+
type: data.type,
|
|
45
|
+
toh: (_b = data.toh) !== null && _b !== void 0 ? _b : null,
|
|
46
|
+
xmlId: (_c = data.xmlId) !== null && _c !== void 0 ? _c : null,
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
export const getPassageUuidByXmlId = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, xmlId, }) {
|
|
50
|
+
const { data, error } = yield client
|
|
51
|
+
.from('passages')
|
|
52
|
+
.select('uuid, workUuid:work_uuid')
|
|
53
|
+
.eq('xmlId', xmlId)
|
|
54
|
+
.single();
|
|
55
|
+
if (error) {
|
|
56
|
+
console.error(`Error fetching passage uuid for xmlId: ${xmlId}`, error);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
return data === null || data === void 0 ? void 0 : data.uuid;
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../libs/data-access/src/lib/passage/read.ts"],"names":[],"mappings":"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"}
|