@researchdatabox/redbox-core 0.0.1-beta.10213 → 0.0.1-beta.10760
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/CoreController.d.ts +8 -0
- package/dist/CoreController.d.ts.map +1 -1
- package/dist/CoreController.js +87 -52
- package/dist/RecordsService.d.ts +2 -0
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/SearchService.d.ts +1 -1
- package/dist/SearchService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +2 -0
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/api-routes/groups/branding.d.ts +1 -0
- package/dist/api-routes/groups/branding.d.ts.map +1 -1
- package/dist/api-routes/groups/branding.js +19 -2
- package/dist/api-routes/groups/export.js +2 -2
- package/dist/api-routes/groups/figshare-crosswalks.d.ts +11 -0
- package/dist/api-routes/groups/figshare-crosswalks.d.ts.map +1 -0
- package/dist/api-routes/groups/figshare-crosswalks.js +171 -0
- package/dist/api-routes/groups/figshare-vocabulary.d.ts +12 -0
- package/dist/api-routes/groups/figshare-vocabulary.d.ts.map +1 -0
- package/dist/api-routes/groups/figshare-vocabulary.js +248 -0
- package/dist/api-routes/groups/search.js +4 -4
- package/dist/api-routes/groups/users.js +3 -3
- package/dist/api-routes/index.d.ts +2 -0
- package/dist/api-routes/index.d.ts.map +1 -1
- package/dist/api-routes/index.js +3 -1
- package/dist/api-routes/route-registry.d.ts.map +1 -1
- package/dist/api-routes/route-registry.js +5 -1
- package/dist/api-routes/schemas/common.d.ts +1 -0
- package/dist/api-routes/schemas/common.d.ts.map +1 -1
- package/dist/api-routes/schemas/common.js +3 -2
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +5 -1
- package/dist/config/agendaQueue.config.d.ts +3 -0
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +13 -1
- package/dist/config/auth.config.d.ts.map +1 -1
- package/dist/config/auth.config.js +4 -1
- package/dist/config/brandingConfigurationDefaults.config.d.ts +1 -1
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +22 -230
- package/dist/config/dashboardtype.config.d.ts +7 -0
- package/dist/config/dashboardtype.config.d.ts.map +1 -1
- package/dist/config/dashboardtype.config.js +9 -89
- package/dist/config/dashboardview.config.d.ts +7 -0
- package/dist/config/dashboardview.config.d.ts.map +1 -1
- package/dist/config/dashboardview.config.js +9 -134
- package/dist/config/http.config.d.ts +2 -0
- package/dist/config/http.config.d.ts.map +1 -1
- package/dist/config/http.config.js +47 -1
- package/dist/config/jsonld.config.d.ts.map +1 -1
- package/dist/config/jsonld.config.js +2 -21
- package/dist/config/record.config.d.ts.map +1 -1
- package/dist/config/record.config.js +2 -9
- package/dist/config/recordtype.config.d.ts +8 -0
- package/dist/config/recordtype.config.d.ts.map +1 -1
- package/dist/config/recordtype.config.js +10 -660
- package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
- package/dist/config/reusableContributorFormDefinitions.config.js +1 -2
- package/dist/config/reusableViewFormDefinitions.config.d.ts.map +1 -1
- package/dist/config/reusableViewFormDefinitions.config.js +12 -1
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +12 -3
- package/dist/config/solr.config.d.ts +1 -0
- package/dist/config/solr.config.d.ts.map +1 -1
- package/dist/config/solr.config.js +3 -2
- package/dist/config/static_assets.config.d.ts +2 -0
- package/dist/config/static_assets.config.d.ts.map +1 -1
- package/dist/config/static_assets.config.js +4 -2
- package/dist/config/storage.config.d.ts.map +1 -1
- package/dist/config/storage.config.js +7 -1
- package/dist/config/views.config.d.ts.map +1 -1
- package/dist/config/views.config.js +2 -6
- package/dist/config/vocab.config.d.ts +4 -0
- package/dist/config/vocab.config.d.ts.map +1 -1
- package/dist/config/vocab.config.js +1 -1
- package/dist/config/workflow.config.d.ts +7 -0
- package/dist/config/workflow.config.d.ts.map +1 -1
- package/dist/config/workflow.config.js +9 -194
- package/dist/config/workspacetype.config.d.ts +7 -0
- package/dist/config/workspacetype.config.d.ts.map +1 -1
- package/dist/config/workspacetype.config.js +9 -10
- package/dist/configmodels/DoiPublishing.d.ts +1 -1
- package/dist/configmodels/DoiPublishing.d.ts.map +1 -1
- package/dist/configmodels/FigsharePublishing.d.ts +746 -217
- package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
- package/dist/configmodels/FigsharePublishing.js +181 -190
- package/dist/constants/export.d.ts +2 -0
- package/dist/constants/export.d.ts.map +1 -0
- package/dist/constants/export.js +8 -0
- package/dist/controllers/AsynchController.d.ts +4 -1
- package/dist/controllers/AsynchController.d.ts.map +1 -1
- package/dist/controllers/AsynchController.js +118 -9
- package/dist/controllers/BrandingAppController.d.ts +2 -0
- package/dist/controllers/BrandingAppController.d.ts.map +1 -1
- package/dist/controllers/BrandingAppController.js +40 -2
- package/dist/controllers/BrandingController.d.ts +8 -0
- package/dist/controllers/BrandingController.d.ts.map +1 -1
- package/dist/controllers/BrandingController.js +45 -1
- package/dist/controllers/ExportController.d.ts.map +1 -1
- package/dist/controllers/ExportController.js +4 -3
- package/dist/controllers/RecordController.d.ts +1 -1
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +47 -21
- package/dist/controllers/UserController.d.ts.map +1 -1
- package/dist/controllers/UserController.js +3 -2
- package/dist/controllers/VocabularyController.js +4 -4
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +7 -1
- package/dist/controllers/webservice/BrandingController.d.ts +1 -0
- package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
- package/dist/controllers/webservice/BrandingController.js +69 -10
- package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ExportController.js +4 -3
- package/dist/controllers/webservice/FigshareCrosswalkController.d.ts +20 -0
- package/dist/controllers/webservice/FigshareCrosswalkController.d.ts.map +1 -0
- package/dist/controllers/webservice/FigshareCrosswalkController.js +184 -0
- package/dist/controllers/webservice/FigshareVocabularyController.d.ts +21 -0
- package/dist/controllers/webservice/FigshareVocabularyController.d.ts.map +1 -0
- package/dist/controllers/webservice/FigshareVocabularyController.js +223 -0
- package/dist/controllers/webservice/RecordController.d.ts +2 -0
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +60 -12
- package/dist/controllers/webservice/UserManagementController.d.ts +5 -3
- package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/UserManagementController.js +140 -9
- package/dist/controllers/webservice/figshare-vocabulary-errors.d.ts +14 -0
- package/dist/controllers/webservice/figshare-vocabulary-errors.d.ts.map +1 -0
- package/dist/controllers/webservice/figshare-vocabulary-errors.js +39 -0
- package/dist/form-config/index.d.ts +7 -0
- package/dist/form-config/index.d.ts.map +1 -1
- package/dist/form-config/index.js +8 -5
- package/dist/hooks/hookDiscovery.d.ts +20 -0
- package/dist/hooks/hookDiscovery.d.ts.map +1 -0
- package/dist/hooks/hookDiscovery.js +186 -0
- package/dist/hooks/hookResources.d.ts +23 -0
- package/dist/hooks/hookResources.d.ts.map +1 -0
- package/dist/hooks/hookResources.js +136 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +14 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +21 -62
- package/dist/model/storage/BrandingModel.d.ts +2 -0
- package/dist/model/storage/BrandingModel.d.ts.map +1 -1
- package/dist/model/storage/BrandingModel.js +3 -1
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +6 -2
- package/dist/services/BrandingLogoService.d.ts +20 -1
- package/dist/services/BrandingLogoService.d.ts.map +1 -1
- package/dist/services/BrandingLogoService.js +51 -5
- package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
- package/dist/services/BrandingThemeTokens.js +2 -1
- package/dist/services/EmailService.d.ts +2 -8
- package/dist/services/EmailService.d.ts.map +1 -1
- package/dist/services/EmailService.js +8 -26
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +5 -4
- package/dist/services/FigshareVocabularyService.d.ts +442 -0
- package/dist/services/FigshareVocabularyService.d.ts.map +1 -0
- package/dist/services/FigshareVocabularyService.js +1802 -0
- package/dist/services/FormVocabularyService.d.ts.map +1 -1
- package/dist/services/FormVocabularyService.js +28 -7
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +21 -2
- package/dist/services/IntegrationAuditService.js +4 -4
- package/dist/services/NamedQueryService.d.ts.map +1 -1
- package/dist/services/NamedQueryService.js +3 -16
- package/dist/services/RDMPService.d.ts.map +1 -1
- package/dist/services/RDMPService.js +9 -1
- package/dist/services/RecordsService.d.ts +4 -0
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +62 -45
- package/dist/services/ReportsService.d.ts +0 -5
- package/dist/services/ReportsService.d.ts.map +1 -1
- package/dist/services/ReportsService.js +22 -31
- package/dist/services/SolrSearchService.d.ts +10 -2
- package/dist/services/SolrSearchService.d.ts.map +1 -1
- package/dist/services/SolrSearchService.js +110 -52
- package/dist/services/StandardDatastreamService.d.ts +7 -0
- package/dist/services/StandardDatastreamService.d.ts.map +1 -1
- package/dist/services/StandardDatastreamService.js +127 -27
- package/dist/services/TemplateService.d.ts +0 -14
- package/dist/services/TemplateService.d.ts.map +1 -1
- package/dist/services/TemplateService.js +4 -45
- package/dist/services/UsersService.d.ts.map +1 -1
- package/dist/services/UsersService.js +19 -16
- package/dist/services/ViewUtilsService.d.ts +5 -1
- package/dist/services/ViewUtilsService.d.ts.map +1 -1
- package/dist/services/ViewUtilsService.js +38 -46
- package/dist/services/VocabularyService.d.ts +11 -2
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +46 -20
- package/dist/services/doi-v2/bindings.d.ts.map +1 -1
- package/dist/services/doi-v2/bindings.js +2 -11
- package/dist/services/figshare-v2/assets.d.ts +2 -1
- package/dist/services/figshare-v2/assets.d.ts.map +1 -1
- package/dist/services/figshare-v2/assets.js +144 -89
- package/dist/services/figshare-v2/bindings.d.ts +28 -3
- package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
- package/dist/services/figshare-v2/bindings.js +75 -17
- package/dist/services/figshare-v2/categories.d.ts +142 -0
- package/dist/services/figshare-v2/categories.d.ts.map +1 -0
- package/dist/services/figshare-v2/categories.js +408 -0
- package/dist/services/figshare-v2/config.d.ts +10 -0
- package/dist/services/figshare-v2/config.d.ts.map +1 -1
- package/dist/services/figshare-v2/config.js +39 -1
- package/dist/services/figshare-v2/context.d.ts +18 -1
- package/dist/services/figshare-v2/context.d.ts.map +1 -1
- package/dist/services/figshare-v2/context.js +34 -2
- package/dist/services/figshare-v2/embargo.d.ts.map +1 -1
- package/dist/services/figshare-v2/embargo.js +6 -4
- package/dist/services/figshare-v2/http.d.ts +3 -1
- package/dist/services/figshare-v2/http.d.ts.map +1 -1
- package/dist/services/figshare-v2/http.js +26 -4
- package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
- package/dist/services/figshare-v2/metadata.js +74 -26
- package/dist/services/figshare-v2/observability.d.ts +1 -2
- package/dist/services/figshare-v2/observability.d.ts.map +1 -1
- package/dist/services/figshare-v2/observability.js +7 -47
- package/dist/services/figshare-v2/types.d.ts +13 -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/vocabulary-errors.d.ts +39 -0
- package/dist/services/figshare-v2/vocabulary-errors.d.ts.map +1 -0
- package/dist/services/figshare-v2/vocabulary-errors.js +68 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +8 -3
- package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
- package/dist/storage/TusStorageManagerDataStore.js +14 -1
- package/dist/utilities/ContextVariableUtils.d.ts +3 -1
- package/dist/utilities/ContextVariableUtils.d.ts.map +1 -1
- package/dist/utilities/ContextVariableUtils.js +25 -7
- package/dist/utilities/PromiseUtils.d.ts +9 -0
- package/dist/utilities/PromiseUtils.d.ts.map +1 -0
- package/dist/utilities/PromiseUtils.js +27 -0
- package/dist/utilities/RedactionUtils.d.ts +3 -0
- package/dist/utilities/RedactionUtils.d.ts.map +1 -0
- package/dist/utilities/RedactionUtils.js +55 -0
- package/dist/visitor/client.visitor.d.ts +3 -0
- package/dist/visitor/client.visitor.d.ts.map +1 -1
- package/dist/visitor/client.visitor.js +102 -17
- package/dist/visitor/construct.visitor.d.ts +3 -0
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +51 -38
- package/dist/visitor/json-type-def.visitor.d.ts +1 -0
- package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
- package/dist/visitor/json-type-def.visitor.js +20 -4
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +6 -3
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +94 -44
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +1 -1
- package/dist/visitor/visitor-helpers.js +2 -2
- package/dist/waterline-models/BrandingConfig.d.ts +2 -0
- package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfig.js +6 -1
- package/dist/waterline-models/FigshareVocabularyCategory.d.ts +38 -0
- package/dist/waterline-models/FigshareVocabularyCategory.d.ts.map +1 -0
- package/dist/waterline-models/FigshareVocabularyCategory.js +157 -0
- package/dist/waterline-models/FigshareVocabularyCrosswalk.d.ts +37 -0
- package/dist/waterline-models/FigshareVocabularyCrosswalk.d.ts.map +1 -0
- package/dist/waterline-models/FigshareVocabularyCrosswalk.js +153 -0
- package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.d.ts +37 -0
- package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.d.ts.map +1 -0
- package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.js +138 -0
- package/dist/waterline-models/FigshareVocabularySource.d.ts +45 -0
- package/dist/waterline-models/FigshareVocabularySource.d.ts.map +1 -0
- package/dist/waterline-models/FigshareVocabularySource.js +149 -0
- package/dist/waterline-models/FigshareVocabularySyncRun.d.ts +70 -0
- package/dist/waterline-models/FigshareVocabularySyncRun.d.ts.map +1 -0
- package/dist/waterline-models/FigshareVocabularySyncRun.js +237 -0
- package/dist/waterline-models/Vocabulary.d.ts +3 -1
- package/dist/waterline-models/Vocabulary.d.ts.map +1 -1
- package/dist/waterline-models/Vocabulary.js +9 -3
- package/dist/waterline-models/index.d.ts +10 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +16 -1
- package/package.json +19 -19
- package/dist/form-config/dataRecord-1.0-draft.d.ts +0 -4
- package/dist/form-config/dataRecord-1.0-draft.d.ts.map +0 -1
- package/dist/form-config/dataRecord-1.0-draft.js +0 -1042
- package/dist/form-config/default-1.0-draft.d.ts +0 -4
- package/dist/form-config/default-1.0-draft.d.ts.map +0 -1
- package/dist/form-config/default-1.0-draft.js +0 -1156
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FIGSHARE_SNAPSHOT_LIMITS = exports.FIGSHARE_NORMALIZER_VERSION = void 0;
|
|
4
|
+
exports.normalizeCategoryCode = normalizeCategoryCode;
|
|
5
|
+
exports.toSourceCodeCandidates = toSourceCodeCandidates;
|
|
6
|
+
exports.normalizeLabel = normalizeLabel;
|
|
7
|
+
exports.normalizeFigshareCategories = normalizeFigshareCategories;
|
|
8
|
+
exports.groupTaxonomies = groupTaxonomies;
|
|
9
|
+
exports.filterByTaxonomy = filterByTaxonomy;
|
|
10
|
+
exports.hashSnapshot = hashSnapshot;
|
|
11
|
+
exports.assertSnapshotWithinLimits = assertSnapshotWithinLimits;
|
|
12
|
+
exports.classifyChanges = classifyChanges;
|
|
13
|
+
exports.buildProposals = buildProposals;
|
|
14
|
+
exports.buildIdentityProposals = buildIdentityProposals;
|
|
15
|
+
const node_crypto_1 = require("node:crypto");
|
|
16
|
+
const vocabulary_errors_1 = require("./vocabulary-errors");
|
|
17
|
+
/**
|
|
18
|
+
* Bumped whenever normalisation or proposal rules change so that stored sync runs
|
|
19
|
+
* remain reproducible and comparable.
|
|
20
|
+
*/
|
|
21
|
+
exports.FIGSHARE_NORMALIZER_VERSION = '1';
|
|
22
|
+
/** Guard rails that keep a preview inside Mongo's document size limit. */
|
|
23
|
+
exports.FIGSHARE_SNAPSHOT_LIMITS = {
|
|
24
|
+
maxCategories: 20000,
|
|
25
|
+
maxSnapshotBytes: 8 * 1024 * 1024
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Trim, drop any query string and keep the final URI/hash segment so that
|
|
29
|
+
* `http://purl.org/au-research/vocabulary/anzsrc-for/2020/300101` and `300101`
|
|
30
|
+
* compare equal.
|
|
31
|
+
*/
|
|
32
|
+
function normalizeCategoryCode(value) {
|
|
33
|
+
const rawValue = String(value ?? '').trim();
|
|
34
|
+
if (rawValue === '') {
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
const withoutQuery = rawValue.split('?')[0] ?? rawValue;
|
|
38
|
+
const delimiterIndex = Math.max(withoutQuery.lastIndexOf('/'), withoutQuery.lastIndexOf('#'));
|
|
39
|
+
const segment = delimiterIndex === -1 ? withoutQuery : withoutQuery.slice(delimiterIndex + 1);
|
|
40
|
+
return segment.trim().toLowerCase();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Coerce the result of a categories binding into candidate code strings: arrays are
|
|
44
|
+
* flattened, and object entries are reduced through their `notation` or `code` field.
|
|
45
|
+
* No normalisation is applied — callers pick the normaliser that suits their matcher.
|
|
46
|
+
*/
|
|
47
|
+
function toSourceCodeCandidates(value) {
|
|
48
|
+
const items = Array.isArray(value) ? value : value != null && value !== '' ? [value] : [];
|
|
49
|
+
return items
|
|
50
|
+
.filter(Boolean)
|
|
51
|
+
.map((item) => {
|
|
52
|
+
if (typeof item === 'object' && item != null) {
|
|
53
|
+
const record = item;
|
|
54
|
+
return String(record.notation ?? record.code ?? '');
|
|
55
|
+
}
|
|
56
|
+
return String(item);
|
|
57
|
+
})
|
|
58
|
+
.map((code) => code.trim())
|
|
59
|
+
.filter((code) => code !== '');
|
|
60
|
+
}
|
|
61
|
+
/** Collapse internal whitespace and normalise Unicode so labels compare stably. */
|
|
62
|
+
function normalizeLabel(value) {
|
|
63
|
+
return String(value ?? '').normalize('NFC').replace(/\s+/g, ' ').trim();
|
|
64
|
+
}
|
|
65
|
+
function sha256(value) {
|
|
66
|
+
return `sha256:${(0, node_crypto_1.createHash)('sha256').update(value, 'utf8').digest('hex')}`;
|
|
67
|
+
}
|
|
68
|
+
function canonicalRow(row) {
|
|
69
|
+
return JSON.stringify([
|
|
70
|
+
row.sourceId,
|
|
71
|
+
row.categoryId,
|
|
72
|
+
row.taxonomyId,
|
|
73
|
+
row.title,
|
|
74
|
+
row.parentSourceId,
|
|
75
|
+
row.path,
|
|
76
|
+
row.selectable,
|
|
77
|
+
row.hasChildren
|
|
78
|
+
]);
|
|
79
|
+
}
|
|
80
|
+
function toPositiveInteger(value) {
|
|
81
|
+
const parsed = Number(value);
|
|
82
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Validate and canonicalise a raw Figshare category response.
|
|
86
|
+
*
|
|
87
|
+
* Identity is the Figshare `source_id` when present (Q-01: prefer the taxonomy code,
|
|
88
|
+
* keep the numeric id as the mutable publishing relationship), falling back to the
|
|
89
|
+
* numeric id for catalogues that omit it.
|
|
90
|
+
*/
|
|
91
|
+
function normalizeFigshareCategories(raw) {
|
|
92
|
+
if (!Array.isArray(raw)) {
|
|
93
|
+
throw new vocabulary_errors_1.CatalogueInvalidError('Figshare returned a category catalogue that is not an array');
|
|
94
|
+
}
|
|
95
|
+
if (raw.length > exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories) {
|
|
96
|
+
throw new vocabulary_errors_1.SnapshotTooLargeError(`Figshare returned ${raw.length} categories which exceeds the supported maximum of ${exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories}`);
|
|
97
|
+
}
|
|
98
|
+
const staged = [];
|
|
99
|
+
const byCategoryId = new Map();
|
|
100
|
+
const seenSourceIds = new Set();
|
|
101
|
+
for (const entry of raw) {
|
|
102
|
+
if (entry == null || typeof entry !== 'object' || Array.isArray(entry)) {
|
|
103
|
+
throw new vocabulary_errors_1.CatalogueInvalidError('Figshare category catalogue contains a non-object entry');
|
|
104
|
+
}
|
|
105
|
+
const category = entry;
|
|
106
|
+
const categoryId = toPositiveInteger(category.id);
|
|
107
|
+
if (categoryId == null) {
|
|
108
|
+
throw new vocabulary_errors_1.CatalogueInvalidError('Figshare category is missing a positive numeric id');
|
|
109
|
+
}
|
|
110
|
+
const title = normalizeLabel(category.title);
|
|
111
|
+
if (title === '') {
|
|
112
|
+
throw new vocabulary_errors_1.CatalogueInvalidError(`Figshare category ${categoryId} is missing a title`);
|
|
113
|
+
}
|
|
114
|
+
const sourceId = String(category.source_id ?? '').trim() || String(categoryId);
|
|
115
|
+
if (seenSourceIds.has(sourceId)) {
|
|
116
|
+
throw new vocabulary_errors_1.CatalogueInvalidError(`Figshare category catalogue contains a duplicate source_id '${sourceId}'`);
|
|
117
|
+
}
|
|
118
|
+
if (byCategoryId.has(categoryId)) {
|
|
119
|
+
throw new vocabulary_errors_1.CatalogueInvalidError(`Figshare category catalogue contains a duplicate id '${categoryId}'`);
|
|
120
|
+
}
|
|
121
|
+
seenSourceIds.add(sourceId);
|
|
122
|
+
const stagedCategory = {
|
|
123
|
+
sourceId,
|
|
124
|
+
categoryId,
|
|
125
|
+
taxonomyId: String(toPositiveInteger(category.taxonomy_id) ?? ''),
|
|
126
|
+
title,
|
|
127
|
+
rawParentId: toPositiveInteger(category.parent_id),
|
|
128
|
+
selectable: category.is_selectable !== false,
|
|
129
|
+
hasChildren: category.has_children === true
|
|
130
|
+
};
|
|
131
|
+
staged.push(stagedCategory);
|
|
132
|
+
byCategoryId.set(categoryId, stagedCategory);
|
|
133
|
+
}
|
|
134
|
+
const warnings = [];
|
|
135
|
+
const parentBySourceId = new Map();
|
|
136
|
+
for (const category of staged) {
|
|
137
|
+
if (category.rawParentId == null) {
|
|
138
|
+
parentBySourceId.set(category.sourceId, null);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const parent = byCategoryId.get(category.rawParentId);
|
|
142
|
+
if (!parent) {
|
|
143
|
+
// Public catalogue responses can omit ancestors; promote to a root and say so.
|
|
144
|
+
warnings.push({
|
|
145
|
+
code: 'missing-parent',
|
|
146
|
+
sourceId: category.sourceId,
|
|
147
|
+
detail: `Parent category ${category.rawParentId} is not present in this catalogue; the term is promoted to a root`
|
|
148
|
+
});
|
|
149
|
+
parentBySourceId.set(category.sourceId, null);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
parentBySourceId.set(category.sourceId, parent.sourceId);
|
|
153
|
+
}
|
|
154
|
+
const stagedBySourceId = new Map(staged.map((category) => [category.sourceId, category]));
|
|
155
|
+
const buildPath = (category) => {
|
|
156
|
+
const path = [category.sourceId];
|
|
157
|
+
const seen = new Set([category.sourceId]);
|
|
158
|
+
let cursorSourceId = parentBySourceId.get(category.sourceId) ?? null;
|
|
159
|
+
while (cursorSourceId != null) {
|
|
160
|
+
if (seen.has(cursorSourceId)) {
|
|
161
|
+
warnings.push({
|
|
162
|
+
code: 'cycle-detected',
|
|
163
|
+
sourceId: category.sourceId,
|
|
164
|
+
detail: `Ancestor cycle detected at '${cursorSourceId}'; the remaining ancestors are omitted`
|
|
165
|
+
});
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
seen.add(cursorSourceId);
|
|
169
|
+
path.unshift(cursorSourceId);
|
|
170
|
+
cursorSourceId = parentBySourceId.get(cursorSourceId) ?? null;
|
|
171
|
+
}
|
|
172
|
+
return path;
|
|
173
|
+
};
|
|
174
|
+
const resolveTaxonomyId = (category) => {
|
|
175
|
+
if (category.taxonomyId !== '') {
|
|
176
|
+
return category.taxonomyId;
|
|
177
|
+
}
|
|
178
|
+
// Catalogues without taxonomy_id are grouped by their root ancestor instead.
|
|
179
|
+
const path = buildPath(category);
|
|
180
|
+
const rootSourceId = path[0] ?? category.sourceId;
|
|
181
|
+
const root = stagedBySourceId.get(rootSourceId);
|
|
182
|
+
if (root != null && root.taxonomyId !== '') {
|
|
183
|
+
return root.taxonomyId;
|
|
184
|
+
}
|
|
185
|
+
warnings.push({
|
|
186
|
+
code: 'missing-taxonomy',
|
|
187
|
+
sourceId: category.sourceId,
|
|
188
|
+
detail: `Figshare did not supply taxonomy_id; grouped under root term '${rootSourceId}'`
|
|
189
|
+
});
|
|
190
|
+
return `root:${rootSourceId}`;
|
|
191
|
+
};
|
|
192
|
+
const rows = staged.map((category) => {
|
|
193
|
+
const base = {
|
|
194
|
+
sourceId: category.sourceId,
|
|
195
|
+
categoryId: category.categoryId,
|
|
196
|
+
taxonomyId: resolveTaxonomyId(category),
|
|
197
|
+
title: category.title,
|
|
198
|
+
parentSourceId: parentBySourceId.get(category.sourceId) ?? null,
|
|
199
|
+
path: buildPath(category),
|
|
200
|
+
selectable: category.selectable,
|
|
201
|
+
hasChildren: category.hasChildren
|
|
202
|
+
};
|
|
203
|
+
return { ...base, contentHash: sha256(canonicalRow(base)) };
|
|
204
|
+
});
|
|
205
|
+
rows.sort((left, right) => left.sourceId.localeCompare(right.sourceId));
|
|
206
|
+
return { rows, warnings };
|
|
207
|
+
}
|
|
208
|
+
/** Group a normalized catalogue into the taxonomies an administrator can select. */
|
|
209
|
+
function groupTaxonomies(result) {
|
|
210
|
+
const missingParentSourceIds = new Set(result.warnings.filter((warning) => warning.code === 'missing-parent').map((warning) => warning.sourceId));
|
|
211
|
+
const summaries = new Map();
|
|
212
|
+
for (const row of result.rows) {
|
|
213
|
+
const summary = summaries.get(row.taxonomyId) ?? {
|
|
214
|
+
taxonomyId: row.taxonomyId,
|
|
215
|
+
title: `Taxonomy ${row.taxonomyId}`,
|
|
216
|
+
categoryCount: 0,
|
|
217
|
+
selectableCount: 0,
|
|
218
|
+
missingParentCount: 0
|
|
219
|
+
};
|
|
220
|
+
summary.categoryCount += 1;
|
|
221
|
+
if (row.selectable) {
|
|
222
|
+
summary.selectableCount += 1;
|
|
223
|
+
}
|
|
224
|
+
if (missingParentSourceIds.has(row.sourceId)) {
|
|
225
|
+
summary.missingParentCount += 1;
|
|
226
|
+
}
|
|
227
|
+
summaries.set(row.taxonomyId, summary);
|
|
228
|
+
}
|
|
229
|
+
return Array.from(summaries.values()).sort((left, right) => left.taxonomyId.localeCompare(right.taxonomyId));
|
|
230
|
+
}
|
|
231
|
+
/** Restrict a normalized catalogue to a single taxonomy. */
|
|
232
|
+
function filterByTaxonomy(result, taxonomyId) {
|
|
233
|
+
const normalizedTaxonomyId = String(taxonomyId ?? '').trim();
|
|
234
|
+
const rows = result.rows.filter((row) => row.taxonomyId === normalizedTaxonomyId);
|
|
235
|
+
const retained = new Set(rows.map((row) => row.sourceId));
|
|
236
|
+
return {
|
|
237
|
+
rows,
|
|
238
|
+
warnings: result.warnings.filter((warning) => retained.has(warning.sourceId))
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Serialise the canonical ordered row set and hash it. The same Figshare content
|
|
243
|
+
* always produces the same hash.
|
|
244
|
+
*/
|
|
245
|
+
function hashSnapshot(rows) {
|
|
246
|
+
const ordered = [...rows].sort((left, right) => left.sourceId.localeCompare(right.sourceId));
|
|
247
|
+
const serialized = JSON.stringify(ordered.map((row) => row.contentHash));
|
|
248
|
+
return sha256(serialized);
|
|
249
|
+
}
|
|
250
|
+
/** Reject an over-limit snapshot before any database write. */
|
|
251
|
+
function assertSnapshotWithinLimits(rows) {
|
|
252
|
+
if (rows.length > exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories) {
|
|
253
|
+
throw new vocabulary_errors_1.SnapshotTooLargeError(`The selected taxonomy contains ${rows.length} categories which exceeds the supported maximum of ${exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories}`);
|
|
254
|
+
}
|
|
255
|
+
const byteLength = Buffer.byteLength(JSON.stringify(rows), 'utf8');
|
|
256
|
+
if (byteLength > exports.FIGSHARE_SNAPSHOT_LIMITS.maxSnapshotBytes) {
|
|
257
|
+
throw new vocabulary_errors_1.SnapshotTooLargeError(`The normalized snapshot is ${byteLength} bytes which exceeds the supported maximum of ${exports.FIGSHARE_SNAPSHOT_LIMITS.maxSnapshotBytes}`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/** Classify remote changes against the currently mirrored categories. */
|
|
261
|
+
function classifyChanges(existing, snapshot) {
|
|
262
|
+
const existingBySourceId = new Map(existing.map((row) => [row.sourceId, row]));
|
|
263
|
+
const remoteBySourceId = new Map(snapshot.map((row) => [row.sourceId, row]));
|
|
264
|
+
const rows = [];
|
|
265
|
+
const summary = { added: 0, changed: 0, removed: 0, reappeared: 0, unchanged: 0 };
|
|
266
|
+
for (const remote of snapshot) {
|
|
267
|
+
const local = existingBySourceId.get(remote.sourceId);
|
|
268
|
+
if (!local) {
|
|
269
|
+
rows.push({ changeClass: 'added', sourceId: remote.sourceId, title: remote.title, categoryId: remote.categoryId });
|
|
270
|
+
summary.added += 1;
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
if (local.historical) {
|
|
274
|
+
rows.push({
|
|
275
|
+
changeClass: 'reappeared',
|
|
276
|
+
sourceId: remote.sourceId,
|
|
277
|
+
title: remote.title,
|
|
278
|
+
categoryId: remote.categoryId,
|
|
279
|
+
previousCategoryId: local.categoryId,
|
|
280
|
+
previousTitle: local.title
|
|
281
|
+
});
|
|
282
|
+
summary.reappeared += 1;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
if (local.contentHash !== remote.contentHash) {
|
|
286
|
+
rows.push({
|
|
287
|
+
changeClass: 'changed',
|
|
288
|
+
sourceId: remote.sourceId,
|
|
289
|
+
title: remote.title,
|
|
290
|
+
categoryId: remote.categoryId,
|
|
291
|
+
previousCategoryId: local.categoryId,
|
|
292
|
+
previousTitle: local.title
|
|
293
|
+
});
|
|
294
|
+
summary.changed += 1;
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
rows.push({ changeClass: 'unchanged', sourceId: remote.sourceId, title: remote.title, categoryId: remote.categoryId });
|
|
298
|
+
summary.unchanged += 1;
|
|
299
|
+
}
|
|
300
|
+
for (const local of existing) {
|
|
301
|
+
if (remoteBySourceId.has(local.sourceId) || local.historical) {
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
rows.push({
|
|
305
|
+
changeClass: 'removed',
|
|
306
|
+
sourceId: local.sourceId,
|
|
307
|
+
title: local.title,
|
|
308
|
+
previousCategoryId: local.categoryId,
|
|
309
|
+
previousTitle: local.title
|
|
310
|
+
});
|
|
311
|
+
summary.removed += 1;
|
|
312
|
+
}
|
|
313
|
+
rows.sort((left, right) => left.sourceId.localeCompare(right.sourceId));
|
|
314
|
+
return { rows, summary };
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Deterministic proposal rules. Exact code and identity matches are preselected;
|
|
318
|
+
* a unique exact label match is offered but never preselected; anything ambiguous
|
|
319
|
+
* stays unresolved. No fuzzy matching is performed.
|
|
320
|
+
*/
|
|
321
|
+
function buildProposals(localEntries, snapshot, options = {}) {
|
|
322
|
+
const historicalSourceIds = options.historicalSourceIds ?? new Set();
|
|
323
|
+
const byCode = new Map();
|
|
324
|
+
const byLabel = new Map();
|
|
325
|
+
for (const row of snapshot) {
|
|
326
|
+
const code = normalizeCategoryCode(row.sourceId);
|
|
327
|
+
if (code !== '') {
|
|
328
|
+
byCode.set(code, [...(byCode.get(code) ?? []), row]);
|
|
329
|
+
}
|
|
330
|
+
const label = row.title.toLowerCase();
|
|
331
|
+
byLabel.set(label, [...(byLabel.get(label) ?? []), row]);
|
|
332
|
+
}
|
|
333
|
+
const proposals = [];
|
|
334
|
+
const unresolvedLocalEntryIds = [];
|
|
335
|
+
const pushProposal = (entry, target, matchType, preselected, evidence) => {
|
|
336
|
+
proposals.push({
|
|
337
|
+
proposalId: `${entry.id}:${target.sourceId}`,
|
|
338
|
+
localEntryId: entry.id,
|
|
339
|
+
localLabel: entry.label,
|
|
340
|
+
localValue: entry.value,
|
|
341
|
+
localIdentifier: entry.identifier,
|
|
342
|
+
targetSourceId: target.sourceId,
|
|
343
|
+
targetCategoryId: target.categoryId,
|
|
344
|
+
targetTitle: target.title,
|
|
345
|
+
matchType,
|
|
346
|
+
preselected,
|
|
347
|
+
historical: historicalSourceIds.has(target.sourceId),
|
|
348
|
+
evidence: { ...evidence, normalizerVersion: exports.FIGSHARE_NORMALIZER_VERSION }
|
|
349
|
+
});
|
|
350
|
+
};
|
|
351
|
+
for (const entry of localEntries) {
|
|
352
|
+
const normalizedValue = normalizeCategoryCode(entry.value);
|
|
353
|
+
const exactCodeMatches = normalizedValue === '' ? [] : (byCode.get(normalizedValue) ?? []);
|
|
354
|
+
if (exactCodeMatches.length > 0) {
|
|
355
|
+
for (const target of exactCodeMatches) {
|
|
356
|
+
pushProposal(entry, target, 'exact-code', true, { rule: 'exact-code', normalizedValue });
|
|
357
|
+
}
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
const normalizedIdentifier = normalizeCategoryCode(entry.identifier);
|
|
361
|
+
const identityMatches = normalizedIdentifier === '' ? [] : (byCode.get(normalizedIdentifier) ?? []);
|
|
362
|
+
if (identityMatches.length > 0) {
|
|
363
|
+
for (const target of identityMatches) {
|
|
364
|
+
pushProposal(entry, target, 'identity', true, { rule: 'identity', normalizedIdentifier });
|
|
365
|
+
}
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
const labelMatches = byLabel.get(normalizeLabel(entry.label).toLowerCase()) ?? [];
|
|
369
|
+
if (labelMatches.length === 1) {
|
|
370
|
+
pushProposal(entry, labelMatches[0], 'label-suggestion', false, {
|
|
371
|
+
rule: 'exact-label',
|
|
372
|
+
normalizedLabel: normalizeLabel(entry.label)
|
|
373
|
+
});
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
unresolvedLocalEntryIds.push(entry.id);
|
|
377
|
+
}
|
|
378
|
+
return { proposals, unresolvedLocalEntryIds };
|
|
379
|
+
}
|
|
380
|
+
/** Identity proposals for a freshly created clone: every entry maps to its own source term. */
|
|
381
|
+
function buildIdentityProposals(clonedEntries, snapshot) {
|
|
382
|
+
const bySourceId = new Map(snapshot.map((row) => [row.sourceId, row]));
|
|
383
|
+
const proposals = [];
|
|
384
|
+
const unresolvedLocalEntryIds = [];
|
|
385
|
+
for (const entry of clonedEntries) {
|
|
386
|
+
const target = bySourceId.get(entry.sourceId);
|
|
387
|
+
if (!target) {
|
|
388
|
+
unresolvedLocalEntryIds.push(entry.id);
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
proposals.push({
|
|
392
|
+
proposalId: `${entry.id}:${target.sourceId}`,
|
|
393
|
+
localEntryId: entry.id,
|
|
394
|
+
localLabel: entry.label,
|
|
395
|
+
localValue: entry.value,
|
|
396
|
+
localIdentifier: entry.identifier,
|
|
397
|
+
targetSourceId: target.sourceId,
|
|
398
|
+
targetCategoryId: target.categoryId,
|
|
399
|
+
targetTitle: target.title,
|
|
400
|
+
matchType: 'identity',
|
|
401
|
+
preselected: true,
|
|
402
|
+
historical: false,
|
|
403
|
+
evidence: { rule: 'clone-identity', normalizerVersion: exports.FIGSHARE_NORMALIZER_VERSION }
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
return { proposals, unresolvedLocalEntryIds };
|
|
407
|
+
}
|
|
408
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9maWdzaGFyZS12Mi9jYXRlZ29yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNIQSxzREFTQztBQU9ELHdEQWFDO0FBR0Qsd0NBRUM7QUErQkQsa0VBMklDO0FBR0QsMENBMkJDO0FBR0QsNENBV0M7QUFNRCxvQ0FJQztBQUdELGdFQVlDO0FBR0QsMENBNERDO0FBT0Qsd0NBNEVDO0FBR0Qsd0RBK0JDO0FBM2pCRCw2Q0FBeUM7QUFFekMsMkRBQW1GO0FBRW5GOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBRS9DLDBFQUEwRTtBQUM3RCxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtDQUN6QixDQUFDO0FBbUdYOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFjO0lBQ2xELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUMsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDcEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDeEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RixNQUFNLE9BQU8sR0FBRyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENB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
|
|
@@ -8,6 +8,16 @@ export interface ResolvedFigsharePublishingConfigData extends FigsharePublishing
|
|
|
8
8
|
}
|
|
9
9
|
export declare function getBrandName(record?: RecordModel): string;
|
|
10
10
|
export declare function resolveFigsharePublishingConfig(record?: RecordModel): ResolvedFigsharePublishingConfigData | null;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the brand's Figshare connection for vocabulary administration.
|
|
13
|
+
*
|
|
14
|
+
* Unlike {@link resolveFigsharePublishingConfig} this deliberately ignores the
|
|
15
|
+
* `enabled` flag: catalogue discovery and crosswalk maintenance are useful before
|
|
16
|
+
* record publishing is switched on. The token is resolved server-side and may be
|
|
17
|
+
* empty, because the public catalogue is anonymous; callers requiring the account
|
|
18
|
+
* catalogue must check for a token themselves.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveFigshareVocabularyConfig(brandName: string): ResolvedFigsharePublishingConfigData | null;
|
|
11
21
|
export declare function getSyncState(config: FigsharePublishingConfigData, record: RecordModel): FigshareSyncState;
|
|
12
22
|
export declare function setSyncState(config: FigsharePublishingConfigData, record: RecordModel, syncState: FigshareSyncState): void;
|
|
13
23
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/config.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAkC,WAAW,EAAE,MAAM,SAAS,CAAC;AAGzF,MAAM,WAAW,oCAAqC,SAAQ,4BAA4B;IACxF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;KAClC,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CA0BzD;AAkBD,wBAAgB,+BAA+B,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,oCAAoC,GAAG,IAAI,CAkCjH;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAEzG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAO1H"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/config.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAkC,WAAW,EAAE,MAAM,SAAS,CAAC;AAGzF,MAAM,WAAW,oCAAqC,SAAQ,4BAA4B;IACxF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;KAClC,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CA0BzD;AAkBD,wBAAgB,+BAA+B,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,oCAAoC,GAAG,IAAI,CAkCjH;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,oCAAoC,GAAG,IAAI,CA4B9G;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAEzG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAO1H"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getBrandName = getBrandName;
|
|
7
7
|
exports.resolveFigsharePublishingConfig = resolveFigsharePublishingConfig;
|
|
8
|
+
exports.resolveFigshareVocabularyConfig = resolveFigshareVocabularyConfig;
|
|
8
9
|
exports.getSyncState = getSyncState;
|
|
9
10
|
exports.setSyncState = setSyncState;
|
|
10
11
|
const lodash_1 = __importDefault(require("lodash"));
|
|
@@ -91,6 +92,43 @@ function resolveFigsharePublishingConfig(record) {
|
|
|
91
92
|
}
|
|
92
93
|
return null;
|
|
93
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Resolve the brand's Figshare connection for vocabulary administration.
|
|
97
|
+
*
|
|
98
|
+
* Unlike {@link resolveFigsharePublishingConfig} this deliberately ignores the
|
|
99
|
+
* `enabled` flag: catalogue discovery and crosswalk maintenance are useful before
|
|
100
|
+
* record publishing is switched on. The token is resolved server-side and may be
|
|
101
|
+
* empty, because the public catalogue is anonymous; callers requiring the account
|
|
102
|
+
* catalogue must check for a token themselves.
|
|
103
|
+
*/
|
|
104
|
+
function resolveFigshareVocabularyConfig(brandName) {
|
|
105
|
+
const appConfigService = index_1.ServiceExports.AppConfigService;
|
|
106
|
+
const brandConfig = appConfigService?.getAppConfigurationForBrand?.(brandName)
|
|
107
|
+
?? appConfigService?.getAppConfigurationForBrand?.('default');
|
|
108
|
+
const brandConfigRecord = brandConfig != null && typeof brandConfig === 'object' ? brandConfig : undefined;
|
|
109
|
+
const figsharePublishing = brandConfigRecord?.figsharePublishing;
|
|
110
|
+
const figsharePublishingConfig = figsharePublishing != null && typeof figsharePublishing === 'object'
|
|
111
|
+
? figsharePublishing
|
|
112
|
+
: undefined;
|
|
113
|
+
if (figsharePublishingConfig == null) {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
const resolvedConfig = lodash_1.default.merge(new FigsharePublishing_1.FigsharePublishing(), lodash_1.default.cloneDeep(figsharePublishingConfig));
|
|
117
|
+
const figshareDev = resolveFigshareDevConfig();
|
|
118
|
+
const useFixtureRuntime = shouldUseFixtureRuntime(figshareDev);
|
|
119
|
+
resolvedConfig.runtime = {
|
|
120
|
+
mode: useFixtureRuntime ? 'fixture' : 'live',
|
|
121
|
+
fixtures: useFixtureRuntime ? lodash_1.default.cloneDeep(figshareDev.fixtures) : undefined
|
|
122
|
+
};
|
|
123
|
+
resolvedConfig.connection = resolvedConfig.connection != null && typeof resolvedConfig.connection === 'object'
|
|
124
|
+
? resolvedConfig.connection
|
|
125
|
+
: { ...new FigsharePublishing_1.FigsharePublishing().connection };
|
|
126
|
+
const connectionToken = resolvedConfig.connection.token;
|
|
127
|
+
resolvedConfig.connection.token = typeof connectionToken === 'string' && connectionToken.trim() !== ''
|
|
128
|
+
? (0, FigsharePublishing_1.resolveFigshareConnectionToken)(connectionToken, { allowEmpty: true })
|
|
129
|
+
: '';
|
|
130
|
+
return resolvedConfig;
|
|
131
|
+
}
|
|
94
132
|
function getSyncState(config, record) {
|
|
95
133
|
return (0, types_1.getRecordField)(record, config.record.syncStatePath) ?? { status: 'idle' };
|
|
96
134
|
}
|
|
@@ -102,4 +140,4 @@ function setSyncState(config, record, syncState) {
|
|
|
102
140
|
(0, types_1.setRecordField)(record, config.record.statusPath, syncState.status);
|
|
103
141
|
(0, types_1.setRecordField)(record, config.record.errorPath, syncState.lastError ?? '');
|
|
104
142
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZpZ3NoYXJlLXYyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSxvQ0EwQkM7QUFrQkQsMEVBa0NDO0FBV0QsMEVBNEJDO0FBRUQsb0NBRUM7QUFFRCxvQ0FPQztBQXBKRCxvREFBdUI7QUFDdkIsOEVBSytDO0FBRS9DLG1DQUF5RjtBQUN6RixvQ0FBMEM7QUFTMUMsU0FBZ0IsWUFBWSxDQUFDLE1BQW9CO0lBQy9DLElBQUksTUFBTSxJQUFJLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyQyxNQUFNLEVBQUUsR0FBRyxNQUFxQixDQUFDO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sSUFBSyxNQUFrQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvRyxJQUFJLFFBQVEsS0FBSyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFdEMscUZBQXFGO0lBQ3JGLHVGQUF1RjtJQUN2RixtRkFBbUY7SUFDbkYsNENBQTRDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE9BQU8sZUFBZSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFDN0YsSUFBSSxlQUFlLElBQUksSUFBSTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLE9BQU8sZUFBZSxDQUFDLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxSCxJQUFJLFNBQVMsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFF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
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
import { FigsharePublishingConfigData } from '../../configmodels/FigsharePublishing';
|
|
2
|
-
import { FigshareRunContext, RecordModel } from './types';
|
|
2
|
+
import { AnyRecord, FigshareRunContext, RecordModel } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Ambient information a binding may need that cannot be read off its evaluation
|
|
5
|
+
* target. Author lookup rules, for example, evaluate against a contributor object
|
|
6
|
+
* rather than the record, so the brand has to be carried alongside.
|
|
7
|
+
*/
|
|
8
|
+
export interface BindingContext {
|
|
9
|
+
brandId: string;
|
|
10
|
+
record: AnyRecord;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the brand a record belongs to. `metaMetadata.brandId` wins; `branding`
|
|
14
|
+
* is the fallback. Either may hold an ID or a name, so both are probed against
|
|
15
|
+
* BrandingService before giving up and returning the raw value.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveBrandId(record: RecordModel): string;
|
|
18
|
+
/** Build the binding context once per payload so BrandingService is hit only once. */
|
|
19
|
+
export declare function createBindingContext(record: RecordModel): BindingContext;
|
|
3
20
|
export declare function createRunContext(record: RecordModel, config: FigsharePublishingConfigData, jobId?: string, triggerSource?: string): FigshareRunContext;
|
|
4
21
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAC;AAGrF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAW1D;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAExE;AAYD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,4BAA4B,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,GAAE,MAAiB,GAAG,kBAAkB,CAchK"}
|
|
@@ -1,11 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveBrandId = resolveBrandId;
|
|
4
|
+
exports.createBindingContext = createBindingContext;
|
|
3
5
|
exports.createRunContext = createRunContext;
|
|
4
6
|
const types_1 = require("./types");
|
|
5
7
|
const config_1 = require("./config");
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the brand a record belongs to. `metaMetadata.brandId` wins; `branding`
|
|
10
|
+
* is the fallback. Either may hold an ID or a name, so both are probed against
|
|
11
|
+
* BrandingService before giving up and returning the raw value.
|
|
12
|
+
*/
|
|
13
|
+
function resolveBrandId(record) {
|
|
14
|
+
const rawBrand = String(record?.metaMetadata?.brandId ?? record?.branding ?? '').trim();
|
|
15
|
+
if (rawBrand === '') {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
const brandingService = typeof BrandingService === 'undefined' ? undefined : BrandingService;
|
|
19
|
+
if (brandingService?.getBrandById?.(rawBrand)?.id != null) {
|
|
20
|
+
return rawBrand;
|
|
21
|
+
}
|
|
22
|
+
const byName = brandingService?.getBrand?.(rawBrand);
|
|
23
|
+
return byName?.id == null ? rawBrand : String(byName.id);
|
|
24
|
+
}
|
|
25
|
+
/** Build the binding context once per payload so BrandingService is hit only once. */
|
|
26
|
+
function createBindingContext(record) {
|
|
27
|
+
return { brandId: resolveBrandId(record), record: record };
|
|
28
|
+
}
|
|
29
|
+
function inferRecordOid(record, jobId) {
|
|
30
|
+
const rm = record;
|
|
31
|
+
const fromRecord = String(rm.redboxOid ?? rm.id ?? rm.oid ?? '').trim();
|
|
32
|
+
if (fromRecord) {
|
|
33
|
+
return fromRecord;
|
|
34
|
+
}
|
|
35
|
+
const fromJobId = String(jobId ?? '').match(/^([^:]+):/)?.[1] ?? '';
|
|
36
|
+
return fromJobId.trim();
|
|
37
|
+
}
|
|
6
38
|
function createRunContext(record, config, jobId, triggerSource = 'manual') {
|
|
7
39
|
const rm = record;
|
|
8
|
-
const recordOid = rm
|
|
40
|
+
const recordOid = inferRecordOid(rm, jobId);
|
|
9
41
|
const articleId = (0, types_1.getRecordField)(rm, config.record.articleIdPath);
|
|
10
42
|
const correlationId = jobId || `${recordOid || 'record'}-${Date.now()}`;
|
|
11
43
|
return {
|
|
@@ -18,4 +50,4 @@ function createRunContext(record, config, jobId, triggerSource = 'manual') {
|
|
|
18
50
|
triggerSource
|
|
19
51
|
};
|
|
20
52
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9maWdzaGFyZS12Mi9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLHdDQVdDO0FBR0Qsb0RBRUM7QUFZRCw0Q0FjQztBQTVERCxtQ0FBcUY7QUFDckYscUNBQXdDO0FBWXhDOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQUMsTUFBbUI7SUFDaEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFLLE1BQWtDLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JILElBQUksUUFBUSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELE1BQU0sZUFBZSxHQUFHLE9BQU8sZUFBZSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFDN0YsSUFBSSxlQUFlLEVBQUUsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxlQUFlLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsT0FBTyxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsU0FBZ0Isb0JBQW9CLENBQUMsTUFBbUI7SUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQW1CLEVBQUUsQ0FBQztBQUMxRSxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsTUFBbUIsRUFBRSxLQUFjO0lBQ3pELE1BQU0sRUFBRSxHQUFHLE1BQTRFLENBQUM7SUFDeEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hFLElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDMUIsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLE1BQW1CLEVBQUUsTUFBb0MsRUFBRSxLQUFjLEVBQUUsZ0JBQXdCLFFBQVE7SUFDMUksTUFBTSxFQUFFLEdBQUcsTUFBcUIsQ0FBQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUEsc0JBQWMsRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRSxNQUFNLGFBQWEsR0FBRyxLQUFLLElBQUksR0FBRyxTQUFTLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ3hFLE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM1QixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxJQUFLLE1BQWtDLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQztRQUN0RyxTQUFTLEVBQUUsSUFBQSxxQkFBWSxFQUFDLE1BQU0sQ0FBQztRQUMvQixTQUFTLEVBQUUsU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDaEYsS0FBSztRQUNMLGFBQWE7UUFDYixhQUFhO0tBQ2QsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embargo.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/embargo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,WAAW,EAA2C,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"embargo.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/embargo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,WAAW,EAA2C,MAAM,SAAS,CAAC;AAgB/E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4B7K"}
|