@researchdatabox/redbox-core 5.0.3 → 5.0.4-beta.12498
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/AttachmentStagingIdentity.d.ts +3 -0
- package/dist/AttachmentStagingIdentity.d.ts.map +1 -0
- package/dist/AttachmentStagingIdentity.js +10 -0
- package/dist/CoreController.d.ts +7 -3
- package/dist/CoreController.d.ts.map +1 -1
- package/dist/CoreController.js +85 -3
- package/dist/DatastreamService.d.ts +4 -0
- package/dist/DatastreamService.d.ts.map +1 -1
- package/dist/HarvestRunService.d.ts +4 -3
- package/dist/HarvestRunService.d.ts.map +1 -1
- package/dist/HarvestRunService.js +1 -1
- package/dist/RecordConcurrencyObservability.d.ts +51 -0
- package/dist/RecordConcurrencyObservability.d.ts.map +1 -0
- package/dist/RecordConcurrencyObservability.js +136 -0
- package/dist/RecordEntityTag.d.ts +31 -0
- package/dist/RecordEntityTag.d.ts.map +1 -0
- package/dist/RecordEntityTag.js +101 -0
- package/dist/RecordFormFingerprint.d.ts +7 -0
- package/dist/RecordFormFingerprint.d.ts.map +1 -0
- package/dist/RecordFormFingerprint.js +106 -0
- package/dist/RecordHttpConcurrency.d.ts +60 -0
- package/dist/RecordHttpConcurrency.d.ts.map +1 -0
- package/dist/RecordHttpConcurrency.js +181 -0
- package/dist/RecordSaveResponse.d.ts +219 -0
- package/dist/RecordSaveResponse.d.ts.map +1 -0
- package/dist/RecordSaveResponse.js +639 -0
- package/dist/RecordStorageConcurrency.d.ts +48 -0
- package/dist/RecordStorageConcurrency.d.ts.map +1 -0
- package/dist/RecordStorageConcurrency.js +103 -0
- package/dist/RecordWriteClassification.d.ts +12 -0
- package/dist/RecordWriteClassification.d.ts.map +1 -0
- package/dist/RecordWriteClassification.js +70 -0
- package/dist/RecordsService.d.ts +105 -12
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/RecordsService.js +44 -1
- package/dist/SearchService.d.ts +2 -1
- package/dist/SearchService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +48 -8
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/StorageService.js +19 -1
- package/dist/StorageServiceResponse.d.ts +22 -1
- package/dist/StorageServiceResponse.d.ts.map +1 -1
- package/dist/StorageServiceResponse.js +22 -4
- package/dist/action-execution/audit.d.ts +41 -0
- package/dist/action-execution/audit.d.ts.map +1 -0
- package/dist/action-execution/audit.js +122 -0
- package/dist/action-execution/executor.d.ts +24 -0
- package/dist/action-execution/executor.d.ts.map +1 -0
- package/dist/action-execution/executor.js +435 -0
- package/dist/action-execution/failure.d.ts +49 -0
- package/dist/action-execution/failure.d.ts.map +1 -0
- package/dist/action-execution/failure.js +129 -0
- package/dist/action-execution/index.d.ts +7 -0
- package/dist/action-execution/index.d.ts.map +1 -0
- package/dist/action-execution/index.js +23 -0
- package/dist/action-execution/legacy-result.d.ts +21 -0
- package/dist/action-execution/legacy-result.d.ts.map +1 -0
- package/dist/action-execution/legacy-result.js +70 -0
- package/dist/action-execution/policy.d.ts +12 -0
- package/dist/action-execution/policy.d.ts.map +1 -0
- package/dist/action-execution/policy.js +138 -0
- package/dist/action-execution/types.d.ts +121 -0
- package/dist/action-execution/types.d.ts.map +1 -0
- package/dist/action-execution/types.js +22 -0
- package/dist/api-routes/groups/branding.d.ts +8 -0
- package/dist/api-routes/groups/branding.d.ts.map +1 -1
- package/dist/api-routes/groups/branding.js +86 -11
- package/dist/api-routes/groups/dashboard-config.d.ts +12 -9
- package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -1
- package/dist/api-routes/groups/dashboard-config.js +136 -73
- package/dist/api-routes/groups/forms.d.ts.map +1 -1
- package/dist/api-routes/groups/forms.js +10 -2
- package/dist/api-routes/groups/record-schemas.d.ts +5 -0
- package/dist/api-routes/groups/record-schemas.d.ts.map +1 -0
- package/dist/api-routes/groups/record-schemas.js +181 -0
- package/dist/api-routes/groups/records.d.ts +1 -0
- package/dist/api-routes/groups/records.d.ts.map +1 -1
- package/dist/api-routes/groups/records.js +141 -26
- package/dist/api-routes/index.d.ts +3 -0
- package/dist/api-routes/index.d.ts.map +1 -1
- package/dist/api-routes/index.js +4 -1
- package/dist/api-routes/openapi.d.ts.map +1 -1
- package/dist/api-routes/openapi.js +7 -5
- package/dist/api-routes/record-schema-openapi.d.ts +26 -0
- package/dist/api-routes/record-schema-openapi.d.ts.map +1 -0
- package/dist/api-routes/record-schema-openapi.js +38 -0
- package/dist/api-routes/record-schema-response.d.ts +40 -0
- package/dist/api-routes/record-schema-response.d.ts.map +1 -0
- package/dist/api-routes/record-schema-response.js +89 -0
- package/dist/api-routes/request-extraction.d.ts.map +1 -1
- package/dist/api-routes/request-extraction.js +10 -8
- package/dist/api-routes/route-factory.d.ts.map +1 -1
- package/dist/api-routes/route-factory.js +2 -1
- package/dist/api-routes/route-registry.d.ts.map +1 -1
- package/dist/api-routes/route-registry.js +3 -1
- package/dist/api-routes/schemas/common.d.ts +36 -0
- package/dist/api-routes/schemas/common.d.ts.map +1 -1
- package/dist/api-routes/schemas/common.js +95 -5
- package/dist/api-routes/schemas/responses.d.ts +1424 -1
- package/dist/api-routes/schemas/responses.d.ts.map +1 -1
- package/dist/api-routes/schemas/responses.js +382 -60
- package/dist/api-routes/types.d.ts +1 -0
- package/dist/api-routes/types.d.ts.map +1 -1
- package/dist/api-routes/validation.d.ts +5 -1
- package/dist/api-routes/validation.d.ts.map +1 -1
- package/dist/api-routes/validation.js +14 -15
- package/dist/bootstrap.d.ts +3 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +58 -41
- 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 +29 -2
- package/dist/config/branding.config.d.ts +13 -0
- package/dist/config/branding.config.d.ts.map +1 -1
- package/dist/config/branding.config.js +34 -2
- package/dist/config/brandingConfigurationDefaults.config.d.ts +4 -0
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +42 -3
- package/dist/config/index.d.ts +12 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +7 -4
- package/dist/config/policies.config.d.ts.map +1 -1
- package/dist/config/policies.config.js +37 -23
- package/dist/config/raid.config.d.ts +7 -4
- package/dist/config/raid.config.d.ts.map +1 -1
- package/dist/config/raid.config.js +21 -35
- package/dist/config/record.config.d.ts +3 -0
- package/dist/config/record.config.d.ts.map +1 -1
- package/dist/config/record.config.js +37 -35
- package/dist/config/recordSchema.config.d.ts +68 -0
- package/dist/config/recordSchema.config.d.ts.map +1 -0
- package/dist/config/recordSchema.config.js +173 -0
- package/dist/config/recordValidation.config.d.ts +19 -0
- package/dist/config/recordValidation.config.d.ts.map +1 -0
- package/dist/config/recordValidation.config.js +10 -0
- package/dist/config/recordtype.config.d.ts +32 -9
- package/dist/config/recordtype.config.d.ts.map +1 -1
- package/dist/config/recordtype.config.js +4 -7
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +135 -53
- package/dist/config/workflow.config.d.ts +6 -0
- package/dist/config/workflow.config.d.ts.map +1 -1
- package/dist/config/workflow.config.js +1 -1
- package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
- package/dist/configmodels/AdminSidebarConfig.js +4 -2
- package/dist/configmodels/ConfigModels.d.ts +1 -1
- package/dist/configmodels/ConfigModels.d.ts.map +1 -1
- package/dist/configmodels/ConfigModels.js +26 -9
- package/dist/configmodels/DashboardFieldCatalogue.d.ts +67 -0
- package/dist/configmodels/DashboardFieldCatalogue.d.ts.map +1 -0
- package/dist/configmodels/DashboardFieldCatalogue.js +174 -0
- package/dist/configmodels/DashboardSettings.d.ts +191 -0
- package/dist/configmodels/DashboardSettings.d.ts.map +1 -0
- package/dist/configmodels/DashboardSettings.js +705 -0
- package/dist/configmodels/OniPublishing.d.ts +205 -0
- package/dist/configmodels/OniPublishing.d.ts.map +1 -0
- package/dist/configmodels/OniPublishing.js +335 -0
- package/dist/configmodels/RaidPublishing.d.ts +97 -0
- package/dist/configmodels/RaidPublishing.d.ts.map +1 -0
- package/dist/configmodels/RaidPublishing.js +35 -0
- package/dist/configmodels/WebAnalytics.d.ts +55 -0
- package/dist/configmodels/WebAnalytics.d.ts.map +1 -0
- package/dist/configmodels/WebAnalytics.js +61 -0
- package/dist/controllers/AppConfigController.d.ts.map +1 -1
- package/dist/controllers/AppConfigController.js +4 -1
- package/dist/controllers/BrandingAppController.d.ts +29 -7
- package/dist/controllers/BrandingAppController.d.ts.map +1 -1
- package/dist/controllers/BrandingAppController.js +265 -69
- package/dist/controllers/BrandingController.d.ts +24 -1
- package/dist/controllers/BrandingController.d.ts.map +1 -1
- package/dist/controllers/BrandingController.js +173 -43
- package/dist/controllers/BrandingControllerSupport.d.ts +20 -0
- package/dist/controllers/BrandingControllerSupport.d.ts.map +1 -0
- package/dist/controllers/BrandingControllerSupport.js +80 -0
- package/dist/controllers/DashboardConfigController.d.ts +6 -2
- package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
- package/dist/controllers/DashboardConfigController.js +18 -4
- package/dist/controllers/DynamicAssetController.d.ts +7 -5
- package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
- package/dist/controllers/DynamicAssetController.js +21 -12
- package/dist/controllers/RecordController.d.ts +45 -4
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +778 -345
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +4 -1
- package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
- package/dist/controllers/webservice/AdminController.js +4 -3
- package/dist/controllers/webservice/BrandingController.d.ts +26 -1
- package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
- package/dist/controllers/webservice/BrandingController.js +292 -116
- package/dist/controllers/webservice/DashboardConfigController.d.ts +25 -17
- package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
- package/dist/controllers/webservice/DashboardConfigController.js +90 -205
- package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/FormManagementController.js +37 -3
- package/dist/controllers/webservice/RecordController.d.ts +15 -1
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +647 -267
- package/dist/controllers/webservice/RecordSchemaController.d.ts +32 -0
- package/dist/controllers/webservice/RecordSchemaController.d.ts.map +1 -0
- package/dist/controllers/webservice/RecordSchemaController.js +356 -0
- package/dist/controllers/webservice/RecordTypeController.d.ts +6 -1
- package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordTypeController.js +21 -3
- package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
- package/dist/controllers/webservice/SearchController.js +7 -3
- package/dist/hooks/defineRedboxHook.d.ts +3 -0
- package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
- package/dist/hooks/defineRedboxHook.js +4 -1
- package/dist/index.d.ts +50 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -2
- package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
- package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
- package/dist/loader/bootstrapShimRuntime.js +20 -12
- package/dist/loader/index.d.ts +9 -0
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +93 -4
- package/dist/model/BrandingTypeface.d.ts +70 -0
- package/dist/model/BrandingTypeface.d.ts.map +1 -0
- package/dist/model/BrandingTypeface.js +116 -0
- package/dist/model/BuildResponse.d.ts +25 -11
- package/dist/model/BuildResponse.d.ts.map +1 -1
- package/dist/model/BuildResponse.js +4 -3
- package/dist/model/DashboardTypeResponseModel.d.ts +6 -0
- package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
- package/dist/model/DashboardTypeResponseModel.js +7 -1
- package/dist/model/DashboardViewResponseModel.d.ts +5 -1
- package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
- package/dist/model/DashboardViewResponseModel.js +6 -3
- package/dist/model/RBValidationError.d.ts +17 -0
- package/dist/model/RBValidationError.d.ts.map +1 -1
- package/dist/model/RBValidationError.js +37 -1
- package/dist/model/RecordTypeResponseModel.d.ts +12 -4
- package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
- package/dist/model/RecordTypeResponseModel.js +11 -2
- package/dist/model/index.d.ts +5 -1
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +5 -2
- package/dist/model/record-contract.d.ts +42 -0
- package/dist/model/record-contract.d.ts.map +1 -0
- package/dist/model/record-contract.js +3 -0
- package/dist/model/storage/BrandingModel.d.ts +7 -0
- package/dist/model/storage/BrandingModel.d.ts.map +1 -1
- package/dist/model/storage/BrandingModel.js +7 -1
- package/dist/model/storage/DeletedRecordModel.d.ts +35 -0
- package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
- package/dist/model/storage/DeletedRecordModel.js +62 -1
- package/dist/model/storage/IntegrationAuditModel.d.ts +16 -2
- package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
- package/dist/model/storage/IntegrationAuditModel.js +15 -1
- package/dist/model/storage/RecordAuditModel.d.ts +11 -1
- package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
- package/dist/model/storage/RecordAuditModel.js +8 -2
- package/dist/model/storage/RecordModel.d.ts +6 -0
- package/dist/model/storage/RecordModel.d.ts.map +1 -1
- package/dist/model/storage/RecordTypeModel.d.ts +6 -0
- package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
- package/dist/model/storage/RecordTypeModel.js +4 -1
- package/dist/model/storage/index.d.ts +12 -10
- package/dist/model/storage/index.d.ts.map +1 -1
- package/dist/model/storage/index.js +24 -2
- package/dist/model/storage/record-schema.d.ts +115 -0
- package/dist/model/storage/record-schema.d.ts.map +1 -0
- package/dist/model/storage/record-schema.js +3 -0
- package/dist/policies/checkAuth.d.ts +2 -6
- package/dist/policies/checkAuth.d.ts.map +1 -1
- package/dist/policies/checkAuth.js +32 -9
- package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
- package/dist/policies/contentSecurityPolicy.js +85 -2
- package/dist/policies/index.d.ts +3 -2
- package/dist/policies/index.d.ts.map +1 -1
- package/dist/policies/index.js +4 -2
- package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
- package/dist/policies/validateApiContractRequest.js +49 -11
- package/dist/record-contract/ajv-error-mapper.d.ts +34 -0
- package/dist/record-contract/ajv-error-mapper.d.ts.map +1 -0
- package/dist/record-contract/ajv-error-mapper.js +153 -0
- package/dist/record-contract/canonical-json.d.ts +20 -0
- package/dist/record-contract/canonical-json.d.ts.map +1 -0
- package/dist/record-contract/canonical-json.js +126 -0
- package/dist/record-contract/codes.d.ts +36 -0
- package/dist/record-contract/codes.d.ts.map +1 -0
- package/dist/record-contract/codes.js +38 -0
- package/dist/record-contract/contributor-registry.d.ts +76 -0
- package/dist/record-contract/contributor-registry.d.ts.map +1 -0
- package/dist/record-contract/contributor-registry.js +126 -0
- package/dist/record-contract/core-contributors.d.ts +44 -0
- package/dist/record-contract/core-contributors.d.ts.map +1 -0
- package/dist/record-contract/core-contributors.js +395 -0
- package/dist/record-contract/deep-freeze.d.ts +3 -0
- package/dist/record-contract/deep-freeze.d.ts.map +1 -0
- package/dist/record-contract/deep-freeze.js +23 -0
- package/dist/record-contract/index.d.ts +13 -0
- package/dist/record-contract/index.d.ts.map +1 -0
- package/dist/record-contract/index.js +29 -0
- package/dist/record-contract/json-pointer.d.ts +20 -0
- package/dist/record-contract/json-pointer.d.ts.map +1 -0
- package/dist/record-contract/json-pointer.js +70 -0
- package/dist/record-contract/json-schema-renderer.d.ts +51 -0
- package/dist/record-contract/json-schema-renderer.d.ts.map +1 -0
- package/dist/record-contract/json-schema-renderer.js +450 -0
- package/dist/record-contract/record-contract-compiler.d.ts +42 -0
- package/dist/record-contract/record-contract-compiler.d.ts.map +1 -0
- package/dist/record-contract/record-contract-compiler.js +775 -0
- package/dist/record-contract/record-contract-context.d.ts +91 -0
- package/dist/record-contract/record-contract-context.d.ts.map +1 -0
- package/dist/record-contract/record-contract-context.js +39 -0
- package/dist/record-contract/record-json-schema-artifact.d.ts +74 -0
- package/dist/record-contract/record-json-schema-artifact.d.ts.map +1 -0
- package/dist/record-contract/record-json-schema-artifact.js +309 -0
- package/dist/record-contract/record-json-schema-etag.d.ts +15 -0
- package/dist/record-contract/record-json-schema-etag.d.ts.map +1 -0
- package/dist/record-contract/record-json-schema-etag.js +41 -0
- package/dist/record-contract/types.d.ts +151 -0
- package/dist/record-contract/types.d.ts.map +1 -0
- package/dist/record-contract/types.js +6 -0
- package/dist/services/AppConfigService.d.ts +6 -0
- package/dist/services/AppConfigService.d.ts.map +1 -1
- package/dist/services/AppConfigService.js +23 -1
- package/dist/services/AttachmentMetadataService.d.ts +58 -0
- package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
- package/dist/services/AttachmentMetadataService.js +643 -8
- package/dist/services/BrandingLogoService.d.ts +6 -1
- package/dist/services/BrandingLogoService.d.ts.map +1 -1
- package/dist/services/BrandingLogoService.js +77 -9
- package/dist/services/BrandingService.d.ts +171 -9
- package/dist/services/BrandingService.d.ts.map +1 -1
- package/dist/services/BrandingService.js +572 -68
- package/dist/services/BrandingThemeCssService.d.ts +17 -1
- package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
- package/dist/services/BrandingThemeCssService.js +71 -9
- package/dist/services/BrandingTypefaceService.d.ts +74 -0
- package/dist/services/BrandingTypefaceService.d.ts.map +1 -0
- package/dist/services/BrandingTypefaceService.js +359 -0
- package/dist/services/BrandingWoff2Inspector.d.ts +17 -0
- package/dist/services/BrandingWoff2Inspector.d.ts.map +1 -0
- package/dist/services/BrandingWoff2Inspector.js +402 -0
- package/dist/services/DashboardConfigService.d.ts +214 -54
- package/dist/services/DashboardConfigService.d.ts.map +1 -1
- package/dist/services/DashboardConfigService.js +829 -261
- package/dist/services/DashboardLegacyConversion.d.ts +82 -0
- package/dist/services/DashboardLegacyConversion.d.ts.map +1 -0
- package/dist/services/DashboardLegacyConversion.js +427 -0
- package/dist/services/DashboardTypesService.d.ts +15 -4
- package/dist/services/DashboardTypesService.d.ts.map +1 -1
- package/dist/services/DashboardTypesService.js +72 -139
- package/dist/services/DoiService.d.ts +1 -1
- package/dist/services/DoiService.d.ts.map +1 -1
- package/dist/services/DoiService.js +71 -45
- package/dist/services/FigshareService.d.ts +1 -1
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +73 -32
- package/dist/services/FormRecordConsistencyService.d.ts +8 -23
- package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
- package/dist/services/FormRecordConsistencyService.js +54 -70
- package/dist/services/FormsService.d.ts +91 -2
- package/dist/services/FormsService.d.ts.map +1 -1
- package/dist/services/FormsService.js +324 -64
- package/dist/services/HarvestRunService.d.ts +6 -3
- package/dist/services/HarvestRunService.d.ts.map +1 -1
- package/dist/services/HarvestRunService.js +161 -97
- package/dist/services/I18nEntriesService.d.ts +1 -0
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +26 -6
- package/dist/services/OniService.d.ts +19 -62
- package/dist/services/OniService.d.ts.map +1 -1
- package/dist/services/OniService.js +223 -691
- package/dist/services/RDMPService.d.ts +1 -1
- package/dist/services/RDMPService.d.ts.map +1 -1
- package/dist/services/RDMPService.js +5 -5
- package/dist/services/RaidService.d.ts +19 -61
- package/dist/services/RaidService.d.ts.map +1 -1
- package/dist/services/RaidService.js +191 -530
- package/dist/services/RecordSchemaService.d.ts +440 -0
- package/dist/services/RecordSchemaService.d.ts.map +1 -0
- package/dist/services/RecordSchemaService.js +3061 -0
- package/dist/services/RecordTypesService.d.ts +29 -0
- package/dist/services/RecordTypesService.d.ts.map +1 -1
- package/dist/services/RecordTypesService.js +106 -11
- package/dist/services/RecordValidationService.d.ts +340 -0
- package/dist/services/RecordValidationService.d.ts.map +1 -0
- package/dist/services/RecordValidationService.js +1898 -0
- package/dist/services/RecordsService.d.ts +313 -22
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +4948 -509
- package/dist/services/SolrSearchService.d.ts +1 -1
- package/dist/services/SolrSearchService.d.ts.map +1 -1
- package/dist/services/SolrSearchService.js +42 -12
- package/dist/services/StandardDatastreamService.d.ts +4 -0
- package/dist/services/StandardDatastreamService.d.ts.map +1 -1
- package/dist/services/StandardDatastreamService.js +106 -44
- package/dist/services/TriggerService.d.ts.map +1 -1
- package/dist/services/TriggerService.js +54 -30
- package/dist/services/UsersService.d.ts +2 -1
- package/dist/services/UsersService.d.ts.map +1 -1
- package/dist/services/UsersService.js +364 -283
- package/dist/services/VocabularyService.d.ts +2 -0
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +61 -2
- package/dist/services/WorkflowStepsService.d.ts +11 -0
- package/dist/services/WorkflowStepsService.d.ts.map +1 -1
- package/dist/services/WorkflowStepsService.js +32 -3
- package/dist/services/WorkspaceService.d.ts +2 -2
- package/dist/services/WorkspaceService.d.ts.map +1 -1
- package/dist/services/WorkspaceService.js +5 -5
- package/dist/services/doi-v2/bindings.d.ts.map +1 -1
- package/dist/services/doi-v2/bindings.js +3 -20
- package/dist/services/doi-v2/config.d.ts +1 -0
- package/dist/services/doi-v2/config.d.ts.map +1 -1
- package/dist/services/doi-v2/config.js +13 -5
- package/dist/services/doi-v2/runtime.d.ts.map +1 -1
- package/dist/services/doi-v2/runtime.js +14 -54
- package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
- package/dist/services/figshare-v2/bindings.js +3 -20
- package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
- package/dist/services/figshare-v2/runtime.js +11 -58
- package/dist/services/form-record-access-user.d.ts +3 -0
- package/dist/services/form-record-access-user.d.ts.map +1 -0
- package/dist/services/form-record-access-user.js +23 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +45 -3
- package/dist/services/integration-v2/bindings.d.ts +3 -0
- package/dist/services/integration-v2/bindings.d.ts.map +1 -0
- package/dist/services/integration-v2/bindings.js +91 -0
- package/dist/services/integration-v2/runtime.d.ts +3 -0
- package/dist/services/integration-v2/runtime.d.ts.map +1 -0
- package/dist/services/integration-v2/runtime.js +50 -0
- package/dist/services/internal-record-schema-authorization.d.ts +8 -0
- package/dist/services/internal-record-schema-authorization.d.ts.map +1 -0
- package/dist/services/internal-record-schema-authorization.js +16 -0
- package/dist/services/oni-v2/audit.d.ts +19 -0
- package/dist/services/oni-v2/audit.d.ts.map +1 -0
- package/dist/services/oni-v2/audit.js +50 -0
- package/dist/services/oni-v2/bindings.d.ts +7 -0
- package/dist/services/oni-v2/bindings.d.ts.map +1 -0
- package/dist/services/oni-v2/bindings.js +31 -0
- package/dist/services/oni-v2/config.d.ts +12 -0
- package/dist/services/oni-v2/config.d.ts.map +1 -0
- package/dist/services/oni-v2/config.js +134 -0
- package/dist/services/oni-v2/context.d.ts +3 -0
- package/dist/services/oni-v2/context.d.ts.map +1 -0
- package/dist/services/oni-v2/context.js +17 -0
- package/dist/services/oni-v2/crate.d.ts +17 -0
- package/dist/services/oni-v2/crate.d.ts.map +1 -0
- package/dist/services/oni-v2/crate.js +504 -0
- package/dist/services/oni-v2/flydriveOcflStore.d.ts +69 -0
- package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +1 -0
- package/dist/services/oni-v2/flydriveOcflStore.js +325 -0
- package/dist/services/oni-v2/ingestion.d.ts +37 -0
- package/dist/services/oni-v2/ingestion.d.ts.map +1 -0
- package/dist/services/oni-v2/ingestion.js +91 -0
- package/dist/services/oni-v2/mapping.d.ts +17 -0
- package/dist/services/oni-v2/mapping.d.ts.map +1 -0
- package/dist/services/oni-v2/mapping.js +137 -0
- package/dist/services/oni-v2/repository.d.ts +9 -0
- package/dist/services/oni-v2/repository.d.ts.map +1 -0
- package/dist/services/oni-v2/repository.js +180 -0
- package/dist/services/oni-v2/runtime.d.ts +23 -0
- package/dist/services/oni-v2/runtime.d.ts.map +1 -0
- package/dist/services/oni-v2/runtime.js +121 -0
- package/dist/services/oni-v2/templating.d.ts +11 -0
- package/dist/services/oni-v2/templating.d.ts.map +1 -0
- package/dist/services/oni-v2/templating.js +27 -0
- package/dist/services/oni-v2/types.d.ts +100 -0
- package/dist/services/oni-v2/types.d.ts.map +1 -0
- package/dist/services/oni-v2/types.js +3 -0
- package/dist/services/raid-v2/audit.d.ts +10 -0
- package/dist/services/raid-v2/audit.d.ts.map +1 -0
- package/dist/services/raid-v2/audit.js +29 -0
- package/dist/services/raid-v2/errors.d.ts +85 -0
- package/dist/services/raid-v2/errors.d.ts.map +1 -0
- package/dist/services/raid-v2/errors.js +36 -0
- package/dist/services/raid-v2/http.d.ts +4 -0
- package/dist/services/raid-v2/http.d.ts.map +1 -0
- package/dist/services/raid-v2/http.js +84 -0
- package/dist/services/raid-v2/logger.d.ts +8 -0
- package/dist/services/raid-v2/logger.d.ts.map +1 -0
- package/dist/services/raid-v2/logger.js +30 -0
- package/dist/services/raid-v2/mapping.d.ts +9 -0
- package/dist/services/raid-v2/mapping.d.ts.map +1 -0
- package/dist/services/raid-v2/mapping.js +168 -0
- package/dist/services/raid-v2/runtime.d.ts +5 -0
- package/dist/services/raid-v2/runtime.d.ts.map +1 -0
- package/dist/services/raid-v2/runtime.js +135 -0
- package/dist/services/raid-v2/tags.d.ts +11 -0
- package/dist/services/raid-v2/tags.d.ts.map +1 -0
- package/dist/services/raid-v2/tags.js +12 -0
- package/dist/services/raid-v2/types.d.ts +66 -0
- package/dist/services/raid-v2/types.d.ts.map +1 -0
- package/dist/services/raid-v2/types.js +3 -0
- package/dist/services/record-hooks/coordinator.d.ts +64 -0
- package/dist/services/record-hooks/coordinator.d.ts.map +1 -0
- package/dist/services/record-hooks/coordinator.js +276 -0
- package/dist/visitor/client.visitor.d.ts +6 -0
- package/dist/visitor/client.visitor.d.ts.map +1 -1
- package/dist/visitor/client.visitor.js +59 -14
- package/dist/visitor/construct.visitor.d.ts +27 -1
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +265 -177
- package/dist/visitor/context-variables.visitor.d.ts +3 -1
- package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
- package/dist/visitor/context-variables.visitor.js +15 -1
- package/dist/visitor/data-value.visitor.d.ts +6 -0
- package/dist/visitor/data-value.visitor.d.ts.map +1 -1
- package/dist/visitor/data-value.visitor.js +10 -1
- package/dist/visitor/json-type-def.visitor.d.ts +6 -0
- package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
- package/dist/visitor/json-type-def.visitor.js +10 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +11 -0
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +228 -133
- package/dist/visitor/related-object-data-inline.visitor.d.ts +31 -0
- package/dist/visitor/related-object-data-inline.visitor.d.ts.map +1 -0
- package/dist/visitor/related-object-data-inline.visitor.js +96 -0
- package/dist/visitor/template.visitor.d.ts +17 -2
- package/dist/visitor/template.visitor.d.ts.map +1 -1
- package/dist/visitor/template.visitor.js +60 -22
- package/dist/visitor/validator.visitor.d.ts +49 -7
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +275 -178
- package/dist/waterline-models/AttachmentMetadata.d.ts +22 -0
- package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
- package/dist/waterline-models/AttachmentMetadata.js +147 -3
- package/dist/waterline-models/BrandingConfig.d.ts +7 -0
- package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfig.js +16 -1
- package/dist/waterline-models/BrandingConfigHistory.d.ts +11 -2
- package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfigHistory.js +21 -1
- package/dist/waterline-models/DashboardConfiguration.d.ts +29 -0
- package/dist/waterline-models/DashboardConfiguration.d.ts.map +1 -0
- package/dist/waterline-models/DashboardConfiguration.js +52 -0
- package/dist/waterline-models/RecordType.d.ts +9 -0
- package/dist/waterline-models/RecordType.d.ts.map +1 -1
- package/dist/waterline-models/RecordType.js +16 -1
- package/dist/waterline-models/User.d.ts.map +1 -1
- package/dist/waterline-models/User.js +10 -15
- 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 +60 -47
- package/dist/config/datapubs.config.d.ts +0 -72
- package/dist/config/datapubs.config.d.ts.map +0 -1
- package/dist/config/datapubs.config.js +0 -74
|
@@ -18,6 +18,8 @@ const http_1 = require("./figshare-v2/http");
|
|
|
18
18
|
const RBValidationError_1 = require("../model/RBValidationError");
|
|
19
19
|
const IntegrationAuditModel_1 = require("../model/storage/IntegrationAuditModel");
|
|
20
20
|
const types_1 = require("./figshare-v2/types");
|
|
21
|
+
const lodash_1 = require("lodash");
|
|
22
|
+
const RecordsService_1 = require("../RecordsService");
|
|
21
23
|
var Services;
|
|
22
24
|
(function (Services) {
|
|
23
25
|
class FigshareService extends CoreService_1.Services.Core.Service {
|
|
@@ -59,8 +61,8 @@ var Services;
|
|
|
59
61
|
if (error instanceof RBValidationError_1.RBValidationError) {
|
|
60
62
|
return {
|
|
61
63
|
responseSummary: {
|
|
62
|
-
displayErrors: error.displayErrors
|
|
63
|
-
}
|
|
64
|
+
displayErrors: error.displayErrors,
|
|
65
|
+
},
|
|
64
66
|
};
|
|
65
67
|
}
|
|
66
68
|
const httpError = error;
|
|
@@ -77,8 +79,8 @@ var Services;
|
|
|
77
79
|
...(statusCode != null ? { statusCode } : {}),
|
|
78
80
|
// Plain-text API responses (e.g. "Unauthorized") still carry diagnostic value;
|
|
79
81
|
// keep them in the audit summary (same field name as doi-v2's toResponseSummary).
|
|
80
|
-
...(responseBody != null ? { rawResponseBody: String(responseBody) } : {})
|
|
81
|
-
}
|
|
82
|
+
...(responseBody != null ? { rawResponseBody: String(responseBody) } : {}),
|
|
83
|
+
},
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
86
|
wrapHttpError(error, message, fallbackStatus) {
|
|
@@ -90,7 +92,8 @@ var Services;
|
|
|
90
92
|
throw new RBValidationError_1.RBValidationError({
|
|
91
93
|
message: `${this.msgPrefix()} ${message}`,
|
|
92
94
|
options: { cause: error },
|
|
93
|
-
displayErrors: this.figshareResponseToRBValidationError(statusCode ?? 500, undefined, figshareMessage)
|
|
95
|
+
displayErrors: this.figshareResponseToRBValidationError(statusCode ?? 500, undefined, figshareMessage)
|
|
96
|
+
.displayErrors,
|
|
94
97
|
});
|
|
95
98
|
}
|
|
96
99
|
getFigshareResponseMessage(error) {
|
|
@@ -125,7 +128,7 @@ var Services;
|
|
|
125
128
|
: TranslationService.t(message);
|
|
126
129
|
return new RBValidationError_1.RBValidationError({
|
|
127
130
|
message: `${this.msgPrefix()} ${messagePrefix ?? translated}`,
|
|
128
|
-
displayErrors: [{ code: message, title: this.msgPrefix(), detail: translated }]
|
|
131
|
+
displayErrors: [{ code: message, title: this.msgPrefix(), detail: translated }],
|
|
129
132
|
});
|
|
130
133
|
}
|
|
131
134
|
assertConfig(record, operation) {
|
|
@@ -225,12 +228,14 @@ var Services;
|
|
|
225
228
|
const dataLocations = ((0, types_1.getRecordField)(record, config.record.dataLocationsPath) ?? []);
|
|
226
229
|
const recordConfig = sails.config.record;
|
|
227
230
|
const datastreamServiceName = String(recordConfig?.datastreamService ?? '');
|
|
228
|
-
const datastreamService = datastreamServiceName
|
|
231
|
+
const datastreamService = datastreamServiceName
|
|
232
|
+
? sails.services?.[datastreamServiceName]
|
|
233
|
+
: undefined;
|
|
229
234
|
for (const entry of [...dataLocations]) {
|
|
230
235
|
if (entry.type !== 'attachment' || entry.fileId == null) {
|
|
231
236
|
continue;
|
|
232
237
|
}
|
|
233
|
-
const uploaded = articleFiles.find(
|
|
238
|
+
const uploaded = articleFiles.find(file => file.name === (entry.name ?? ''));
|
|
234
239
|
if (uploaded == null) {
|
|
235
240
|
continue;
|
|
236
241
|
}
|
|
@@ -242,7 +247,7 @@ var Services;
|
|
|
242
247
|
catch (error) {
|
|
243
248
|
sails.log.warn(`FigService - failed to remove datastream for record '${record.redboxOid ?? record.id ?? ''}'`, {
|
|
244
249
|
entry,
|
|
245
|
-
error: error instanceof Error ? error.message : String(error)
|
|
250
|
+
error: error instanceof Error ? error.message : String(error),
|
|
246
251
|
});
|
|
247
252
|
}
|
|
248
253
|
}
|
|
@@ -261,7 +266,7 @@ var Services;
|
|
|
261
266
|
notes: `File name: ${uploaded.name}`,
|
|
262
267
|
originalFileName: uploaded.name,
|
|
263
268
|
ignore: true,
|
|
264
|
-
selected: entry.selected ?? false
|
|
269
|
+
selected: entry.selected ?? false,
|
|
265
270
|
});
|
|
266
271
|
}
|
|
267
272
|
(0, types_1.setRecordField)(record, config.record.dataLocationsPath, dataLocations);
|
|
@@ -284,7 +289,7 @@ var Services;
|
|
|
284
289
|
return false;
|
|
285
290
|
}
|
|
286
291
|
const files = await this.getArticleFiles(client, articleId);
|
|
287
|
-
const uploadInProgress = files.some(
|
|
292
|
+
const uploadInProgress = files.some(entry => String(entry.status ?? '').toLowerCase() === 'created');
|
|
288
293
|
if (uploadInProgress) {
|
|
289
294
|
sails.log.warn(`FigService - the article id '${articleId}' has an upload in progress`);
|
|
290
295
|
return false;
|
|
@@ -300,9 +305,10 @@ var Services;
|
|
|
300
305
|
if (!(await this.isArticleReadyForWorkflowTransition(config, record, articleId, figshareTargetFieldKey, figshareTargetFieldValue))) {
|
|
301
306
|
throw new Error(`Cannot transition ${msgPartial} because the linked article is not in the required state`);
|
|
302
307
|
}
|
|
303
|
-
const currentRec = await RecordsService.getMeta(oid);
|
|
308
|
+
const currentRec = (await RecordsService.getMeta(oid));
|
|
304
309
|
const brandId = currentRec.metaMetadata?.brandId;
|
|
305
|
-
const brand = (brandId ? (BrandingService.getBrandById(brandId) ?? BrandingService.getBrand(brandId)) : null) ??
|
|
310
|
+
const brand = (brandId ? (BrandingService.getBrandById(brandId) ?? BrandingService.getBrand(brandId)) : null) ??
|
|
311
|
+
BrandingService.getDefault();
|
|
306
312
|
const userRoles = user.roles ?? [];
|
|
307
313
|
const hasEditAccess = await RecordsService.hasEditAccess(brand, user, userRoles, currentRec);
|
|
308
314
|
if (!hasEditAccess) {
|
|
@@ -314,11 +320,26 @@ var Services;
|
|
|
314
320
|
throw new Error(`Cannot transition ${msgPartial} because record type is missing`);
|
|
315
321
|
}
|
|
316
322
|
const nextStepResp = await WorkflowStepsService.get(recordType, targetStep).toPromise();
|
|
317
|
-
const
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
323
|
+
const recordUpdateResult = await RecordsService.updateMetaInternal({
|
|
324
|
+
actor: { kind: 'service', id: 'FigshareService.transitionWorkflowForRecord' },
|
|
325
|
+
authorization: { kind: 'record-edit' },
|
|
326
|
+
mutationClass: 'transition',
|
|
327
|
+
operation: 'transition',
|
|
328
|
+
brand,
|
|
329
|
+
oid,
|
|
330
|
+
record: currentRec,
|
|
331
|
+
user,
|
|
332
|
+
targetStep: nextStepResp,
|
|
333
|
+
});
|
|
334
|
+
if (recordUpdateResult.wasPersisted()) {
|
|
335
|
+
if (recordUpdateResult.outcome === 'saved-with-warnings') {
|
|
336
|
+
sails.log.warn(`FigService - updated ${msgPartial} with warnings`, {
|
|
337
|
+
requestId: recordUpdateResult.requestId,
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
sails.log.info(`FigService - updated ${msgPartial}`);
|
|
342
|
+
}
|
|
322
343
|
}
|
|
323
344
|
else {
|
|
324
345
|
throw new Error(`Failed to update ${msgPartial}: ${JSON.stringify(recordUpdateResult)}`);
|
|
@@ -388,15 +409,32 @@ var Services;
|
|
|
388
409
|
this.wrapHttpError(error, TranslationService.t('figshare-error-syncing-record'));
|
|
389
410
|
}
|
|
390
411
|
}
|
|
391
|
-
async persistSyncRecord(oid, record, user) {
|
|
412
|
+
async persistSyncRecord(oid, record, user, previousMetadata = {}) {
|
|
392
413
|
try {
|
|
393
414
|
const brandName = (0, config_1.getBrandName)(record);
|
|
394
415
|
const brand = BrandingService.getBrand(brandName);
|
|
395
|
-
const response = await RecordsService.
|
|
396
|
-
|
|
416
|
+
const response = await RecordsService.updateMetaInternal({
|
|
417
|
+
actor: { kind: 'service', id: 'FigshareService.persistSyncRecord' },
|
|
418
|
+
authorization: { kind: 'record-edit' },
|
|
419
|
+
mutationClass: 'external-side-effect',
|
|
420
|
+
brand,
|
|
421
|
+
oid,
|
|
422
|
+
record: record,
|
|
423
|
+
user,
|
|
424
|
+
triggerPreSaveTriggers: false,
|
|
425
|
+
triggerPostSaveTriggers: false,
|
|
426
|
+
metadata: (0, RecordsService_1.createRecordMetadataDelta)(previousMetadata, record.metadata),
|
|
427
|
+
metadataMode: 'pre-applied',
|
|
428
|
+
});
|
|
429
|
+
if (response != null && typeof response.wasPersisted === 'function' && !response.wasPersisted()) {
|
|
397
430
|
sails.log.error(`FigService - failed to persist Figshare sync state for ${oid}: ${JSON.stringify(response)}`);
|
|
398
431
|
return false;
|
|
399
432
|
}
|
|
433
|
+
if (response?.outcome === 'saved-with-warnings') {
|
|
434
|
+
sails.log.warn(`FigService - persisted Figshare sync state with warnings for ${oid}`, {
|
|
435
|
+
requestId: response.requestId,
|
|
436
|
+
});
|
|
437
|
+
}
|
|
400
438
|
return true;
|
|
401
439
|
}
|
|
402
440
|
catch (error) {
|
|
@@ -422,9 +460,10 @@ var Services;
|
|
|
422
460
|
if (this.getConfig(record) == null) {
|
|
423
461
|
return record;
|
|
424
462
|
}
|
|
463
|
+
const previousMetadata = (0, lodash_1.cloneDeep)(record.metadata);
|
|
425
464
|
void this.syncRecordWithFigshare(record, `${oid}:post`, 'post-save')
|
|
426
465
|
.then(async (updatedRecord) => {
|
|
427
|
-
const persisted = await this.persistSyncRecord(oid, updatedRecord, user);
|
|
466
|
+
const persisted = await this.persistSyncRecord(oid, updatedRecord, user, previousMetadata);
|
|
428
467
|
if (persisted === false) {
|
|
429
468
|
const config = this.getConfig(updatedRecord);
|
|
430
469
|
if (config != null) {
|
|
@@ -461,7 +500,7 @@ var Services;
|
|
|
461
500
|
}
|
|
462
501
|
})
|
|
463
502
|
.catch(async (error) => {
|
|
464
|
-
await this.persistSyncRecord(oid, record, user);
|
|
503
|
+
await this.persistSyncRecord(oid, record, user, previousMetadata);
|
|
465
504
|
sails.log.error(`FigService - uploadFilesToFigshareArticle sync failed for ${oid}`, error);
|
|
466
505
|
});
|
|
467
506
|
}
|
|
@@ -516,7 +555,8 @@ var Services;
|
|
|
516
555
|
sails.log.error(`FigService - cannot publish uploaded files because the record oid is empty before calling RecordsService.getMeta`);
|
|
517
556
|
return;
|
|
518
557
|
}
|
|
519
|
-
const record = await RecordsService.getMeta(oid);
|
|
558
|
+
const record = (await RecordsService.getMeta(oid));
|
|
559
|
+
const previousMetadata = (0, lodash_1.cloneDeep)(record.metadata);
|
|
520
560
|
const config = this.getConfig(record);
|
|
521
561
|
if (config == null) {
|
|
522
562
|
return;
|
|
@@ -586,7 +626,7 @@ var Services;
|
|
|
586
626
|
const publishResult = await client.publishArticle(articleId, {});
|
|
587
627
|
const article = await client.getArticle(articleId);
|
|
588
628
|
const updatedRecord = this.writeBack(record, article, publishResult);
|
|
589
|
-
const persisted = await this.persistSyncRecord(oid, updatedRecord, user);
|
|
629
|
+
const persisted = await this.persistSyncRecord(oid, updatedRecord, user, previousMetadata);
|
|
590
630
|
if (persisted === false) {
|
|
591
631
|
throw new Error(`Failed to persist Figshare publish state for record '${oid}'.`);
|
|
592
632
|
}
|
|
@@ -630,7 +670,8 @@ var Services;
|
|
|
630
670
|
if (!oid.trim()) {
|
|
631
671
|
return;
|
|
632
672
|
}
|
|
633
|
-
let record = await RecordsService.getMeta(oid);
|
|
673
|
+
let record = (await RecordsService.getMeta(oid));
|
|
674
|
+
const previousMetadata = (0, lodash_1.cloneDeep)(record.metadata);
|
|
634
675
|
const config = this.getConfig(record);
|
|
635
676
|
if (config == null) {
|
|
636
677
|
return;
|
|
@@ -644,8 +685,8 @@ var Services;
|
|
|
644
685
|
phase: 'cleanup-uploaded-files',
|
|
645
686
|
});
|
|
646
687
|
try {
|
|
647
|
-
record = await this.cleanupUploadedFiles(record, articleId);
|
|
648
|
-
const persisted = await this.persistSyncRecord(oid, record, user);
|
|
688
|
+
record = (await this.cleanupUploadedFiles(record, articleId));
|
|
689
|
+
const persisted = await this.persistSyncRecord(oid, record, user, previousMetadata);
|
|
649
690
|
if (persisted === false) {
|
|
650
691
|
throw new Error(`Failed to persist Figshare cleanup state for record '${oid}'.`);
|
|
651
692
|
}
|
|
@@ -667,7 +708,7 @@ var Services;
|
|
|
667
708
|
const queueMessage = (0, queue_1.buildPublishAfterUploadsMessage)(oid, articleId, user, brandId);
|
|
668
709
|
const jobName = 'Figshare-PublishAfterUpload-Service';
|
|
669
710
|
const record = {
|
|
670
|
-
metaMetadata: { brandId }
|
|
711
|
+
metaMetadata: { brandId },
|
|
671
712
|
};
|
|
672
713
|
const config = this.getConfig(record);
|
|
673
714
|
const scheduleIn = String(config?.queue.publishAfterUploadDelay ?? 'in 2 minutes');
|
|
@@ -682,7 +723,7 @@ var Services;
|
|
|
682
723
|
const queueMessage = (0, queue_1.buildDeleteFilesMessage)(oid, user, brandId, articleId);
|
|
683
724
|
const jobName = 'Figshare-UploadedFilesCleanup-Service';
|
|
684
725
|
const record = {
|
|
685
|
-
metaMetadata: { brandId }
|
|
726
|
+
metaMetadata: { brandId },
|
|
686
727
|
};
|
|
687
728
|
const config = this.getConfig(record);
|
|
688
729
|
const scheduleIn = String(config?.queue.uploadedFilesCleanupDelay ?? 'in 5 minutes');
|
|
@@ -730,7 +771,7 @@ var Services;
|
|
|
730
771
|
}
|
|
731
772
|
let auditCtx = null;
|
|
732
773
|
try {
|
|
733
|
-
const record = await RecordsService.getMeta(oid);
|
|
774
|
+
const record = (await RecordsService.getMeta(oid));
|
|
734
775
|
const config = this.getConfig(record);
|
|
735
776
|
if (config == null) {
|
|
736
777
|
continue;
|
|
@@ -769,4 +810,4 @@ var Services;
|
|
|
769
810
|
Services.FigshareService = FigshareService;
|
|
770
811
|
})(Services || (exports.Services = Services = {}));
|
|
771
812
|
module.exports.Services = Services;
|
|
772
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlnc2hhcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0ZpZ3NoYXJlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBc0Q7QUFDdEQsaURBQWlIO0FBQ2pILG1EQUF5RDtBQUN6RCw2Q0FBa0Y7QUFDbEYscURBQW9FO0FBQ3BFLGlEQUF1RDtBQUN2RCxtREFBeUQ7QUFDekQsbURBQTZEO0FBQzdELHVEQUF5RDtBQUN6RCwrQ0FBbUc7QUFDbkcsbURBTStCO0FBQy9CLCtDQUErRjtBQUMvRixxREFBd0U7QUFDeEUsNkNBQXVGO0FBQ3ZGLGtFQUErRDtBQUUvRCxrRkFBZ0Y7QUFDaEYsK0NBYzZCO0FBSTdCLElBQWlCLFFBQVEsQ0E4eUJ4QjtBQTl5QkQsV0FBaUIsUUFBUTtJQUN2QixNQUFhLGVBQWdCLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNyQyxnQkFBZ0IsR0FBYTtZQUM5Qyw2QkFBNkI7WUFDN0IsOEJBQThCO1lBQzlCLHVCQUF1QjtZQUN2Qiw4QkFBOEI7WUFDOUIsNEJBQTRCO1lBQzVCLGtCQUFrQjtZQUNsQiw4QkFBOEI7WUFDOUIsMERBQTBEO1lBQzFELG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsWUFBWTtZQUNaLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsV0FBVztZQUNYLHdCQUF3QjtZQUN4QixNQUFNO1NBQ1AsQ0FBQztRQUVNLFVBQVUsQ0FBVTtRQUVwQixTQUFTO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMvRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUM7UUFFTyw2QkFBNkIsQ0FBQyxPQUFnQztZQUNwRSxPQUFPLE9BQU8sT0FBTyxFQUFF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
|
|
813
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlnc2hhcmVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0ZpZ3NoYXJlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBc0Q7QUFDdEQsaURBQWlIO0FBQ2pILG1EQUF5RDtBQUN6RCw2Q0FBa0Y7QUFDbEYscURBQW9FO0FBQ3BFLGlEQUF1RDtBQUN2RCxtREFBeUQ7QUFDekQsbURBQTZEO0FBQzdELHVEQUF5RDtBQUN6RCwrQ0FBbUc7QUFDbkcsbURBTStCO0FBQy9CLCtDQUErRjtBQUMvRixxREFBd0U7QUFDeEUsNkNBQXVGO0FBQ3ZGLGtFQUErRDtBQUUvRCxrRkFBZ0Y7QUFDaEYsK0NBYzZCO0FBQzdCLG1DQUFtQztBQUNuQyxzREFBOEQ7QUFJOUQsSUFBaUIsUUFBUSxDQXErQnhCO0FBcitCRCxXQUFpQixRQUFRO0lBQ3ZCLE1BQWEsZUFBZ0IsU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBQ3JDLGdCQUFnQixHQUFhO1lBQzlDLDZCQUE2QjtZQUM3Qiw4QkFBOEI7WUFDOUIsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5Qiw0QkFBNEI7WUFDNUIsa0JBQWtCO1lBQ2xCLDhCQUE4QjtZQUM5QiwwREFBMEQ7WUFDMUQsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxZQUFZO1lBQ1osYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLE1BQU07U0FDUCxDQUFDO1FBRU0sVUFBVSxDQUFVO1FBRXBCLFNBQVM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQztRQUVPLDZCQUE2QixDQUFDLE9BQWdD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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Services as services } from '../CoreService';
|
|
2
|
-
import { FormValidatorSummaryErrors, FormConfigFrame, TemplateCompileInput, FormModesConfig, ReusableFormDefinitions } from "@researchdatabox/sails-ng-common";
|
|
2
|
+
import { FormValidatorSummaryErrors, FormConfigFrame, TemplateCompileInput, FormModesConfig, ReusableFormDefinitions, RecordValueChange, RecordValuePath } from "@researchdatabox/sails-ng-common";
|
|
3
3
|
export declare namespace Services {
|
|
4
4
|
type BasicRedboxRecord = {
|
|
5
5
|
redboxOid: string;
|
|
@@ -10,31 +10,11 @@ export declare namespace Services {
|
|
|
10
10
|
* The path from the root of the item to the key in the original, which has a change.
|
|
11
11
|
* Object property keys are strings, array indicies are integers.
|
|
12
12
|
*/
|
|
13
|
-
type FormRecordConsistencyChangePath =
|
|
13
|
+
type FormRecordConsistencyChangePath = RecordValuePath;
|
|
14
14
|
/**
|
|
15
15
|
* The properties of one change.
|
|
16
16
|
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* The kind of change:
|
|
20
|
-
* - "add": an object property or array index that was not previously present
|
|
21
|
-
* - "delete": an object property or array index that was previously present has been removed
|
|
22
|
-
* - "change": an object property or array index that already existed has a value that has changed
|
|
23
|
-
*/
|
|
24
|
-
kind: "add" | "delete" | "change";
|
|
25
|
-
/**
|
|
26
|
-
* The path from the root of the item to the key in the original.
|
|
27
|
-
*/
|
|
28
|
-
path: FormRecordConsistencyChangePath;
|
|
29
|
-
/**
|
|
30
|
-
* The original value of the property or array index before the change.
|
|
31
|
-
*/
|
|
32
|
-
original: unknown;
|
|
33
|
-
/**
|
|
34
|
-
* The new value of the property or array index after the change.
|
|
35
|
-
*/
|
|
36
|
-
changed: unknown;
|
|
37
|
-
}
|
|
17
|
+
type FormRecordConsistencyChange = RecordValueChange;
|
|
38
18
|
/**
|
|
39
19
|
* A service for verifying that form config and one or two associated Records are consistent.
|
|
40
20
|
*
|
|
@@ -80,6 +60,11 @@ export declare namespace Services {
|
|
|
80
60
|
* @return The merged record.
|
|
81
61
|
*/
|
|
82
62
|
mergeRecordClientFormConfig(original: BasicRedboxRecord, changed: BasicRedboxRecord, clientFormConfig: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<BasicRedboxRecord>;
|
|
63
|
+
/**
|
|
64
|
+
* Project authoritative metadata to the fields in an already filtered client form.
|
|
65
|
+
* This intentionally uses an empty original so server-only metadata is not retained.
|
|
66
|
+
*/
|
|
67
|
+
projectMetadataClientFormConfig(metadata: Record<string, unknown>, clientFormConfig: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<Record<string, unknown>>;
|
|
83
68
|
/**
|
|
84
69
|
* Merge the original and changed records, using the client form config to know which changes to include.
|
|
85
70
|
* @param original The existing original record.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormRecordConsistencyService.d.ts","sourceRoot":"","sources":["../../src/services/FormRecordConsistencyService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACQ,0BAA0B,EACrC,eAAe,EAAE,oBAAoB,EAAE,eAAe,EACtD,uBAAuB,
|
|
1
|
+
{"version":3,"file":"FormRecordConsistencyService.d.ts","sourceRoot":"","sources":["../../src/services/FormRecordConsistencyService.ts"],"names":[],"mappings":"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"}
|