@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
|
@@ -3,19 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ensureHandlebarsHelpersRegistered = ensureHandlebarsHelpersRegistered;
|
|
7
6
|
exports.validateHandlebarsTemplate = validateHandlebarsTemplate;
|
|
7
|
+
exports.resolveCrosswalkBinding = resolveCrosswalkBinding;
|
|
8
8
|
exports.evaluateBinding = evaluateBinding;
|
|
9
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
-
const handlebars_1 = __importDefault(require("handlebars"));
|
|
11
10
|
const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
|
|
12
|
-
|
|
13
|
-
function ensureHandlebarsHelpersRegistered() {
|
|
14
|
-
if (!handlebarsHelpersRegistered) {
|
|
15
|
-
(0, sails_ng_common_1.registerSharedHandlebarsHelpers)(handlebars_1.default);
|
|
16
|
-
handlebarsHelpersRegistered = true;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
11
|
+
const categories_1 = require("./categories");
|
|
19
12
|
function validateHandlebarsTemplate(template) {
|
|
20
13
|
const allowedHelpers = new Set(['default', 'join', 'lower', 'upper', 'trim', 'formatDate']);
|
|
21
14
|
const tagPattern = /{{{?\s*([#/!>]?)\s*([A-Za-z_][A-Za-z0-9_]*)?/g;
|
|
@@ -37,22 +30,87 @@ function validateHandlebarsTemplate(template) {
|
|
|
37
30
|
throw new Error(`Unsupported Handlebars helper '${token}' in Figshare binding`);
|
|
38
31
|
}
|
|
39
32
|
}
|
|
40
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Resolve a crosswalk binding: evaluate its inner source for codes, then push those
|
|
35
|
+
* through the approved revision of the configured crosswalk.
|
|
36
|
+
*
|
|
37
|
+
* Returns the full resolution rather than just the values, because the categories
|
|
38
|
+
* payload has to enforce `allowUnmapped` against the historical targets.
|
|
39
|
+
*/
|
|
40
|
+
async function resolveCrosswalkBinding(binding, target, context) {
|
|
41
|
+
// Config arrives as JSON, so the type-level ban on nesting needs a runtime guard.
|
|
42
|
+
if (String(binding.source?.kind ?? '') === 'crosswalk') {
|
|
43
|
+
throw new Error('Figshare crosswalk bindings cannot nest another crosswalk binding');
|
|
44
|
+
}
|
|
45
|
+
const rawValue = await evaluateBinding(binding.source, target, context);
|
|
46
|
+
const sourceCodes = (0, categories_1.toSourceCodeCandidates)(rawValue);
|
|
47
|
+
if (sourceCodes.length === 0) {
|
|
48
|
+
return { values: [], sourceCodes: [], normalizedCodes: [], unresolvedCodes: [], historicalTargets: [] };
|
|
49
|
+
}
|
|
50
|
+
const brandId = String(context?.brandId ?? '').trim();
|
|
51
|
+
if (brandId === '') {
|
|
52
|
+
throw new Error('Unable to resolve the brand for Figshare crosswalk binding resolution');
|
|
53
|
+
}
|
|
54
|
+
const crosswalkId = String(binding.crosswalkId ?? '').trim();
|
|
55
|
+
const sourceVocabularyId = String(binding.sourceVocabularyId ?? '').trim();
|
|
56
|
+
if (crosswalkId === '' || sourceVocabularyId === '') {
|
|
57
|
+
throw new Error('Figshare crosswalk bindings require both a source vocabulary and an approved crosswalk');
|
|
58
|
+
}
|
|
59
|
+
// Reached through the sails global rather than an import, to avoid a module cycle
|
|
60
|
+
// between this file and FigshareVocabularyService.
|
|
61
|
+
const service = (typeof FigshareVocabularyService === 'undefined'
|
|
62
|
+
? undefined
|
|
63
|
+
: FigshareVocabularyService);
|
|
64
|
+
if (typeof service?.resolveCrosswalkValues !== 'function') {
|
|
65
|
+
throw new Error('FigshareVocabularyService.resolveCrosswalkValues is unavailable');
|
|
66
|
+
}
|
|
67
|
+
const resolution = await service.resolveCrosswalkValues({
|
|
68
|
+
brandId,
|
|
69
|
+
crosswalkId,
|
|
70
|
+
sourceVocabularyId,
|
|
71
|
+
codes: sourceCodes,
|
|
72
|
+
// `||` not `??`: an unset select in the config editor arrives as an empty string.
|
|
73
|
+
outputs: binding.outputs || 'categoryId'
|
|
74
|
+
});
|
|
75
|
+
return { ...resolution, sourceCodes };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Evaluate a binding against `target`. `context` carries ambient information such
|
|
79
|
+
* as the brand, which the crosswalk kind needs and which `target` may not hold —
|
|
80
|
+
* author lookup rules evaluate against a contributor object, not the record.
|
|
81
|
+
*/
|
|
82
|
+
async function evaluateBinding(binding, target, context) {
|
|
41
83
|
if (binding == null) {
|
|
42
84
|
return undefined;
|
|
43
85
|
}
|
|
44
86
|
if (binding.kind === 'path') {
|
|
45
|
-
const value = lodash_1.default.get(
|
|
87
|
+
const value = lodash_1.default.get(target, binding.path, binding.defaultValue);
|
|
46
88
|
return value ?? binding.defaultValue;
|
|
47
89
|
}
|
|
48
90
|
if (binding.kind === 'handlebars') {
|
|
49
|
-
ensureHandlebarsHelpersRegistered();
|
|
50
91
|
validateHandlebarsTemplate(binding.template);
|
|
51
|
-
const compiled =
|
|
52
|
-
const value = compiled(
|
|
92
|
+
const compiled = (0, sails_ng_common_1.handlebarsCompile)(binding.template);
|
|
93
|
+
const value = compiled(target);
|
|
53
94
|
return value === '' ? binding.defaultValue : value;
|
|
54
95
|
}
|
|
55
|
-
|
|
56
|
-
|
|
96
|
+
if (binding.kind === 'jsonata') {
|
|
97
|
+
const value = await (0, sails_ng_common_1.jsonataCompileAndEvaluate)(binding.expression, target);
|
|
98
|
+
return value ?? binding.defaultValue;
|
|
99
|
+
}
|
|
100
|
+
if (binding.kind === 'crosswalk') {
|
|
101
|
+
const resolution = await resolveCrosswalkBinding(binding, target, context);
|
|
102
|
+
// Outside the categories payload there is nowhere to surface these, and they
|
|
103
|
+
// must not silently vanish.
|
|
104
|
+
if (resolution.historicalTargets.length > 0) {
|
|
105
|
+
sails.log.warn(`Figshare crosswalk binding omitted historical targets: ${resolution.historicalTargets
|
|
106
|
+
.map((historicalTarget) => `${historicalTarget.code} → ${historicalTarget.sourceId}`)
|
|
107
|
+
.join(', ')}`);
|
|
108
|
+
}
|
|
109
|
+
if (resolution.unresolvedCodes.length > 0) {
|
|
110
|
+
sails.log.warn(`Figshare crosswalk binding could not resolve: ${resolution.unresolvedCodes.join(', ')}`);
|
|
111
|
+
}
|
|
112
|
+
return resolution.values.length > 0 ? resolution.values : binding.defaultValue;
|
|
113
|
+
}
|
|
114
|
+
throw new Error(`Unsupported Figshare binding kind '${String(binding.kind)}'`);
|
|
57
115
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZmlnc2hhcmUtdjIvYmluZGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFnQ0EsZ0VBb0JDO0FBU0QsMERBOENDO0FBT0QsMENBNENDO0FBOUpELG9EQUF1QjtBQUN2QixzRUFBOEY7QUFJOUYsNkNBQXNEO0FBMkJ0RCxTQUFnQiwwQkFBMEIsQ0FBQyxRQUFnQjtJQUN6RCxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RixNQUFNLFVBQVUsR0FBRywrQ0FBK0MsQ0FBQztJQUNuRSxJQUFJLEtBQTZCLENBQUM7SUFDbEMsT0FBTyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdDLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwRSxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElB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
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bumped whenever normalisation or proposal rules change so that stored sync runs
|
|
3
|
+
* remain reproducible and comparable.
|
|
4
|
+
*/
|
|
5
|
+
export declare const FIGSHARE_NORMALIZER_VERSION = "1";
|
|
6
|
+
/** Guard rails that keep a preview inside Mongo's document size limit. */
|
|
7
|
+
export declare const FIGSHARE_SNAPSHOT_LIMITS: {
|
|
8
|
+
readonly maxCategories: 20000;
|
|
9
|
+
readonly maxSnapshotBytes: number;
|
|
10
|
+
};
|
|
11
|
+
export interface NormalizedFigshareCategory {
|
|
12
|
+
sourceId: string;
|
|
13
|
+
categoryId: number;
|
|
14
|
+
taxonomyId: string;
|
|
15
|
+
title: string;
|
|
16
|
+
parentSourceId: string | null;
|
|
17
|
+
path: string[];
|
|
18
|
+
selectable: boolean;
|
|
19
|
+
hasChildren: boolean;
|
|
20
|
+
contentHash: string;
|
|
21
|
+
}
|
|
22
|
+
export interface FigshareNormalizationWarning {
|
|
23
|
+
code: 'missing-parent' | 'cycle-detected' | 'missing-taxonomy';
|
|
24
|
+
sourceId: string;
|
|
25
|
+
detail: string;
|
|
26
|
+
}
|
|
27
|
+
export interface FigshareNormalizationResult {
|
|
28
|
+
rows: NormalizedFigshareCategory[];
|
|
29
|
+
warnings: FigshareNormalizationWarning[];
|
|
30
|
+
}
|
|
31
|
+
export interface FigshareTaxonomySummary {
|
|
32
|
+
taxonomyId: string;
|
|
33
|
+
title: string;
|
|
34
|
+
categoryCount: number;
|
|
35
|
+
selectableCount: number;
|
|
36
|
+
missingParentCount: number;
|
|
37
|
+
}
|
|
38
|
+
export type FigshareChangeClass = 'added' | 'changed' | 'removed' | 'reappeared' | 'unchanged';
|
|
39
|
+
export interface FigshareDiffRow {
|
|
40
|
+
changeClass: FigshareChangeClass;
|
|
41
|
+
sourceId: string;
|
|
42
|
+
title: string;
|
|
43
|
+
categoryId?: number;
|
|
44
|
+
previousCategoryId?: number;
|
|
45
|
+
previousTitle?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface FigshareDiffSummary {
|
|
48
|
+
added: number;
|
|
49
|
+
changed: number;
|
|
50
|
+
removed: number;
|
|
51
|
+
reappeared: number;
|
|
52
|
+
unchanged: number;
|
|
53
|
+
}
|
|
54
|
+
export interface FigshareDiffResult {
|
|
55
|
+
rows: FigshareDiffRow[];
|
|
56
|
+
summary: FigshareDiffSummary;
|
|
57
|
+
}
|
|
58
|
+
/** The mirror state a diff is computed against. */
|
|
59
|
+
export interface ExistingMirrorCategory {
|
|
60
|
+
sourceId: string;
|
|
61
|
+
categoryId: number;
|
|
62
|
+
title: string;
|
|
63
|
+
contentHash: string;
|
|
64
|
+
historical: boolean;
|
|
65
|
+
}
|
|
66
|
+
export type FigshareProposalMatchType = 'exact-code' | 'identity' | 'label-suggestion' | 'manual' | 'historical';
|
|
67
|
+
export interface FigshareProposal {
|
|
68
|
+
proposalId: string;
|
|
69
|
+
localEntryId: string;
|
|
70
|
+
localLabel: string;
|
|
71
|
+
localValue: string;
|
|
72
|
+
localIdentifier?: string;
|
|
73
|
+
targetSourceId: string;
|
|
74
|
+
targetCategoryId: number;
|
|
75
|
+
targetTitle: string;
|
|
76
|
+
matchType: FigshareProposalMatchType;
|
|
77
|
+
/** Exact code/identity matches arrive preselected; label suggestions never do. */
|
|
78
|
+
preselected: boolean;
|
|
79
|
+
historical: boolean;
|
|
80
|
+
evidence: Record<string, unknown>;
|
|
81
|
+
}
|
|
82
|
+
export interface FigshareProposalResult {
|
|
83
|
+
proposals: FigshareProposal[];
|
|
84
|
+
unresolvedLocalEntryIds: string[];
|
|
85
|
+
}
|
|
86
|
+
/** Local entry projection used by the matching engine. */
|
|
87
|
+
export interface LocalEntryCandidate {
|
|
88
|
+
id: string;
|
|
89
|
+
label: string;
|
|
90
|
+
labelLower: string;
|
|
91
|
+
value: string;
|
|
92
|
+
valueLower: string;
|
|
93
|
+
identifier?: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Trim, drop any query string and keep the final URI/hash segment so that
|
|
97
|
+
* `http://purl.org/au-research/vocabulary/anzsrc-for/2020/300101` and `300101`
|
|
98
|
+
* compare equal.
|
|
99
|
+
*/
|
|
100
|
+
export declare function normalizeCategoryCode(value: unknown): string;
|
|
101
|
+
/**
|
|
102
|
+
* Coerce the result of a categories binding into candidate code strings: arrays are
|
|
103
|
+
* flattened, and object entries are reduced through their `notation` or `code` field.
|
|
104
|
+
* No normalisation is applied — callers pick the normaliser that suits their matcher.
|
|
105
|
+
*/
|
|
106
|
+
export declare function toSourceCodeCandidates(value: unknown): string[];
|
|
107
|
+
/** Collapse internal whitespace and normalise Unicode so labels compare stably. */
|
|
108
|
+
export declare function normalizeLabel(value: unknown): string;
|
|
109
|
+
/**
|
|
110
|
+
* Validate and canonicalise a raw Figshare category response.
|
|
111
|
+
*
|
|
112
|
+
* Identity is the Figshare `source_id` when present (Q-01: prefer the taxonomy code,
|
|
113
|
+
* keep the numeric id as the mutable publishing relationship), falling back to the
|
|
114
|
+
* numeric id for catalogues that omit it.
|
|
115
|
+
*/
|
|
116
|
+
export declare function normalizeFigshareCategories(raw: unknown): FigshareNormalizationResult;
|
|
117
|
+
/** Group a normalized catalogue into the taxonomies an administrator can select. */
|
|
118
|
+
export declare function groupTaxonomies(result: FigshareNormalizationResult): FigshareTaxonomySummary[];
|
|
119
|
+
/** Restrict a normalized catalogue to a single taxonomy. */
|
|
120
|
+
export declare function filterByTaxonomy(result: FigshareNormalizationResult, taxonomyId: string): FigshareNormalizationResult;
|
|
121
|
+
/**
|
|
122
|
+
* Serialise the canonical ordered row set and hash it. The same Figshare content
|
|
123
|
+
* always produces the same hash.
|
|
124
|
+
*/
|
|
125
|
+
export declare function hashSnapshot(rows: readonly NormalizedFigshareCategory[]): string;
|
|
126
|
+
/** Reject an over-limit snapshot before any database write. */
|
|
127
|
+
export declare function assertSnapshotWithinLimits(rows: readonly NormalizedFigshareCategory[]): void;
|
|
128
|
+
/** Classify remote changes against the currently mirrored categories. */
|
|
129
|
+
export declare function classifyChanges(existing: readonly ExistingMirrorCategory[], snapshot: readonly NormalizedFigshareCategory[]): FigshareDiffResult;
|
|
130
|
+
/**
|
|
131
|
+
* Deterministic proposal rules. Exact code and identity matches are preselected;
|
|
132
|
+
* a unique exact label match is offered but never preselected; anything ambiguous
|
|
133
|
+
* stays unresolved. No fuzzy matching is performed.
|
|
134
|
+
*/
|
|
135
|
+
export declare function buildProposals(localEntries: readonly LocalEntryCandidate[], snapshot: readonly NormalizedFigshareCategory[], options?: {
|
|
136
|
+
historicalSourceIds?: ReadonlySet<string>;
|
|
137
|
+
}): FigshareProposalResult;
|
|
138
|
+
/** Identity proposals for a freshly created clone: every entry maps to its own source term. */
|
|
139
|
+
export declare function buildIdentityProposals(clonedEntries: readonly (LocalEntryCandidate & {
|
|
140
|
+
sourceId: string;
|
|
141
|
+
})[], snapshot: readonly NormalizedFigshareCategory[]): FigshareProposalResult;
|
|
142
|
+
//# sourceMappingURL=categories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/categories.ts"],"names":[],"mappings":"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"}
|