@researchdatabox/redbox-core 0.0.1-beta.9228 → 0.0.1-beta.9604
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 +40 -4
- package/dist/DatastreamService.d.ts +5 -2
- package/dist/DatastreamService.d.ts.map +1 -1
- package/dist/QueueService.d.ts +1 -1
- package/dist/QueueService.d.ts.map +1 -1
- package/dist/RecordsService.d.ts +38 -2
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +2 -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/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/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 +349 -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 +3 -0
- package/dist/api-routes/groups/reports.d.ts.map +1 -0
- package/dist/api-routes/groups/reports.js +20 -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 +486 -0
- package/dist/api-routes/index.d.ts +25 -0
- package/dist/api-routes/index.d.ts.map +1 -0
- package/dist/api-routes/index.js +41 -0
- package/dist/api-routes/openapi.d.ts +27 -0
- package/dist/api-routes/openapi.d.ts.map +1 -0
- package/dist/api-routes/openapi.js +273 -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 +113 -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 +57 -0
- package/dist/api-routes/schemas/common.d.ts +37 -0
- package/dist/api-routes/schemas/common.d.ts.map +1 -0
- package/dist/api-routes/schemas/common.js +147 -0
- package/dist/api-routes/schemas/responses.d.ts +2904 -0
- package/dist/api-routes/schemas/responses.d.ts.map +1 -0
- package/dist/api-routes/schemas/responses.js +417 -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/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +10 -10
- package/dist/config/agendaQueue.config.d.ts +25 -1
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +19 -2
- package/dist/config/auth.config.d.ts.map +1 -1
- package/dist/config/auth.config.js +21 -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.js +3 -3
- 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.map +1 -1
- package/dist/config/dompurify.config.js +2 -2
- 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/http.config.d.ts +1 -1
- package/dist/config/http.config.d.ts.map +1 -1
- package/dist/config/http.config.js +36 -6
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -1
- package/dist/config/namedQuery.config.d.ts +10 -2
- package/dist/config/namedQuery.config.d.ts.map +1 -1
- package/dist/config/namedQuery.config.js +17 -17
- 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 +85 -9
- 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 +28 -113
- 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 +1 -2
- package/dist/configmodels/ConfigModels.d.ts +1 -1
- package/dist/configmodels/ConfigModels.d.ts.map +1 -1
- package/dist/configmodels/ConfigModels.js +9 -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/controllers/AdminController.d.ts +0 -1
- package/dist/controllers/AdminController.d.ts.map +1 -1
- package/dist/controllers/AdminController.js +2 -32
- package/dist/controllers/BrandingAppController.js +2 -2
- 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 +151 -4
- package/dist/controllers/RecordController.d.ts +18 -1
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +295 -129
- package/dist/controllers/RenderViewController.d.ts.map +1 -1
- package/dist/controllers/RenderViewController.js +4 -2
- package/dist/controllers/TranslationController.d.ts.map +1 -1
- package/dist/controllers/TranslationController.js +5 -4
- 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 +7 -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 +19 -20
- package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
- package/dist/controllers/webservice/BrandingController.js +102 -49
- 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/RecordController.d.ts +4 -0
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +428 -257
- 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.map +1 -1
- package/dist/controllers/webservice/ReportController.js +18 -20
- 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/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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/loader/index.d.ts +6 -0
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +57 -10
- package/dist/middleware/redboxSession.d.ts.map +1 -1
- package/dist/middleware/redboxSession.js +6 -2
- 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/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/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/policies/contentSecurityPolicy.d.ts.map +1 -1
- package/dist/policies/contentSecurityPolicy.js +23 -2
- 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/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 +38 -17
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +311 -81
- 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 +6 -8
- package/dist/services/BrandingLogoService.d.ts.map +1 -1
- package/dist/services/BrandingLogoService.js +66 -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 +309 -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 +11 -0
- package/dist/services/DoiService.d.ts.map +1 -1
- package/dist/services/DoiService.js +206 -1
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +5 -1
- 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 +18 -18
- 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.js +5 -5
- 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/NamedQueryService.d.ts +27 -9
- package/dist/services/NamedQueryService.d.ts.map +1 -1
- package/dist/services/NamedQueryService.js +223 -55
- 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 +8 -2
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +66 -18
- package/dist/services/ReportsService.d.ts.map +1 -1
- package/dist/services/ReportsService.js +7 -1
- 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/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 +1 -17
- package/dist/services/TemplateService.d.ts.map +1 -1
- package/dist/services/TemplateService.js +5 -50
- package/dist/services/VocabularyService.d.ts +12 -0
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +201 -14
- package/dist/services/doi-v2/bindings.d.ts.map +1 -1
- package/dist/services/doi-v2/bindings.js +2 -8
- package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
- package/dist/services/figshare-v2/bindings.js +2 -5
- package/dist/services/index.d.ts +15 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +27 -7
- 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/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 +93 -92
- package/dist/visitor/client.visitor.d.ts.map +1 -1
- package/dist/visitor/client.visitor.js +159 -159
- package/dist/visitor/construct.visitor.d.ts +95 -95
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +159 -156
- 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 +95 -95
- package/dist/visitor/data-value.visitor.d.ts.map +1 -1
- package/dist/visitor/data-value.visitor.js +151 -151
- package/dist/visitor/json-type-def.visitor.d.ts +92 -92
- package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
- package/dist/visitor/json-type-def.visitor.js +152 -152
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +96 -96
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +205 -184
- package/dist/visitor/template.visitor.d.ts +96 -94
- package/dist/visitor/template.visitor.d.ts.map +1 -1
- package/dist/visitor/template.visitor.js +214 -159
- package/dist/visitor/validator.visitor.d.ts +92 -92
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +175 -154
- package/dist/visitor/visitor-helpers.js +9 -9
- package/dist/visitor/vocab-inline.visitor.d.ts +18 -18
- package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
- package/dist/visitor/vocab-inline.visitor.js +67 -53
- 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/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/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 +4 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +7 -1
- package/package.json +36 -23
- 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/services/VocabService.d.ts +0 -81
- package/dist/services/VocabService.d.ts.map +0 -1
- package/dist/services/VocabService.js +0 -424
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/api-routes/schemas/responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordListItemSchema = exports.objectMetadataSchema = exports.recordMetadataSchema = exports.searchResultsSchema = exports.searchRecordSchema = exports.searchFacetSchema = exports.searchFacetValueSchema = exports.translationBundleSchema = exports.translationEntrySchema = exports.vocabularySchema = exports.vocabularyTreeNodeSchema = exports.vocabularyEntrySchema = exports.formSchema = exports.recordTypeSchema = exports.recordTypeHooksSchema = exports.recordTypeHookOnEventSchema = exports.recordTypeHookDeclarationSchema = exports.relatedToSchema = exports.searchFilterSchema = exports.userRecordSchema = exports.brandingHistoryRecordSchema = exports.brandingLogoResponseSchema = exports.brandingRollbackResponseSchema = exports.brandingPublishResponseSchema = exports.brandingPreviewResponseSchema = exports.brandingDraftResponseSchema = exports.brandingConfigSchema = exports.roleSummarySchema = exports.supportAgreementYearSchema = exports.statusMessageResponseSchema = exports.userAuditResponseSchema = exports.userAuditSummarySchema = exports.userAuditRecordSchema = exports.userAuditActorSchema = exports.userLinkResponseSchema = exports.linkedUserSummarySchema = exports.storageServiceResponseSchema = exports.recordAuthorizationSchema = exports.genericObjectSchema = exports.userApiTokenApiResponseSchema = exports.createUserApiResponseSchema = exports.listApiSummarySchema = exports.apiHarvestResponseSchema = exports.apiObjectActionResponseSchema = exports.apiActionResponseSchema = exports.apiErrorResponseSchema = exports.buildResponseTypeSchema = exports.dataResponseV2Schema = exports.errorResponseV2Schema = exports.errorResponseItemV2Schema = void 0;
|
|
4
|
+
exports.appConfigValueSchema = exports.namedQueryResponseRecordSchema = exports.recordAuditEntrySchema = exports.datastreamUploadResponseSchema = exports.datastreamUploadResultSchema = exports.datastreamUploadFileSchema = exports.datastreamSummarySchema = exports.deletedRecordListItemSchema = void 0;
|
|
5
|
+
exports.listApiResponseSchema = listApiResponseSchema;
|
|
6
|
+
require("zod-to-openapi");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
function withOpenApi(schema, metadata) {
|
|
9
|
+
return schema.openapi(metadata);
|
|
10
|
+
}
|
|
11
|
+
const metaResponseItemV2Schema = withOpenApi(zod_1.z.object({}).passthrough(), {
|
|
12
|
+
description: 'Non-standard response metadata',
|
|
13
|
+
});
|
|
14
|
+
exports.errorResponseItemV2Schema = withOpenApi(zod_1.z.object({
|
|
15
|
+
id: zod_1.z.string().optional(),
|
|
16
|
+
status: zod_1.z.string().optional(),
|
|
17
|
+
code: zod_1.z.string().optional(),
|
|
18
|
+
title: zod_1.z.string().optional(),
|
|
19
|
+
detail: zod_1.z.string().optional(),
|
|
20
|
+
source: zod_1.z
|
|
21
|
+
.object({
|
|
22
|
+
pointer: zod_1.z.string().optional(),
|
|
23
|
+
parameter: zod_1.z.string().optional(),
|
|
24
|
+
header: zod_1.z.string().optional(),
|
|
25
|
+
})
|
|
26
|
+
.partial()
|
|
27
|
+
.optional(),
|
|
28
|
+
links: zod_1.z
|
|
29
|
+
.object({
|
|
30
|
+
about: zod_1.z.string().optional(),
|
|
31
|
+
type: zod_1.z.string().optional(),
|
|
32
|
+
})
|
|
33
|
+
.partial()
|
|
34
|
+
.optional(),
|
|
35
|
+
meta: metaResponseItemV2Schema.optional(),
|
|
36
|
+
}), { description: 'JSON:API error item used for validation and display errors' });
|
|
37
|
+
exports.errorResponseV2Schema = withOpenApi(zod_1.z.object({
|
|
38
|
+
errors: zod_1.z.array(exports.errorResponseItemV2Schema),
|
|
39
|
+
meta: metaResponseItemV2Schema,
|
|
40
|
+
}), { description: 'JSON:API error response envelope' });
|
|
41
|
+
exports.dataResponseV2Schema = withOpenApi(zod_1.z.object({
|
|
42
|
+
data: zod_1.z.unknown(),
|
|
43
|
+
meta: metaResponseItemV2Schema,
|
|
44
|
+
}), { description: 'JSON:API success response envelope' });
|
|
45
|
+
exports.buildResponseTypeSchema = withOpenApi(zod_1.z.object({
|
|
46
|
+
format: zod_1.z.literal('json').optional(),
|
|
47
|
+
data: zod_1.z.unknown().optional(),
|
|
48
|
+
status: zod_1.z.number().int().optional(),
|
|
49
|
+
headers: zod_1.z.record(zod_1.z.string()).optional(),
|
|
50
|
+
errors: zod_1.z.array(zod_1.z.object({}).passthrough()).optional(),
|
|
51
|
+
displayErrors: zod_1.z.array(exports.errorResponseItemV2Schema).optional(),
|
|
52
|
+
meta: metaResponseItemV2Schema.optional(),
|
|
53
|
+
v1: zod_1.z.unknown().optional(),
|
|
54
|
+
}), { description: 'Internal response envelope used by CoreController.sendResp' });
|
|
55
|
+
const messageDetailsSchema = zod_1.z.object({
|
|
56
|
+
message: zod_1.z.string(),
|
|
57
|
+
details: zod_1.z.string(),
|
|
58
|
+
});
|
|
59
|
+
exports.apiErrorResponseSchema = withOpenApi(messageDetailsSchema, {
|
|
60
|
+
description: 'Legacy API error response with message and details fields',
|
|
61
|
+
});
|
|
62
|
+
exports.apiActionResponseSchema = withOpenApi(messageDetailsSchema, {
|
|
63
|
+
description: 'Legacy API action response with message and details fields',
|
|
64
|
+
});
|
|
65
|
+
exports.apiObjectActionResponseSchema = withOpenApi(messageDetailsSchema.extend({
|
|
66
|
+
oid: zod_1.z.string(),
|
|
67
|
+
}), { description: 'Legacy API object action response with oid, message, and details fields' });
|
|
68
|
+
exports.apiHarvestResponseSchema = withOpenApi(zod_1.z.object({
|
|
69
|
+
harvestId: zod_1.z.string(),
|
|
70
|
+
oid: zod_1.z.string(),
|
|
71
|
+
message: zod_1.z.string(),
|
|
72
|
+
details: zod_1.z.string(),
|
|
73
|
+
status: zod_1.z.boolean(),
|
|
74
|
+
}), { description: 'Legacy harvest response envelope' });
|
|
75
|
+
exports.listApiSummarySchema = withOpenApi(zod_1.z.object({
|
|
76
|
+
numFound: zod_1.z.number().int(),
|
|
77
|
+
page: zod_1.z.number().int(),
|
|
78
|
+
start: zod_1.z.number().int(),
|
|
79
|
+
}), { description: 'Legacy list response summary' });
|
|
80
|
+
function listApiResponseSchema(recordSchema) {
|
|
81
|
+
return withOpenApi(zod_1.z.object({
|
|
82
|
+
summary: exports.listApiSummarySchema,
|
|
83
|
+
records: zod_1.z.array(recordSchema),
|
|
84
|
+
}), { description: 'Legacy list response envelope' });
|
|
85
|
+
}
|
|
86
|
+
exports.createUserApiResponseSchema = withOpenApi(zod_1.z.object({
|
|
87
|
+
id: zod_1.z.string(),
|
|
88
|
+
username: zod_1.z.string(),
|
|
89
|
+
name: zod_1.z.string(),
|
|
90
|
+
email: zod_1.z.string(),
|
|
91
|
+
type: zod_1.z.string(),
|
|
92
|
+
lastLogin: zod_1.z.string().nullable(),
|
|
93
|
+
}), { description: 'User response returned by create and update actions' });
|
|
94
|
+
exports.userApiTokenApiResponseSchema = withOpenApi(zod_1.z.object({
|
|
95
|
+
id: zod_1.z.string(),
|
|
96
|
+
username: zod_1.z.string(),
|
|
97
|
+
token: zod_1.z.string(),
|
|
98
|
+
}), { description: 'API token response returned by token generation actions' });
|
|
99
|
+
exports.genericObjectSchema = withOpenApi(zod_1.z.object({}).passthrough(), {
|
|
100
|
+
description: 'Arbitrary object payload',
|
|
101
|
+
});
|
|
102
|
+
exports.recordAuthorizationSchema = withOpenApi(zod_1.z.object({
|
|
103
|
+
edit: zod_1.z.array(zod_1.z.string()).optional(),
|
|
104
|
+
view: zod_1.z.array(zod_1.z.string()).optional(),
|
|
105
|
+
editPending: zod_1.z.array(zod_1.z.string()).optional(),
|
|
106
|
+
viewPending: zod_1.z.array(zod_1.z.string()).optional(),
|
|
107
|
+
editRoles: zod_1.z.array(zod_1.z.string()).optional(),
|
|
108
|
+
viewRoles: zod_1.z.array(zod_1.z.string()).optional(),
|
|
109
|
+
}), { description: 'Record authorization payload' });
|
|
110
|
+
exports.storageServiceResponseSchema = withOpenApi(zod_1.z.object({
|
|
111
|
+
success: zod_1.z.boolean(),
|
|
112
|
+
oid: zod_1.z.string(),
|
|
113
|
+
message: zod_1.z.string(),
|
|
114
|
+
metadata: exports.genericObjectSchema.nullable(),
|
|
115
|
+
details: zod_1.z.union([zod_1.z.string(), exports.genericObjectSchema]).optional(),
|
|
116
|
+
totalItems: zod_1.z.number().int(),
|
|
117
|
+
items: zod_1.z.array(exports.genericObjectSchema),
|
|
118
|
+
}), { description: 'Storage service response envelope' });
|
|
119
|
+
exports.linkedUserSummarySchema = withOpenApi(zod_1.z.object({
|
|
120
|
+
id: zod_1.z.string(),
|
|
121
|
+
username: zod_1.z.string(),
|
|
122
|
+
name: zod_1.z.string(),
|
|
123
|
+
email: zod_1.z.string(),
|
|
124
|
+
type: zod_1.z.string(),
|
|
125
|
+
accountLinkState: zod_1.z.string(),
|
|
126
|
+
linkedAt: zod_1.z.string().optional(),
|
|
127
|
+
}), { description: 'Linked user summary' });
|
|
128
|
+
exports.userLinkResponseSchema = withOpenApi(zod_1.z.object({
|
|
129
|
+
primary: exports.linkedUserSummarySchema,
|
|
130
|
+
linkedAccounts: zod_1.z.array(exports.linkedUserSummarySchema),
|
|
131
|
+
impact: zod_1.z
|
|
132
|
+
.object({
|
|
133
|
+
recordsRewritten: zod_1.z.number().int(),
|
|
134
|
+
rolesMerged: zod_1.z.number().int(),
|
|
135
|
+
})
|
|
136
|
+
.optional(),
|
|
137
|
+
}), { description: 'Linked accounts response' });
|
|
138
|
+
exports.userAuditActorSchema = withOpenApi(zod_1.z.object({
|
|
139
|
+
username: zod_1.z.string(),
|
|
140
|
+
name: zod_1.z.string().optional(),
|
|
141
|
+
email: zod_1.z.string().optional(),
|
|
142
|
+
}), { description: 'Audit actor summary' });
|
|
143
|
+
exports.userAuditRecordSchema = withOpenApi(zod_1.z.object({
|
|
144
|
+
id: zod_1.z.string(),
|
|
145
|
+
timestamp: zod_1.z.string().nullable(),
|
|
146
|
+
action: zod_1.z.string(),
|
|
147
|
+
actor: exports.userAuditActorSchema,
|
|
148
|
+
details: zod_1.z.string(),
|
|
149
|
+
parsedAdditionalContext: exports.genericObjectSchema,
|
|
150
|
+
rawAdditionalContext: zod_1.z.string().nullable(),
|
|
151
|
+
parseError: zod_1.z.boolean(),
|
|
152
|
+
}), { description: 'User audit record' });
|
|
153
|
+
exports.userAuditSummarySchema = withOpenApi(zod_1.z.object({
|
|
154
|
+
returnedCount: zod_1.z.number().int(),
|
|
155
|
+
truncated: zod_1.z.boolean(),
|
|
156
|
+
}), { description: 'User audit summary' });
|
|
157
|
+
exports.userAuditResponseSchema = withOpenApi(zod_1.z.object({
|
|
158
|
+
user: exports.genericObjectSchema.nullable(),
|
|
159
|
+
records: zod_1.z.array(exports.userAuditRecordSchema),
|
|
160
|
+
summary: exports.userAuditSummarySchema,
|
|
161
|
+
}), { description: 'User audit response' });
|
|
162
|
+
exports.statusMessageResponseSchema = withOpenApi(zod_1.z.object({
|
|
163
|
+
status: zod_1.z.boolean(),
|
|
164
|
+
message: zod_1.z.string(),
|
|
165
|
+
}), { description: 'Status and message response' });
|
|
166
|
+
const dateTimeSchema = withOpenApi(zod_1.z.string(), {
|
|
167
|
+
description: 'ISO 8601 date-time string',
|
|
168
|
+
format: 'date-time',
|
|
169
|
+
});
|
|
170
|
+
const jsonObjectSchema = withOpenApi(zod_1.z.object({}).passthrough(), {
|
|
171
|
+
description: 'Arbitrary JSON object',
|
|
172
|
+
});
|
|
173
|
+
const brandingReferenceSchema = withOpenApi(zod_1.z.union([zod_1.z.string(), zod_1.z.number()]), {
|
|
174
|
+
description: 'Branding identifier',
|
|
175
|
+
});
|
|
176
|
+
const jsonValueSchema = withOpenApi(zod_1.z.unknown(), {
|
|
177
|
+
description: 'Any JSON value',
|
|
178
|
+
type: 'object',
|
|
179
|
+
nullable: true,
|
|
180
|
+
});
|
|
181
|
+
exports.supportAgreementYearSchema = withOpenApi(zod_1.z.object({
|
|
182
|
+
agreedSupportDays: zod_1.z.number(),
|
|
183
|
+
usedSupportDays: zod_1.z.number(),
|
|
184
|
+
}), { description: 'Annual support agreement usage' });
|
|
185
|
+
exports.roleSummarySchema = withOpenApi(zod_1.z.object({
|
|
186
|
+
id: zod_1.z.string(),
|
|
187
|
+
name: zod_1.z.string(),
|
|
188
|
+
branding: brandingReferenceSchema.optional(),
|
|
189
|
+
}).passthrough(), { description: 'Role summary' });
|
|
190
|
+
exports.brandingConfigSchema = withOpenApi(zod_1.z.object({
|
|
191
|
+
id: zod_1.z.string(),
|
|
192
|
+
name: zod_1.z.string(),
|
|
193
|
+
css: zod_1.z.string(),
|
|
194
|
+
variables: jsonObjectSchema.optional(),
|
|
195
|
+
version: zod_1.z.number().int().optional(),
|
|
196
|
+
hash: zod_1.z.string().optional(),
|
|
197
|
+
logo: jsonObjectSchema.optional(),
|
|
198
|
+
roles: zod_1.z.array(exports.roleSummarySchema).optional(),
|
|
199
|
+
supportAgreementInformation: jsonObjectSchema.optional(),
|
|
200
|
+
}).passthrough(), { description: 'Branding configuration record' });
|
|
201
|
+
exports.brandingDraftResponseSchema = withOpenApi(zod_1.z.object({
|
|
202
|
+
branding: exports.brandingConfigSchema,
|
|
203
|
+
}), { description: 'Saved branding draft response' });
|
|
204
|
+
exports.brandingPreviewResponseSchema = withOpenApi(zod_1.z.object({
|
|
205
|
+
token: zod_1.z.string(),
|
|
206
|
+
url: zod_1.z.string(),
|
|
207
|
+
hash: zod_1.z.string(),
|
|
208
|
+
previewToken: zod_1.z.string(),
|
|
209
|
+
previewUrl: zod_1.z.string(),
|
|
210
|
+
branding: exports.brandingConfigSchema.optional(),
|
|
211
|
+
}), { description: 'Branding preview response' });
|
|
212
|
+
exports.brandingPublishResponseSchema = withOpenApi(zod_1.z.object({
|
|
213
|
+
version: zod_1.z.number().int(),
|
|
214
|
+
hash: zod_1.z.string(),
|
|
215
|
+
idempotent: zod_1.z.boolean().optional(),
|
|
216
|
+
}), { description: 'Branding publish response' });
|
|
217
|
+
exports.brandingRollbackResponseSchema = withOpenApi(zod_1.z.object({
|
|
218
|
+
version: zod_1.z.number().int(),
|
|
219
|
+
hash: zod_1.z.string(),
|
|
220
|
+
branding: exports.brandingConfigSchema.nullable(),
|
|
221
|
+
}), { description: 'Branding rollback response' });
|
|
222
|
+
exports.brandingLogoResponseSchema = withOpenApi(zod_1.z.object({
|
|
223
|
+
hash: zod_1.z.string(),
|
|
224
|
+
}), { description: 'Branding logo upload response' });
|
|
225
|
+
exports.brandingHistoryRecordSchema = withOpenApi(zod_1.z.object({
|
|
226
|
+
branding: brandingReferenceSchema,
|
|
227
|
+
version: zod_1.z.number().int(),
|
|
228
|
+
hash: zod_1.z.string(),
|
|
229
|
+
css: zod_1.z.string().optional(),
|
|
230
|
+
variables: jsonObjectSchema.optional(),
|
|
231
|
+
dateCreated: dateTimeSchema.optional(),
|
|
232
|
+
}).passthrough(), { description: 'Branding history entry' });
|
|
233
|
+
exports.userRecordSchema = withOpenApi(zod_1.z.object({
|
|
234
|
+
id: zod_1.z.string(),
|
|
235
|
+
username: zod_1.z.string(),
|
|
236
|
+
type: zod_1.z.string(),
|
|
237
|
+
name: zod_1.z.string(),
|
|
238
|
+
email: zod_1.z.string(),
|
|
239
|
+
lastLogin: dateTimeSchema.nullable().optional(),
|
|
240
|
+
additionalAttributes: jsonObjectSchema.optional(),
|
|
241
|
+
linkedPrimaryUserId: zod_1.z.string().optional(),
|
|
242
|
+
accountLinkState: zod_1.z.string().optional(),
|
|
243
|
+
effectivePrimaryUsername: zod_1.z.string().optional(),
|
|
244
|
+
linkedAccountCount: zod_1.z.number().int().optional(),
|
|
245
|
+
loginDisabled: zod_1.z.boolean().optional(),
|
|
246
|
+
effectiveLoginDisabled: zod_1.z.boolean().optional(),
|
|
247
|
+
disabledByPrimaryUserId: zod_1.z.string().optional(),
|
|
248
|
+
disabledByPrimaryUsername: zod_1.z.string().optional(),
|
|
249
|
+
workspaceApps: zod_1.z.array(jsonObjectSchema).optional(),
|
|
250
|
+
roles: zod_1.z.array(exports.roleSummarySchema).optional(),
|
|
251
|
+
}).passthrough(), { description: 'User record response' });
|
|
252
|
+
exports.searchFilterSchema = withOpenApi(zod_1.z.object({
|
|
253
|
+
name: zod_1.z.string(),
|
|
254
|
+
title: zod_1.z.string(),
|
|
255
|
+
type: zod_1.z.string(),
|
|
256
|
+
typeLabel: zod_1.z.string(),
|
|
257
|
+
}).passthrough(), { description: 'Record type search filter' });
|
|
258
|
+
exports.relatedToSchema = withOpenApi(zod_1.z.object({
|
|
259
|
+
recordType: zod_1.z.string(),
|
|
260
|
+
foreignField: zod_1.z.string(),
|
|
261
|
+
}).passthrough(), { description: 'Record type relation mapping' });
|
|
262
|
+
exports.recordTypeHookDeclarationSchema = withOpenApi(zod_1.z.object({
|
|
263
|
+
function: zod_1.z.string(),
|
|
264
|
+
options: jsonObjectSchema,
|
|
265
|
+
}).passthrough(), { description: 'Record type hook declaration' });
|
|
266
|
+
exports.recordTypeHookOnEventSchema = withOpenApi(zod_1.z.object({
|
|
267
|
+
pre: zod_1.z.array(exports.recordTypeHookDeclarationSchema),
|
|
268
|
+
post: zod_1.z.array(exports.recordTypeHookDeclarationSchema),
|
|
269
|
+
postSync: zod_1.z.array(exports.recordTypeHookDeclarationSchema),
|
|
270
|
+
}).passthrough(), { description: 'Record type hook event handlers' });
|
|
271
|
+
exports.recordTypeHooksSchema = withOpenApi(zod_1.z.object({
|
|
272
|
+
onCreate: exports.recordTypeHookOnEventSchema,
|
|
273
|
+
onUpdate: exports.recordTypeHookOnEventSchema,
|
|
274
|
+
onDelete: exports.recordTypeHookOnEventSchema,
|
|
275
|
+
}).passthrough(), { description: 'Record type hooks configuration' });
|
|
276
|
+
exports.recordTypeSchema = withOpenApi(zod_1.z.object({
|
|
277
|
+
key: zod_1.z.string().optional(),
|
|
278
|
+
name: zod_1.z.string(),
|
|
279
|
+
branding: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), exports.brandingConfigSchema]).optional(),
|
|
280
|
+
packageType: zod_1.z.string().optional(),
|
|
281
|
+
searchCore: zod_1.z.string().optional(),
|
|
282
|
+
workflowSteps: zod_1.z.array(jsonObjectSchema).optional(),
|
|
283
|
+
searchFilters: zod_1.z.array(exports.searchFilterSchema).optional(),
|
|
284
|
+
searchable: zod_1.z.boolean().optional(),
|
|
285
|
+
transferResponsibility: jsonObjectSchema.optional(),
|
|
286
|
+
relatedTo: zod_1.z.array(exports.relatedToSchema).optional(),
|
|
287
|
+
hooks: exports.recordTypeHooksSchema.optional(),
|
|
288
|
+
dashboard: jsonObjectSchema.optional(),
|
|
289
|
+
}).passthrough(), { description: 'Record type configuration' });
|
|
290
|
+
exports.formSchema = withOpenApi(zod_1.z.object({
|
|
291
|
+
id: zod_1.z.string().optional(),
|
|
292
|
+
name: zod_1.z.string(),
|
|
293
|
+
branding: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), exports.brandingConfigSchema]).optional(),
|
|
294
|
+
configuration: jsonObjectSchema.optional(),
|
|
295
|
+
}).passthrough(), { description: 'Form definition' });
|
|
296
|
+
exports.vocabularyEntrySchema = withOpenApi(zod_1.z.object({
|
|
297
|
+
id: zod_1.z.string().optional(),
|
|
298
|
+
vocabulary: brandingReferenceSchema.optional(),
|
|
299
|
+
label: zod_1.z.string(),
|
|
300
|
+
labelLower: zod_1.z.string().optional(),
|
|
301
|
+
value: zod_1.z.string(),
|
|
302
|
+
valueLower: zod_1.z.string().optional(),
|
|
303
|
+
parent: brandingReferenceSchema.nullable().optional(),
|
|
304
|
+
identifier: zod_1.z.string().optional(),
|
|
305
|
+
order: zod_1.z.number().int().optional(),
|
|
306
|
+
historical: zod_1.z.boolean().optional(),
|
|
307
|
+
}).passthrough(), { description: 'Vocabulary entry' });
|
|
308
|
+
exports.vocabularyTreeNodeSchema = withOpenApi(exports.vocabularyEntrySchema.extend({
|
|
309
|
+
children: zod_1.z.array(exports.vocabularyEntrySchema).optional(),
|
|
310
|
+
}), { description: 'Vocabulary tree node' });
|
|
311
|
+
exports.vocabularySchema = withOpenApi(zod_1.z.object({
|
|
312
|
+
id: zod_1.z.string().optional(),
|
|
313
|
+
branding: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), exports.brandingConfigSchema]).optional(),
|
|
314
|
+
description: zod_1.z.string().optional(),
|
|
315
|
+
entries: zod_1.z.array(exports.vocabularyEntrySchema).optional(),
|
|
316
|
+
lastSyncedAt: dateTimeSchema.optional(),
|
|
317
|
+
name: zod_1.z.string(),
|
|
318
|
+
owner: zod_1.z.string().optional(),
|
|
319
|
+
rvaSourceKey: zod_1.z.string().nullable().optional(),
|
|
320
|
+
slug: zod_1.z.string(),
|
|
321
|
+
source: zod_1.z.string().optional(),
|
|
322
|
+
sourceId: zod_1.z.string().optional(),
|
|
323
|
+
sourceVersionId: zod_1.z.string().optional(),
|
|
324
|
+
type: zod_1.z.string().optional(),
|
|
325
|
+
}).passthrough(), { description: 'Vocabulary record' });
|
|
326
|
+
exports.translationEntrySchema = withOpenApi(zod_1.z.object({
|
|
327
|
+
id: zod_1.z.string().optional(),
|
|
328
|
+
branding: brandingReferenceSchema.optional(),
|
|
329
|
+
bundle: brandingReferenceSchema.optional(),
|
|
330
|
+
category: zod_1.z.string().nullable().optional(),
|
|
331
|
+
description: zod_1.z.string().nullable().optional(),
|
|
332
|
+
key: zod_1.z.string(),
|
|
333
|
+
locale: zod_1.z.string(),
|
|
334
|
+
namespace: zod_1.z.string().optional(),
|
|
335
|
+
uid: zod_1.z.string().optional(),
|
|
336
|
+
value: jsonValueSchema,
|
|
337
|
+
}).passthrough(), { description: 'Translation entry' });
|
|
338
|
+
exports.translationBundleSchema = withOpenApi(zod_1.z.object({
|
|
339
|
+
id: zod_1.z.string().optional(),
|
|
340
|
+
branding: brandingReferenceSchema.optional(),
|
|
341
|
+
data: jsonObjectSchema,
|
|
342
|
+
displayName: zod_1.z.string().optional(),
|
|
343
|
+
enabled: zod_1.z.boolean().optional(),
|
|
344
|
+
entries: zod_1.z.array(exports.translationEntrySchema).optional(),
|
|
345
|
+
locale: zod_1.z.string(),
|
|
346
|
+
namespace: zod_1.z.string().optional(),
|
|
347
|
+
uid: zod_1.z.string().optional(),
|
|
348
|
+
}).passthrough(), { description: 'Translation bundle' });
|
|
349
|
+
exports.searchFacetValueSchema = withOpenApi(zod_1.z.object({
|
|
350
|
+
value: zod_1.z.string(),
|
|
351
|
+
count: zod_1.z.number().int(),
|
|
352
|
+
}).passthrough(), { description: 'Search facet value' });
|
|
353
|
+
exports.searchFacetSchema = withOpenApi(zod_1.z.object({
|
|
354
|
+
name: zod_1.z.string(),
|
|
355
|
+
values: zod_1.z.array(exports.searchFacetValueSchema),
|
|
356
|
+
}).passthrough(), { description: 'Search facet summary' });
|
|
357
|
+
exports.searchRecordSchema = withOpenApi(zod_1.z.object({
|
|
358
|
+
hasEditAccess: zod_1.z.boolean(),
|
|
359
|
+
}).passthrough(), { description: 'Search result record' });
|
|
360
|
+
exports.searchResultsSchema = withOpenApi(zod_1.z.object({
|
|
361
|
+
records: zod_1.z.array(exports.searchRecordSchema),
|
|
362
|
+
facets: zod_1.z.array(exports.searchFacetSchema).optional(),
|
|
363
|
+
totalItems: zod_1.z.number().int(),
|
|
364
|
+
}).passthrough(), { description: 'Search response payload' });
|
|
365
|
+
exports.recordMetadataSchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Record metadata payload' });
|
|
366
|
+
exports.objectMetadataSchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Object metadata payload' });
|
|
367
|
+
exports.recordListItemSchema = withOpenApi(zod_1.z.object({
|
|
368
|
+
oid: zod_1.z.string(),
|
|
369
|
+
title: zod_1.z.string().optional(),
|
|
370
|
+
metadata: jsonObjectSchema,
|
|
371
|
+
dateCreated: dateTimeSchema.optional(),
|
|
372
|
+
dateModified: dateTimeSchema.optional(),
|
|
373
|
+
hasEditAccess: zod_1.z.boolean(),
|
|
374
|
+
}).passthrough(), { description: 'Record list item' });
|
|
375
|
+
exports.deletedRecordListItemSchema = withOpenApi(zod_1.z.object({
|
|
376
|
+
oid: zod_1.z.string(),
|
|
377
|
+
title: zod_1.z.string().optional(),
|
|
378
|
+
deletedRecord: jsonObjectSchema,
|
|
379
|
+
dateCreated: dateTimeSchema.optional(),
|
|
380
|
+
dateModified: dateTimeSchema.optional(),
|
|
381
|
+
dateDeleted: dateTimeSchema.optional(),
|
|
382
|
+
}).passthrough(), { description: 'Deleted record list item' });
|
|
383
|
+
exports.datastreamSummarySchema = withOpenApi(zod_1.z.object({
|
|
384
|
+
dateUpdated: dateTimeSchema.optional(),
|
|
385
|
+
label: zod_1.z.string().optional(),
|
|
386
|
+
contentType: zod_1.z.string().optional(),
|
|
387
|
+
filename: zod_1.z.string().optional(),
|
|
388
|
+
contentLength: zod_1.z.number().optional(),
|
|
389
|
+
lastModified: dateTimeSchema.optional(),
|
|
390
|
+
etag: zod_1.z.string().optional(),
|
|
391
|
+
fileId: zod_1.z.string().optional(),
|
|
392
|
+
name: zod_1.z.string().optional(),
|
|
393
|
+
mimeType: zod_1.z.string().optional(),
|
|
394
|
+
size: zod_1.z.number().optional(),
|
|
395
|
+
}).passthrough(), { description: 'Record datastream summary' });
|
|
396
|
+
exports.datastreamUploadFileSchema = withOpenApi(zod_1.z.object({
|
|
397
|
+
fileId: zod_1.z.string(),
|
|
398
|
+
metadata: jsonObjectSchema.optional(),
|
|
399
|
+
}).passthrough(), { description: 'Uploaded datastream file reference' });
|
|
400
|
+
exports.datastreamUploadResultSchema = withOpenApi(zod_1.z.object({
|
|
401
|
+
success: zod_1.z.boolean(),
|
|
402
|
+
message: zod_1.z.string(),
|
|
403
|
+
fileIds: zod_1.z.array(exports.datastreamUploadFileSchema).optional(),
|
|
404
|
+
}).passthrough(), { description: 'Datastream upload result' });
|
|
405
|
+
exports.datastreamUploadResponseSchema = withOpenApi(zod_1.z.object({
|
|
406
|
+
message: exports.datastreamUploadResultSchema,
|
|
407
|
+
}), { description: 'Datastream upload response' });
|
|
408
|
+
exports.recordAuditEntrySchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Record audit entry' });
|
|
409
|
+
exports.namedQueryResponseRecordSchema = withOpenApi(zod_1.z.object({
|
|
410
|
+
oid: zod_1.z.string(),
|
|
411
|
+
title: zod_1.z.string(),
|
|
412
|
+
metadata: jsonObjectSchema,
|
|
413
|
+
lastSaveDate: dateTimeSchema.nullable(),
|
|
414
|
+
dateCreated: dateTimeSchema.nullable(),
|
|
415
|
+
}).passthrough(), { description: 'Named query result record' });
|
|
416
|
+
exports.appConfigValueSchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Application configuration payload' });
|
|
417
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9yZXNwb25zZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQStHQSxzREFRQztBQXZIRCwwQkFBd0I7QUFFeEIsNkJBQXlDO0FBSXpDLFNBQVMsV0FBVyxDQUF1QixNQUFTLEVBQUUsUUFBaUM7SUFDbkYsT0FBUSxNQUEyRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBRUQsTUFBTSx3QkFBd0IsR0FBRyxXQUFXLENBQUMsT0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtJQUNyRSxXQUFXLEVBQUUsZ0NBQWdDO0NBQ2hELENBQUMsQ0FBQztBQUVVLFFBQUEseUJBQXlCLEdBQUcsV0FBVyxDQUNoRCxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ0wsRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsTUFBTSxFQUFFLE9BQUM7U0FDSixNQUFNLENBQUM7UUFDSixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUM5QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUNoQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNoQyxDQUFDO1NB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
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ZodTypeAny } from 'zod';
|
|
2
|
+
export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head';
|
|
3
|
+
export type ApiRequestSource = 'params' | 'query' | 'headers' | 'body';
|
|
4
|
+
export type ApiSchemaField = ZodTypeAny;
|
|
5
|
+
export interface ApiFileConstraint {
|
|
6
|
+
required?: boolean;
|
|
7
|
+
maxBytes?: number;
|
|
8
|
+
mimeTypes?: readonly string[];
|
|
9
|
+
multiple?: boolean;
|
|
10
|
+
description?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ApiRequestBodyContent {
|
|
13
|
+
schema?: ApiSchemaField;
|
|
14
|
+
encoding?: Record<string, unknown>;
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ApiRequestBodyDefinition {
|
|
18
|
+
required?: boolean;
|
|
19
|
+
content: Record<string, ApiRequestBodyContent>;
|
|
20
|
+
}
|
|
21
|
+
export interface ApiRequestDefinition {
|
|
22
|
+
params?: ApiSchemaField;
|
|
23
|
+
query?: ApiSchemaField;
|
|
24
|
+
headers?: ApiSchemaField;
|
|
25
|
+
body?: ApiRequestBodyDefinition;
|
|
26
|
+
files?: Record<string, ApiFileConstraint>;
|
|
27
|
+
extractor?: (req: Sails.Req) => unknown;
|
|
28
|
+
queryExtractor?: (req: Sails.Req) => unknown;
|
|
29
|
+
legacyParamFallbacks?: Partial<Record<string, readonly ApiRequestSource[]>>;
|
|
30
|
+
}
|
|
31
|
+
export interface ApiResponseContent {
|
|
32
|
+
schema?: ApiSchemaField;
|
|
33
|
+
description?: string;
|
|
34
|
+
example?: unknown;
|
|
35
|
+
headers?: Record<string, ApiSchemaField>;
|
|
36
|
+
}
|
|
37
|
+
export interface ApiResponseDefinition {
|
|
38
|
+
description: string;
|
|
39
|
+
content?: Record<string, ApiResponseContent>;
|
|
40
|
+
headers?: Record<string, ApiSchemaField>;
|
|
41
|
+
}
|
|
42
|
+
export interface ApiOpenApiMetadata {
|
|
43
|
+
tags?: readonly string[];
|
|
44
|
+
summary?: string;
|
|
45
|
+
description?: string;
|
|
46
|
+
operationId?: string;
|
|
47
|
+
request?: ApiRequestDefinition;
|
|
48
|
+
responses?: Record<number, ApiResponseDefinition>;
|
|
49
|
+
security?: readonly Record<string, readonly string[]>[];
|
|
50
|
+
extensions?: Record<string, unknown>;
|
|
51
|
+
}
|
|
52
|
+
export interface ApiRouteDefinition extends ApiOpenApiMetadata {
|
|
53
|
+
method: HttpMethod;
|
|
54
|
+
path: string;
|
|
55
|
+
controller: string;
|
|
56
|
+
action: string;
|
|
57
|
+
csrf?: boolean;
|
|
58
|
+
policy?: string | string[];
|
|
59
|
+
skipAssets?: boolean;
|
|
60
|
+
locals?: Record<string, unknown>;
|
|
61
|
+
view?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface ApiRouteGroup {
|
|
64
|
+
name: string;
|
|
65
|
+
routes: readonly ApiRouteDefinition[];
|
|
66
|
+
}
|
|
67
|
+
export type ApiRouteProvider = () => readonly ApiRouteDefinition[] | ApiRouteDefinition[];
|
|
68
|
+
export type ApiRouteDefinitionMap = Record<string, ApiRouteDefinition>;
|
|
69
|
+
export type ApiRouteMap = Record<string, unknown>;
|
|
70
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api-routes/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpLXJvdXRlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ApiRequestDefinition, ApiRouteDefinition } from './types';
|
|
2
|
+
export interface ApiValidationIssue {
|
|
3
|
+
path: string;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ApiValidationResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
issues: ApiValidationIssue[];
|
|
9
|
+
}
|
|
10
|
+
export interface ApiValidationOptions {
|
|
11
|
+
files?: Record<string, unknown[]>;
|
|
12
|
+
}
|
|
13
|
+
export interface ApiRouteValidationOptions extends ApiValidationOptions {
|
|
14
|
+
}
|
|
15
|
+
export declare function validateApiRequest(req: Sails.Req, request?: ApiRequestDefinition, options?: ApiValidationOptions): ApiValidationResult;
|
|
16
|
+
export interface ValidatedApiRequest {
|
|
17
|
+
valid: true;
|
|
18
|
+
params: Record<string, unknown>;
|
|
19
|
+
query: Record<string, unknown>;
|
|
20
|
+
body: unknown;
|
|
21
|
+
files: Record<string, unknown[]>;
|
|
22
|
+
}
|
|
23
|
+
export interface InvalidApiRequest {
|
|
24
|
+
valid: false;
|
|
25
|
+
issues: ApiValidationIssue[];
|
|
26
|
+
}
|
|
27
|
+
export type ApiRouteRequestResult = ValidatedApiRequest | InvalidApiRequest;
|
|
28
|
+
export type ValidatedApiRouteRequest = Omit<ValidatedApiRequest, 'valid'>;
|
|
29
|
+
export declare function validateApiRouteRequest(req: Sails.Req, route: ApiRouteDefinition, options?: ApiRouteValidationOptions): ApiRouteRequestResult;
|
|
30
|
+
export declare function validateApiRouteFiles(route: ApiRouteDefinition, files: Record<string, unknown[]>): ApiValidationResult;
|
|
31
|
+
export declare function getValidatedApiRequest(req: Sails.Req): ValidatedApiRouteRequest;
|
|
32
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/api-routes/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAItF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;CAAI;AA4G3E,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,OAAO,CAAC,EAAE,oBAAoB,EAC9B,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA4BrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAE5E,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAE1E,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,yBAA8B,GACtC,qBAAqB,CAavB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAC/B,mBAAmB,CAMrB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,wBAAwB,CAK/E"}
|