@researchdatabox/redbox-core 5.0.4-beta.12498 → 5.1.0-beta.12568
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/RecordStorageConcurrency.d.ts +2 -1
- package/dist/RecordStorageConcurrency.d.ts.map +1 -1
- package/dist/RecordStorageConcurrency.js +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 +5 -0
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/RecordsService.js +1 -1
- package/dist/StorageService.d.ts +12 -0
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/StorageService.js +1 -1
- package/dist/api-routes/schemas/responses.d.ts +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 -576
- package/dist/services/I18nEntriesService.d.ts +13 -12
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +103 -65
- package/dist/services/RecordsService.d.ts +5 -1
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +77 -23
- 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 +752 -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 +9 -8
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import type { FigshareBinding } from '../../model/storage/FigshareSyncModel';
|
|
3
|
+
import type { FigshareOperation } from '../../configmodels/FigsharePublishing';
|
|
4
|
+
import type { FigshareArticle, FigshareArticlePayload } from './types';
|
|
5
|
+
import type { FigshareClient } from './http';
|
|
6
|
+
export interface FigshareExecution {
|
|
7
|
+
binding?: FigshareBinding;
|
|
8
|
+
recovery?: boolean;
|
|
9
|
+
signal: AbortSignal;
|
|
10
|
+
guard: (operation: FigshareOperation) => Promise<void>;
|
|
11
|
+
metadata: (id: string, payload: FigshareArticlePayload, send: (payload: FigshareArticlePayload) => Promise<FigshareArticle>) => Promise<FigshareArticle>;
|
|
12
|
+
}
|
|
13
|
+
/** Live transport checks immediately before HTTP; fixture/custom clients use the boundary guard. */
|
|
14
|
+
export declare const transportGuardedMethods: WeakSet<(...args: never[]) => unknown>;
|
|
15
|
+
export declare const figshareExecution: AsyncLocalStorage<FigshareExecution>;
|
|
16
|
+
/** Wrap at the client boundary, after customer payload customisation. */
|
|
17
|
+
export declare function workerClient(client: FigshareClient): FigshareClient;
|
|
18
|
+
export declare class FigshareWaiting extends Error {
|
|
19
|
+
reason: string;
|
|
20
|
+
constructor(reason: string);
|
|
21
|
+
}
|
|
22
|
+
export declare class FigshareRepairRequired extends Error {
|
|
23
|
+
constructor(message: string);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1J;AACD,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,oBAAyB,KAAK,EAAE,KAAK,OAAO,CAAG,CAAC;AACpF,eAAO,MAAM,iBAAiB,sCAA6C,CAAC;AAC5E,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAuBnE;AACD,qBAAa,eAAgB,SAAQ,KAAK;IACrB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAClC;AACD,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAC5B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FigshareRepairRequired = exports.FigshareWaiting = exports.figshareExecution = exports.transportGuardedMethods = void 0;
|
|
4
|
+
exports.workerClient = workerClient;
|
|
5
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
6
|
+
/** Live transport checks immediately before HTTP; fixture/custom clients use the boundary guard. */
|
|
7
|
+
exports.transportGuardedMethods = new WeakSet();
|
|
8
|
+
exports.figshareExecution = new node_async_hooks_1.AsyncLocalStorage();
|
|
9
|
+
/** Wrap at the client boundary, after customer payload customisation. */
|
|
10
|
+
function workerClient(client) {
|
|
11
|
+
const execution = exports.figshareExecution.getStore();
|
|
12
|
+
if (!execution)
|
|
13
|
+
return client;
|
|
14
|
+
const guard = async (operation, send) => {
|
|
15
|
+
if (!exports.transportGuardedMethods.has(send))
|
|
16
|
+
await execution.guard(operation);
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
...client,
|
|
20
|
+
async createArticle(payload) { await guard('create', client.createArticle); return client.createArticle(payload); },
|
|
21
|
+
async updateArticle(id, payload) {
|
|
22
|
+
return execution.metadata(id, payload, async (outgoing) => {
|
|
23
|
+
await guard('metadata', client.updateArticle);
|
|
24
|
+
return client.updateArticle(id, outgoing);
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
async createArticleFile(id, payload) { await guard('assets', client.createArticleFile); return client.createArticleFile(id, payload); },
|
|
28
|
+
async uploadFilePart(url, part, data) { await guard('assets', client.uploadFilePart); return client.uploadFilePart(url, part, data); },
|
|
29
|
+
async completeFileUpload(id, fileId, payload) { await guard('assets', client.completeFileUpload); return client.completeFileUpload(id, fileId, payload); },
|
|
30
|
+
async deleteArticleFile(id, fileId) { await guard('assets', client.deleteArticleFile); return client.deleteArticleFile(id, fileId); },
|
|
31
|
+
async setEmbargo(id, payload) { await guard('embargo', client.setEmbargo); return client.setEmbargo(id, payload); },
|
|
32
|
+
async clearEmbargo(id) { await guard('embargo', client.clearEmbargo); return client.clearEmbargo(id); },
|
|
33
|
+
async publishArticle(id, payload) { await guard('publish', client.publishArticle); return client.publishArticle(id, payload); }
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
class FigshareWaiting extends Error {
|
|
37
|
+
reason;
|
|
38
|
+
constructor(reason) {
|
|
39
|
+
super(reason);
|
|
40
|
+
this.reason = reason;
|
|
41
|
+
this.name = 'FigshareWaiting';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.FigshareWaiting = FigshareWaiting;
|
|
45
|
+
class FigshareRepairRequired extends Error {
|
|
46
|
+
constructor(message) { super(message); this.name = 'FigshareRepairRequired'; }
|
|
47
|
+
}
|
|
48
|
+
exports.FigshareRepairRequired = FigshareRepairRequired;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZpZ3NoYXJlLXYyL2V4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsb0NBdUJDO0FBeENELHVEQUFxRDtBQWFyRCxvR0FBb0c7QUFDdkYsUUFBQSx1QkFBdUIsR0FBRyxJQUFJLE9BQU8sRUFBaUMsQ0FBQztBQUN2RSxRQUFBLGlCQUFpQixHQUFHLElBQUksb0NBQWlCLEVBQXFCLENBQUM7QUFDNUUseUVBQXlFO0FBQ3pFLFNBQWdCLFlBQVksQ0FBQyxNQUFzQjtJQUNqRCxNQUFNLFNBQVMsR0FBRyx5QkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQyxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxTQUE0QixFQUFFLElBQW1DLEVBQUUsRUFBRTtRQUN4RixJQUFJLENBQUMsK0JBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUFFLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7SUFDRixPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksTUFBTSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsT0FBTztZQUM3QixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsUUFBUSxFQUFDLEVBQUU7Z0JBQ3RELE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AxiosResponse } from 'axios';
|
|
1
|
+
import { AxiosError, type AxiosResponse } from 'axios';
|
|
2
2
|
import { Context, Layer } from 'effect';
|
|
3
3
|
import { FigsharePublishingConfigData } from '../../configmodels/FigsharePublishing';
|
|
4
4
|
import { ResolvedFigsharePublishingConfigData } from './config';
|
|
@@ -12,7 +12,12 @@ export declare class FigshareHttpError extends Error {
|
|
|
12
12
|
cause?: unknown;
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
+
/** Keep Axios request/config internals out of logs while retaining validation errors. */
|
|
16
|
+
export declare function describeFigshareHttpFailure(error: AxiosError, token: string): Record<string, string | undefined>;
|
|
15
17
|
export interface FigshareClient {
|
|
18
|
+
getAccount?(): Promise<FigshareInstitutionAccount>;
|
|
19
|
+
listArticles?(page?: number, pageSize?: number): Promise<FigshareArticle[]>;
|
|
20
|
+
getPublicArticle?(articleId: string): Promise<FigshareArticle>;
|
|
16
21
|
createArticle(payload: FigshareArticlePayload): Promise<FigshareArticle>;
|
|
17
22
|
updateArticle(articleId: string, payload: FigshareArticlePayload): Promise<FigshareArticle>;
|
|
18
23
|
getArticle(articleId: string): Promise<FigshareArticle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/http.ts"],"names":[],"mappings":"AAEA,OAAc,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAIjB,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAS5G;AAED,yFAAyF;AACzF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAchH;AAwCD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5E,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACzE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5F,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/F,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACpE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrG,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3C,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACnG,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpD,qBAAqB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACtD;AAED,eAAO,MAAM,iBAAiB,6CAA8D,CAAC;AAuB7F,KAAK,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAClF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,CAAC;AA8FF,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,GAAG,CAAC,CAc7E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oCAAoC,GAAG,cAAc,CA8F9F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,4BAA4B,EAAE,UAAU,EAAE,kBAAkB,GAAG,cAAc,CAyGnH;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,oCAAoC,EAAE,UAAU,EAAE,kBAAkB,6CAG3G"}
|
|
@@ -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"}
|