@researchdatabox/redbox-core 0.0.0-bootstrap.0 → 0.0.1-beta.10173
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CoreController.d.ts +4 -0
- package/dist/CoreController.d.ts.map +1 -1
- package/dist/CoreController.js +68 -23
- package/dist/CoreService.d.ts +1 -1
- package/dist/CoreService.d.ts.map +1 -1
- package/dist/CoreService.js +1 -1
- package/dist/DatastreamService.d.ts +5 -2
- package/dist/DatastreamService.d.ts.map +1 -1
- package/dist/HarvestRunService.d.ts +49 -0
- package/dist/HarvestRunService.d.ts.map +1 -0
- package/dist/HarvestRunService.js +13 -0
- package/dist/IntegrationAuditParams.d.ts +11 -0
- package/dist/IntegrationAuditParams.js +14 -0
- package/dist/QueueService.d.ts +1 -1
- package/dist/QueueService.d.ts.map +1 -1
- package/dist/RecordAuditParams.d.ts +2 -0
- package/dist/RecordAuditParams.d.ts.map +1 -1
- package/dist/RecordAuditParams.js +3 -1
- package/dist/RecordsService.d.ts +52 -2
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +5 -1
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/api-routes/apib.d.ts +7 -0
- package/dist/api-routes/apib.d.ts.map +1 -0
- package/dist/api-routes/apib.js +43 -0
- package/dist/api-routes/define.d.ts +4 -0
- package/dist/api-routes/define.d.ts.map +1 -0
- package/dist/api-routes/define.js +29 -0
- package/dist/api-routes/groups/admin.d.ts +6 -0
- package/dist/api-routes/groups/admin.d.ts.map +1 -0
- package/dist/api-routes/groups/admin.js +53 -0
- package/dist/api-routes/groups/appconfig.d.ts +4 -0
- package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
- package/dist/api-routes/groups/appconfig.js +33 -0
- package/dist/api-routes/groups/branding.d.ts +8 -0
- package/dist/api-routes/groups/branding.d.ts.map +1 -0
- package/dist/api-routes/groups/branding.js +61 -0
- package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
- package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
- package/dist/api-routes/groups/dashboard-config.js +90 -0
- package/dist/api-routes/groups/export.d.ts +3 -0
- package/dist/api-routes/groups/export.d.ts.map +1 -0
- package/dist/api-routes/groups/export.js +30 -0
- package/dist/api-routes/groups/forms.d.ts +4 -0
- package/dist/api-routes/groups/forms.d.ts.map +1 -0
- package/dist/api-routes/groups/forms.js +29 -0
- package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
- package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
- package/dist/api-routes/groups/harvest-runs.js +79 -0
- package/dist/api-routes/groups/integration-audit.d.ts +3 -0
- package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
- package/dist/api-routes/groups/integration-audit.js +35 -0
- package/dist/api-routes/groups/named-query.d.ts +8 -0
- package/dist/api-routes/groups/named-query.d.ts.map +1 -0
- package/dist/api-routes/groups/named-query.js +54 -0
- package/dist/api-routes/groups/notifications.d.ts +3 -0
- package/dist/api-routes/groups/notifications.d.ts.map +1 -0
- package/dist/api-routes/groups/notifications.js +20 -0
- package/dist/api-routes/groups/records.d.ts +28 -0
- package/dist/api-routes/groups/records.d.ts.map +1 -0
- package/dist/api-routes/groups/records.js +353 -0
- package/dist/api-routes/groups/recordtypes.d.ts +4 -0
- package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
- package/dist/api-routes/groups/recordtypes.js +27 -0
- package/dist/api-routes/groups/reports.d.ts +9 -0
- package/dist/api-routes/groups/reports.d.ts.map +1 -0
- package/dist/api-routes/groups/reports.js +63 -0
- package/dist/api-routes/groups/search-query.d.ts +4 -0
- package/dist/api-routes/groups/search-query.d.ts.map +1 -0
- package/dist/api-routes/groups/search-query.js +51 -0
- package/dist/api-routes/groups/search.d.ts +6 -0
- package/dist/api-routes/groups/search.d.ts.map +1 -0
- package/dist/api-routes/groups/search.js +31 -0
- package/dist/api-routes/groups/translation.d.ts +8 -0
- package/dist/api-routes/groups/translation.d.ts.map +1 -0
- package/dist/api-routes/groups/translation.js +82 -0
- package/dist/api-routes/groups/users.d.ts +17 -0
- package/dist/api-routes/groups/users.d.ts.map +1 -0
- package/dist/api-routes/groups/users.js +149 -0
- package/dist/api-routes/groups/vocabulary.d.ts +10 -0
- package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
- package/dist/api-routes/groups/vocabulary.js +97 -0
- package/dist/api-routes/helpers.d.ts +29 -0
- package/dist/api-routes/helpers.d.ts.map +1 -0
- package/dist/api-routes/helpers.js +485 -0
- package/dist/api-routes/index.d.ts +27 -0
- package/dist/api-routes/index.d.ts.map +1 -0
- package/dist/api-routes/index.js +43 -0
- package/dist/api-routes/openapi.d.ts +26 -0
- package/dist/api-routes/openapi.d.ts.map +1 -0
- package/dist/api-routes/openapi.js +292 -0
- package/dist/api-routes/request-extraction.d.ts +14 -0
- package/dist/api-routes/request-extraction.d.ts.map +1 -0
- package/dist/api-routes/request-extraction.js +100 -0
- package/dist/api-routes/route-factory.d.ts +3 -0
- package/dist/api-routes/route-factory.d.ts.map +1 -0
- package/dist/api-routes/route-factory.js +30 -0
- package/dist/api-routes/route-registry.d.ts +24 -0
- package/dist/api-routes/route-registry.d.ts.map +1 -0
- package/dist/api-routes/route-registry.js +117 -0
- package/dist/api-routes/route-resolution.d.ts +4 -0
- package/dist/api-routes/route-resolution.d.ts.map +1 -0
- package/dist/api-routes/route-resolution.js +71 -0
- package/dist/api-routes/schemas/common.d.ts +35 -0
- package/dist/api-routes/schemas/common.d.ts.map +1 -0
- package/dist/api-routes/schemas/common.js +146 -0
- package/dist/api-routes/schemas/responses.d.ts +972 -0
- package/dist/api-routes/schemas/responses.d.ts.map +1 -0
- package/dist/api-routes/schemas/responses.js +512 -0
- package/dist/api-routes/types.d.ts +70 -0
- package/dist/api-routes/types.d.ts.map +1 -0
- package/dist/api-routes/types.js +3 -0
- package/dist/api-routes/validation.d.ts +32 -0
- package/dist/api-routes/validation.d.ts.map +1 -0
- package/dist/api-routes/validation.js +142 -0
- package/dist/api-routes/zod-openapi.d.ts +3 -0
- package/dist/api-routes/zod-openapi.d.ts.map +1 -0
- package/dist/api-routes/zod-openapi.js +8 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +12 -12
- package/dist/config/agendaQueue.config.d.ts +33 -6
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +40 -18
- package/dist/config/auth.config.d.ts.map +1 -1
- package/dist/config/auth.config.js +29 -2
- package/dist/config/branding.config.d.ts +2 -1
- package/dist/config/branding.config.d.ts.map +1 -1
- package/dist/config/branding.config.js +5 -95
- package/dist/config/brandingConfigurationDefaults.config.d.ts +3 -0
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +158 -5
- package/dist/config/custom.config.d.ts +6 -0
- package/dist/config/custom.config.d.ts.map +1 -1
- package/dist/config/custom.config.js +10 -1
- package/dist/config/dashboardtype.config.d.ts +5 -0
- package/dist/config/dashboardtype.config.d.ts.map +1 -1
- package/dist/config/dashboardtype.config.js +1 -1
- package/dist/config/dashboardview.config.d.ts +24 -0
- package/dist/config/dashboardview.config.d.ts.map +1 -0
- package/dist/config/dashboardview.config.js +137 -0
- package/dist/config/dompurify.config.d.ts +1 -0
- package/dist/config/dompurify.config.d.ts.map +1 -1
- package/dist/config/dompurify.config.js +5 -4
- package/dist/config/emailnotification.config.d.ts.map +1 -1
- package/dist/config/emailnotification.config.js +2 -1
- package/dist/config/figshareDev.config.d.ts +12 -0
- package/dist/config/figshareDev.config.js +9 -0
- package/dist/config/form.config.d.ts +4 -0
- package/dist/config/form.config.d.ts.map +1 -1
- package/dist/config/form.config.js +1 -1
- package/dist/config/harvestRuns.config.d.ts +9 -0
- package/dist/config/harvestRuns.config.d.ts.map +1 -0
- package/dist/config/harvestRuns.config.js +11 -0
- package/dist/config/http.config.d.ts +13 -1
- package/dist/config/http.config.d.ts.map +1 -1
- package/dist/config/http.config.js +201 -38
- package/dist/config/index.d.ts +14 -19
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +10 -15
- package/dist/config/namedQuery.config.d.ts +26 -4
- package/dist/config/namedQuery.config.d.ts.map +1 -1
- package/dist/config/namedQuery.config.js +7 -350
- package/dist/config/policies.config.d.ts +3 -0
- package/dist/config/policies.config.d.ts.map +1 -1
- package/dist/config/policies.config.js +35 -1
- package/dist/config/record.config.d.ts.map +1 -1
- package/dist/config/record.config.js +2 -1
- package/dist/config/recordtype.config.d.ts +28 -0
- package/dist/config/recordtype.config.d.ts.map +1 -1
- package/dist/config/recordtype.config.js +105 -13
- package/dist/config/redboxSession.config.d.ts +3 -0
- package/dist/config/redboxSession.config.d.ts.map +1 -1
- package/dist/config/redboxSession.config.js +1 -1
- package/dist/config/report.config.d.ts +2 -11
- package/dist/config/report.config.d.ts.map +1 -1
- package/dist/config/report.config.js +3 -49
- package/dist/config/reusableContributorFormDefinitions.config.d.ts +1 -1
- package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
- package/dist/config/reusableContributorFormDefinitions.config.js +371 -206
- package/dist/config/reusableViewFormDefinitions.config.js +3 -3
- package/dist/config/routes.config.d.ts +5 -2
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +55 -117
- package/dist/config/storage.config.d.ts +20 -2
- package/dist/config/storage.config.d.ts.map +1 -1
- package/dist/config/storage.config.js +2 -1
- package/dist/config/validators.config.d.ts +6 -4
- package/dist/config/validators.config.d.ts.map +1 -1
- package/dist/config/validators.config.js +5 -3
- package/dist/config/vocab.config.d.ts +30 -0
- package/dist/config/vocab.config.d.ts.map +1 -1
- package/dist/config/vocab.config.js +21 -1
- package/dist/config/webpack.config.d.ts.map +1 -1
- package/dist/config/webpack.config.js +18 -12
- package/dist/config/workflow.config.d.ts +0 -1
- package/dist/config/workflow.config.d.ts.map +1 -1
- package/dist/config/workflow.config.js +1 -137
- package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
- package/dist/configmodels/AdminSidebarConfig.js +4 -3
- package/dist/configmodels/AuthorizedDomainsEmails.d.ts +48 -0
- package/dist/configmodels/AuthorizedDomainsEmails.d.ts.map +1 -1
- package/dist/configmodels/AuthorizedDomainsEmails.js +50 -2
- package/dist/configmodels/ConfigModels.d.ts +7 -1
- package/dist/configmodels/ConfigModels.d.ts.map +1 -1
- package/dist/configmodels/ConfigModels.js +41 -1
- package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
- package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
- package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
- package/dist/configmodels/DoiPublishing.d.ts +4711 -0
- package/dist/configmodels/DoiPublishing.js +639 -0
- package/dist/configmodels/FigsharePublishing.d.ts +1376 -0
- package/dist/configmodels/FigsharePublishing.js +630 -0
- package/dist/configmodels/IntegrationNotificationConfig.d.ts +133 -0
- package/dist/configmodels/IntegrationNotificationConfig.d.ts.map +1 -0
- package/dist/configmodels/IntegrationNotificationConfig.js +64 -0
- package/dist/configmodels/SystemMessage.d.ts +32 -0
- package/dist/configmodels/SystemMessage.d.ts.map +1 -1
- package/dist/configmodels/SystemMessage.js +34 -2
- package/dist/controllers/AdminController.d.ts +1 -1
- package/dist/controllers/AdminController.d.ts.map +1 -1
- package/dist/controllers/AdminController.js +6 -32
- package/dist/controllers/AppConfigController.js +3 -3
- package/dist/controllers/BrandingAppController.d.ts.map +1 -1
- package/dist/controllers/BrandingAppController.js +11 -10
- package/dist/controllers/BrandingController.d.ts +11 -5
- package/dist/controllers/BrandingController.d.ts.map +1 -1
- package/dist/controllers/BrandingController.js +116 -48
- package/dist/controllers/DashboardConfigController.d.ts +8 -0
- package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
- package/dist/controllers/DashboardConfigController.js +17 -0
- package/dist/controllers/DynamicAssetController.d.ts +1 -21
- package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
- package/dist/controllers/DynamicAssetController.js +19 -41
- package/dist/controllers/EmailController.d.ts.map +1 -1
- package/dist/controllers/EmailController.js +16 -12
- package/dist/controllers/FormVocabularyController.d.ts +3 -0
- package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
- package/dist/controllers/FormVocabularyController.js +154 -4
- package/dist/controllers/NamedQueryController.d.ts +8 -0
- package/dist/controllers/NamedQueryController.d.ts.map +1 -0
- package/dist/controllers/NamedQueryController.js +17 -0
- package/dist/controllers/RecordAuditController.d.ts +31 -14
- package/dist/controllers/RecordAuditController.d.ts.map +1 -1
- package/dist/controllers/RecordAuditController.js +509 -57
- package/dist/controllers/RecordController.d.ts +18 -16
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +314 -167
- package/dist/controllers/RenderViewController.d.ts.map +1 -1
- package/dist/controllers/RenderViewController.js +4 -2
- package/dist/controllers/ReportController.d.ts +7 -0
- package/dist/controllers/ReportController.d.ts.map +1 -1
- package/dist/controllers/ReportController.js +75 -2
- package/dist/controllers/ReportsController.d.ts +1 -0
- package/dist/controllers/ReportsController.d.ts.map +1 -1
- package/dist/controllers/ReportsController.js +12 -2
- package/dist/controllers/TranslationController.d.ts.map +1 -1
- package/dist/controllers/TranslationController.js +14 -12
- package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
- package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
- package/dist/controllers/WorkspaceTypesController.js +120 -31
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +19 -4
- package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
- package/dist/controllers/webservice/AdminController.js +16 -17
- package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
- package/dist/controllers/webservice/AppConfigController.js +17 -18
- package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
- package/dist/controllers/webservice/BrandingController.js +102 -48
- package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
- package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
- package/dist/controllers/webservice/DashboardConfigController.js +241 -0
- package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ExportController.js +11 -11
- package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/FormManagementController.js +11 -13
- package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
- package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
- package/dist/controllers/webservice/HarvestRunController.js +148 -0
- package/dist/controllers/webservice/IntegrationAuditController.d.ts +10 -0
- package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
- package/dist/controllers/webservice/IntegrationAuditController.js +98 -0
- package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
- package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
- package/dist/controllers/webservice/NamedQueryController.js +127 -0
- package/dist/controllers/webservice/RecordController.d.ts +4 -0
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +441 -314
- package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordTypeController.js +9 -10
- package/dist/controllers/webservice/ReportController.d.ts +7 -0
- package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ReportController.js +125 -19
- package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
- package/dist/controllers/webservice/SearchController.js +28 -35
- package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
- package/dist/controllers/webservice/TranslationController.js +65 -43
- package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
- package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/UserManagementController.js +114 -101
- package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
- package/dist/controllers/webservice/VocabularyController.js +76 -28
- package/dist/form-config/dataRecord-1.0-draft.js +3 -3
- package/dist/form-config/default-1.0-draft.d.ts.map +1 -1
- package/dist/form-config/default-1.0-draft.js +27 -3
- package/dist/form-config/index.d.ts.map +1 -1
- package/dist/form-config/index.js +1 -1
- 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/hooks/webpack.d.ts.map +1 -1
- package/dist/hooks/webpack.js +17 -7
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/loader/MigrationRunner.d.ts +19 -0
- package/dist/loader/MigrationRunner.d.ts.map +1 -0
- package/dist/loader/MigrationRunner.js +108 -0
- package/dist/loader/bootstrapShimRuntime.d.ts +2 -1
- package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
- package/dist/loader/bootstrapShimRuntime.js +7 -2
- package/dist/loader/index.d.ts +17 -0
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +216 -13
- package/dist/middleware/redboxSession.d.ts +5 -0
- package/dist/middleware/redboxSession.d.ts.map +1 -1
- package/dist/middleware/redboxSession.js +19 -6
- package/dist/model/BuildResponse.d.ts +4 -0
- package/dist/model/BuildResponse.d.ts.map +1 -1
- package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
- package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
- package/dist/model/DashboardTypeResponseModel.js +12 -4
- package/dist/model/DashboardViewResponseModel.d.ts +20 -0
- package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
- package/dist/model/DashboardViewResponseModel.js +38 -0
- package/dist/model/RecordTypeResponseModel.d.ts +3 -1
- package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
- package/dist/model/RecordTypeResponseModel.js +4 -2
- package/dist/model/RequestDetails.d.ts +1 -1
- package/dist/model/RequestDetails.d.ts.map +1 -1
- package/dist/model/RequestDetails.js +1 -1
- package/dist/model/config/ReportConfig.d.ts +1 -1
- package/dist/model/config/ReportConfig.d.ts.map +1 -1
- package/dist/model/config/ReportConfig.js +2 -2
- package/dist/model/index.d.ts +1 -0
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +5 -2
- package/dist/model/storage/BrandingModel.d.ts +0 -16
- package/dist/model/storage/BrandingModel.d.ts.map +1 -1
- package/dist/model/storage/BrandingModel.js +2 -51
- package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
- package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
- package/dist/model/storage/HarvestRunModel.d.ts +140 -0
- package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
- package/dist/model/storage/HarvestRunModel.js +110 -0
- package/dist/model/storage/IntegrationAuditModel.d.ts +49 -0
- package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
- package/dist/model/storage/IntegrationAuditModel.js +106 -0
- package/dist/model/storage/RecordTypeModel.d.ts +16 -0
- package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
- package/dist/model/storage/RecordTypeModel.js +9 -1
- package/dist/model/storage/ReportModel.d.ts +1 -0
- package/dist/model/storage/ReportModel.d.ts.map +1 -1
- package/dist/model/storage/index.d.ts +2 -0
- package/dist/model/storage/index.d.ts.map +1 -1
- package/dist/model/storage/index.js +15 -2
- package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
- package/dist/policies/contentSecurityPolicy.js +23 -2
- package/dist/policies/i18nLanguages.d.ts.map +1 -1
- package/dist/policies/i18nLanguages.js +1 -1
- package/dist/policies/index.d.ts +3 -0
- package/dist/policies/index.d.ts.map +1 -1
- package/dist/policies/index.js +6 -2
- package/dist/policies/menuResolver.d.ts.map +1 -1
- package/dist/policies/menuResolver.js +1 -1
- package/dist/policies/setLang.d.ts.map +1 -1
- package/dist/policies/setLang.js +1 -1
- package/dist/policies/validateApiContractRequest.d.ts +3 -0
- package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
- package/dist/policies/validateApiContractRequest.js +74 -0
- package/dist/responses/badRequest.d.ts.map +1 -1
- package/dist/responses/badRequest.js +5 -3
- package/dist/responses/created.d.ts.map +1 -1
- package/dist/responses/created.js +5 -3
- package/dist/responses/forbidden.d.ts.map +1 -1
- package/dist/responses/forbidden.js +5 -3
- package/dist/responses/ok.d.ts.map +1 -1
- package/dist/responses/ok.js +5 -3
- package/dist/responses/serverError.d.ts.map +1 -1
- package/dist/responses/serverError.js +5 -3
- package/dist/responses/siteTitle.d.ts +6 -0
- package/dist/responses/siteTitle.d.ts.map +1 -0
- package/dist/responses/siteTitle.js +28 -0
- package/dist/sails.d.ts +9 -0
- package/dist/sails.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.d.ts +39 -17
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +328 -87
- package/dist/services/AppConfigService.d.ts +20 -2
- package/dist/services/AppConfigService.d.ts.map +1 -1
- package/dist/services/AppConfigService.js +129 -15
- package/dist/services/AttachmentMetadataService.d.ts +34 -0
- package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
- package/dist/services/AttachmentMetadataService.js +133 -0
- package/dist/services/BrandingLogoService.d.ts +11 -8
- package/dist/services/BrandingLogoService.d.ts.map +1 -1
- package/dist/services/BrandingLogoService.js +71 -72
- package/dist/services/BrandingService.d.ts.map +1 -1
- package/dist/services/BrandingService.js +4 -32
- package/dist/services/BrandingThemeCssService.d.ts +21 -0
- package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
- package/dist/services/BrandingThemeCssService.js +113 -0
- package/dist/services/BrandingThemeTokens.d.ts +16 -0
- package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
- package/dist/services/BrandingThemeTokens.js +82 -0
- package/dist/services/CacheService.d.ts.map +1 -1
- package/dist/services/CacheService.js +37 -29
- package/dist/services/DashboardConfigService.d.ts +71 -0
- package/dist/services/DashboardConfigService.d.ts.map +1 -0
- package/dist/services/DashboardConfigService.js +315 -0
- package/dist/services/DashboardTypesService.d.ts +61 -63
- package/dist/services/DashboardTypesService.d.ts.map +1 -1
- package/dist/services/DashboardTypesService.js +361 -198
- package/dist/services/DoiService.d.ts +30 -25
- package/dist/services/DoiService.d.ts.map +1 -1
- package/dist/services/DoiService.js +448 -393
- package/dist/services/EmailService.d.ts +17 -3
- package/dist/services/EmailService.d.ts.map +1 -1
- package/dist/services/EmailService.js +44 -17
- package/dist/services/FigshareService.d.ts +40 -65
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +616 -2038
- package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
- package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
- package/dist/services/FormPayloadPrehydrateService.js +200 -0
- package/dist/services/FormRecordConsistencyService.d.ts +3 -3
- package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
- package/dist/services/FormRecordConsistencyService.js +21 -19
- package/dist/services/FormVocabularyService.d.ts +45 -0
- package/dist/services/FormVocabularyService.d.ts.map +1 -0
- package/dist/services/FormVocabularyService.js +326 -0
- package/dist/services/FormsService.d.ts.map +1 -1
- package/dist/services/FormsService.js +8 -6
- package/dist/services/HarvestRunService.d.ts +73 -0
- package/dist/services/HarvestRunService.d.ts.map +1 -0
- package/dist/services/HarvestRunService.js +1317 -0
- package/dist/services/I18nEntriesService.d.ts +9 -4
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +96 -18
- package/dist/services/IntegrationAuditService.d.ts +158 -0
- package/dist/services/IntegrationAuditService.d.ts.map +1 -1
- package/dist/services/IntegrationAuditService.js +838 -0
- package/dist/services/IntegrationNotificationService.d.ts +55 -0
- package/dist/services/IntegrationNotificationService.d.ts.map +1 -0
- package/dist/services/IntegrationNotificationService.js +271 -0
- package/dist/services/NamedQueryService.d.ts +51 -12
- package/dist/services/NamedQueryService.d.ts.map +1 -1
- package/dist/services/NamedQueryService.js +622 -125
- package/dist/services/OniService.js +2 -2
- package/dist/services/RDMPService.d.ts.map +1 -1
- package/dist/services/RDMPService.js +3 -2
- package/dist/services/RecordsService.d.ts +24 -2
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +119 -19
- package/dist/services/ReportsService.d.ts +57 -1
- package/dist/services/ReportsService.d.ts.map +1 -1
- package/dist/services/ReportsService.js +258 -34
- package/dist/services/SassCompilerService.d.ts +4 -10
- package/dist/services/SassCompilerService.d.ts.map +1 -1
- package/dist/services/SassCompilerService.js +9 -173
- package/dist/services/SolrSearchService.d.ts +1 -0
- package/dist/services/SolrSearchService.d.ts.map +1 -1
- package/dist/services/SolrSearchService.js +14 -3
- package/dist/services/StandardDatastreamService.d.ts +37 -5
- package/dist/services/StandardDatastreamService.d.ts.map +1 -1
- package/dist/services/StandardDatastreamService.js +535 -38
- package/dist/services/StorageManagerService.d.ts +13 -1
- package/dist/services/StorageManagerService.d.ts.map +1 -1
- package/dist/services/StorageManagerService.js +94 -11
- package/dist/services/TemplateService.d.ts +2 -18
- package/dist/services/TemplateService.d.ts.map +1 -1
- package/dist/services/TemplateService.js +9 -53
- package/dist/services/VocabularyService.d.ts +13 -0
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +204 -14
- package/dist/services/doi-v2/audit.d.ts +7 -0
- package/dist/services/doi-v2/audit.d.ts.map +1 -1
- package/dist/services/doi-v2/audit.js +30 -0
- package/dist/services/doi-v2/bindings.d.ts +8 -0
- package/dist/services/doi-v2/bindings.d.ts.map +1 -1
- package/dist/services/doi-v2/bindings.js +79 -0
- package/dist/services/doi-v2/config.d.ts +7 -0
- package/dist/services/doi-v2/config.js +51 -0
- package/dist/services/doi-v2/context.d.ts +18 -0
- package/dist/services/doi-v2/context.js +41 -0
- package/dist/services/doi-v2/http.d.ts +21 -0
- package/dist/services/doi-v2/http.js +88 -0
- package/dist/services/doi-v2/payload.d.ts +4 -0
- package/dist/services/doi-v2/payload.js +291 -0
- package/dist/services/doi-v2/profiles.d.ts +5 -0
- package/dist/services/doi-v2/profiles.js +31 -0
- package/dist/services/doi-v2/runtime.d.ts +16 -0
- package/dist/services/doi-v2/runtime.js +173 -0
- package/dist/services/doi-v2/types.d.ts +49 -0
- package/dist/services/doi-v2/types.js +3 -0
- package/dist/services/figshare-v2/assets.d.ts +5 -0
- package/dist/services/figshare-v2/assets.js +297 -0
- package/dist/services/figshare-v2/audit.d.ts +7 -0
- package/dist/services/figshare-v2/audit.d.ts.map +1 -0
- package/dist/services/figshare-v2/audit.js +30 -0
- package/dist/services/figshare-v2/bindings.d.ts +6 -0
- package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
- package/dist/services/figshare-v2/bindings.js +58 -0
- package/dist/services/figshare-v2/config.d.ts +13 -0
- package/dist/services/figshare-v2/config.d.ts.map +1 -1
- package/dist/services/figshare-v2/config.js +105 -0
- package/dist/services/figshare-v2/context.d.ts +4 -0
- package/dist/services/figshare-v2/context.d.ts.map +1 -1
- package/dist/services/figshare-v2/context.js +21 -0
- package/dist/services/figshare-v2/embargo.d.ts +5 -0
- package/dist/services/figshare-v2/embargo.js +36 -0
- package/dist/services/figshare-v2/http.d.ts +42 -0
- package/dist/services/figshare-v2/http.d.ts.map +1 -1
- package/dist/services/figshare-v2/http.js +324 -0
- package/dist/services/figshare-v2/metadata.d.ts +6 -0
- package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
- package/dist/services/figshare-v2/metadata.js +280 -0
- package/dist/services/figshare-v2/observability.d.ts +7 -0
- package/dist/services/figshare-v2/observability.d.ts.map +1 -1
- package/dist/services/figshare-v2/observability.js +87 -0
- package/dist/services/figshare-v2/plan.d.ts +5 -0
- package/dist/services/figshare-v2/plan.js +51 -0
- package/dist/services/figshare-v2/publish.d.ts +5 -0
- package/dist/services/figshare-v2/publish.js +20 -0
- package/dist/services/figshare-v2/queue.d.ts +4 -0
- package/dist/services/figshare-v2/queue.js +11 -0
- package/dist/services/figshare-v2/runtime.d.ts +14 -0
- package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
- package/dist/services/figshare-v2/runtime.js +88 -0
- package/dist/services/figshare-v2/types.d.ts +198 -0
- package/dist/services/figshare-v2/types.d.ts.map +1 -1
- package/dist/services/figshare-v2/types.js +59 -0
- package/dist/services/figshare-v2/workflow.d.ts +3 -0
- package/dist/services/figshare-v2/workflow.js +7 -0
- package/dist/services/figshare-v2/writeback.d.ts +5 -0
- package/dist/services/figshare-v2/writeback.js +45 -0
- package/dist/services/index.d.ts +24 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +43 -7
- package/dist/shims/momentShim.d.ts.map +1 -1
- package/dist/shims/momentShim.js +1 -6
- package/dist/storage/GridFSDriver.d.ts +101 -0
- package/dist/storage/GridFSDriver.d.ts.map +1 -0
- package/dist/storage/GridFSDriver.js +291 -0
- package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
- package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
- package/dist/storage/TusStorageManagerDataStore.js +300 -0
- package/dist/utilities/RequestParamUtils.d.ts +3 -0
- package/dist/utilities/RequestParamUtils.d.ts.map +1 -0
- package/dist/utilities/RequestParamUtils.js +13 -0
- package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
- package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
- package/dist/visitor/attachment-fields.visitor.js +44 -34
- package/dist/visitor/client.visitor.d.ts +145 -97
- package/dist/visitor/client.visitor.d.ts.map +1 -1
- package/dist/visitor/client.visitor.js +366 -273
- package/dist/visitor/construct.visitor.d.ts +99 -93
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +302 -227
- package/dist/visitor/context-variables.visitor.d.ts +35 -35
- package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
- package/dist/visitor/context-variables.visitor.js +85 -75
- package/dist/visitor/data-value.visitor.d.ts +99 -93
- package/dist/visitor/data-value.visitor.d.ts.map +1 -1
- package/dist/visitor/data-value.visitor.js +157 -148
- package/dist/visitor/json-type-def.visitor.d.ts +96 -90
- package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
- package/dist/visitor/json-type-def.visitor.js +158 -149
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +101 -94
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +356 -295
- package/dist/visitor/template.visitor.d.ts +100 -92
- package/dist/visitor/template.visitor.d.ts.map +1 -1
- package/dist/visitor/template.visitor.js +245 -156
- package/dist/visitor/validator.visitor.d.ts +95 -91
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +184 -152
- package/dist/visitor/visitor-helpers.js +9 -9
- package/dist/visitor/vocab-inline.visitor.d.ts +34 -19
- package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
- package/dist/visitor/vocab-inline.visitor.js +157 -48
- package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
- package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
- package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
- package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
- package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
- package/dist/waterline-models/AttachmentMetadata.js +147 -0
- package/dist/waterline-models/BrandingConfig.d.ts +0 -2
- package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfig.js +5 -9
- package/dist/waterline-models/DashboardType.d.ts +7 -0
- package/dist/waterline-models/DashboardType.d.ts.map +1 -1
- package/dist/waterline-models/DashboardType.js +16 -1
- package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
- package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRecordEvent.js +107 -0
- package/dist/waterline-models/HarvestRun.d.ts +51 -0
- package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRun.js +125 -0
- package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
- package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRunChunk.js +140 -0
- package/dist/waterline-models/I18nTranslation.d.ts +2 -0
- package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
- package/dist/waterline-models/I18nTranslation.js +6 -1
- package/dist/waterline-models/Migration.d.ts +24 -0
- package/dist/waterline-models/Migration.d.ts.map +1 -0
- package/dist/waterline-models/Migration.js +52 -0
- package/dist/waterline-models/NamedQuery.d.ts +6 -0
- package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
- package/dist/waterline-models/NamedQuery.js +16 -1
- package/dist/waterline-models/index.d.ts +12 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +19 -1
- package/package.json +77 -51
- package/redbox-loader-templates/bootstrap-shim.js.hbs +14 -1
- package/dist/config/datacite.config.d.ts +0 -51
- package/dist/config/datacite.config.d.ts.map +0 -1
- package/dist/config/datacite.config.js +0 -44
- package/dist/config/figshareAPI.config.d.ts +0 -116
- package/dist/config/figshareAPI.config.d.ts.map +0 -1
- package/dist/config/figshareAPI.config.js +0 -857
- package/dist/config/figshareAPIEnv.config.d.ts +0 -11
- package/dist/config/figshareAPIEnv.config.d.ts.map +0 -1
- package/dist/config/figshareAPIEnv.config.js +0 -13
- package/dist/config/figshareRedboxFORMapping.config.d.ts +0 -15
- package/dist/config/figshareRedboxFORMapping.config.d.ts.map +0 -1
- package/dist/config/figshareRedboxFORMapping.config.js +0 -7458
- package/dist/config/relatedObjectsFormDefinition.config.d.ts.map +0 -1
- package/dist/controllers/VocabController.d.ts +0 -43
- package/dist/controllers/VocabController.d.ts.map +0 -1
- package/dist/controllers/VocabController.js +0 -190
- package/dist/form-config/dataPublication-1.0-draft.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-embargoed.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-published.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-queued.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-retired.d.ts.map +0 -1
- package/dist/services/VocabService.d.ts +0 -81
- package/dist/services/VocabService.d.ts.map +0 -1
- package/dist/services/VocabService.js +0 -424
|
@@ -41,9 +41,18 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
41
41
|
})();
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.http = void 0;
|
|
44
|
+
exports.shouldSkipBodyParser = shouldSkipBodyParser;
|
|
45
|
+
exports.isImmutableAssetPath = isImmutableAssetPath;
|
|
44
46
|
exports.authorizeCompanionRequest = authorizeCompanionRequest;
|
|
47
|
+
exports.buildCompanionSendTokenConfig = buildCompanionSendTokenConfig;
|
|
48
|
+
exports.buildCompanionSendTokenHtml = buildCompanionSendTokenHtml;
|
|
49
|
+
exports.sanitizeStaticSegment = sanitizeStaticSegment;
|
|
50
|
+
exports.sanitizeStaticResourcePath = sanitizeStaticResourcePath;
|
|
51
|
+
exports.resolvePublicAssetPath = resolvePublicAssetPath;
|
|
45
52
|
const _ = __importStar(require("lodash"));
|
|
46
53
|
const fs = __importStar(require("fs"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
|
|
47
56
|
const skipper = require('skipper');
|
|
48
57
|
const redboxSession_1 = require("../middleware/redboxSession");
|
|
49
58
|
const redboxSession_config_1 = require("./redboxSession.config");
|
|
@@ -54,6 +63,76 @@ let _lazyRedboxSessionMiddleware = null;
|
|
|
54
63
|
let _lazyCompanionMiddleware = null;
|
|
55
64
|
let _lazyCompanionMountPath = '/companion';
|
|
56
65
|
let _lazyCompanionSocketWired = false;
|
|
66
|
+
let _cachedBodyParserSkipPathConfig;
|
|
67
|
+
let _cachedBodyParserSkipPathMatchers = [];
|
|
68
|
+
function isStaticAssetPath(reqPath) {
|
|
69
|
+
return /^\/(?:[^/]+\/[^/]+\/)?(?:js|styles|images|fonts|angular|icons)\//.test(reqPath) ||
|
|
70
|
+
/^\/(?:apple-touch-icon|favicon-|site\.webmanifest)/.test(reqPath);
|
|
71
|
+
}
|
|
72
|
+
function normalizeBodyParserPath(value) {
|
|
73
|
+
const withoutQuery = String(value ?? '').trim().split('?')[0]?.toLowerCase() ?? '';
|
|
74
|
+
if (!withoutQuery) {
|
|
75
|
+
return '/';
|
|
76
|
+
}
|
|
77
|
+
const normalizedPath = withoutQuery.startsWith('/') ? withoutQuery : `/${withoutQuery}`;
|
|
78
|
+
if (normalizedPath.length <= 1) {
|
|
79
|
+
return normalizedPath;
|
|
80
|
+
}
|
|
81
|
+
let endIndex = normalizedPath.length;
|
|
82
|
+
while (endIndex > 1 && normalizedPath.charCodeAt(endIndex - 1) === 47) {
|
|
83
|
+
endIndex -= 1;
|
|
84
|
+
}
|
|
85
|
+
return normalizedPath.slice(0, endIndex) || '/';
|
|
86
|
+
}
|
|
87
|
+
function escapeRegExp(value) {
|
|
88
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
89
|
+
}
|
|
90
|
+
function buildBodyParserRouteMatcher(routePattern) {
|
|
91
|
+
const normalizedRoutePattern = normalizeBodyParserPath(routePattern);
|
|
92
|
+
// Exclude root path '/' from matching to prevent skipping body parser globally
|
|
93
|
+
if (normalizedRoutePattern === '/') {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const matcherParts = normalizedRoutePattern
|
|
97
|
+
.split('/')
|
|
98
|
+
.filter(Boolean)
|
|
99
|
+
.map((segment) => segment.startsWith(':') ? '[^/]+' : escapeRegExp(segment));
|
|
100
|
+
return new RegExp(`^/${matcherParts.join('/')}$`, 'i');
|
|
101
|
+
}
|
|
102
|
+
function resolveBodyParserSkipPaths(customConfig) {
|
|
103
|
+
const configuredSkipPaths = customConfig?.bodyParser?.skipPaths;
|
|
104
|
+
if (Array.isArray(configuredSkipPaths)) {
|
|
105
|
+
return configuredSkipPaths.filter((skipPath) => typeof skipPath === 'string');
|
|
106
|
+
}
|
|
107
|
+
if (configuredSkipPaths && typeof configuredSkipPaths === 'object') {
|
|
108
|
+
return Object.values(configuredSkipPaths).filter((skipPath) => typeof skipPath === 'string');
|
|
109
|
+
}
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
function resolveBodyParserSkipMatchers(customConfig) {
|
|
113
|
+
const configuredSkipPaths = customConfig?.bodyParser?.skipPaths;
|
|
114
|
+
if (_cachedBodyParserSkipPathConfig !== configuredSkipPaths) {
|
|
115
|
+
_cachedBodyParserSkipPathConfig = configuredSkipPaths;
|
|
116
|
+
_cachedBodyParserSkipPathMatchers = resolveBodyParserSkipPaths(customConfig)
|
|
117
|
+
.map((skipPath) => buildBodyParserRouteMatcher(skipPath))
|
|
118
|
+
.filter((matcher) => matcher !== null);
|
|
119
|
+
}
|
|
120
|
+
return _cachedBodyParserSkipPathMatchers;
|
|
121
|
+
}
|
|
122
|
+
function shouldSkipBodyParser(requestPath, configuredSkipPaths) {
|
|
123
|
+
const normalizedRequestPath = normalizeBodyParserPath(requestPath);
|
|
124
|
+
return configuredSkipPaths.some((configuredSkipPath) => {
|
|
125
|
+
const routeMatcher = buildBodyParserRouteMatcher(configuredSkipPath);
|
|
126
|
+
return routeMatcher?.test(normalizedRequestPath) ?? false;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function isImmutableAssetPath(reqPath) {
|
|
130
|
+
if (!isStaticAssetPath(reqPath)) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
const fileName = path.posix.basename(reqPath);
|
|
134
|
+
return /(?:^|[-.])[A-Za-z0-9]{8,}\.[^.]+$/.test(fileName);
|
|
135
|
+
}
|
|
57
136
|
function isAuthenticatedRequest(req) {
|
|
58
137
|
return typeof req.isAuthenticated === 'function'
|
|
59
138
|
&& Boolean(req.isAuthenticated());
|
|
@@ -134,24 +213,97 @@ const getCookieValue = (cookieHeader, cookieName) => {
|
|
|
134
213
|
}
|
|
135
214
|
return undefined;
|
|
136
215
|
};
|
|
216
|
+
const companionSendTokenCsp = "default-src 'none'; script-src 'unsafe-inline'; connect-src 'none'; img-src 'none'; style-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'";
|
|
217
|
+
function normalizeCompanionTargetOrigin(appUrl) {
|
|
218
|
+
const trimmedAppUrl = String(appUrl ?? '').trim();
|
|
219
|
+
if (!trimmedAppUrl) {
|
|
220
|
+
return '';
|
|
221
|
+
}
|
|
222
|
+
try {
|
|
223
|
+
return new URL(trimmedAppUrl).origin;
|
|
224
|
+
}
|
|
225
|
+
catch (_err) {
|
|
226
|
+
return trimmedAppUrl;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function sanitizeCompanionProvider(provider) {
|
|
230
|
+
const trimmedProvider = String(provider ?? '').trim().toLowerCase();
|
|
231
|
+
if (trimmedProvider === 'drive' || trimmedProvider === 'googledrive' || trimmedProvider === 'onedrive') {
|
|
232
|
+
return trimmedProvider;
|
|
233
|
+
}
|
|
234
|
+
return '';
|
|
235
|
+
}
|
|
236
|
+
function buildCompanionSendTokenConfig(appUrl, provider) {
|
|
237
|
+
const targetOrigin = normalizeCompanionTargetOrigin(appUrl);
|
|
238
|
+
return {
|
|
239
|
+
targetOrigin,
|
|
240
|
+
provider: sanitizeCompanionProvider(provider),
|
|
241
|
+
secureCookie: targetOrigin.startsWith('https://'),
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function buildCompanionSendTokenHtml(appUrl, provider) {
|
|
245
|
+
const configJson = (0, sails_ng_common_1.escapeHtmlText)(JSON.stringify(buildCompanionSendTokenConfig(appUrl, provider)));
|
|
246
|
+
return `<!DOCTYPE html><html><head><meta charset="utf-8" /></head><body><div hidden id="companion-send-token-config">${configJson}</div><script>(function(){'use strict';var configElement=document.getElementById('companion-send-token-config');var config={targetOrigin:'',provider:'',secureCookie:false};try{config=JSON.parse(configElement&&configElement.textContent?configElement.textContent:'{}');}catch(_e){}var origin=typeof config.targetOrigin==='string'?config.targetOrigin:'';var provider=typeof config.provider==='string'?config.provider:'';var query=new URLSearchParams(window.location.search);var hashRaw=window.location.hash&&window.location.hash.charAt(0)==='#'?window.location.hash.slice(1):'';var hash=new URLSearchParams(hashRaw);var token=(query.get('uppyAuthToken')||hash.get('uppyAuthToken')||'').trim();if(!origin||!token){if(origin){window.location.replace(origin);}return;}if(provider){var storageKey='companion-'+provider+'-auth-token';var cookieName='uppyAuthToken--'+provider;if(provider==='drive'||provider==='googledrive'){storageKey='companion-GoogleDrive-auth-token';cookieName='uppyAuthToken--googledrive';}if(provider==='onedrive'){storageKey='companion-OneDrive-auth-token';}try{window.localStorage.setItem(storageKey,token);}catch(_e){}document.cookie=cookieName+'='+encodeURIComponent(token)+'; Path=/; Max-Age=34560000; SameSite=Lax'+(config.secureCookie?'; Secure':'');}var data={token:token};var openerRef=null;try{openerRef=window.opener||null;}catch(_e){}if(!openerRef){window.location.replace(origin);return;}var attempts=0;var send=function(){attempts+=1;try{openerRef.postMessage(data,origin);}catch(_e){}if(attempts<5){setTimeout(send,150);return;}setTimeout(function(){try{window.close();}catch(_e){}},300);};send();})();</script>Completing sign in...</body></html>`;
|
|
247
|
+
}
|
|
248
|
+
function sanitizeStaticSegment(value) {
|
|
249
|
+
const decoded = decodeStaticPathPart(value);
|
|
250
|
+
if (!decoded || !/^[A-Za-z0-9_-]+$/.test(decoded)) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
return decoded;
|
|
254
|
+
}
|
|
255
|
+
function sanitizeStaticResourcePath(value) {
|
|
256
|
+
const withoutQuery = value.split('?')[0];
|
|
257
|
+
if (!withoutQuery || withoutQuery.includes('\0')) {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
const sanitizedParts = [];
|
|
261
|
+
for (const part of withoutQuery.split('/')) {
|
|
262
|
+
const decoded = decodeStaticPathPart(part);
|
|
263
|
+
if (!decoded || decoded === '.' || decoded === '..' || decoded.includes('\0') || decoded.includes('/') || decoded.includes('\\')) {
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
sanitizedParts.push(decoded);
|
|
267
|
+
}
|
|
268
|
+
return sanitizedParts.join('/');
|
|
269
|
+
}
|
|
270
|
+
function resolvePublicAssetPath(basePublicDir, ...segments) {
|
|
271
|
+
const resolvedBase = path.resolve(basePublicDir);
|
|
272
|
+
const resolvedPath = path.resolve(resolvedBase, ...segments);
|
|
273
|
+
if (resolvedPath !== resolvedBase && !resolvedPath.startsWith(`${resolvedBase}${path.sep}`)) {
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
return resolvedPath;
|
|
277
|
+
}
|
|
278
|
+
function decodeStaticPathPart(value) {
|
|
279
|
+
try {
|
|
280
|
+
return decodeURIComponent(value);
|
|
281
|
+
}
|
|
282
|
+
catch (_err) {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
137
286
|
exports.http = {
|
|
138
287
|
rootContext: '',
|
|
139
288
|
middleware: {
|
|
140
289
|
// Lazy load redboxSession to support async shim generation
|
|
141
290
|
redboxSession: function (req, res, next) {
|
|
142
291
|
if (!_lazyRedboxSessionMiddleware) {
|
|
143
|
-
// Initialize the session middleware with the config
|
|
144
|
-
|
|
292
|
+
// Initialize the session middleware with the resolved Sails config so environment overrides apply.
|
|
293
|
+
const resolvedSessionConfig = sails.config.redboxSession || redboxSession_config_1.redboxSession;
|
|
294
|
+
_lazyRedboxSessionMiddleware = (0, redboxSession_1.redboxSession)(resolvedSessionConfig);
|
|
145
295
|
}
|
|
146
296
|
return _lazyRedboxSessionMiddleware(req, res, next);
|
|
147
297
|
},
|
|
148
298
|
// Lazy load passport middleware to use sails.config.passport
|
|
149
299
|
// This ensures we use the same passport instance that has deserializeUser configured
|
|
150
300
|
passportInit: function (req, res, next) {
|
|
151
|
-
|
|
301
|
+
const middleware = sails.config.passport.initialize();
|
|
302
|
+
return middleware(req, res, next);
|
|
152
303
|
},
|
|
153
304
|
passportSession: function (req, res, next) {
|
|
154
|
-
|
|
305
|
+
const middleware = sails.config.passport.session();
|
|
306
|
+
return middleware(req, res, next);
|
|
155
307
|
},
|
|
156
308
|
companion: function (req, res, next) {
|
|
157
309
|
const companionConfig = sails.config.companion;
|
|
@@ -198,19 +350,12 @@ exports.http = {
|
|
|
198
350
|
if (isSendTokenPath) {
|
|
199
351
|
const appUrl = String(sails.config.appUrl ?? '').trim();
|
|
200
352
|
if (appUrl) {
|
|
201
|
-
let targetOrigin = appUrl;
|
|
202
|
-
try {
|
|
203
|
-
targetOrigin = new URL(appUrl).origin;
|
|
204
|
-
}
|
|
205
|
-
catch (_err) {
|
|
206
|
-
// Keep configured appUrl as-is if URL parsing fails.
|
|
207
|
-
}
|
|
208
|
-
const originPayload = JSON.stringify(targetOrigin);
|
|
209
353
|
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
210
354
|
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
|
|
211
355
|
res.setHeader('Pragma', 'no-cache');
|
|
212
356
|
res.setHeader('Expires', '0');
|
|
213
|
-
|
|
357
|
+
res.setHeader('Content-Security-Policy', companionSendTokenCsp);
|
|
358
|
+
return res.send(buildCompanionSendTokenHtml(appUrl, relativePathParts[0] ?? ''));
|
|
214
359
|
}
|
|
215
360
|
}
|
|
216
361
|
if (!_lazyCompanionMiddleware || _lazyCompanionMountPath !== normalizedRoute) {
|
|
@@ -325,8 +470,9 @@ exports.http = {
|
|
|
325
470
|
const url = req.url;
|
|
326
471
|
const splitUrl = url.split('/');
|
|
327
472
|
if (splitUrl.length > 3) {
|
|
328
|
-
const branding = splitUrl[1];
|
|
329
|
-
const portal = splitUrl[2];
|
|
473
|
+
const branding = sanitizeStaticSegment(splitUrl[1]);
|
|
474
|
+
const portal = sanitizeStaticSegment(splitUrl[2]);
|
|
475
|
+
const resourceLocation = sanitizeStaticResourcePath(splitUrl.slice(3, splitUrl.length).join("/"));
|
|
330
476
|
if (extendedReq.options == null) {
|
|
331
477
|
extendedReq.options = {};
|
|
332
478
|
}
|
|
@@ -339,25 +485,24 @@ exports.http = {
|
|
|
339
485
|
if (portal != null && extendedReq.options.locals.portal == null) {
|
|
340
486
|
extendedReq.options.locals.portal = portal;
|
|
341
487
|
}
|
|
342
|
-
let resourceLocation = splitUrl.slice(3, splitUrl.length).join("/");
|
|
343
|
-
if (resourceLocation.lastIndexOf('?') != -1) {
|
|
344
|
-
resourceLocation = resourceLocation.substring(0, resourceLocation.lastIndexOf('?'));
|
|
345
|
-
}
|
|
346
488
|
let resolvedPath = null;
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
locationToTest = sails.config.appPath + "/.tmp/public/default/" + portal + "/" + resourceLocation;
|
|
353
|
-
if (existsSync(locationToTest)) {
|
|
354
|
-
resolvedPath = "/default/" + portal + "/" + resourceLocation;
|
|
489
|
+
if (branding && portal && resourceLocation) {
|
|
490
|
+
const publicBasePath = path.resolve(sails.config.appPath, '.tmp', 'public');
|
|
491
|
+
let locationToTest = resolvePublicAssetPath(publicBasePath, branding, portal, resourceLocation);
|
|
492
|
+
if (locationToTest && existsSync(locationToTest)) {
|
|
493
|
+
resolvedPath = "/" + branding + "/" + portal + "/" + resourceLocation;
|
|
355
494
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
495
|
+
if (resolvedPath == null) {
|
|
496
|
+
locationToTest = resolvePublicAssetPath(publicBasePath, 'default', portal, resourceLocation);
|
|
497
|
+
if (locationToTest && existsSync(locationToTest)) {
|
|
498
|
+
resolvedPath = "/default/" + portal + "/" + resourceLocation;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
if (resolvedPath == null) {
|
|
502
|
+
locationToTest = resolvePublicAssetPath(publicBasePath, 'default', 'default', resourceLocation);
|
|
503
|
+
if (locationToTest && existsSync(locationToTest)) {
|
|
504
|
+
resolvedPath = "/default/default/" + resourceLocation;
|
|
505
|
+
}
|
|
361
506
|
}
|
|
362
507
|
}
|
|
363
508
|
// We found the resource in a location so let's set the url on the request to it so that the static server can serve it
|
|
@@ -379,7 +524,6 @@ exports.http = {
|
|
|
379
524
|
'passportSession',
|
|
380
525
|
'companion',
|
|
381
526
|
'myBodyParser',
|
|
382
|
-
'compress',
|
|
383
527
|
'poweredBy',
|
|
384
528
|
'router',
|
|
385
529
|
'translate',
|
|
@@ -388,8 +532,10 @@ exports.http = {
|
|
|
388
532
|
'favicon',
|
|
389
533
|
],
|
|
390
534
|
myBodyParser: function (req, res, next) {
|
|
391
|
-
|
|
392
|
-
|
|
535
|
+
const requestPath = req.originalUrl ?? req.url;
|
|
536
|
+
const normalizedRequestPath = normalizeBodyParserPath(requestPath);
|
|
537
|
+
const skipMatchers = resolveBodyParserSkipMatchers(sails.config.custom);
|
|
538
|
+
if (skipMatchers.some((skipMatcher) => skipMatcher.test(normalizedRequestPath))) {
|
|
393
539
|
return next();
|
|
394
540
|
}
|
|
395
541
|
const skipperMiddleware = skipper({
|
|
@@ -424,7 +570,19 @@ exports.http = {
|
|
|
424
570
|
const sessionTimeoutSeconds = (_.isUndefined(sails.config.session.cookie) || _.isUndefined(sails.config.session.cookie.maxAge) ? 31536000 : sails.config.session.cookie.maxAge / 1000);
|
|
425
571
|
let cacheControlHeaderVal = null;
|
|
426
572
|
let expiresHeaderVal = null;
|
|
427
|
-
|
|
573
|
+
const isImmutableAsset = isImmutableAssetPath(req.path);
|
|
574
|
+
if (isImmutableAsset) {
|
|
575
|
+
cacheControlHeaderVal = 'public, max-age=31536000, immutable';
|
|
576
|
+
expiresHeaderVal = new Date(new Date().getTime() + (31536000 * 1000)).toUTCString();
|
|
577
|
+
const originalSetHeader = res.setHeader.bind(res);
|
|
578
|
+
res.setHeader = function (name, value) {
|
|
579
|
+
if (name.toLowerCase() === 'set-cookie') {
|
|
580
|
+
return res;
|
|
581
|
+
}
|
|
582
|
+
return originalSetHeader(name, value);
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
else if (sessionTimeoutSeconds > 0) {
|
|
428
586
|
// Warning: sails.config.custom might differ at runtime verify structure
|
|
429
587
|
const noCachePaths = sails.config.custom?.cacheControl?.noCache || [];
|
|
430
588
|
const isMatch = _.find(noCachePaths, (path => {
|
|
@@ -454,9 +612,14 @@ exports.http = {
|
|
|
454
612
|
// Required for OAuth popup flows (e.g. Uppy Companion providers)
|
|
455
613
|
// so window.opener/window.closed checks are not blocked by COOP.
|
|
456
614
|
res.set('Cross-Origin-Opener-Policy', 'same-origin-allow-popups');
|
|
457
|
-
|
|
615
|
+
if (isImmutableAsset) {
|
|
616
|
+
res.removeHeader('Pragma');
|
|
617
|
+
}
|
|
618
|
+
else {
|
|
619
|
+
res.set('Pragma', 'no-cache');
|
|
620
|
+
}
|
|
458
621
|
return next();
|
|
459
622
|
}
|
|
460
623
|
},
|
|
461
624
|
};
|
|
462
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2h0dHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVISCw4REEwREM7QUE3S0QsMENBQTRCO0FBQzVCLHVDQUF5QjtBQUN6QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFbkMsK0RBQXVGO0FBQ3ZGLGlFQUFtRjtBQTBGbkYsdUZBQXVGO0FBQ3ZGLCtGQUErRjtBQUMvRixnRUFBZ0U7QUFDaEUsSUFBSSw0QkFBNEIsR0FBMEIsSUFBSSxDQUFDO0FBQy9ELElBQUksd0JBQXdCLEdBQTBCLElBQUksQ0FBQztBQUMzRCxJQUFJLHVCQUF1QixHQUFHLFlBQVksQ0FBQztBQUMzQyxJQUFJLHlCQUF5QixHQUFHLEtBQUssQ0FBQztBQVN0QyxTQUFTLHNCQUFzQixDQUFDLEdBQVk7SUFDeEMsT0FBTyxPQUFRLEdBQXFELENBQUMsZUFBZSxLQUFLLFVBQVU7V0FDNUYsT0FBTyxDQUFFLEdBQW9ELENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsR0FBWSxFQUFFLGVBQXVCLEVBQUUsV0FBbUI7SUFDaEcsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLEtBQUssZUFBZSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPO1lBQ0gsa0JBQWtC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
|
|
625
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2h0dHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThLSCxvREFNQztBQUVELG9EQU9DO0FBY0QsOERBMERDO0FBcURELHNFQU9DO0FBRUQsa0VBR0M7QUFFRCxzREFNQztBQUVELGdFQWVDO0FBRUQsd0RBT0M7QUFwV0QsMENBQTRCO0FBQzVCLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0Isc0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUVuQywrREFBdUY7QUFDdkYsaUVBQW1GO0FBdUZuRix1RkFBdUY7QUFDdkYsK0ZBQStGO0FBQy9GLGdFQUFnRTtBQUNoRSxJQUFJLDRCQUE0QixHQUEwQixJQUFJLENBQUM7QUFDL0QsSUFBSSx3QkFBd0IsR0FBMEIsSUFBSSxDQUFDO0FBQzNELElBQUksdUJBQXVCLEdBQUcsWUFBWSxDQUFDO0FBQzNDLElBQUkseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBQ3RDLElBQUksK0JBQW9GLENBQUM7QUFDekYsSUFBSSxpQ0FBaUMsR0FBYSxFQUFFLENBQUM7QUFFckQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFlO0lBQ3RDLE9BQU8sa0VBQWtFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNuRixvREFBb0QsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUMxQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFF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
|
package/dist/config/index.d.ts
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
export * from './api.config';
|
|
8
8
|
export * from './appmode.config';
|
|
9
9
|
export * from './record.config';
|
|
10
|
-
export * from './datacite.config';
|
|
11
10
|
export * from './vocab.config';
|
|
12
11
|
export * from './datastores.config';
|
|
13
12
|
export * from './sockets.config';
|
|
@@ -42,6 +41,7 @@ export * from './jsonld.config';
|
|
|
42
41
|
export * from './emailnotification.config';
|
|
43
42
|
export * from './agendaQueue.config';
|
|
44
43
|
export * from './crontab.config';
|
|
44
|
+
export * from './figshareDev.config';
|
|
45
45
|
export * from './solr.config';
|
|
46
46
|
export * from './form.config';
|
|
47
47
|
export * from './webpack.config';
|
|
@@ -53,10 +53,9 @@ export * from './branding.config';
|
|
|
53
53
|
export * from './brandingConfigurationDefaults.config';
|
|
54
54
|
export * from './raid.config';
|
|
55
55
|
export * from './report.config';
|
|
56
|
-
export * from './figshareAPI.config';
|
|
57
|
-
export * from './figshareRedboxFORMapping.config';
|
|
58
56
|
export * from './recordtype.config';
|
|
59
57
|
export * from './workflow.config';
|
|
58
|
+
export * from './dashboardview.config';
|
|
60
59
|
export * from './autoreload.config';
|
|
61
60
|
export * from './custom.config';
|
|
62
61
|
export * from './dynamicconfig.config';
|
|
@@ -65,14 +64,14 @@ export * from './datapubs.config';
|
|
|
65
64
|
export * from './workspacetype.config';
|
|
66
65
|
export * from './lognamespace.config';
|
|
67
66
|
export * from './redboxToCkan.config';
|
|
68
|
-
export * from './figshareAPIEnv.config';
|
|
69
67
|
export * from './typescript.config';
|
|
70
68
|
export * from './custom_cache.config';
|
|
71
69
|
export * from './validators.config';
|
|
70
|
+
export * from './harvestRuns.config';
|
|
71
|
+
import type { ApiRouteProvider } from '../api-routes';
|
|
72
72
|
import { ReDBoxAPIConfig } from './api.config';
|
|
73
73
|
import { AppModeConfig } from './appmode.config';
|
|
74
74
|
import { RecordConfig } from './record.config';
|
|
75
|
-
import { DataciteConfig } from './datacite.config';
|
|
76
75
|
import { VocabConfig } from './vocab.config';
|
|
77
76
|
import { SocketsConfig } from './sockets.config';
|
|
78
77
|
import { StaticAssetsConfig } from './static_assets.config';
|
|
@@ -107,6 +106,7 @@ import { JsonLdConfig } from './jsonld.config';
|
|
|
107
106
|
import { EmailNotificationConfig } from './emailnotification.config';
|
|
108
107
|
import { AgendaQueueConfig } from './agendaQueue.config';
|
|
109
108
|
import { CrontabConfig } from './crontab.config';
|
|
109
|
+
import { FigshareDevConfig } from './figshareDev.config';
|
|
110
110
|
import { SolrSearchConfig } from './solr.config';
|
|
111
111
|
import { FormConfig } from './form.config';
|
|
112
112
|
import { WebpackConfig } from './webpack.config';
|
|
@@ -117,11 +117,9 @@ import type { NextFunction, Request, Response } from 'express';
|
|
|
117
117
|
import { BrandingConfig } from './branding.config';
|
|
118
118
|
import { BrandingConfigurationDefaultsConfig, BrandAuthConfig, AuthBootstrapConfig } from './brandingConfigurationDefaults.config';
|
|
119
119
|
import { RaidConfig } from './raid.config';
|
|
120
|
-
import { ReportsConfig } from './report.config';
|
|
121
|
-
import { FigshareApiConfig } from './figshareAPI.config';
|
|
122
|
-
import { FigshareReDBoxFORMappingConfig } from './figshareRedboxFORMapping.config';
|
|
123
120
|
import { RecordTypeConfig } from './recordtype.config';
|
|
124
121
|
import { WorkflowConfig } from './workflow.config';
|
|
122
|
+
import { DashboardViewConfig } from './dashboardview.config';
|
|
125
123
|
import { AutoreloadConfig } from './autoreload.config';
|
|
126
124
|
import { CustomConfig } from './custom.config';
|
|
127
125
|
import { DynamicConfigConfig } from './dynamicconfig.config';
|
|
@@ -130,10 +128,10 @@ import { DataPubsConfig } from './datapubs.config';
|
|
|
130
128
|
import { WorkspaceTypeConfig } from './workspacetype.config';
|
|
131
129
|
import { LogNamespaceConfig } from './lognamespace.config';
|
|
132
130
|
import { RedboxToCkanConfig } from './redboxToCkan.config';
|
|
133
|
-
import { FigshareApiEnvConfig } from './figshareAPIEnv.config';
|
|
134
131
|
import { TypeScriptHookConfig } from './typescript.config';
|
|
135
132
|
import { CustomCacheConfig } from './custom_cache.config';
|
|
136
133
|
import { ValidatorsConfig } from './validators.config';
|
|
134
|
+
import { HarvestRunsConfig } from './harvestRuns.config';
|
|
137
135
|
import { AuthorizedDomainsEmails } from '../configmodels/AuthorizedDomainsEmails';
|
|
138
136
|
/**
|
|
139
137
|
* Branding-aware config function type
|
|
@@ -161,7 +159,6 @@ export interface SailsConfig {
|
|
|
161
159
|
api: ReDBoxAPIConfig;
|
|
162
160
|
appmode: AppModeConfig;
|
|
163
161
|
record: RecordConfig;
|
|
164
|
-
datacite: DataciteConfig;
|
|
165
162
|
vocab: VocabConfig;
|
|
166
163
|
datastores: DatastoresConfig;
|
|
167
164
|
sockets: SocketsConfig;
|
|
@@ -189,6 +186,7 @@ export interface SailsConfig {
|
|
|
189
186
|
views: ViewsConfig;
|
|
190
187
|
routes: RoutesConfig;
|
|
191
188
|
bootstrap: BootstrapConfig;
|
|
189
|
+
apiRoutesHooks?: ApiRouteProvider[];
|
|
192
190
|
queue: QueueConfig;
|
|
193
191
|
storage: StorageConfig;
|
|
194
192
|
orcid: OrcidConfig;
|
|
@@ -197,6 +195,7 @@ export interface SailsConfig {
|
|
|
197
195
|
emailnotification: EmailNotificationConfig;
|
|
198
196
|
agendaQueue: AgendaQueueConfig;
|
|
199
197
|
crontab: CrontabConfig;
|
|
198
|
+
figshareDev: FigshareDevConfig;
|
|
200
199
|
solr: SolrSearchConfig;
|
|
201
200
|
form: FormConfig;
|
|
202
201
|
webpack: WebpackConfig;
|
|
@@ -205,11 +204,9 @@ export interface SailsConfig {
|
|
|
205
204
|
branding: BrandingConfig;
|
|
206
205
|
brandingConfigurationDefaults: BrandingConfigurationDefaultsConfig;
|
|
207
206
|
raid: RaidConfig;
|
|
208
|
-
reports: ReportsConfig;
|
|
209
|
-
figshareAPI: FigshareApiConfig;
|
|
210
|
-
figshareReDBoxFORMapping: FigshareReDBoxFORMappingConfig;
|
|
211
207
|
recordtype: RecordTypeConfig;
|
|
212
208
|
workflow: WorkflowConfig;
|
|
209
|
+
dashboardview: DashboardViewConfig;
|
|
213
210
|
autoreload: AutoreloadConfig;
|
|
214
211
|
custom: CustomConfig;
|
|
215
212
|
dynamicconfig: DynamicConfigConfig;
|
|
@@ -218,10 +215,10 @@ export interface SailsConfig {
|
|
|
218
215
|
workspacetype: WorkspaceTypeConfig;
|
|
219
216
|
lognamespace: LogNamespaceConfig;
|
|
220
217
|
redboxToCkan: RedboxToCkanConfig;
|
|
221
|
-
figshareAPIEnv: FigshareApiEnvConfig;
|
|
222
218
|
typescript: TypeScriptHookConfig;
|
|
223
219
|
custom_cache: CustomCacheConfig;
|
|
224
220
|
validators: ValidatorsConfig;
|
|
221
|
+
harvestRuns: HarvestRunsConfig;
|
|
225
222
|
auth: AuthConfig;
|
|
226
223
|
passport: PassportConfig;
|
|
227
224
|
brandingAware: BrandingAwareFunction;
|
|
@@ -241,7 +238,6 @@ export declare const Config: {
|
|
|
241
238
|
readonly api: ReDBoxAPIConfig;
|
|
242
239
|
readonly appmode: AppModeConfig;
|
|
243
240
|
readonly record: RecordConfig;
|
|
244
|
-
readonly datacite: DataciteConfig;
|
|
245
241
|
readonly vocab: VocabConfig;
|
|
246
242
|
readonly sockets: SocketsConfig;
|
|
247
243
|
readonly static_assets: StaticAssetsConfig;
|
|
@@ -276,6 +272,7 @@ export declare const Config: {
|
|
|
276
272
|
readonly emailnotification: EmailNotificationConfig;
|
|
277
273
|
readonly agendaQueue: AgendaQueueConfig;
|
|
278
274
|
readonly crontab: CrontabConfig;
|
|
275
|
+
readonly figshareDev: FigshareDevConfig;
|
|
279
276
|
readonly solr: SolrSearchConfig;
|
|
280
277
|
readonly csp: ContentSecurityPolicyConfig;
|
|
281
278
|
readonly dompurify: DomPurifyConfig;
|
|
@@ -287,20 +284,18 @@ export declare const Config: {
|
|
|
287
284
|
readonly workspacetype: WorkspaceTypeConfig;
|
|
288
285
|
readonly lognamespace: LogNamespaceConfig;
|
|
289
286
|
readonly redboxToCkan: RedboxToCkanConfig;
|
|
290
|
-
readonly figshareAPIEnv: FigshareApiEnvConfig;
|
|
291
287
|
readonly typescript: TypeScriptHookConfig;
|
|
292
288
|
readonly custom_cache: CustomCacheConfig;
|
|
293
289
|
readonly redboxSession: RedboxSessionConfig;
|
|
294
290
|
readonly companion: CompanionConfig;
|
|
295
291
|
readonly brandingConfigurationDefaults: Partial<BrandingConfigurationDefaultsConfig>;
|
|
296
|
-
readonly reports: ReportsConfig;
|
|
297
292
|
readonly branding: BrandingConfig;
|
|
298
293
|
readonly raid: RaidConfig;
|
|
299
294
|
readonly recordtype: RecordTypeConfig;
|
|
300
295
|
readonly workflow: WorkflowConfig;
|
|
301
|
-
readonly
|
|
302
|
-
readonly figshareReDBoxFORMapping: FigshareReDBoxFORMappingConfig;
|
|
296
|
+
readonly dashboardview: DashboardViewConfig;
|
|
303
297
|
readonly validators: ValidatorsConfig;
|
|
298
|
+
readonly harvestRuns: HarvestRunsConfig;
|
|
304
299
|
};
|
|
305
300
|
export type ConfigType = typeof Config;
|
|
306
301
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAE7B,cAAc,eAAe,CAAC;AAE9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wCAAwC,CAAC;AACvD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAO,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAS,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAiB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAQ,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAQ,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAc,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAA2B,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAO,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAO,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAc,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAc,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAQ,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAiB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAO,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAW,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAS,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAS,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAS,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAQ,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAqB,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAe,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAe,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAQ,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAW,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAO,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAa,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAa,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIhE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAY,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mCAAmC,EAAiC,eAAe,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClK,OAAO,EAAE,UAAU,EAAQ,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAc,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAY,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAiB,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAc,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAiB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAiB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAiB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAgB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAc,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAc,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAe,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,mCAAmC,GAAG;IAC9F,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,YAAY,EAAE,CACV,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChE,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAExB,GAAG,EAAE,eAAe,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,kBAAkB,CAAC;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,kBAAkB,CAAC;IACjC,YAAY,EAAE,kBAAkB,CAAC;IACjC,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,CAAC;IAGf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,uBAAuB,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAGpC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IAGvB,GAAG,EAAE,2BAA2B,CAAC;IACjC,SAAS,EAAE,eAAe,CAAC;IAI3B,QAAQ,EAAE,cAAc,CAAC;IACzB,6BAA6B,EAAE,mCAAmC,CAAC;IACnE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,mBAAmB,CAAC;IAGnC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,mBAAmB,CAAC;IACnC,aAAa,EAAE,mBAAmB,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,mBAAmB,CAAC;IACnC,YAAY,EAAE,kBAAkB,CAAC;IACjC,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,iBAAiB,CAAC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,iBAAiB,CAAC;IAG/B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IAGzB,aAAa,EAAE,qBAAqB,CAAC;IAGrC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGlC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IAGb,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmET,CAAC;AAGX,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC"}
|