@researchdatabox/redbox-core 5.0.3 → 5.0.4
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/DatastreamService.d.ts +2 -0
- package/dist/DatastreamService.d.ts.map +1 -1
- package/dist/QueueService.d.ts +1 -1
- package/dist/QueueService.d.ts.map +1 -1
- package/dist/RecordWriteOptions.d.ts +21 -0
- package/dist/RecordWriteOptions.d.ts.map +1 -0
- package/dist/RecordWriteOptions.js +17 -0
- package/dist/RecordsService.d.ts +3 -1
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +14 -2
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +10 -1
- package/dist/config/i18n.config.d.ts +4 -0
- package/dist/config/i18n.config.d.ts.map +1 -1
- package/dist/config/i18n.config.js +1 -1
- package/dist/configmodels/FigsharePublishing.d.ts +103 -0
- package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
- package/dist/configmodels/FigsharePublishing.js +36 -2
- package/dist/controllers/RecordAuditController.d.ts.map +1 -1
- package/dist/controllers/RecordAuditController.js +24 -6
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/model/storage/FigshareSyncModel.d.ts +126 -0
- package/dist/model/storage/FigshareSyncModel.d.ts.map +1 -0
- package/dist/model/storage/FigshareSyncModel.js +3 -0
- package/dist/model/storage/RecordAuditModel.d.ts +3 -0
- package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
- package/dist/model/storage/RecordAuditModel.js +29 -1
- package/dist/model/storage/RecordModel.d.ts +3 -0
- package/dist/model/storage/RecordModel.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.d.ts +1 -1
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +7 -4
- package/dist/services/FigshareService.d.ts +15 -10
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +76 -536
- package/dist/services/I18nEntriesService.d.ts +2 -0
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +40 -5
- package/dist/services/RecordsService.d.ts +5 -1
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +277 -164
- package/dist/services/StandardDatastreamService.d.ts +5 -0
- package/dist/services/StandardDatastreamService.d.ts.map +1 -1
- package/dist/services/StandardDatastreamService.js +18 -1
- package/dist/services/figshare-v2/admin.d.ts +16 -0
- package/dist/services/figshare-v2/admin.d.ts.map +1 -0
- package/dist/services/figshare-v2/admin.js +283 -0
- package/dist/services/figshare-v2/assets.d.ts +20 -1
- package/dist/services/figshare-v2/assets.d.ts.map +1 -1
- package/dist/services/figshare-v2/assets.js +16 -1
- package/dist/services/figshare-v2/config.d.ts +8 -2
- package/dist/services/figshare-v2/config.d.ts.map +1 -1
- package/dist/services/figshare-v2/config.js +31 -3
- package/dist/services/figshare-v2/execution.d.ts +25 -0
- package/dist/services/figshare-v2/execution.d.ts.map +1 -0
- package/dist/services/figshare-v2/execution.js +49 -0
- package/dist/services/figshare-v2/http.d.ts +6 -1
- package/dist/services/figshare-v2/http.d.ts.map +1 -1
- package/dist/services/figshare-v2/http.js +69 -12
- package/dist/services/figshare-v2/identity.d.ts +12 -0
- package/dist/services/figshare-v2/identity.d.ts.map +1 -0
- package/dist/services/figshare-v2/identity.js +78 -0
- package/dist/services/figshare-v2/managed-assets.d.ts +9 -0
- package/dist/services/figshare-v2/managed-assets.d.ts.map +1 -0
- package/dist/services/figshare-v2/managed-assets.js +229 -0
- package/dist/services/figshare-v2/plan.d.ts.map +1 -1
- package/dist/services/figshare-v2/plan.js +2 -9
- package/dist/services/figshare-v2/source-intent.d.ts +9 -0
- package/dist/services/figshare-v2/source-intent.d.ts.map +1 -0
- package/dist/services/figshare-v2/source-intent.js +93 -0
- package/dist/services/figshare-v2/status.d.ts +4 -0
- package/dist/services/figshare-v2/status.d.ts.map +1 -0
- package/dist/services/figshare-v2/status.js +29 -0
- package/dist/services/figshare-v2/sync-store.d.ts +27 -0
- package/dist/services/figshare-v2/sync-store.d.ts.map +1 -0
- package/dist/services/figshare-v2/sync-store.js +139 -0
- package/dist/services/figshare-v2/types.d.ts +3 -0
- package/dist/services/figshare-v2/types.d.ts.map +1 -1
- package/dist/services/figshare-v2/types.js +1 -1
- package/dist/services/figshare-v2/worker.d.ts +16 -0
- package/dist/services/figshare-v2/worker.d.ts.map +1 -0
- package/dist/services/figshare-v2/worker.js +572 -0
- package/dist/utilities/TranslationHtml.d.ts +3 -0
- package/dist/utilities/TranslationHtml.d.ts.map +1 -0
- package/dist/utilities/TranslationHtml.js +46 -0
- package/dist/waterline-models/FigshareSync.d.ts +41 -0
- package/dist/waterline-models/FigshareSync.d.ts.map +1 -0
- package/dist/waterline-models/FigshareSync.js +168 -0
- package/dist/waterline-models/index.d.ts +2 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +4 -1
- package/package.json +8 -8
|
@@ -4,10 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.FigshareClientTag = exports.FigshareHttpError = void 0;
|
|
7
|
+
exports.describeFigshareHttpFailure = describeFigshareHttpFailure;
|
|
7
8
|
exports.mapCreateArticleResponse = mapCreateArticleResponse;
|
|
8
9
|
exports.makeFixtureClient = makeFixtureClient;
|
|
9
10
|
exports.makeLiveClient = makeLiveClient;
|
|
10
11
|
exports.makeClientLayer = makeClientLayer;
|
|
12
|
+
const execution_1 = require("./execution");
|
|
11
13
|
const axios_1 = __importDefault(require("axios"));
|
|
12
14
|
const effect_1 = require("effect");
|
|
13
15
|
const observability_1 = require("./observability");
|
|
@@ -26,6 +28,23 @@ class FigshareHttpError extends Error {
|
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
exports.FigshareHttpError = FigshareHttpError;
|
|
31
|
+
/** Keep Axios request/config internals out of logs while retaining validation errors. */
|
|
32
|
+
function describeFigshareHttpFailure(error, token) {
|
|
33
|
+
const body = error.response?.data;
|
|
34
|
+
const details = body != null && typeof body === 'object' ? body : {};
|
|
35
|
+
const safeText = (value) => {
|
|
36
|
+
if (typeof value !== 'string')
|
|
37
|
+
return undefined;
|
|
38
|
+
const withoutToken = token ? value.replaceAll(token, '[REDACTED]') : value;
|
|
39
|
+
return withoutToken.slice(0, 500);
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
errorName: safeText(error.name),
|
|
43
|
+
errorCode: safeText(error.code),
|
|
44
|
+
responseCode: safeText(details.code),
|
|
45
|
+
responseMessage: safeText(details.message)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
29
48
|
function isReadablePayload(payload) {
|
|
30
49
|
return payload != null && typeof payload === 'object' && typeof payload.pipe === 'function';
|
|
31
50
|
}
|
|
@@ -66,6 +85,7 @@ function getRetryDelay(baseDelayMs, maxDelayMs, attempt) {
|
|
|
66
85
|
return delay + Math.floor(Math.random() * Math.min(250, Math.max(1, baseDelayMs)));
|
|
67
86
|
}
|
|
68
87
|
async function requestWithRetry(config, runContext, options) {
|
|
88
|
+
const execution = execution_1.figshareExecution.getStore();
|
|
69
89
|
const retryConfig = config.connection.retry;
|
|
70
90
|
const method = options.method;
|
|
71
91
|
const methodLower = method.toLowerCase();
|
|
@@ -74,7 +94,30 @@ async function requestWithRetry(config, runContext, options) {
|
|
|
74
94
|
: ['get', 'put', 'delete']).map((entry) => entry.toLowerCase());
|
|
75
95
|
const path = options.path ?? '';
|
|
76
96
|
const url = options.url ?? `${config.connection.baseUrl.replace(/\/+$/, '')}${path}`;
|
|
77
|
-
|
|
97
|
+
const accountApi = (url === `${config.connection.baseUrl.replace(/\/+$/, '')}/account` || url.startsWith(`${config.connection.baseUrl.replace(/\/+$/, '')}/account/`));
|
|
98
|
+
const operation = options.operation ?? (/\/files(?:[/?]|$)/.test(url) ? 'assets' : /\/embargo$/.test(url) ? 'embargo' : /\/publish$/.test(url) ? 'publish' : methodLower === 'get' ? 'read' : 'metadata');
|
|
99
|
+
const discovery = options.path === '/account' || options.path?.startsWith('/account/institution/') || options.path === '/account/licenses' || options.path === '/account/categories';
|
|
100
|
+
const actor = discovery ? 'token' : execution?.recovery ? 'owner' : config.impersonation?.operations[operation];
|
|
101
|
+
const owner = accountApi && options.anonymous !== true && (execution?.recovery || config.impersonation?.enabled) && actor === 'owner' && execution?.binding?.ownerId !== execution?.binding?.accountId ? execution?.binding?.ownerId : undefined;
|
|
102
|
+
if (accountApi && config.impersonation?.enabled && actor === 'owner' && !execution?.binding?.ownerId)
|
|
103
|
+
throw new Error('Figshare operation requires a resolved owner');
|
|
104
|
+
if (config.processing?.enabled && !execution && methodLower !== 'get' && !discovery)
|
|
105
|
+
throw new Error('Figshare mutations require the queued worker context');
|
|
106
|
+
let payload = options.payload;
|
|
107
|
+
let params = options.params;
|
|
108
|
+
if (owner) {
|
|
109
|
+
if (['get', 'delete'].includes(methodLower))
|
|
110
|
+
params = { ...params, impersonate: owner };
|
|
111
|
+
else
|
|
112
|
+
payload = { ...(payload ?? {}), impersonate: owner };
|
|
113
|
+
}
|
|
114
|
+
// Queue retries reconcile mutations first; transport must never replay a POST.
|
|
115
|
+
const attempts = execution && methodLower !== 'get' ? 1 : retryConfig.maxAttempts;
|
|
116
|
+
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
117
|
+
if (execution?.signal.aborted)
|
|
118
|
+
throw new Error('Figshare request cancelled after lease loss');
|
|
119
|
+
if (execution && methodLower !== 'get' && !url.includes('/institution/accounts/search'))
|
|
120
|
+
await execution.guard(operation);
|
|
78
121
|
try {
|
|
79
122
|
return await (0, observability_1.withSpan)(`figshare.http.${method.toLowerCase()}`, runContext, {
|
|
80
123
|
'http.method': method,
|
|
@@ -87,12 +130,13 @@ async function requestWithRetry(config, runContext, options) {
|
|
|
87
130
|
url,
|
|
88
131
|
headers: {
|
|
89
132
|
'Content-Type': 'application/json',
|
|
90
|
-
...(options.anonymous === true ? {} : { 'Authorization': `token ${config.connection.token}` }),
|
|
133
|
+
...(options.anonymous === true || !accountApi ? {} : { 'Authorization': `token ${config.connection.token}` }),
|
|
91
134
|
...(options.headers || {})
|
|
92
135
|
},
|
|
93
136
|
timeout: options.timeoutMs ?? config.connection.timeoutMs,
|
|
94
|
-
data:
|
|
95
|
-
params
|
|
137
|
+
data: payload,
|
|
138
|
+
params,
|
|
139
|
+
signal: execution?.signal,
|
|
96
140
|
maxContentLength: options.maxContentLength,
|
|
97
141
|
maxBodyLength: options.maxBodyLength
|
|
98
142
|
});
|
|
@@ -105,12 +149,12 @@ async function requestWithRetry(config, runContext, options) {
|
|
|
105
149
|
const retryableStatus = status == null || retryConfig.retryOnStatusCodes.includes(Number(status));
|
|
106
150
|
const retryableMethod = retryOnMethods.includes(methodLower);
|
|
107
151
|
const retryable = retryableStatus && retryableMethod;
|
|
108
|
-
(0, observability_1.logEvent)(retryable && attempt <
|
|
152
|
+
(0, observability_1.logEvent)(retryable && attempt < attempts ? 'warn' : 'error', `Figshare V2 request failed ${method} ${path}`, runContext, {
|
|
109
153
|
attempt,
|
|
110
154
|
status,
|
|
111
|
-
|
|
155
|
+
...describeFigshareHttpFailure(axiosErr, config.connection.token)
|
|
112
156
|
});
|
|
113
|
-
if (!retryable || attempt ===
|
|
157
|
+
if (!retryable || attempt === attempts) {
|
|
114
158
|
// Wrap instead of rethrowing the raw AxiosError: axios errors carry the full
|
|
115
159
|
// request config (including the Authorization header) and must not propagate.
|
|
116
160
|
throw new FigshareHttpError(`Figshare HTTP request failed for ${method} ${path || url}`, {
|
|
@@ -143,8 +187,8 @@ function mapCreateArticleResponse(response) {
|
|
|
143
187
|
if (article.id != null && String(article.id).trim() !== '') {
|
|
144
188
|
return article;
|
|
145
189
|
}
|
|
146
|
-
const location = getResponseHeader(response, 'Location');
|
|
147
|
-
const articleId = location == null ? undefined : getFigshareIdFromLocation(location);
|
|
190
|
+
const location = typeof article.location === 'string' ? article.location : getResponseHeader(response, 'Location');
|
|
191
|
+
const articleId = article.entity_id != null ? String(article.entity_id) : location == null ? undefined : getFigshareIdFromLocation(location);
|
|
148
192
|
return {
|
|
149
193
|
...article,
|
|
150
194
|
...(articleId != null ? { id: articleId } : {}),
|
|
@@ -154,6 +198,9 @@ function mapCreateArticleResponse(response) {
|
|
|
154
198
|
function makeFixtureClient(config) {
|
|
155
199
|
const fixtures = config.runtime.fixtures;
|
|
156
200
|
return {
|
|
201
|
+
async getAccount() { return { id: 101, user_id: 201 }; },
|
|
202
|
+
async listArticles(page = 1) { return page === 1 && fixtures?.article ? [fixtures.article] : []; },
|
|
203
|
+
async getPublicArticle(articleId) { return { ...fixtures?.article, id: articleId }; },
|
|
157
204
|
async createArticle(payload) {
|
|
158
205
|
return {
|
|
159
206
|
id: fixtures?.article?.id ?? 'fixture-article-id',
|
|
@@ -244,11 +291,15 @@ function makeFixtureClient(config) {
|
|
|
244
291
|
};
|
|
245
292
|
}
|
|
246
293
|
function makeLiveClient(config, runContext) {
|
|
247
|
-
|
|
294
|
+
const client = {
|
|
295
|
+
getAccount() { return requestWithRetry(config, runContext, { method: 'get', path: '/account', operation: 'metadata' }); },
|
|
296
|
+
listArticles(page = 1, pageSize = 100) { return requestWithRetry(config, runContext, { method: 'get', path: '/account/articles', params: { page, page_size: pageSize }, operation: 'recovery' }); },
|
|
297
|
+
getPublicArticle(articleId) { return requestWithRetry(config, runContext, { method: 'get', path: `/articles/${assertNumericPathId('articleId', articleId)}`, anonymous: true }); },
|
|
248
298
|
createArticle(payload) {
|
|
249
299
|
return requestWithRetry(config, runContext, {
|
|
250
300
|
method: 'post',
|
|
251
301
|
path: '/account/articles',
|
|
302
|
+
operation: 'create',
|
|
252
303
|
payload,
|
|
253
304
|
timeoutMs: config.connection.operationTimeouts.metadataMs,
|
|
254
305
|
responseMapper: mapCreateArticleResponse
|
|
@@ -277,6 +328,7 @@ function makeLiveClient(config, runContext) {
|
|
|
277
328
|
return requestWithRetry(config, runContext, {
|
|
278
329
|
method: 'put',
|
|
279
330
|
url: `${uploadUrl}/${partNo}`,
|
|
331
|
+
operation: 'assets',
|
|
280
332
|
payload: data,
|
|
281
333
|
headers: { 'Content-Type': 'application/octet-stream' },
|
|
282
334
|
timeoutMs: config.connection.operationTimeouts.uploadPartMs,
|
|
@@ -338,9 +390,14 @@ function makeLiveClient(config, runContext) {
|
|
|
338
390
|
});
|
|
339
391
|
}
|
|
340
392
|
};
|
|
393
|
+
for (const method of [client.createArticle, client.updateArticle, client.createArticleFile, client.uploadFilePart,
|
|
394
|
+
client.completeFileUpload, client.deleteArticleFile, client.setEmbargo, client.clearEmbargo, client.publishArticle]) {
|
|
395
|
+
execution_1.transportGuardedMethods.add(method);
|
|
396
|
+
}
|
|
397
|
+
return client;
|
|
341
398
|
}
|
|
342
399
|
function makeClientLayer(config, runContext) {
|
|
343
400
|
const client = config.runtime.mode === 'fixture' ? makeFixtureClient(config) : makeLiveClient(config, runContext);
|
|
344
|
-
return effect_1.Layer.succeed(exports.FigshareClientTag, client);
|
|
401
|
+
return effect_1.Layer.succeed(exports.FigshareClientTag, (0, execution_1.workerClient)(client));
|
|
345
402
|
}
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9maWdzaGFyZS12Mi9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQWtNQSw0REFjQztBQUVELDhDQTJGQztBQUVELHdDQStGQztBQUVELDBDQUdDO0FBblpELGtEQUE4RDtBQUM5RCxtQ0FBd0M7QUFpQnhDLG1EQUFxRDtBQUNyRCxtRUFBOEQ7QUFFOUQsTUFBYSxpQkFBa0IsU0FBUSxLQUFLO0lBQzFDLFVBQVUsQ0FBVTtJQUNwQixZQUFZLENBQVc7SUFFdkIsWUFBWSxPQUFlLEVBQUUsVUFBNEUsRUFBRTtRQUN6RyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDekMsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQW9DLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWJELDhDQWFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxPQUFPLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQVEsT0FBOEIsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ3RILENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxPQUFpQztJQUN2RCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sSUFBSSxJQUFJO1FBQ3ZDLENBQUMsQ0FBQyxTQUFTO1FBQ1gsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsT0FBTyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN0RixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxPQUFnQixFQUFFLE9BQWlDO0lBQ3BGLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVE7WUFDZCxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDMUIsV0FBVyxFQUFFLFdBQVcsSUFBSSxTQUFTO1NBQ3RDLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQztRQUNuRixPQUFPO1lBQ0wsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDdEQsV0FBVyxFQUFFLFdBQVcsSUFBSSxTQUFTO1lBQ3JDLFlBQVksRUFBRSxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDckcsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLElBQUEsNkJBQVksRUFBQyxPQUFPLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsS0FBYTtJQUN2RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixLQUFLLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQXFCWSxRQUFBLGlCQUFpQixHQUFHLGdCQUFPLENBQUMsVUFBVSxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDO0FBRTdGLFNBQVMsYUFBYSxDQUFDLFdBQW1CLEVBQUUsVUFBa0IsRUFBRSxPQUFlO0lBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBdUJELEtBQUssVUFBVSxnQkFBZ0IsQ0FBOEIsTUFBb0MsRUFBRSxVQUE4QixFQUFFLE9BQXVCO0lBQ3hKLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDOUIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN4RyxDQUFDLENBQUMsV0FBVyxDQUFDLGNBQWM7UUFDNUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDaEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDckYsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBQSx3QkFBUSxFQUFDLGlCQUFpQixNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7Z0JBQ3pFLGFBQWEsRUFBRSxNQUFNO2dCQUNyQixVQUFVLEVBQUUsR0FBRzthQUNoQixFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNaLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JGLElBQUEsd0JBQVEsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFDL0csTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLGVBQUssRUFBQztvQkFDM0IsTUFBTTtvQkFDTixHQUFHO29CQUNILE9BQU8sRUFBRTt3QkFDUCxjQUFjLEVBQUUsa0JBQWtCO3dCQUNsQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsU0FBUyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQzlGLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTO29CQUN6RCxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU87b0JBQ3JCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtvQkFDdEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtvQkFDMUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO2lCQUNyQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQVMsQ0FBQztZQUNuRyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxRQUFRLEdBQUcsS0FBbUIsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztZQUMxQyxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbEcsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3RCxNQUFNLFNBQVMsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDO1lBQ3JELElBQUEsd0JBQVEsRUFBQyxTQUFTLElBQUksT0FBTyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLDhCQUE4QixNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFO2dCQUN0SSxPQUFPO2dCQUNQLE1BQU07Z0JBQ04sS0FBSyxFQUFFLElBQUEsNkJBQVksRUFBQyxLQUFLLENBQUM7YUFDM0IsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0RCw2RUFBNkU7Z0JBQzdFLDhFQUE4RTtnQkFDOUUsTUFBTSxJQUFJLGlCQUFpQixDQUFDLG9DQUFvQyxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFO29CQUN2RixVQUFVLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO29CQUN2RCxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJO29CQUN0QyxLQUFLLEVBQUUsS0FBSztpQkFDYixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxvQ0FBb0MsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7QUFDcEYsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsUUFBOEIsRUFBRSxJQUFZO0lBQ3JFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxRQUFnQjtJQUNqRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxNQUFNLEtBQUssR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hHLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQWdCLHdCQUF3QixDQUFJLFFBQThCO0lBQ3hFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRO1FBQ3hFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBdUI7UUFDbEMsQ0FBQyxDQUFDLEVBQXFCLENBQUM7SUFDMUIsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzNELE9BQU8sT0FBWSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekQsTUFBTSxTQUFTLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRixPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0MsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNyQyxDQUFDO0FBQ1QsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE1BQTRDO0lBQzVFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pDLE9BQU87UUFDTCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQStCO1lBQ2pELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLG9CQUFvQjtnQkFDakQsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUM1QixHQUFHLE9BQU87YUFDUSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQWlCLEVBQUUsT0FBK0I7WUFDcEUsT0FBTztnQkFDTCxFQUFFLEVBQUUsU0FBUyxJQUFJLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLG9CQUFvQjtnQkFDOUQsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUM1QixHQUFHLE9BQU87YUFDUSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQWlCO1lBQ2hDLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLFNBQVMsSUFBSSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxvQkFBb0I7Z0JBQzlELEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUNWLENBQUM7UUFDdkIsQ0FBQztRQUNELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFFBQWdCLENBQUMsRUFBRSxZQUFvQixFQUFFO1lBQ2xGLE9BQU8sQ0FBQyxRQUFRLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBbUIsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQWtCLEVBQUUsT0FBa0M7WUFDNUUsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN6QixPQUFPO29CQUNMLEVBQUUsRUFBRyxRQUFvQyxFQUFFLFFBQVEsSUFBSSxJQUFJO3dCQUN6RCxDQUFDLENBQUcsUUFBb0MsQ0FBQyxRQUFvQyxDQUFDLEVBQUUsSUFBSSxpQkFBaUI7d0JBQ3JHLENBQUMsQ0FBQyxpQkFBaUI7b0JBQ3JCLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7aUJBQ2YsQ0FBQztZQUMxQixDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUksUUFBb0MsRUFBRSxNQUE2QyxDQUFDO1lBQ3BHLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLElBQUksdURBQXVEO2FBQ2hFLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBbUI7WUFDbkMsTUFBTSxNQUFNLEdBQUksUUFBb0MsRUFBRSxNQUE2QyxDQUFDO1lBQ3BHLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPO29CQUNMLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDNUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQTJDLENBQUM7WUFDakUsT0FBTztnQkFDTCxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxpQkFBaUI7Z0JBQ2pDLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxJQUFJLHdEQUF3RDtnQkFDeEYsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLElBQUkseURBQXlEO2dCQUM3RixNQUFNLEVBQUUsV0FBVzthQUNRLENBQUM7UUFDaEMsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBa0IsRUFBRSxPQUFlLEVBQUUsS0FBYztZQUN0RSxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxNQUFjLEVBQUUsUUFBa0M7WUFDNUYsT0FBTztnQkFDTCxFQUFFLEVBQUUsTUFBTTtnQkFDVixJQUFJLEVBQUUsRUFBRTtnQkFDUixVQUFVLEVBQUUsU0FBUztnQkFDckIsTUFBTSxFQUFFLFdBQVc7YUFDSixDQUFDO1FBQ3BCLENBQUM7UUFDRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0IsRUFBRSxNQUFjO1lBQ3hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFrQixFQUFFLE9BQStCO1lBQ2xFLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQWlCO1lBQ2xDLE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFpQixFQUFFLFFBQWtDO1lBQ3hFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQTBCLENBQUM7UUFDdEcsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZO1lBQ2hCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBc0IsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFFBQWlDO1lBQy9ELE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBaUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQjtZQUN4QixPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQWtDLENBQUM7UUFDdkUsQ0FBQztRQUNELEtBQUssQ0FBQyxxQkFBcUI7WUFDekIsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFrQyxDQUFDO1FBQ3ZFLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxNQUFvQyxFQUFFLFVBQThCO0lBQ2pHLE9BQU87UUFDTCxhQUFhLENBQUMsT0FBK0I7WUFDM0MsT0FBTyxnQkFBZ0IsQ0FBa0IsTUFBTSxFQUFFLFVBQVUsRUFBRTtnQkFDM0QsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsT0FBTztnQkFDUCxTQUFTLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO2dCQUN6RCxjQUFjLEVBQUUsd0JBQXdCO2FBQ3pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxhQUFhLENBQUMsU0FBaUIsRUFBRSxPQUErQjtZQUM5RCxNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxPQUFPLGdCQUFnQixDQUFrQixNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUscUJBQXFCLG1CQUFtQixFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeE0sQ0FBQztRQUNELFVBQVUsQ0FBQyxTQUFpQjtZQUMxQixNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxPQUFPLGdCQUFnQixDQUFrQixNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUscUJBQXFCLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMvTCxDQUFDO1FBQ0QsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxPQUFlLENBQUMsRUFBRSxXQUFtQixFQUFFO1lBQ3pFLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sZ0JBQWdCLENBQWlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxxQkFBcUIsbUJBQW1CLG9CQUFvQixRQUFRLFNBQVMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN2TyxDQUFDO1FBQ0QsaUJBQWlCLENBQUMsU0FBaUIsRUFBRSxPQUFrQztZQUNyRSxNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxPQUFPLGdCQUFnQixDQUFxQixNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUscUJBQXFCLG1CQUFtQixRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDcE4sQ0FBQztRQUNELFdBQVcsQ0FBQyxXQUFtQjtZQUM3QixPQUFPLGdCQUFnQixDQUEyQixNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDMUssQ0FBQztRQUNELGNBQWMsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxJQUFhO1lBQzdELE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtnQkFDMUMsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsR0FBRyxFQUFFLEdBQUcsU0FBUyxJQUFJLE1BQU0sRUFBRTtnQkFDN0IsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLDBCQUEwQixFQUFFO2dCQUN2RCxTQUFTLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO2dCQUMzRCxnQkFBZ0IsRUFBRSxRQUFRO2dCQUMxQixhQUFhLEVBQUUsUUFBUTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxNQUFjLEVBQUUsVUFBbUMsRUFBRTtZQUN6RixNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRCxPQUFPLGdCQUFnQixDQUFlLE1BQU0sRUFBRSxVQUFVLEVBQUU7Z0JBQ3hELE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxxQkFBcUIsbUJBQW1CLFVBQVUsZ0JBQWdCLEVBQUU7Z0JBQzFFLE9BQU87Z0JBQ1AsU0FBUyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWTthQUM1RCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsaUJBQWlCLENBQUMsU0FBaUIsRUFBRSxNQUFjO1lBQ2pELE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQy9ELE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixtQkFBbUIsVUFBVSxnQkFBZ0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4TixDQUFDO1FBQ0QsVUFBVSxDQUFDLFNBQWlCLEVBQUUsT0FBK0I7WUFDM0QsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEUsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUscUJBQXFCLG1CQUFtQixVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDL0wsQ0FBQztRQUNELFlBQVksQ0FBQyxTQUFpQjtZQUM1QixNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RSxPQUFPLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxxQkFBcUIsbUJBQW1CLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdE0sQ0FBQztRQUNELGNBQWMsQ0FBQyxTQUFpQixFQUFFLFVBQW1DLEVBQUU7WUFDckUsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEUsT0FBTyxnQkFBZ0IsQ0FBd0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixtQkFBbUIsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ROLENBQUM7UUFDRCxZQUFZO1lBQ1YsT0FBTyxnQkFBZ0IsQ0FBb0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDMUssQ0FBQztRQUNELHlCQUF5QixDQUFDLE9BQWdDO1lBQ3hELE9BQU8sZ0JBQWdCLENBQStCLE1BQU0sRUFBRSxVQUFVLEVBQUU7Z0JBQ3hFLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxzQ0FBc0M7Z0JBQzVDLE9BQU87Z0JBQ1AsU0FBUyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsVUFBVTthQUMxRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0Qsb0JBQW9CO1lBQ2xCLE9BQU8sZ0JBQWdCLENBQXFCLE1BQU0sRUFBRSxVQUFVLEVBQUU7Z0JBQzlELE1BQU0sRUFBRSxLQUFLO2dCQUNiLElBQUksRUFBRSxhQUFhO2dCQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO2dCQUN6RCxTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QscUJBQXFCO1lBQ25CLE9BQU8sZ0JBQWdCLENBQXFCLE1BQU0sRUFBRSxVQUFVLEVBQUU7Z0JBQzlELE1BQU0sRUFBRSxLQUFLO2dCQUNiLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFVBQVU7YUFDMUQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE1BQTRDLEVBQUUsVUFBOEI7SUFDMUcsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNsSCxPQUFPLGNBQUssQ0FBQyxPQUFPLENBQUMseUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyJ9
|
|
403
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9maWdzaGFyZS12Mi9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXVDQSxrRUFjQztBQXVMRCw0REFjQztBQUVELDhDQThGQztBQUVELHdDQXlHQztBQUVELDBDQUdDO0FBMWNELDJDQUF1RjtBQUV2RixrREFBOEQ7QUFDOUQsbUNBQXdDO0FBaUJ4QyxtREFBcUQ7QUFDckQsbUVBQThEO0FBRTlELE1BQWEsaUJBQWtCLFNBQVEsS0FBSztJQUMxQyxVQUFVLENBQVU7SUFDcEIsWUFBWSxDQUFXO0lBRXZCLFlBQVksT0FBZSxFQUFFLFVBQTRFLEVBQUU7UUFDekcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3pDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFvQyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFiRCw4Q0FhQztBQUVELHlGQUF5RjtBQUN6RixTQUFnQiwyQkFBMkIsQ0FBQyxLQUFpQixFQUFFLEtBQWE7SUFDMUUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7SUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQStCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWMsRUFBc0IsRUFBRTtRQUN0RCxJQUFJ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LEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDckYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkssTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxTSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQztJQUNyTCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENB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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FigsharePublishingConfigData } from '../../configmodels/FigsharePublishing';
|
|
2
|
+
import type { FigshareBinding, FigshareCreateOperation } from '../../model/storage/FigshareSyncModel';
|
|
3
|
+
import type { FigshareClient } from './http';
|
|
4
|
+
import { type RecordModel, type FigshareArticle } from './types';
|
|
5
|
+
export declare function apiNamespace(config: FigsharePublishingConfigData): string;
|
|
6
|
+
export declare function resolveCreationOwner(client: FigshareClient, config: FigsharePublishingConfigData, record: RecordModel, accountId: string): Promise<string>;
|
|
7
|
+
export declare const provisionalTitle: (token: string) => string;
|
|
8
|
+
export declare function newCreateOperation(binding: FigshareBinding): FigshareCreateOperation;
|
|
9
|
+
export declare function recoverCreate(client: FigshareClient, operation: FigshareCreateOperation): Promise<FigshareArticle | null>;
|
|
10
|
+
export declare function observedPublished(article: FigshareArticle): boolean;
|
|
11
|
+
export declare function isMissingArticle(error: unknown): boolean;
|
|
12
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAGjF,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,GAAG,MAAM,CAA0D;AACpI,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBhK;AACD,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAAiC,CAAC;AACnF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,uBAAuB,CAEpF;AACD,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAe/H;AACD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEnE;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAA2E"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.provisionalTitle = void 0;
|
|
4
|
+
exports.apiNamespace = apiNamespace;
|
|
5
|
+
exports.resolveCreationOwner = resolveCreationOwner;
|
|
6
|
+
exports.newCreateOperation = newCreateOperation;
|
|
7
|
+
exports.recoverCreate = recoverCreate;
|
|
8
|
+
exports.observedPublished = observedPublished;
|
|
9
|
+
exports.isMissingArticle = isMissingArticle;
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const http_1 = require("./http");
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const execution_1 = require("./execution");
|
|
14
|
+
function apiNamespace(config) { return config.connection.baseUrl.replace(/\/+$/, ''); }
|
|
15
|
+
async function resolveCreationOwner(client, config, record, accountId) {
|
|
16
|
+
const policy = config.impersonation;
|
|
17
|
+
if (!policy?.enabled)
|
|
18
|
+
return accountId;
|
|
19
|
+
const institutionalId = String((0, types_1.getRecordField)(record, policy.institutionalIdPath) ?? '').trim();
|
|
20
|
+
const email = String((0, types_1.getRecordField)(record, policy.emailPath) ?? '').trim().toLowerCase();
|
|
21
|
+
if (!institutionalId && !(policy.allowEmailFallback && email))
|
|
22
|
+
throw new execution_1.FigshareRepairRequired('Figshare owner institutional identifier is missing');
|
|
23
|
+
const field = institutionalId ? 'institution_user_id' : 'email';
|
|
24
|
+
const value = institutionalId || email;
|
|
25
|
+
const candidates = [];
|
|
26
|
+
for (let page = 1;; page++) {
|
|
27
|
+
const accounts = await client.searchInstitutionAccounts({ [field]: value, page, page_size: 100 });
|
|
28
|
+
for (const account of accounts) {
|
|
29
|
+
const actual = String(account[field] ?? '').trim();
|
|
30
|
+
if ((field === 'email' ? actual.toLowerCase() : actual) === value)
|
|
31
|
+
candidates.push(account);
|
|
32
|
+
}
|
|
33
|
+
if (accounts.length < 100)
|
|
34
|
+
break;
|
|
35
|
+
if (page === 10000)
|
|
36
|
+
throw new execution_1.FigshareRepairRequired('Owner search did not terminate');
|
|
37
|
+
}
|
|
38
|
+
if (candidates.length !== 1)
|
|
39
|
+
throw new execution_1.FigshareRepairRequired('Figshare owner lookup must match exactly one account');
|
|
40
|
+
const match = candidates[0];
|
|
41
|
+
if (institutionalId && email && match.email && match.email.toLowerCase() !== email)
|
|
42
|
+
throw new execution_1.FigshareRepairRequired('Conflicting Figshare owner identity evidence');
|
|
43
|
+
if (!/^\d+$/.test(String(match.id)))
|
|
44
|
+
throw new execution_1.FigshareRepairRequired('Figshare owner account ID is invalid');
|
|
45
|
+
return String(match.id); // Never user_id: that is the author identity.
|
|
46
|
+
}
|
|
47
|
+
const provisionalTitle = (token) => `ReDBox draft ${token}`;
|
|
48
|
+
exports.provisionalTitle = provisionalTitle;
|
|
49
|
+
function newCreateOperation(binding) {
|
|
50
|
+
return { token: (0, node_crypto_1.randomUUID)(), binding: { ...binding }, startedAt: new Date().toISOString(), outcome: 'submitted' };
|
|
51
|
+
}
|
|
52
|
+
async function recoverCreate(client, operation) {
|
|
53
|
+
if (!client.listArticles)
|
|
54
|
+
throw new execution_1.FigshareRepairRequired('Client cannot reconcile uncertain creation');
|
|
55
|
+
const matches = [];
|
|
56
|
+
for (let page = 1;; page++) {
|
|
57
|
+
const articles = await client.listArticles(page, 100);
|
|
58
|
+
for (const candidate of articles) {
|
|
59
|
+
if (candidate.title !== (0, exports.provisionalTitle)(operation.token))
|
|
60
|
+
continue;
|
|
61
|
+
const verified = await client.getArticle(String(candidate.id));
|
|
62
|
+
if (verified.title === (0, exports.provisionalTitle)(operation.token))
|
|
63
|
+
matches.push(verified);
|
|
64
|
+
}
|
|
65
|
+
if (articles.length < 100)
|
|
66
|
+
break;
|
|
67
|
+
if (page === 10000)
|
|
68
|
+
throw new execution_1.FigshareRepairRequired('Create reconciliation did not terminate');
|
|
69
|
+
}
|
|
70
|
+
if (matches.length > 1)
|
|
71
|
+
throw new execution_1.FigshareRepairRequired('Multiple articles match the exact create token');
|
|
72
|
+
return matches[0] ?? null;
|
|
73
|
+
}
|
|
74
|
+
function observedPublished(article) {
|
|
75
|
+
return article.is_public === true && typeof article.published_date === 'string' && article.published_date.length > 0;
|
|
76
|
+
}
|
|
77
|
+
function isMissingArticle(error) { return error instanceof http_1.FigshareHttpError && error.statusCode === 404; }
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZmlnc2hhcmUtdjIvaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsb0NBQW9JO0FBQ3BJLG9EQXVCQztBQUVELGdEQUVDO0FBQ0Qsc0NBZUM7QUFDRCw4Q0FFQztBQUNELDRDQUFvSTtBQXhEcEksNkNBQXlDO0FBSXpDLGlDQUEyQztBQUMzQyxtQ0FBaUY7QUFDakYsMkNBQXFEO0FBRXJELFNBQWdCLFlBQVksQ0FBQyxNQUFvQyxJQUFZLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0gsS0FBSyxVQUFVLG9CQUFvQixDQUFDLE1BQXNCLEVBQUUsTUFBb0MsRUFBRSxNQUFtQixFQUFFLFNBQWlCO0lBQzdJLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDdkMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUEsc0JBQWMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUEsc0JBQWMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFGLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7UUFBRSxNQUFNLElBQUksa0NBQXNCLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUN0SixNQUFNLEtBQUss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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FigshareSyncModel } from '../../model/storage/FigshareSyncModel';
|
|
2
|
+
import type { FigsharePublishingConfigData } from '../../configmodels/FigsharePublishing';
|
|
3
|
+
import type { FigshareClient } from './http';
|
|
4
|
+
import type { RecordModel, DataLocationEntry, FigshareArticle } from './types';
|
|
5
|
+
export type AssetCheckpoint = (change: (state: FigshareSyncModel) => void) => Promise<FigshareSyncModel>;
|
|
6
|
+
/** Only receipts confer deletion authority; a filename never does. */
|
|
7
|
+
export declare function mirrorManagedAssets(client: FigshareClient, config: FigsharePublishingConfigData, record: RecordModel, articleId: string, state: FigshareSyncModel, checkpoint: AssetCheckpoint): Promise<void>;
|
|
8
|
+
export declare function cleanupProjection(client: FigshareClient, config: FigsharePublishingConfigData, record: RecordModel, article: FigshareArticle, state: FigshareSyncModel): Promise<DataLocationEntry[]>;
|
|
9
|
+
//# sourceMappingURL=managed-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-assets.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/managed-assets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/E,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAGzG,sEAAsE;AACtE,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4IpN;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAsB3M"}
|