annosearch 0.1.3 → 0.1.5
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/dist/AnnoSearch.js +16 -4
- package/dist/AnnoSearch.js.map +1 -1
- package/dist/iiif.js +4 -11
- package/dist/iiif.js.map +1 -1
- package/dist/index-config.yaml +19 -0
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/load.js +19 -18
- package/dist/load.js.map +1 -1
- package/dist/search.js +14 -3
- package/dist/search.js.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/validate.js +14 -0
- package/dist/validate.js.map +1 -1
- package/package.json +8 -4
package/dist/AnnoSearch.js
CHANGED
|
@@ -31,23 +31,35 @@ class AnnoSearch {
|
|
|
31
31
|
getHost() {
|
|
32
32
|
return this.host;
|
|
33
33
|
}
|
|
34
|
+
setHost(host) {
|
|
35
|
+
this.host = host;
|
|
36
|
+
}
|
|
34
37
|
getPort() {
|
|
35
38
|
return this.port;
|
|
36
39
|
}
|
|
40
|
+
setPort(port) {
|
|
41
|
+
this.port = port;
|
|
42
|
+
}
|
|
37
43
|
getMaxHits() {
|
|
38
44
|
return this.maxHits;
|
|
39
45
|
}
|
|
46
|
+
setMaxHits(maxHits) {
|
|
47
|
+
this.maxHits = maxHits;
|
|
48
|
+
}
|
|
40
49
|
getSearchUrl() {
|
|
41
50
|
return this.searchUrl;
|
|
42
51
|
}
|
|
43
|
-
|
|
52
|
+
setSearchUrl(searchUrl) {
|
|
53
|
+
this.searchUrl = searchUrl;
|
|
54
|
+
}
|
|
55
|
+
loadIndex(indexId, uri, type, commit) {
|
|
44
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
return yield (0, load_1.loadIndex)(indexId, uri, type);
|
|
57
|
+
return yield (0, load_1.loadIndex)(indexId, uri, type, commit);
|
|
46
58
|
});
|
|
47
59
|
}
|
|
48
|
-
searchIndex(indexId, query, motivation, page, date) {
|
|
60
|
+
searchIndex(indexId, query, motivation, page, date, user) {
|
|
49
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
return (0, search_1.searchIndex)(indexId, query, motivation, this.maxHits, page, this.searchUrl, date);
|
|
62
|
+
return (0, search_1.searchIndex)(indexId, query, motivation, this.maxHits, page, this.searchUrl, date, user);
|
|
51
63
|
});
|
|
52
64
|
}
|
|
53
65
|
initIndex(indexId) {
|
package/dist/AnnoSearch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnoSearch.js","sourceRoot":"","sources":["../src/AnnoSearch.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qCAAyD;AACzD,iCAAmD;AACnD,qCAAyD;AACzD,iCAAmD;AASnD,SAAS,UAAU;IACf,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC1D,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,WAAW;QAChD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,uBAAuB;KAC1E,CAAC;AACN,CAAC;AAED,MAAM,UAAU;IAMZ,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,KAAa,UAAU,EAAE;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEK,SAAS,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;;
|
|
1
|
+
{"version":3,"file":"AnnoSearch.js","sourceRoot":"","sources":["../src/AnnoSearch.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qCAAyD;AACzD,iCAAmD;AACnD,qCAAyD;AACzD,iCAAmD;AASnD,SAAS,UAAU;IACf,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC1D,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,WAAW;QAChD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,uBAAuB;KAC1E,CAAC;AACN,CAAC;AAED,MAAM,UAAU;IAMZ,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,KAAa,UAAU,EAAE;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEK,SAAS,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY,EAAE,MAAe;;YACvE,OAAO,MAAM,IAAA,gBAAY,EAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;KAAA;IAEK,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,UAAkB,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY;;YAC1G,OAAO,IAAA,oBAAc,EAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtG,CAAC;KAAA;IAEK,SAAS,CAAC,OAAe;;YAC3B,OAAO,MAAM,IAAA,gBAAY,EAAC,OAAO,CAAC,CAAC;QACvC,CAAC;KAAA;IAEK,WAAW,CAAC,OAAe;;YAC7B,OAAO,MAAM,IAAA,oBAAc,EAAC,OAAO,CAAC,CAAC;QACzC,CAAC;KAAA;CACJ;AAED,kBAAe,UAAU,CAAC"}
|
package/dist/iiif.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeSearchResponse = makeSearchResponse;
|
|
4
|
-
function makeSearchResponse(indexId, data, searchUrl, query, motivation, maxHits, page, date) {
|
|
4
|
+
function makeSearchResponse(indexId, data, searchUrl, query, motivation, user, maxHits, page, date) {
|
|
5
5
|
const totalPages = Math.ceil(data.num_hits / maxHits);
|
|
6
6
|
const nextPage = page + 1 < totalPages ? page + 1 : null;
|
|
7
7
|
const prevPage = page > 0 ? page - 1 : null;
|
|
8
8
|
const queryParam = encodeURIComponent(query);
|
|
9
9
|
const motivationParam = motivation ? `&motivation=${encodeURIComponent(motivation)}` : '';
|
|
10
10
|
const dateParam = date ? `&date=${encodeURIComponent(date)}` : '';
|
|
11
|
-
const
|
|
11
|
+
const userParam = user ? `&user=${encodeURIComponent(user)}` : '';
|
|
12
|
+
const id = `${searchUrl}/${indexId}/search?q=${queryParam}${motivationParam}${dateParam}${userParam}`;
|
|
12
13
|
return {
|
|
13
14
|
"@context": "http://www.w3.org/ns/anno.jsonld",
|
|
14
15
|
id: `${id}&page=${page}`,
|
|
@@ -27,15 +28,7 @@ function makeSearchResponse(indexId, data, searchUrl, query, motivation, maxHits
|
|
|
27
28
|
}
|
|
28
29
|
} : undefined,
|
|
29
30
|
startIndex: page * maxHits,
|
|
30
|
-
items: data.hits.map((hit) => ({
|
|
31
|
-
"@context": "http://www.w3.org/ns/anno.jsonld",
|
|
32
|
-
id: hit.id,
|
|
33
|
-
type: hit.type,
|
|
34
|
-
created: hit.created,
|
|
35
|
-
body: hit.body,
|
|
36
|
-
target: hit.target,
|
|
37
|
-
motivation: hit.motivation,
|
|
38
|
-
})),
|
|
31
|
+
items: data.hits.map((hit) => (Object.assign({}, hit))),
|
|
39
32
|
next: nextPage !== null ? `${id}&page=${nextPage}` : undefined,
|
|
40
33
|
prev: prevPage !== null ? `${id}&page=${prevPage}` : undefined,
|
|
41
34
|
};
|
package/dist/iiif.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iiif.js","sourceRoot":"","sources":["../src/iiif.ts"],"names":[],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"iiif.js","sourceRoot":"","sources":["../src/iiif.ts"],"names":[],"mappings":";;AAEA,gDAkCC;AAlCD,SAAgB,kBAAkB,CAAC,OAAe,EAAE,IAAS,EAAE,SAAiB,EAAE,KAAa,EAAE,UAAkB,EAAE,IAAY,EAAE,OAAe,EAAE,IAAY,EAAE,IAAY;IAC1K,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,EAAE,GAAG,GAAG,SAAS,IAAI,OAAO,aAAa,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;IAEtG,OAAO;QACH,UAAU,EAAE,kCAAkC;QAC9C,EAAE,EAAE,GAAG,EAAE,SAAS,IAAI,EAAE;QACxB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,KAAK,EAAE;gBACH,EAAE,EAAE,GAAG,EAAE,SAAS;gBAClB,IAAI,EAAE,gBAAgB;aACzB;YACD,IAAI,EAAE;gBACF,EAAE,EAAE,GAAG,EAAE,SAAS,UAAU,GAAG,CAAC,EAAE;gBAClC,IAAI,EAAE,gBAAgB;aACzB;SACJ,CAAC,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,IAAI,GAAG,OAAO;QAC1B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,mBAC5B,GAAG,EACR,CAAC;QACH,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9D,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACN,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -48,6 +48,12 @@ function searchOptions(yargs) {
|
|
|
48
48
|
type: 'string',
|
|
49
49
|
description: 'Date range',
|
|
50
50
|
demandOption: false,
|
|
51
|
+
})
|
|
52
|
+
.option('user', {
|
|
53
|
+
alias: 'u',
|
|
54
|
+
type: 'string',
|
|
55
|
+
description: 'User ID',
|
|
56
|
+
demandOption: false,
|
|
51
57
|
})
|
|
52
58
|
.option('page', {
|
|
53
59
|
alias: 'p',
|
|
@@ -60,7 +66,7 @@ function searchOptions(yargs) {
|
|
|
60
66
|
function searchCommand(argv) {
|
|
61
67
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
68
|
try {
|
|
63
|
-
const results = yield client.searchIndex(argv.index, argv.query, argv.motivation, argv.page, argv.date);
|
|
69
|
+
const results = yield client.searchIndex(argv.index, argv.query, argv.motivation, argv.page, argv.date, argv.user);
|
|
64
70
|
(0, utils_1.printJson)(results);
|
|
65
71
|
}
|
|
66
72
|
catch (error) {
|
|
@@ -91,7 +97,7 @@ function initOptions(yargs) {
|
|
|
91
97
|
function loadCommand(argv) {
|
|
92
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
99
|
try {
|
|
94
|
-
yield client.loadIndex(argv.index, argv.uri, argv.type);
|
|
100
|
+
yield client.loadIndex(argv.index, argv.uri, argv.type, argv.commit);
|
|
95
101
|
}
|
|
96
102
|
catch (error) {
|
|
97
103
|
(0, utils_1.logError)(error);
|
|
@@ -113,6 +119,11 @@ function loadOptions(yargs) {
|
|
|
113
119
|
description: 'Type of IIIF specification or W3C web annotation collection',
|
|
114
120
|
choices: ['Manifest', 'Collection', 'AnnotationCollection'],
|
|
115
121
|
demandOption: true,
|
|
122
|
+
})
|
|
123
|
+
.option('commit', {
|
|
124
|
+
type: 'boolean',
|
|
125
|
+
description: 'Force commit the changes to the index',
|
|
126
|
+
default: false
|
|
116
127
|
})
|
|
117
128
|
.option('uri', {
|
|
118
129
|
alias: 'u',
|
|
@@ -156,8 +167,10 @@ function serveOptions(yargs) {
|
|
|
156
167
|
});
|
|
157
168
|
});
|
|
158
169
|
}
|
|
159
|
-
function serveCommand(
|
|
170
|
+
function serveCommand(argv) {
|
|
160
171
|
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
client.setPort(argv.port);
|
|
173
|
+
client.setHost(argv.host);
|
|
161
174
|
(0, server_1.serve)(client);
|
|
162
175
|
});
|
|
163
176
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,kDAA0B;AAC1B,2CAAwC;AACxC,8DAAsC;AACtC,qCAAiC;AACjC,mCAA8C;AAC9C,kDAA0C,CAAC,mCAAmC;AAC9E,yCAAyC;AAEzC,MAAM,MAAM,GAAG,IAAI,oBAAU,EAAE,CAAC;AAEhC,SAAe,aAAa,CAAC,KAAU;;QACnC,OAAO,KAAK;aACP,MAAM,CAAC,OAAO,EAAE;YACb,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,IAAI;SACrB,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACb,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,cAAc;YAC3B,YAAY,EAAE,IAAI;SACrB,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,sBAAW;YACpB,YAAY,EAAE,KAAK;SACtB,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;YACzB,YAAY,EAAE,KAAK;SACtB,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE,CAAC,EAAE,uCAAuC;SACtD,CAAC,CAAC;IACX,CAAC;CAAA;AAED,SAAe,aAAa,CAAC,IAAS;;QAClC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAe,EAAE,IAAI,CAAC,KAAe,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAc,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/load.js
CHANGED
|
@@ -16,14 +16,15 @@ const errors_1 = require("./errors");
|
|
|
16
16
|
const quickwit_1 = require("./quickwit");
|
|
17
17
|
const contentType = 'application/x-ndjson';
|
|
18
18
|
const quickwitClient = (0, quickwit_1.createClient)(contentType);
|
|
19
|
-
function processAnnotations(indexId, parser) {
|
|
19
|
+
function processAnnotations(indexId, parser, commit) {
|
|
20
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
21
|
let currentParser = parser;
|
|
22
22
|
while (currentParser) {
|
|
23
23
|
const annotations = Array.from(currentParser.iterateAnnotationPageAnnotation());
|
|
24
24
|
if (annotations.length > 0) {
|
|
25
25
|
const payload = (0, utils_1.createJsonl)(annotations);
|
|
26
|
-
const
|
|
26
|
+
const url = commit ? `${indexId}/ingest?commit=force` : `${indexId}/ingest`;
|
|
27
|
+
const response = yield quickwitClient.post(url, payload);
|
|
27
28
|
if (!response.data) {
|
|
28
29
|
throw new errors_1.AnnoSearchValidationError('No response data received from Quickwit');
|
|
29
30
|
}
|
|
@@ -51,20 +52,20 @@ function processAnnotations(indexId, parser) {
|
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
|
-
function processAnnotationPageRef(indexId, annotationPageUrl) {
|
|
55
|
+
function processAnnotationPageRef(indexId, annotationPageUrl, commit) {
|
|
55
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
57
|
const jsonData = yield (0, utils_1.fetchJson)(annotationPageUrl);
|
|
57
58
|
const parser = new maniiifest_1.Maniiifest(jsonData, "AnnotationPage");
|
|
58
|
-
yield processAnnotations(indexId, parser);
|
|
59
|
+
yield processAnnotations(indexId, parser, commit);
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
function processAnnotationPage(indexId, page) {
|
|
62
|
+
function processAnnotationPage(indexId, page, commit) {
|
|
62
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
64
|
const parser = new maniiifest_1.Maniiifest(page, "AnnotationPage");
|
|
64
|
-
yield processAnnotations(indexId, parser);
|
|
65
|
+
yield processAnnotations(indexId, parser, commit);
|
|
65
66
|
});
|
|
66
67
|
}
|
|
67
|
-
function processManifest(indexId, manifestUrl) {
|
|
68
|
+
function processManifest(indexId, manifestUrl, commit) {
|
|
68
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
70
|
const jsonData = yield (0, utils_1.fetchJson)(manifestUrl);
|
|
70
71
|
const parser = new maniiifest_1.Maniiifest(jsonData);
|
|
@@ -75,15 +76,15 @@ function processManifest(indexId, manifestUrl) {
|
|
|
75
76
|
const annotationPages = parser.iterateManifestCanvasW3cAnnotationPage();
|
|
76
77
|
for (const page of annotationPages) {
|
|
77
78
|
if (page.items) {
|
|
78
|
-
yield processAnnotationPage(indexId, page);
|
|
79
|
+
yield processAnnotationPage(indexId, page, commit);
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
|
-
yield processAnnotationPageRef(indexId, page.id);
|
|
82
|
+
yield processAnnotationPageRef(indexId, page.id, commit);
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
|
-
function processCollection(indexId, collectionUrl) {
|
|
87
|
+
function processCollection(indexId, collectionUrl, commit) {
|
|
87
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
89
|
const jsonData = yield (0, utils_1.fetchJson)(collectionUrl);
|
|
89
90
|
const parser = new maniiifest_1.Maniiifest(jsonData);
|
|
@@ -96,7 +97,7 @@ function processCollection(indexId, collectionUrl) {
|
|
|
96
97
|
const manifestRef = new maniiifest_1.Maniiifest(item);
|
|
97
98
|
const manifestId = manifestRef.getManifestId();
|
|
98
99
|
if (manifestId) {
|
|
99
|
-
yield processManifest(indexId, manifestId);
|
|
100
|
+
yield processManifest(indexId, manifestId, commit);
|
|
100
101
|
}
|
|
101
102
|
else {
|
|
102
103
|
throw new errors_1.AnnoSearchValidationError('Manifest ID is null');
|
|
@@ -104,7 +105,7 @@ function processCollection(indexId, collectionUrl) {
|
|
|
104
105
|
}
|
|
105
106
|
});
|
|
106
107
|
}
|
|
107
|
-
function processAnnotationCollection(indexId, annotationCollectionUrl) {
|
|
108
|
+
function processAnnotationCollection(indexId, annotationCollectionUrl, commit) {
|
|
108
109
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
110
|
const jsonData = yield (0, utils_1.fetchJson)(annotationCollectionUrl);
|
|
110
111
|
const parser = new maniiifest_1.Maniiifest(jsonData, "AnnotationCollection");
|
|
@@ -114,14 +115,14 @@ function processAnnotationCollection(indexId, annotationCollectionUrl) {
|
|
|
114
115
|
}
|
|
115
116
|
const firstPage = parser.getAnnotationCollectionFirst();
|
|
116
117
|
if (typeof firstPage === 'string') { // means it is a URI
|
|
117
|
-
yield processAnnotationPageRef(indexId, firstPage);
|
|
118
|
+
yield processAnnotationPageRef(indexId, firstPage, commit);
|
|
118
119
|
}
|
|
119
120
|
else {
|
|
120
|
-
yield processAnnotationPage(indexId, firstPage);
|
|
121
|
+
yield processAnnotationPage(indexId, firstPage, commit);
|
|
121
122
|
}
|
|
122
123
|
});
|
|
123
124
|
}
|
|
124
|
-
function loadIndex(indexId, uri, type) {
|
|
125
|
+
function loadIndex(indexId, uri, type, commit) {
|
|
125
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
126
127
|
if (!indexId.trim() || !uri.trim()) {
|
|
127
128
|
throw new errors_1.AnnoSearchValidationError('Invalid index or uri parameter');
|
|
@@ -129,13 +130,13 @@ function loadIndex(indexId, uri, type) {
|
|
|
129
130
|
console.log(`Loading ${type} from ${uri} into index ${indexId}`);
|
|
130
131
|
switch (type) {
|
|
131
132
|
case 'Manifest':
|
|
132
|
-
yield processManifest(indexId, uri);
|
|
133
|
+
yield processManifest(indexId, uri, commit);
|
|
133
134
|
break;
|
|
134
135
|
case 'Collection':
|
|
135
|
-
yield processCollection(indexId, uri);
|
|
136
|
+
yield processCollection(indexId, uri, commit);
|
|
136
137
|
break;
|
|
137
138
|
case 'AnnotationCollection':
|
|
138
|
-
yield processAnnotationCollection(indexId, uri);
|
|
139
|
+
yield processAnnotationCollection(indexId, uri, commit);
|
|
139
140
|
break;
|
|
140
141
|
default:
|
|
141
142
|
throw new errors_1.AnnoSearchValidationError('unsupported type');
|
package/dist/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"}
|
package/dist/search.js
CHANGED
|
@@ -30,7 +30,15 @@ function buildDateQueryFromString(dateRangesString) {
|
|
|
30
30
|
})
|
|
31
31
|
.join(" OR ");
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function buildUserQueryFromString(userString) {
|
|
34
|
+
// Split the string into an array using space as the delimiter
|
|
35
|
+
const users = userString.split(" ");
|
|
36
|
+
// Map each user into a Quickwit-compatible query fragment
|
|
37
|
+
return users
|
|
38
|
+
.map(user => `(creator:"${user}" OR creator.name:"${user}")`)
|
|
39
|
+
.join(" OR ");
|
|
40
|
+
}
|
|
41
|
+
function searchIndex(indexId, q, motivation, maxHits, page, searchUrl, date, user) {
|
|
34
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
43
|
const startOffset = page * maxHits;
|
|
36
44
|
(0, validate_1.validateQueryParameter)(q);
|
|
@@ -39,16 +47,19 @@ function searchIndex(indexId, q, motivation, maxHits, page, searchUrl, date) {
|
|
|
39
47
|
(0, validate_1.validateDateRanges)(date);
|
|
40
48
|
(0, validate_1.validateOffset)(startOffset);
|
|
41
49
|
(0, validate_1.validateMotivation)(motivation);
|
|
50
|
+
(0, validate_1.validateUser)(user);
|
|
42
51
|
const qQuery = `body.value:${q}`;
|
|
43
52
|
const motivationQuery = motivation ? ` AND motivation:${motivation}` : '';
|
|
44
53
|
const dateQuery = date ? ` AND (${buildDateQueryFromString(date)})` : '';
|
|
54
|
+
const userQuery = user ? ` AND (${buildUserQueryFromString(user)})` : '';
|
|
55
|
+
//console.log(`query:${qQuery}${motivationQuery}${dateQuery}${userQuery}`);
|
|
45
56
|
const response = yield quickwitClient.post(`${indexId}/search`, {
|
|
46
|
-
query: `${qQuery}${motivationQuery}${dateQuery}`,
|
|
57
|
+
query: `${qQuery}${motivationQuery}${dateQuery}${userQuery}`,
|
|
47
58
|
max_hits: maxHits,
|
|
48
59
|
start_offset: startOffset,
|
|
49
60
|
});
|
|
50
61
|
if (response.status === 200 && response.data) {
|
|
51
|
-
return (0, iiif_1.makeSearchResponse)(indexId, response.data, searchUrl, q, motivation, maxHits, page, date);
|
|
62
|
+
return (0, iiif_1.makeSearchResponse)(indexId, response.data, searchUrl, q, motivation, user, maxHits, page, date);
|
|
52
63
|
}
|
|
53
64
|
else {
|
|
54
65
|
throw new errors_1.AnnoSearchValidationError('Failed to delete index');
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -59,7 +59,8 @@ function serve(client) {
|
|
|
59
59
|
const page = validator_1.default.toInt(req.query.page || '0');
|
|
60
60
|
const motivation = validator_1.default.escape(req.query.motivation || '');
|
|
61
61
|
const date = validator_1.default.escape(req.query.date || '');
|
|
62
|
-
const
|
|
62
|
+
const user = validator_1.default.escape(req.query.user || '');
|
|
63
|
+
const results = yield client.searchIndex(index, q, motivation, page, date, user);
|
|
63
64
|
res.json(results);
|
|
64
65
|
}
|
|
65
66
|
catch (error) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWlB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.validatePageNumber = validatePageNumber;
|
|
|
7
7
|
exports.validateMaxHits = validateMaxHits;
|
|
8
8
|
exports.validateMotivation = validateMotivation;
|
|
9
9
|
exports.validateDateRanges = validateDateRanges;
|
|
10
|
+
exports.validateUser = validateUser;
|
|
10
11
|
const errors_1 = require("./errors");
|
|
11
12
|
exports.motivations = [
|
|
12
13
|
'painting',
|
|
@@ -69,4 +70,17 @@ function validateDateRanges(ranges) {
|
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
}
|
|
73
|
+
function validateUser(user) {
|
|
74
|
+
if (!user) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// Ensure it is a valid URI
|
|
78
|
+
const uriPattern = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i;
|
|
79
|
+
const uriList = user.split(' ');
|
|
80
|
+
for (const uri of uriList) {
|
|
81
|
+
if (!uriPattern.test(uri)) {
|
|
82
|
+
throw new errors_1.AnnoSearchValidationError(`Invalid URI: ${uri}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
72
86
|
//# sourceMappingURL=validate.js.map
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":";;;AAYA,wDAIC;AAED,wCAIC;AAED,gDAIC;AAED,0CAIC;AAED,gDASC;AAED,gDAwBC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "annosearch",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*"
|
|
7
7
|
],
|
|
8
8
|
"scripts": {
|
|
9
|
-
"build": "tsc",
|
|
9
|
+
"build": "tsc && cp-cli src/index-config.yaml dist/index-config.yaml",
|
|
10
10
|
"start": "ts-node src/index.ts",
|
|
11
|
-
"test": "
|
|
11
|
+
"test": "jest"
|
|
12
12
|
},
|
|
13
13
|
"bin": {
|
|
14
14
|
"annosearch": "dist/index.js"
|
|
@@ -27,16 +27,20 @@
|
|
|
27
27
|
"@types/node": "^22.8.4",
|
|
28
28
|
"@types/pino": "^7.0.4",
|
|
29
29
|
"@types/yargs": "^17.0.33",
|
|
30
|
+
"cp-cli": "^2.0.0",
|
|
30
31
|
"typescript": "^5.6.3"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
34
|
+
"@types/jest": "^29.5.14",
|
|
33
35
|
"@types/validator": "^13.12.2",
|
|
34
36
|
"axios": "^1.7.7",
|
|
35
37
|
"express": "^4.21.1",
|
|
36
|
-
"
|
|
38
|
+
"jest": "^29.7.0",
|
|
39
|
+
"maniiifest": "^1.3.0",
|
|
37
40
|
"pino": "^9.5.0",
|
|
38
41
|
"pino-http": "^10.3.0",
|
|
39
42
|
"pino-pretty": "^12.1.0",
|
|
43
|
+
"ts-jest": "^29.2.5",
|
|
40
44
|
"validator": "^13.12.0",
|
|
41
45
|
"yaml": "^2.6.0",
|
|
42
46
|
"yargs": "^17.7.2"
|