@researchdatabox/redbox-core 5.0.4 → 5.1.0-beta.12573
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 +5 -1
- 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 +49 -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 +109 -13
- 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 +49 -9
- 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/FigsharePublishing.d.ts +1 -1
- 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 +8 -2
- 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.map +1 -1
- package/dist/services/FigshareService.js +8 -7
- 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 +11 -11
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +71 -48
- 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 +317 -26
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +5145 -765
- 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/figshare-v2/worker.d.ts.map +1 -1
- package/dist/services/figshare-v2/worker.js +254 -74
- 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 +59 -45
- 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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./failure"), exports);
|
|
19
|
+
__exportStar(require("./policy"), exports);
|
|
20
|
+
__exportStar(require("./legacy-result"), exports);
|
|
21
|
+
__exportStar(require("./executor"), exports);
|
|
22
|
+
__exportStar(require("./audit"), exports);
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9uLWV4ZWN1dGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsa0RBQWdDO0FBQ2hDLDZDQUEyQjtBQUMzQiwwQ0FBd0IifQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
/**
|
|
3
|
+
* A mutable cell reporting whether the value a hook returned can genuinely be
|
|
4
|
+
* cancelled. It is only known after the hook has been invoked, which is later
|
|
5
|
+
* than the point where the action is described.
|
|
6
|
+
*/
|
|
7
|
+
export interface CancellationCell {
|
|
8
|
+
value: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface LegacyEffectAdaptation {
|
|
11
|
+
effect: Effect.Effect<unknown, unknown, never>;
|
|
12
|
+
cooperativeCancellation: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** Adapt whatever a legacy hook returned to an Effect. */
|
|
15
|
+
export declare function adaptLegacyHookResult(value: unknown): LegacyEffectAdaptation;
|
|
16
|
+
/**
|
|
17
|
+
* Wrap a legacy hook call so a synchronous throw is captured as a failure and
|
|
18
|
+
* the call itself is deferred until the attempt starts.
|
|
19
|
+
*/
|
|
20
|
+
export declare function legacyHookToEffect(invoke: () => unknown, cancellation?: CancellationCell): Effect.Effect<unknown, unknown, never>;
|
|
21
|
+
//# sourceMappingURL=legacy-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-result.d.ts","sourceRoot":"","sources":["../../src/action-execution/legacy-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAmDD,0DAA0D;AAC1D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAW5E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,OAAO,EACrB,YAAY,GAAE,gBAAkC,GAC/C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAMxC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adaptLegacyHookResult = adaptLegacyHookResult;
|
|
4
|
+
exports.legacyHookToEffect = legacyHookToEffect;
|
|
5
|
+
const effect_1 = require("effect");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
/** Legacy Observable hooks are first-value: later emissions are ignored. */
|
|
8
|
+
function observableEffect(observable) {
|
|
9
|
+
return effect_1.Effect.async((resume, signal) => {
|
|
10
|
+
let settled = false;
|
|
11
|
+
const settle = (effect) => {
|
|
12
|
+
if (settled) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
settled = true;
|
|
16
|
+
resume(effect);
|
|
17
|
+
// A synchronous Observable settles while `subscribe` is still running,
|
|
18
|
+
// so unsubscribing waits until `subscription` has been assigned.
|
|
19
|
+
queueMicrotask(() => subscription.unsubscribe());
|
|
20
|
+
};
|
|
21
|
+
const subscription = observable.subscribe({
|
|
22
|
+
next: value => settle(effect_1.Effect.succeed(value)),
|
|
23
|
+
error: (error) => settle(effect_1.Effect.fail(error)),
|
|
24
|
+
complete: () => settle(effect_1.Effect.fail(new Error('Observable hook completed without a value'))),
|
|
25
|
+
});
|
|
26
|
+
signal.addEventListener('abort', () => {
|
|
27
|
+
settled = true;
|
|
28
|
+
subscription.unsubscribe();
|
|
29
|
+
}, { once: true });
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* There is deliberately no attempt to abort the Promise. Effect stops waiting
|
|
34
|
+
* once the fiber is interrupted, but an opaque Promise side effect continues,
|
|
35
|
+
* which is why Promise-backed hooks report non-cooperative cancellation.
|
|
36
|
+
*/
|
|
37
|
+
function promiseEffect(promise) {
|
|
38
|
+
return effect_1.Effect.tryPromise({ try: () => promise, catch: error => error });
|
|
39
|
+
}
|
|
40
|
+
function isThenable(value) {
|
|
41
|
+
if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return typeof value.then === 'function';
|
|
45
|
+
}
|
|
46
|
+
/** Adapt whatever a legacy hook returned to an Effect. */
|
|
47
|
+
function adaptLegacyHookResult(value) {
|
|
48
|
+
if (effect_1.Effect.isEffect(value)) {
|
|
49
|
+
return { effect: value, cooperativeCancellation: true };
|
|
50
|
+
}
|
|
51
|
+
if ((0, rxjs_1.isObservable)(value)) {
|
|
52
|
+
return { effect: observableEffect(value), cooperativeCancellation: true };
|
|
53
|
+
}
|
|
54
|
+
if (isThenable(value)) {
|
|
55
|
+
return { effect: promiseEffect(value), cooperativeCancellation: false };
|
|
56
|
+
}
|
|
57
|
+
return { effect: effect_1.Effect.succeed(value), cooperativeCancellation: true };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Wrap a legacy hook call so a synchronous throw is captured as a failure and
|
|
61
|
+
* the call itself is deferred until the attempt starts.
|
|
62
|
+
*/
|
|
63
|
+
function legacyHookToEffect(invoke, cancellation = { value: true }) {
|
|
64
|
+
return effect_1.Effect.suspend(() => {
|
|
65
|
+
const adaptation = adaptLegacyHookResult(invoke());
|
|
66
|
+
cancellation.value = adaptation.cooperativeCancellation;
|
|
67
|
+
return adaptation.effect;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LXJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb24tZXhlY3V0aW9uL2xlZ2FjeS1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtRUEsc0RBV0M7QUFNRCxnREFTQztBQTdGRCxtQ0FBZ0M7QUFDaEMsK0JBQWdEO0FBZ0JoRCw0RUFBNEU7QUFDNUUsU0FBUyxnQkFBZ0IsQ0FBQyxVQUErQjtJQUN2RCxPQUFPLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBOEMsRUFBUSxFQUFFO1lBQ3RFLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osT0FBTztZQUNULENBQUM7WUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2YsdUVBQXVFO1lBQ3ZFLGlFQUFpRTtZQUNqRSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUN4QyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxLQUFLLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUM7U0FDNUYsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLGdCQUFnQixDQUNyQixPQUFPLEVBQ1AsR0FBRyxFQUFFO1lBQ0gsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNmLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxPQUE2QjtJQUNsRCxPQUFPLGVBQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWM7SUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDakYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxPQUFRLEtBQThCLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNwRSxDQUFDO0FBRUQsMERBQTBEO0FBQzFELFNBQWdCLHFCQUFxQixDQUFDLEtBQWM7SUFDbEQsSUFBSSxlQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUErQyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3BHLENBQUM7SUFDRCxJQUFJLElBQUEsbUJBQVksRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2hDLE1BQXFCLEVBQ3JCLGVBQWlDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtJQUVoRCxPQUFPLGVBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbkQsWUFBWSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsdUJBQXVCLENBQUM7UUFDeEQsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ActionExecutionMode, ActionExecutionPhase, ActionExecutionPolicy, RetryScheduleConfig } from './types';
|
|
2
|
+
export declare function validateActionId(id: unknown): string;
|
|
3
|
+
export declare function deriveActionId(mode: ActionExecutionMode | string, phase: ActionExecutionPhase | string, index: number, functionExpression: string): string;
|
|
4
|
+
export declare function resolveActionId(configuredId: unknown, mode: ActionExecutionMode | string, phase: ActionExecutionPhase | string, index: number, functionExpression: string): string;
|
|
5
|
+
export declare function validateActionExecutionPolicy(policy: unknown): ActionExecutionPolicy | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Delay before retry number `retryNumber` (1 is the delay after the first
|
|
8
|
+
* failed attempt). Jitter spreads the delay over 50%-150% of the base and is
|
|
9
|
+
* still capped at the configured maximum delay.
|
|
10
|
+
*/
|
|
11
|
+
export declare function retryDelayMs(schedule: RetryScheduleConfig | undefined, retryNumber: number, random?: () => number): number;
|
|
12
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/action-execution/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EAErB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA4DjB,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,mBAAmB,GAAG,MAAM,EAClC,KAAK,EAAE,oBAAoB,GAAG,MAAM,EACpC,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAGR;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,mBAAmB,GAAG,MAAM,EAClC,KAAK,EAAE,oBAAoB,GAAG,MAAM,EACpC,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAKR;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAyChG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EACzC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CAaR"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateActionId = validateActionId;
|
|
4
|
+
exports.deriveActionId = deriveActionId;
|
|
5
|
+
exports.resolveActionId = resolveActionId;
|
|
6
|
+
exports.validateActionExecutionPolicy = validateActionExecutionPolicy;
|
|
7
|
+
exports.retryDelayMs = retryDelayMs;
|
|
8
|
+
const node_crypto_1 = require("node:crypto");
|
|
9
|
+
const failure_1 = require("./failure");
|
|
10
|
+
const MAX_TIMEOUT_MS = 600_000;
|
|
11
|
+
const MAX_DELAY_MS = 60_000;
|
|
12
|
+
const MAX_ATTEMPTS = 5;
|
|
13
|
+
const ACTION_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
|
|
14
|
+
function isIntegerInRange(value, min, max) {
|
|
15
|
+
return typeof value === 'number' && Number.isInteger(value) && value >= min && value <= max;
|
|
16
|
+
}
|
|
17
|
+
function configurationError(message) {
|
|
18
|
+
throw new failure_1.ActionConfigurationError(message);
|
|
19
|
+
}
|
|
20
|
+
function validateJitter(value) {
|
|
21
|
+
if (value === undefined) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
if (typeof value !== 'boolean') {
|
|
25
|
+
configurationError('Retry jitter must be a boolean.');
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
function validateSchedule(schedule) {
|
|
30
|
+
if (!schedule || typeof schedule !== 'object') {
|
|
31
|
+
configurationError('Retry schedule must be an object.');
|
|
32
|
+
}
|
|
33
|
+
const value = schedule;
|
|
34
|
+
if (value.type !== 'fixed' && value.type !== 'exponential') {
|
|
35
|
+
configurationError('Retry schedule type must be fixed or exponential.');
|
|
36
|
+
}
|
|
37
|
+
if (!isIntegerInRange(value.delayMs, 0, MAX_DELAY_MS)) {
|
|
38
|
+
configurationError('Retry delayMs must be an integer from 0 through 60000.');
|
|
39
|
+
}
|
|
40
|
+
const jitter = validateJitter(value.jitter);
|
|
41
|
+
if (value.type === 'fixed') {
|
|
42
|
+
const result = { type: 'fixed', delayMs: value.delayMs };
|
|
43
|
+
if (jitter !== undefined) {
|
|
44
|
+
result.jitter = jitter;
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
if (!isIntegerInRange(value.maxDelayMs, 0, MAX_DELAY_MS) || value.maxDelayMs < value.delayMs) {
|
|
49
|
+
configurationError('Exponential maxDelayMs must be an integer no smaller than delayMs and no greater than 60000.');
|
|
50
|
+
}
|
|
51
|
+
const result = {
|
|
52
|
+
type: 'exponential',
|
|
53
|
+
delayMs: value.delayMs,
|
|
54
|
+
maxDelayMs: value.maxDelayMs,
|
|
55
|
+
};
|
|
56
|
+
if (jitter !== undefined) {
|
|
57
|
+
result.jitter = jitter;
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
function validateActionId(id) {
|
|
62
|
+
if (typeof id !== 'string' || !ACTION_ID_PATTERN.test(id.trim())) {
|
|
63
|
+
configurationError('Action id must be a non-empty string of at most 128 safe characters.');
|
|
64
|
+
}
|
|
65
|
+
return id.trim();
|
|
66
|
+
}
|
|
67
|
+
function deriveActionId(mode, phase, index, functionExpression) {
|
|
68
|
+
const digest = (0, node_crypto_1.createHash)('sha256').update(functionExpression).digest('hex').slice(0, 12);
|
|
69
|
+
return `${mode}.${phase}.${index}.${digest}`;
|
|
70
|
+
}
|
|
71
|
+
function resolveActionId(configuredId, mode, phase, index, functionExpression) {
|
|
72
|
+
if (configuredId === undefined) {
|
|
73
|
+
return deriveActionId(mode, phase, index, functionExpression);
|
|
74
|
+
}
|
|
75
|
+
return validateActionId(configuredId);
|
|
76
|
+
}
|
|
77
|
+
function validateActionExecutionPolicy(policy) {
|
|
78
|
+
if (policy === undefined || policy === null) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
if (typeof policy !== 'object' || Array.isArray(policy)) {
|
|
82
|
+
configurationError('Action execution policy must be an object.');
|
|
83
|
+
}
|
|
84
|
+
const value = policy;
|
|
85
|
+
const result = {};
|
|
86
|
+
if (value.timeoutMs !== undefined) {
|
|
87
|
+
if (!isIntegerInRange(value.timeoutMs, 1, MAX_TIMEOUT_MS)) {
|
|
88
|
+
configurationError('Action timeoutMs must be an integer from 1 through 600000.');
|
|
89
|
+
}
|
|
90
|
+
result.timeoutMs = value.timeoutMs;
|
|
91
|
+
}
|
|
92
|
+
if (value.retry !== undefined) {
|
|
93
|
+
if (!value.retry || typeof value.retry !== 'object' || Array.isArray(value.retry)) {
|
|
94
|
+
configurationError('Retry policy must be an object.');
|
|
95
|
+
}
|
|
96
|
+
const retry = value.retry;
|
|
97
|
+
if (retry.idempotent !== true) {
|
|
98
|
+
configurationError('Retry policy requires idempotent: true.');
|
|
99
|
+
}
|
|
100
|
+
if (!isIntegerInRange(retry.maxAttempts, 1, MAX_ATTEMPTS)) {
|
|
101
|
+
configurationError('Retry maxAttempts must be an integer from 1 through 5.');
|
|
102
|
+
}
|
|
103
|
+
let retryOn;
|
|
104
|
+
if (retry.retryOn !== undefined) {
|
|
105
|
+
if (!Array.isArray(retry.retryOn) || retry.retryOn.some(kind => !(0, failure_1.isActionFailureKind)(kind))) {
|
|
106
|
+
configurationError('Retry retryOn contains an unknown failure kind.');
|
|
107
|
+
}
|
|
108
|
+
retryOn = Array.from(new Set(retry.retryOn));
|
|
109
|
+
}
|
|
110
|
+
result.retry = {
|
|
111
|
+
maxAttempts: retry.maxAttempts,
|
|
112
|
+
retryOn: retryOn ?? ['transient'],
|
|
113
|
+
schedule: retry.schedule === undefined ? undefined : validateSchedule(retry.schedule),
|
|
114
|
+
idempotent: true,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Delay before retry number `retryNumber` (1 is the delay after the first
|
|
121
|
+
* failed attempt). Jitter spreads the delay over 50%-150% of the base and is
|
|
122
|
+
* still capped at the configured maximum delay.
|
|
123
|
+
*/
|
|
124
|
+
function retryDelayMs(schedule, retryNumber, random = Math.random) {
|
|
125
|
+
if (!schedule) {
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
let base = schedule.delayMs;
|
|
129
|
+
if (schedule.type === 'exponential') {
|
|
130
|
+
base = Math.min(schedule.maxDelayMs, schedule.delayMs * 2 ** Math.max(0, retryNumber - 1));
|
|
131
|
+
}
|
|
132
|
+
if (!schedule.jitter || base === 0) {
|
|
133
|
+
return base;
|
|
134
|
+
}
|
|
135
|
+
const sample = Math.min(1, Math.max(0, random()));
|
|
136
|
+
return Math.min(MAX_DELAY_MS, Math.round(base * (0.5 + sample)));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbi1leGVjdXRpb24vcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0VBLDRDQUtDO0FBRUQsd0NBUUM7QUFFRCwwQ0FXQztBQUVELHNFQXlDQztBQU9ELG9DQWlCQztBQW5LRCw2Q0FBeUM7QUFDekMsdUNBQTBFO0FBUzFFLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQztBQUMvQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFDNUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0saUJBQWlCLEdBQUcscUNBQXFDLENBQUM7QUFFaEUsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjLEVBQUUsR0FBVyxFQUFFLEdBQVc7SUFDaEUsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDOUYsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsT0FBZTtJQUN6QyxNQUFNLElBQUksa0NBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQWM7SUFDcEMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0Isa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxRQUFpQjtJQUN6QyxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLGtCQUFrQixDQUFDLG1D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
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
import type { RuntimeFiber } from 'effect/Fiber';
|
|
3
|
+
export declare const ACTION_FAILURE_KINDS: readonly ["configuration", "validation", "domain", "transient", "timeout", "interrupted", "unexpected"];
|
|
4
|
+
export type ActionFailureKind = (typeof ACTION_FAILURE_KINDS)[number];
|
|
5
|
+
export declare const ACTION_EXECUTION_STATUSES: readonly ["succeeded", "failed", "timed_out", "interrupted", "skipped", "dispatched"];
|
|
6
|
+
export type ActionExecutionStatus = (typeof ACTION_EXECUTION_STATUSES)[number];
|
|
7
|
+
export declare const ACTION_SKIPPED_REASONS: readonly ["prior_action_failed"];
|
|
8
|
+
export type ActionSkippedReason = (typeof ACTION_SKIPPED_REASONS)[number];
|
|
9
|
+
export type ActionExecutionMode = 'onCreate' | 'onUpdate' | 'onDelete' | 'onTransitionWorkflow';
|
|
10
|
+
export type ActionExecutionPhase = 'pre' | 'postSync' | 'post';
|
|
11
|
+
export interface ActionExecutionContext {
|
|
12
|
+
executionId: string;
|
|
13
|
+
phaseExecutionId: string;
|
|
14
|
+
mode: ActionExecutionMode;
|
|
15
|
+
phase: ActionExecutionPhase;
|
|
16
|
+
requestId?: string;
|
|
17
|
+
recordOid?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SafeActionFailure {
|
|
20
|
+
kind: ActionFailureKind;
|
|
21
|
+
code: string;
|
|
22
|
+
cancellationCooperative?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ActionExecutionResult {
|
|
25
|
+
actionId: string;
|
|
26
|
+
mode: ActionExecutionMode;
|
|
27
|
+
phase: ActionExecutionPhase;
|
|
28
|
+
index: number;
|
|
29
|
+
status: ActionExecutionStatus;
|
|
30
|
+
attempts: number;
|
|
31
|
+
startedAt: string;
|
|
32
|
+
completedAt: string;
|
|
33
|
+
durationMs: number;
|
|
34
|
+
failure?: SafeActionFailure;
|
|
35
|
+
skippedReason?: ActionSkippedReason;
|
|
36
|
+
}
|
|
37
|
+
export interface ActionExecutionReport {
|
|
38
|
+
context: ActionExecutionContext;
|
|
39
|
+
status: 'completed' | 'failed' | 'partial' | 'dispatched';
|
|
40
|
+
startedAt: string;
|
|
41
|
+
completedAt: string;
|
|
42
|
+
durationMs: number;
|
|
43
|
+
actions: ActionExecutionResult[];
|
|
44
|
+
}
|
|
45
|
+
export interface ActionExecutionPolicy {
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Retries only this hook action. `idempotent: true` does not make the
|
|
49
|
+
* enclosing record request replayable and never authorizes a CAS retry.
|
|
50
|
+
*/
|
|
51
|
+
retry?: {
|
|
52
|
+
maxAttempts: number;
|
|
53
|
+
retryOn?: ActionFailureKind[];
|
|
54
|
+
schedule?: RetryScheduleConfig;
|
|
55
|
+
idempotent: true;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export type RetryScheduleConfig = {
|
|
59
|
+
type: 'fixed';
|
|
60
|
+
delayMs: number;
|
|
61
|
+
jitter?: boolean;
|
|
62
|
+
} | {
|
|
63
|
+
type: 'exponential';
|
|
64
|
+
delayMs: number;
|
|
65
|
+
maxDelayMs: number;
|
|
66
|
+
jitter?: boolean;
|
|
67
|
+
};
|
|
68
|
+
export interface ActionExecutionDependencies {
|
|
69
|
+
now?: () => Date;
|
|
70
|
+
random?: () => number;
|
|
71
|
+
/** Injectable backoff sleep. Defaults to Effect's live Clock service. */
|
|
72
|
+
sleep?: (durationMs: number) => Effect.Effect<void>;
|
|
73
|
+
uuid?: () => string;
|
|
74
|
+
logger?: ActionExecutionLogger;
|
|
75
|
+
supervisor?: ActionExecutionSupervisor;
|
|
76
|
+
/** Receives the terminal result of each detached action. */
|
|
77
|
+
onDetachedActionComplete?: (context: ActionExecutionContext, result: ActionExecutionResult) => void;
|
|
78
|
+
}
|
|
79
|
+
export interface ActionExecutionLogger {
|
|
80
|
+
debug?: (message: string, fields?: Record<string, unknown>) => void;
|
|
81
|
+
info?: (message: string, fields?: Record<string, unknown>) => void;
|
|
82
|
+
warn?: (message: string, fields?: Record<string, unknown>) => void;
|
|
83
|
+
error?: (message: string, fields?: Record<string, unknown>) => void;
|
|
84
|
+
}
|
|
85
|
+
export interface ActionExecutionSupervisor {
|
|
86
|
+
register?: (fiber: RuntimeFiber<unknown, unknown>) => void;
|
|
87
|
+
interruptAll?: () => void;
|
|
88
|
+
}
|
|
89
|
+
export interface ActionExecutionAction<A = unknown> {
|
|
90
|
+
actionId: string;
|
|
91
|
+
mode: ActionExecutionMode;
|
|
92
|
+
phase: ActionExecutionPhase;
|
|
93
|
+
index: number;
|
|
94
|
+
policy?: ActionExecutionPolicy;
|
|
95
|
+
/** Legacy Promise work is not cancellable even when the wait is timed out. */
|
|
96
|
+
cooperativeCancellation?: () => boolean;
|
|
97
|
+
invoke: () => Effect.Effect<A, unknown, never>;
|
|
98
|
+
}
|
|
99
|
+
export interface ActionExecutionOutcome {
|
|
100
|
+
report: ActionExecutionReport;
|
|
101
|
+
/** Kept in memory only for the compatibility adapter. */
|
|
102
|
+
terminalCause?: unknown;
|
|
103
|
+
}
|
|
104
|
+
export interface ActionExecutionOperation {
|
|
105
|
+
executionId: string;
|
|
106
|
+
mode: ActionExecutionMode;
|
|
107
|
+
requestId?: string;
|
|
108
|
+
recordOid?: string;
|
|
109
|
+
reports: ActionExecutionReport[];
|
|
110
|
+
startedAt: string;
|
|
111
|
+
completedThrough?: 'pre' | 'persistence' | 'postSync' | 'post-dispatch';
|
|
112
|
+
/** In-memory lifecycle state for detached actions; never persisted directly. */
|
|
113
|
+
detachedPending?: number;
|
|
114
|
+
detachedResults?: ActionExecutionResult[];
|
|
115
|
+
onDetachedComplete?: () => void;
|
|
116
|
+
detachedCompletedAt?: string;
|
|
117
|
+
/** In-memory guard/state for the exactly-once audit handoff. */
|
|
118
|
+
detachedAuditFinalized?: boolean;
|
|
119
|
+
operationCompletedLogged?: boolean;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/action-execution/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,oBAAoB,yGAQvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,yBAAyB,uFAO5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,eAAO,MAAM,sBAAsB,kCAAmC,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,sBAAsB,CAAC;AAEhG,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEN,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,4DAA4D;IAC5D,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACrG;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACnE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrE;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,8EAA8E;IAC9E,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC;IACxC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,UAAU,GAAG,eAAe,CAAC;IACxE,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ACTION_SKIPPED_REASONS = exports.ACTION_EXECUTION_STATUSES = exports.ACTION_FAILURE_KINDS = void 0;
|
|
4
|
+
exports.ACTION_FAILURE_KINDS = [
|
|
5
|
+
'configuration',
|
|
6
|
+
'validation',
|
|
7
|
+
'domain',
|
|
8
|
+
'transient',
|
|
9
|
+
'timeout',
|
|
10
|
+
'interrupted',
|
|
11
|
+
'unexpected',
|
|
12
|
+
];
|
|
13
|
+
exports.ACTION_EXECUTION_STATUSES = [
|
|
14
|
+
'succeeded',
|
|
15
|
+
'failed',
|
|
16
|
+
'timed_out',
|
|
17
|
+
'interrupted',
|
|
18
|
+
'skipped',
|
|
19
|
+
'dispatched',
|
|
20
|
+
];
|
|
21
|
+
exports.ACTION_SKIPPED_REASONS = ['prior_action_failed'];
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9uLWV4ZWN1dGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHYSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLGVBQWU7SUFDZixZQUFZO0lBQ1osUUFBUTtJQUNSLFdBQVc7SUFDWCxTQUFTO0lBQ1QsYUFBYTtJQUNiLFlBQVk7Q0FDSixDQUFDO0FBSUUsUUFBQSx5QkFBeUIsR0FBRztJQUN2QyxXQUFXO0lBQ1gsUUFBUTtJQUNSLFdBQVc7SUFDWCxhQUFhO0lBQ2IsU0FBUztJQUNULFlBQVk7Q0FDSixDQUFDO0FBSUUsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLHFCQUFxQixDQUFVLENBQUMifQ==
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
export declare const brandingConfigRoute: import("..").ApiRouteDefinition;
|
|
1
2
|
export declare const brandingDraftRoute: import("..").ApiRouteDefinition;
|
|
3
|
+
export declare const brandingFaceUploadRoute: import("..").ApiRouteDefinition;
|
|
4
|
+
export declare const brandingFaceDeleteRoute: import("..").ApiRouteDefinition;
|
|
5
|
+
export declare const brandingUseDefaultRoute: import("..").ApiRouteDefinition;
|
|
6
|
+
export declare const brandingRevertRoute: import("..").ApiRouteDefinition;
|
|
2
7
|
export declare const brandingPreviewRoute: import("..").ApiRouteDefinition;
|
|
8
|
+
export declare const brandingVersionsRoute: import("..").ApiRouteDefinition;
|
|
9
|
+
export declare const brandingVersionPreviewRoute: import("..").ApiRouteDefinition;
|
|
3
10
|
export declare const brandingPublishRoute: import("..").ApiRouteDefinition;
|
|
11
|
+
export declare const brandingRestoreRoute: import("..").ApiRouteDefinition;
|
|
4
12
|
export declare const brandingRollbackRoute: import("..").ApiRouteDefinition;
|
|
5
13
|
export declare const brandingLogoRoute: import("..").ApiRouteDefinition;
|
|
6
14
|
export declare const brandingFaviconRoute: import("..").ApiRouteDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../../src/api-routes/groups/branding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../../src/api-routes/groups/branding.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,mBAAmB,iCAW/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,iCAa9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,iCAwBnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,iCAcnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,iCAanC,CAAC;AAEF,eAAO,MAAM,mBAAmB,iCAa/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iCAWhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,iCAWjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,iCAavC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iCAahC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iCAchC,CAAC;AAEF,eAAO,MAAM,qBAAqB,iCAgBjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,iCAsB7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iCAsBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iCAWhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,mCAgB7B,CAAC"}
|
|
@@ -1,33 +1,100 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.brandingApiRoutes = exports.brandingHistoryRoute = exports.brandingFaviconRoute = exports.brandingLogoRoute = exports.brandingRollbackRoute = exports.brandingPublishRoute = exports.brandingPreviewRoute = exports.brandingDraftRoute = void 0;
|
|
3
|
+
exports.brandingApiRoutes = exports.brandingHistoryRoute = exports.brandingFaviconRoute = exports.brandingLogoRoute = exports.brandingRollbackRoute = exports.brandingRestoreRoute = exports.brandingPublishRoute = exports.brandingVersionPreviewRoute = exports.brandingVersionsRoute = exports.brandingPreviewRoute = exports.brandingRevertRoute = exports.brandingUseDefaultRoute = exports.brandingFaceDeleteRoute = exports.brandingFaceUploadRoute = exports.brandingDraftRoute = exports.brandingConfigRoute = void 0;
|
|
4
4
|
const route_factory_1 = require("../route-factory");
|
|
5
5
|
const common_1 = require("../schemas/common");
|
|
6
|
+
exports.brandingConfigRoute = (0, route_factory_1.apiRoute)('get', '/:branding/:portal/api/branding/config', 'webservice/BrandingController', 'config', {}, {
|
|
7
|
+
tags: ['Branding'],
|
|
8
|
+
summary: 'Get branding Admin state',
|
|
9
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingAdminStateSchema, 'Active, draft, versions, limits, counters, warnings') },
|
|
10
|
+
});
|
|
6
11
|
exports.brandingDraftRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/draft', 'webservice/BrandingController', 'draft', {
|
|
7
12
|
body: { required: true, content: { 'application/json': { schema: common_1.brandingDraftBody } } },
|
|
8
13
|
}, {
|
|
9
14
|
tags: ['Branding'],
|
|
10
|
-
summary: 'Save draft
|
|
11
|
-
responses: { 200: (0, common_1.responseField)(common_1.
|
|
15
|
+
summary: 'Save colour draft with expected revision',
|
|
16
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingAdminStateSchema, 'Complete canonical Admin state') },
|
|
17
|
+
});
|
|
18
|
+
exports.brandingFaceUploadRoute = (0, route_factory_1.apiRoute)('put', '/:branding/:portal/api/branding/draft/typeface/faces/:slot', 'webservice/BrandingController', 'uploadFace', {
|
|
19
|
+
params: common_1.brandingSlotParams,
|
|
20
|
+
body: { content: { 'multipart/form-data': { schema: common_1.brandingFaceUploadBody } } },
|
|
21
|
+
files: {
|
|
22
|
+
face: {
|
|
23
|
+
required: true,
|
|
24
|
+
multiple: false,
|
|
25
|
+
// Default maximum; operator-configurable at runtime (see branding config).
|
|
26
|
+
// The service re-enforces the runtime value as the second boundary.
|
|
27
|
+
maxBytes: 2 * 1024 * 1024,
|
|
28
|
+
description: 'Typeface face upload (WOFF2 validated structurally; client MIME is not trusted)',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
}, {
|
|
32
|
+
tags: ['Branding'],
|
|
33
|
+
summary: 'Upload a typeface face to the draft',
|
|
34
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingAdminStateSchema, 'Complete canonical Admin state') },
|
|
12
35
|
});
|
|
13
|
-
exports.
|
|
36
|
+
exports.brandingFaceDeleteRoute = (0, route_factory_1.apiRoute)('delete', '/:branding/:portal/api/branding/draft/typeface/faces/:slot', 'webservice/BrandingController', 'deleteFace', {
|
|
37
|
+
params: common_1.brandingSlotParams,
|
|
38
|
+
body: { content: { 'application/json': { schema: common_1.brandingExpectedRevisionBody } } },
|
|
39
|
+
}, {
|
|
40
|
+
tags: ['Branding'],
|
|
41
|
+
summary: 'Remove one draft typeface face',
|
|
42
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingAdminStateSchema, 'Complete canonical Admin state') },
|
|
43
|
+
});
|
|
44
|
+
exports.brandingUseDefaultRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/draft/typeface/use-default', 'webservice/BrandingController', 'useDefault', {
|
|
45
|
+
body: { required: true, content: { 'application/json': { schema: common_1.brandingExpectedRevisionBody } } },
|
|
46
|
+
}, {
|
|
14
47
|
tags: ['Branding'],
|
|
15
|
-
summary: '
|
|
48
|
+
summary: 'Set the draft typeface to Default Typography',
|
|
49
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingAdminStateSchema, 'Complete canonical Admin state') },
|
|
50
|
+
});
|
|
51
|
+
exports.brandingRevertRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/draft/typeface/revert', 'webservice/BrandingController', 'revert', {
|
|
52
|
+
body: { required: true, content: { 'application/json': { schema: common_1.brandingExpectedRevisionBody } } },
|
|
53
|
+
}, {
|
|
54
|
+
tags: ['Branding'],
|
|
55
|
+
summary: 'Copy the active typeface into the draft only',
|
|
56
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingAdminStateSchema, 'Complete canonical Admin state') },
|
|
57
|
+
});
|
|
58
|
+
exports.brandingPreviewRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/preview', 'webservice/BrandingController', 'preview', { body: { content: { 'application/json': { schema: common_1.brandingExpectedRevisionBody } } } }, {
|
|
59
|
+
tags: ['Branding'],
|
|
60
|
+
summary: 'Create a single-use CSS preview for the exact draft revision',
|
|
16
61
|
responses: { 200: (0, common_1.responseField)(common_1.brandingPreviewResponseSchema, 'Branding preview generated') },
|
|
17
62
|
});
|
|
63
|
+
exports.brandingVersionsRoute = (0, route_factory_1.apiRoute)('get', '/:branding/:portal/api/branding/versions', 'webservice/BrandingController', 'versions', {}, {
|
|
64
|
+
tags: ['Branding'],
|
|
65
|
+
summary: 'List newest retained branding versions',
|
|
66
|
+
responses: { 200: (0, common_1.responseField)((0, common_1.arrayField)(common_1.brandingVersionEntrySchema), 'Retained versions newest first') },
|
|
67
|
+
});
|
|
68
|
+
exports.brandingVersionPreviewRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/versions/:versionId/preview', 'webservice/BrandingController', 'versionPreview', {
|
|
69
|
+
params: common_1.brandingVersionIdParams,
|
|
70
|
+
}, {
|
|
71
|
+
tags: ['Branding'],
|
|
72
|
+
summary: 'Preview a retained version without mutating the draft',
|
|
73
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingPreviewResponseSchema, 'Historical preview generated') },
|
|
74
|
+
});
|
|
18
75
|
exports.brandingPublishRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/publish', 'webservice/BrandingController', 'publish', {
|
|
19
76
|
body: { required: true, content: { 'application/json': { schema: common_1.brandingPublishBody } } },
|
|
20
77
|
}, {
|
|
21
78
|
tags: ['Branding'],
|
|
22
|
-
summary: 'Publish
|
|
23
|
-
responses: { 200: (0, common_1.responseField)(common_1.
|
|
79
|
+
summary: 'Publish the draft using both expected counters',
|
|
80
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingPublishStateResponseSchema, 'Complete Admin state after publish') },
|
|
81
|
+
});
|
|
82
|
+
exports.brandingRestoreRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/restore/:versionId', 'webservice/BrandingController', 'restore', {
|
|
83
|
+
params: common_1.brandingVersionIdParams,
|
|
84
|
+
body: { required: true, content: { 'application/json': { schema: common_1.brandingRestoreBody } } },
|
|
85
|
+
}, {
|
|
86
|
+
tags: ['Branding'],
|
|
87
|
+
summary: 'Immediately restore a retained version as a new version',
|
|
88
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingPublishStateResponseSchema, 'Complete Admin state after restore') },
|
|
24
89
|
});
|
|
25
90
|
exports.brandingRollbackRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/rollback/:versionId', 'webservice/BrandingController', 'rollback', {
|
|
26
|
-
params:
|
|
91
|
+
params: common_1.brandingVersionIdParams,
|
|
92
|
+
body: { content: { 'application/json': { schema: common_1.brandingRestoreBody } } },
|
|
27
93
|
}, {
|
|
28
94
|
tags: ['Branding'],
|
|
29
|
-
summary: '
|
|
30
|
-
|
|
95
|
+
summary: 'Deprecated rollback alias with restore semantics',
|
|
96
|
+
description: 'Deprecated: calls the same implementation as restore, returns a Deprecation header, and will be removed in the next major release. Use restore instead.',
|
|
97
|
+
responses: { 200: (0, common_1.responseField)(common_1.brandingRollbackResponseSchema, 'Branding restore complete (deprecated alias)') },
|
|
31
98
|
});
|
|
32
99
|
exports.brandingLogoRoute = (0, route_factory_1.apiRoute)('post', '/:branding/:portal/api/branding/logo', 'webservice/BrandingController', 'logo', {
|
|
33
100
|
body: { content: { 'multipart/form-data': { schema: common_1.logoUploadBody } } },
|
|
@@ -67,12 +134,20 @@ exports.brandingHistoryRoute = (0, route_factory_1.apiRoute)('get', '/:branding/
|
|
|
67
134
|
responses: { 200: (0, common_1.responseField)((0, common_1.arrayField)(common_1.brandingHistoryRecordSchema), 'Branding history') },
|
|
68
135
|
});
|
|
69
136
|
exports.brandingApiRoutes = [
|
|
137
|
+
exports.brandingConfigRoute,
|
|
70
138
|
exports.brandingDraftRoute,
|
|
139
|
+
exports.brandingFaceUploadRoute,
|
|
140
|
+
exports.brandingFaceDeleteRoute,
|
|
141
|
+
exports.brandingUseDefaultRoute,
|
|
142
|
+
exports.brandingRevertRoute,
|
|
71
143
|
exports.brandingPreviewRoute,
|
|
144
|
+
exports.brandingVersionsRoute,
|
|
145
|
+
exports.brandingVersionPreviewRoute,
|
|
72
146
|
exports.brandingPublishRoute,
|
|
147
|
+
exports.brandingRestoreRoute,
|
|
73
148
|
exports.brandingRollbackRoute,
|
|
74
149
|
exports.brandingLogoRoute,
|
|
75
150
|
exports.brandingFaviconRoute,
|
|
76
151
|
exports.brandingHistoryRoute,
|
|
77
152
|
];
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpLXJvdXRlcy9ncm91cHMvYnJhbmRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQTRDO0FBQzVDLDhDQW1CMkI7QUFFZCxRQUFBLG1CQUFtQixHQUFHLElBQUEsd0JBQVEsRUFDekMsS0FBSyxFQUNMLHdDQUF3QyxFQUN4QywrQkFBK0IsRUFDL0IsUUFBUSxFQUNSLEVBQUUsRUFDRjtJQUNFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUNsQixPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFBLHNCQUFhLEVBQUMsaUNBQXdCLEVBQUUscURBQXFELENBQUMsRUFBRTtDQUNuSCxDQUNGLENBQUM7QUFFVyxRQUFBLGtCQUFrQixHQUFHLElBQUEsd0JBQVEsRUFDeEMsTUFBTSxFQUNOLHVDQUF1QyxFQUN2QywrQkFBK0IsRUFDL0IsT0FBTyxFQUNQO0lBQ0UsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSwwQkFBaUIsRUFBRSxFQUFFLEVBQUU7Q0FDekYsRUFDRDtJQUNFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUNsQixPQUFPLEVBQUUsMENBQTBDO0lBQ25ELFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFBLHNCQUFhLEVBQUMsaUNBQXdCLEVBQUUsZ0NBQWdDLENBQUMsRUFBRTtDQUM5RixDQUNGLENBQUM7QUFFVyxRQUFBLHVCQUF1QixHQUFHLElBQUEsd0JBQVEsRUFDN0MsS0FBSyxFQUNMLDREQUE0RCxFQUM1RCwrQkFBK0IsRUFDL0IsWUFBWSxFQUNaO0lBQ0UsTUFBTSxFQUFFLDJCQUFrQjtJQUMxQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxF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
|