@researchdatabox/redbox-core 0.0.1-beta.9225 → 0.0.1-beta.9474

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.
Files changed (355) hide show
  1. package/dist/CoreController.d.ts +4 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +33 -1
  4. package/dist/DatastreamService.d.ts +5 -2
  5. package/dist/DatastreamService.d.ts.map +1 -1
  6. package/dist/QueueService.d.ts +1 -1
  7. package/dist/QueueService.d.ts.map +1 -1
  8. package/dist/RecordsService.d.ts +38 -2
  9. package/dist/RecordsService.d.ts.map +1 -1
  10. package/dist/StorageService.d.ts +2 -1
  11. package/dist/StorageService.d.ts.map +1 -1
  12. package/dist/api-routes/apib.d.ts +7 -0
  13. package/dist/api-routes/apib.d.ts.map +1 -0
  14. package/dist/api-routes/apib.js +43 -0
  15. package/dist/api-routes/define.d.ts +4 -0
  16. package/dist/api-routes/define.d.ts.map +1 -0
  17. package/dist/api-routes/define.js +29 -0
  18. package/dist/api-routes/groups/admin.d.ts +6 -0
  19. package/dist/api-routes/groups/admin.d.ts.map +1 -0
  20. package/dist/api-routes/groups/admin.js +53 -0
  21. package/dist/api-routes/groups/appconfig.d.ts +4 -0
  22. package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
  23. package/dist/api-routes/groups/appconfig.js +33 -0
  24. package/dist/api-routes/groups/branding.d.ts +8 -0
  25. package/dist/api-routes/groups/branding.d.ts.map +1 -0
  26. package/dist/api-routes/groups/branding.js +61 -0
  27. package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
  28. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
  29. package/dist/api-routes/groups/dashboard-config.js +90 -0
  30. package/dist/api-routes/groups/export.d.ts +3 -0
  31. package/dist/api-routes/groups/export.d.ts.map +1 -0
  32. package/dist/api-routes/groups/export.js +30 -0
  33. package/dist/api-routes/groups/forms.d.ts +4 -0
  34. package/dist/api-routes/groups/forms.d.ts.map +1 -0
  35. package/dist/api-routes/groups/forms.js +29 -0
  36. package/dist/api-routes/groups/integration-audit.d.ts +3 -0
  37. package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
  38. package/dist/api-routes/groups/integration-audit.js +35 -0
  39. package/dist/api-routes/groups/notifications.d.ts +3 -0
  40. package/dist/api-routes/groups/notifications.d.ts.map +1 -0
  41. package/dist/api-routes/groups/notifications.js +20 -0
  42. package/dist/api-routes/groups/records.d.ts +28 -0
  43. package/dist/api-routes/groups/records.d.ts.map +1 -0
  44. package/dist/api-routes/groups/records.js +349 -0
  45. package/dist/api-routes/groups/recordtypes.d.ts +4 -0
  46. package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
  47. package/dist/api-routes/groups/recordtypes.js +27 -0
  48. package/dist/api-routes/groups/reports.d.ts +3 -0
  49. package/dist/api-routes/groups/reports.d.ts.map +1 -0
  50. package/dist/api-routes/groups/reports.js +20 -0
  51. package/dist/api-routes/groups/search-query.d.ts +4 -0
  52. package/dist/api-routes/groups/search-query.d.ts.map +1 -0
  53. package/dist/api-routes/groups/search-query.js +51 -0
  54. package/dist/api-routes/groups/search.d.ts +6 -0
  55. package/dist/api-routes/groups/search.d.ts.map +1 -0
  56. package/dist/api-routes/groups/search.js +31 -0
  57. package/dist/api-routes/groups/translation.d.ts +8 -0
  58. package/dist/api-routes/groups/translation.d.ts.map +1 -0
  59. package/dist/api-routes/groups/translation.js +78 -0
  60. package/dist/api-routes/groups/users.d.ts +17 -0
  61. package/dist/api-routes/groups/users.d.ts.map +1 -0
  62. package/dist/api-routes/groups/users.js +149 -0
  63. package/dist/api-routes/groups/vocabulary.d.ts +10 -0
  64. package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
  65. package/dist/api-routes/groups/vocabulary.js +97 -0
  66. package/dist/api-routes/helpers.d.ts +29 -0
  67. package/dist/api-routes/helpers.d.ts.map +1 -0
  68. package/dist/api-routes/helpers.js +486 -0
  69. package/dist/api-routes/index.d.ts +25 -0
  70. package/dist/api-routes/index.d.ts.map +1 -0
  71. package/dist/api-routes/index.js +41 -0
  72. package/dist/api-routes/openapi.d.ts +27 -0
  73. package/dist/api-routes/openapi.d.ts.map +1 -0
  74. package/dist/api-routes/openapi.js +273 -0
  75. package/dist/api-routes/request-extraction.d.ts +14 -0
  76. package/dist/api-routes/request-extraction.d.ts.map +1 -0
  77. package/dist/api-routes/request-extraction.js +100 -0
  78. package/dist/api-routes/route-factory.d.ts +3 -0
  79. package/dist/api-routes/route-factory.d.ts.map +1 -0
  80. package/dist/api-routes/route-factory.js +30 -0
  81. package/dist/api-routes/route-registry.d.ts +24 -0
  82. package/dist/api-routes/route-registry.d.ts.map +1 -0
  83. package/dist/api-routes/route-registry.js +113 -0
  84. package/dist/api-routes/route-resolution.d.ts +4 -0
  85. package/dist/api-routes/route-resolution.d.ts.map +1 -0
  86. package/dist/api-routes/route-resolution.js +57 -0
  87. package/dist/api-routes/schemas/common.d.ts +37 -0
  88. package/dist/api-routes/schemas/common.d.ts.map +1 -0
  89. package/dist/api-routes/schemas/common.js +147 -0
  90. package/dist/api-routes/schemas/responses.d.ts +2904 -0
  91. package/dist/api-routes/schemas/responses.d.ts.map +1 -0
  92. package/dist/api-routes/schemas/responses.js +417 -0
  93. package/dist/api-routes/types.d.ts +70 -0
  94. package/dist/api-routes/types.d.ts.map +1 -0
  95. package/dist/api-routes/types.js +3 -0
  96. package/dist/api-routes/validation.d.ts +32 -0
  97. package/dist/api-routes/validation.d.ts.map +1 -0
  98. package/dist/api-routes/validation.js +142 -0
  99. package/dist/bootstrap.d.ts.map +1 -1
  100. package/dist/bootstrap.js +10 -10
  101. package/dist/config/agendaQueue.config.d.ts +25 -1
  102. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  103. package/dist/config/agendaQueue.config.js +19 -2
  104. package/dist/config/auth.config.d.ts.map +1 -1
  105. package/dist/config/auth.config.js +21 -2
  106. package/dist/config/brandingConfigurationDefaults.config.js +3 -3
  107. package/dist/config/dashboardtype.config.d.ts +5 -0
  108. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  109. package/dist/config/dashboardtype.config.js +1 -1
  110. package/dist/config/dashboardview.config.d.ts +24 -0
  111. package/dist/config/dashboardview.config.d.ts.map +1 -0
  112. package/dist/config/dashboardview.config.js +137 -0
  113. package/dist/config/dompurify.config.d.ts.map +1 -1
  114. package/dist/config/dompurify.config.js +2 -2
  115. package/dist/config/http.config.d.ts.map +1 -1
  116. package/dist/config/http.config.js +5 -3
  117. package/dist/config/index.d.ts +6 -0
  118. package/dist/config/index.d.ts.map +1 -1
  119. package/dist/config/index.js +4 -1
  120. package/dist/config/namedQuery.config.d.ts +10 -2
  121. package/dist/config/namedQuery.config.d.ts.map +1 -1
  122. package/dist/config/namedQuery.config.js +17 -17
  123. package/dist/config/policies.config.d.ts +3 -0
  124. package/dist/config/policies.config.d.ts.map +1 -1
  125. package/dist/config/policies.config.js +35 -1
  126. package/dist/config/record.config.d.ts.map +1 -1
  127. package/dist/config/record.config.js +2 -1
  128. package/dist/config/recordtype.config.d.ts +28 -0
  129. package/dist/config/recordtype.config.d.ts.map +1 -1
  130. package/dist/config/recordtype.config.js +85 -9
  131. package/dist/config/routes.config.d.ts +5 -2
  132. package/dist/config/routes.config.d.ts.map +1 -1
  133. package/dist/config/routes.config.js +24 -110
  134. package/dist/config/storage.config.d.ts +20 -2
  135. package/dist/config/storage.config.d.ts.map +1 -1
  136. package/dist/config/storage.config.js +2 -1
  137. package/dist/config/vocab.config.d.ts +30 -0
  138. package/dist/config/vocab.config.d.ts.map +1 -1
  139. package/dist/config/vocab.config.js +21 -1
  140. package/dist/config/webpack.config.d.ts.map +1 -1
  141. package/dist/config/webpack.config.js +13 -7
  142. package/dist/config/workflow.config.d.ts +0 -1
  143. package/dist/config/workflow.config.d.ts.map +1 -1
  144. package/dist/config/workflow.config.js +1 -137
  145. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  146. package/dist/configmodels/AdminSidebarConfig.js +1 -2
  147. package/dist/configmodels/ConfigModels.d.ts +1 -1
  148. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  149. package/dist/configmodels/ConfigModels.js +9 -1
  150. package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
  151. package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
  152. package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
  153. package/dist/controllers/AdminController.d.ts +0 -1
  154. package/dist/controllers/AdminController.d.ts.map +1 -1
  155. package/dist/controllers/AdminController.js +2 -32
  156. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  157. package/dist/controllers/BrandingAppController.js +10 -9
  158. package/dist/controllers/BrandingController.d.ts +3 -5
  159. package/dist/controllers/BrandingController.d.ts.map +1 -1
  160. package/dist/controllers/BrandingController.js +29 -21
  161. package/dist/controllers/DashboardConfigController.d.ts +8 -0
  162. package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
  163. package/dist/controllers/DashboardConfigController.js +17 -0
  164. package/dist/controllers/DynamicAssetController.d.ts +1 -0
  165. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  166. package/dist/controllers/DynamicAssetController.js +20 -1
  167. package/dist/controllers/EmailController.d.ts.map +1 -1
  168. package/dist/controllers/EmailController.js +16 -12
  169. package/dist/controllers/FormVocabularyController.d.ts +1 -0
  170. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  171. package/dist/controllers/FormVocabularyController.js +94 -4
  172. package/dist/controllers/RecordController.d.ts +18 -1
  173. package/dist/controllers/RecordController.d.ts.map +1 -1
  174. package/dist/controllers/RecordController.js +274 -124
  175. package/dist/controllers/RenderViewController.d.ts.map +1 -1
  176. package/dist/controllers/RenderViewController.js +4 -2
  177. package/dist/controllers/TranslationController.d.ts.map +1 -1
  178. package/dist/controllers/TranslationController.js +12 -10
  179. package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
  180. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
  181. package/dist/controllers/WorkspaceTypesController.js +120 -31
  182. package/dist/controllers/index.d.ts.map +1 -1
  183. package/dist/controllers/index.js +7 -4
  184. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  185. package/dist/controllers/webservice/AdminController.js +15 -16
  186. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
  187. package/dist/controllers/webservice/AppConfigController.js +19 -20
  188. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  189. package/dist/controllers/webservice/BrandingController.js +101 -47
  190. package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
  191. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
  192. package/dist/controllers/webservice/DashboardConfigController.js +241 -0
  193. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  194. package/dist/controllers/webservice/ExportController.js +11 -11
  195. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  196. package/dist/controllers/webservice/FormManagementController.js +11 -13
  197. package/dist/controllers/webservice/RecordController.d.ts +4 -0
  198. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  199. package/dist/controllers/webservice/RecordController.js +428 -257
  200. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  201. package/dist/controllers/webservice/RecordTypeController.js +9 -10
  202. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  203. package/dist/controllers/webservice/ReportController.js +18 -20
  204. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  205. package/dist/controllers/webservice/SearchController.js +28 -35
  206. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  207. package/dist/controllers/webservice/TranslationController.js +61 -39
  208. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  209. package/dist/controllers/webservice/UserManagementController.js +112 -99
  210. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  211. package/dist/controllers/webservice/VocabularyController.js +76 -28
  212. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  213. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  214. package/dist/hooks/defineRedboxHook.js +4 -1
  215. package/dist/index.d.ts +2 -0
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +2 -1
  218. package/dist/loader/index.d.ts +6 -0
  219. package/dist/loader/index.d.ts.map +1 -1
  220. package/dist/loader/index.js +57 -10
  221. package/dist/middleware/redboxSession.js +1 -1
  222. package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
  223. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  224. package/dist/model/DashboardTypeResponseModel.js +12 -4
  225. package/dist/model/DashboardViewResponseModel.d.ts +20 -0
  226. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
  227. package/dist/model/DashboardViewResponseModel.js +38 -0
  228. package/dist/model/RecordTypeResponseModel.d.ts +3 -1
  229. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  230. package/dist/model/RecordTypeResponseModel.js +4 -2
  231. package/dist/model/RequestDetails.d.ts +1 -1
  232. package/dist/model/RequestDetails.d.ts.map +1 -1
  233. package/dist/model/RequestDetails.js +1 -1
  234. package/dist/model/index.d.ts +1 -0
  235. package/dist/model/index.d.ts.map +1 -1
  236. package/dist/model/index.js +5 -2
  237. package/dist/model/storage/BrandingModel.d.ts +0 -16
  238. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  239. package/dist/model/storage/BrandingModel.js +2 -51
  240. package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
  241. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
  242. package/dist/model/storage/RecordTypeModel.d.ts +16 -0
  243. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  244. package/dist/model/storage/RecordTypeModel.js +9 -1
  245. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  246. package/dist/policies/contentSecurityPolicy.js +23 -2
  247. package/dist/policies/index.d.ts +3 -0
  248. package/dist/policies/index.d.ts.map +1 -1
  249. package/dist/policies/index.js +6 -2
  250. package/dist/policies/validateApiContractRequest.d.ts +3 -0
  251. package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
  252. package/dist/policies/validateApiContractRequest.js +74 -0
  253. package/dist/responses/badRequest.d.ts.map +1 -1
  254. package/dist/responses/badRequest.js +5 -3
  255. package/dist/responses/created.d.ts.map +1 -1
  256. package/dist/responses/created.js +5 -3
  257. package/dist/responses/forbidden.d.ts.map +1 -1
  258. package/dist/responses/forbidden.js +5 -3
  259. package/dist/responses/ok.d.ts.map +1 -1
  260. package/dist/responses/ok.js +5 -3
  261. package/dist/responses/serverError.d.ts.map +1 -1
  262. package/dist/responses/serverError.js +5 -3
  263. package/dist/responses/siteTitle.d.ts +6 -0
  264. package/dist/responses/siteTitle.d.ts.map +1 -0
  265. package/dist/responses/siteTitle.js +28 -0
  266. package/dist/sails.d.ts +7 -0
  267. package/dist/sails.d.ts.map +1 -1
  268. package/dist/services/AgendaQueueService.d.ts +38 -17
  269. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  270. package/dist/services/AgendaQueueService.js +311 -81
  271. package/dist/services/AttachmentMetadataService.d.ts +34 -0
  272. package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
  273. package/dist/services/AttachmentMetadataService.js +133 -0
  274. package/dist/services/BrandingLogoService.d.ts +6 -8
  275. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  276. package/dist/services/BrandingLogoService.js +66 -72
  277. package/dist/services/DashboardConfigService.d.ts +71 -0
  278. package/dist/services/DashboardConfigService.d.ts.map +1 -0
  279. package/dist/services/DashboardConfigService.js +309 -0
  280. package/dist/services/DashboardTypesService.d.ts +61 -63
  281. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  282. package/dist/services/DashboardTypesService.js +361 -198
  283. package/dist/services/DoiService.d.ts +11 -0
  284. package/dist/services/DoiService.d.ts.map +1 -1
  285. package/dist/services/DoiService.js +206 -1
  286. package/dist/services/FigshareService.d.ts.map +1 -1
  287. package/dist/services/FigshareService.js +5 -1
  288. package/dist/services/FormVocabularyService.d.ts +45 -0
  289. package/dist/services/FormVocabularyService.d.ts.map +1 -0
  290. package/dist/services/FormVocabularyService.js +326 -0
  291. package/dist/services/I18nEntriesService.d.ts +3 -0
  292. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  293. package/dist/services/I18nEntriesService.js +14 -2
  294. package/dist/services/NamedQueryService.d.ts +27 -9
  295. package/dist/services/NamedQueryService.d.ts.map +1 -1
  296. package/dist/services/NamedQueryService.js +223 -55
  297. package/dist/services/RDMPService.d.ts.map +1 -1
  298. package/dist/services/RDMPService.js +3 -2
  299. package/dist/services/RecordsService.d.ts +8 -2
  300. package/dist/services/RecordsService.d.ts.map +1 -1
  301. package/dist/services/RecordsService.js +64 -16
  302. package/dist/services/ReportsService.d.ts.map +1 -1
  303. package/dist/services/ReportsService.js +7 -1
  304. package/dist/services/StandardDatastreamService.d.ts +32 -5
  305. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  306. package/dist/services/StandardDatastreamService.js +490 -38
  307. package/dist/services/StorageManagerService.d.ts +12 -1
  308. package/dist/services/StorageManagerService.d.ts.map +1 -1
  309. package/dist/services/StorageManagerService.js +72 -7
  310. package/dist/services/index.d.ts +9 -3
  311. package/dist/services/index.d.ts.map +1 -1
  312. package/dist/services/index.js +17 -7
  313. package/dist/storage/GridFSDriver.d.ts +101 -0
  314. package/dist/storage/GridFSDriver.d.ts.map +1 -0
  315. package/dist/storage/GridFSDriver.js +291 -0
  316. package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
  317. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
  318. package/dist/storage/TusStorageManagerDataStore.js +300 -0
  319. package/dist/utilities/RequestParamUtils.d.ts +3 -0
  320. package/dist/utilities/RequestParamUtils.d.ts.map +1 -0
  321. package/dist/utilities/RequestParamUtils.js +13 -0
  322. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  323. package/dist/visitor/construct.visitor.js +6 -3
  324. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  325. package/dist/visitor/migrate-config-v4-v5.visitor.js +19 -1
  326. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  327. package/dist/visitor/validator.visitor.js +11 -3
  328. package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
  329. package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
  330. package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
  331. package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
  332. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
  333. package/dist/waterline-models/AttachmentMetadata.js +147 -0
  334. package/dist/waterline-models/BrandingConfig.d.ts +0 -2
  335. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  336. package/dist/waterline-models/BrandingConfig.js +1 -6
  337. package/dist/waterline-models/DashboardType.d.ts +7 -0
  338. package/dist/waterline-models/DashboardType.d.ts.map +1 -1
  339. package/dist/waterline-models/DashboardType.js +16 -1
  340. package/dist/waterline-models/I18nTranslation.d.ts +2 -0
  341. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
  342. package/dist/waterline-models/I18nTranslation.js +6 -1
  343. package/dist/waterline-models/NamedQuery.d.ts +6 -0
  344. package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
  345. package/dist/waterline-models/NamedQuery.js +16 -1
  346. package/dist/waterline-models/index.d.ts +4 -0
  347. package/dist/waterline-models/index.d.ts.map +1 -1
  348. package/dist/waterline-models/index.js +7 -1
  349. package/package.json +36 -26
  350. package/dist/controllers/VocabController.d.ts +0 -43
  351. package/dist/controllers/VocabController.d.ts.map +0 -1
  352. package/dist/controllers/VocabController.js +0 -190
  353. package/dist/services/VocabService.d.ts +0 -81
  354. package/dist/services/VocabService.d.ts.map +0 -1
  355. package/dist/services/VocabService.js +0 -424
@@ -160,6 +160,9 @@ var Services;
160
160
  throw new Error(`Report '${name}' is missing databaseQuery config`);
161
161
  }
162
162
  const namedQueryConfig = await NamedQueryService.getNamedQueryConfig(brand, report.databaseQuery.queryName);
163
+ if (!namedQueryConfig) {
164
+ throw new Error(`Named query '${report.databaseQuery.queryName}' not found`);
165
+ }
163
166
  const paramMap = this.buildNamedQueryParamMap(req, report);
164
167
  const dbResult = await NamedQueryService.performNamedQueryFromConfig(namedQueryConfig, paramMap, brand, start, rows);
165
168
  return this.getTranslateDatabaseResultToReportResult(dbResult, report);
@@ -265,6 +268,9 @@ var Services;
265
268
  throw new Error(`Report '${name}' is missing databaseQuery config`);
266
269
  }
267
270
  const namedQueryConfig = await NamedQueryService.getNamedQueryConfig(brand, report.databaseQuery.queryName);
271
+ if (!namedQueryConfig) {
272
+ throw new Error(`Named query '${report.databaseQuery.queryName}' not found`);
273
+ }
268
274
  const paramMap = this.buildNamedQueryParamMap(req, report);
269
275
  const dbResult = await NamedQueryService.performNamedQueryFromConfig(namedQueryConfig, paramMap, brand, start, rows);
270
276
  result = this.getTranslateDatabaseResultToReportResult(dbResult, report);
@@ -472,4 +478,4 @@ var Services;
472
478
  }
473
479
  Services.Reports = Reports;
474
480
  })(Services || (exports.Services = Services = {}));
475
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0c1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVwb3J0c1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBGQUEwRjtBQUMxRixFQUFFO0FBQ0YsNkJBQTZCO0FBQzdCLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsdUVBQXVFO0FBQ3ZFLHVFQUF1RTtBQUN2RSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBQ3RDLEVBQUU7QUFDRixrRUFBa0U7QUFDbEUsaUVBQWlFO0FBQ2pFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsOERBQThEOzs7Ozs7QUFFOUQsK0JBQTREO0FBQzVELDhDQUEyRDtBQUUzRCwrREFBMEc7QUFLMUcsZ0RBQXNEO0FBRXRELHNFQUFvSDtBQUNwSCw2Q0FBK0M7QUFDL0MsNERBQW9DO0FBNkJwQyxJQUFpQixRQUFRLENBK2V4QjtBQS9lRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxPQUFRLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUVoRCxhQUFhLENBQWlCO1FBQzlCLHFFQUFxRTtRQUM3RCxpQkFBaUIsR0FBNEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvRSwwQ0FBMEM7UUFDbEMsaUJBQWlCLEdBQVksS0FBSyxDQUFDO1FBRXhCLGdCQUFnQixHQUFhO1lBQzlDLFdBQVc7WUFDWCxRQUFRO1lBQ1Isd0JBQXdCO1lBQ3hCLEtBQUs7WUFDTCxZQUFZO1lBQ1osY0FBYztZQUNkLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsZ0NBQWdDO1lBQ2hDLGFBQWE7WUFDYixpQkFBaUI7U0FDbEIsQ0FBQztRQUVNLGNBQWM7WUFDcEIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVNLFNBQVMsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtZQUM3QyxJQUFJ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
481
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3J0c1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVwb3J0c1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBGQUEwRjtBQUMxRixFQUFFO0FBQ0YsNkJBQTZCO0FBQzdCLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsdUVBQXVFO0FBQ3ZFLHVFQUF1RTtBQUN2RSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBQ3RDLEVBQUU7QUFDRixrRUFBa0U7QUFDbEUsaUVBQWlFO0FBQ2pFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsOERBQThEOzs7Ozs7QUFFOUQsK0JBQTREO0FBQzVELDhDQUEyRDtBQUUzRCwrREFBMEc7QUFLMUcsZ0RBQXNEO0FBRXRELHNFQUFvSDtBQUNwSCw2Q0FBK0M7QUFDL0MsNERBQW9DO0FBNkJwQyxJQUFpQixRQUFRLENBcWZ4QjtBQXJmRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxPQUFRLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUVoRCxhQUFhLENBQWlCO1FBQzlCLHFFQUFxRTtRQUM3RCxpQkFBaUIsR0FBNEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvRSwwQ0FBMEM7UUFDbEMsaUJBQWlCLEdBQVksS0FBSyxDQUFDO1FBRXhCLGdCQUFnQixHQUFhO1lBQzlDLFdBQVc7WUFDWCxRQUFRO1lBQ1Isd0JBQXdCO1lBQ3hCLEtBQUs7WUFDTCxZQUFZO1lBQ1osY0FBYztZQUNkLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsZ0NBQWdDO1lBQ2hDLGFBQWE7WUFDYixpQkFBaUI7U0FDbEIsQ0FBQztRQUVNLGNBQWM7WUFDcEIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVNLFNBQVMsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtZQUM3QyxJQUFJ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
@@ -1,5 +1,5 @@
1
1
  import { Services as services } from '../CoreService';
2
- import { DatastreamService } from '../DatastreamService';
2
+ import { DatastreamRequestContext, DatastreamService } from '../DatastreamService';
3
3
  import { DatastreamServiceResponse } from '../DatastreamServiceResponse';
4
4
  import { Datastream } from '../Datastream';
5
5
  import { Observable } from 'rxjs';
@@ -10,16 +10,42 @@ type IDisk = StorageManagerServices.IDisk;
10
10
  *
11
11
  * Implements the DatastreamService interface using Flydrive v2 disks
12
12
  * managed by StorageManagerService. Files are read from the staging disk
13
- * and written to the primary disk under the key `{oid}/{fileId}`.
13
+ * and written to the primary disk under the configured key prefix.
14
14
  */
15
15
  export declare namespace Services {
16
16
  class StandardDatastream extends services.Core.Service implements DatastreamService {
17
+ private static promotionGuards;
17
18
  protected _exportedMethods: string[];
18
19
  protected logHeader: string;
19
20
  /**
20
- * Build the storage key for a file: `{oid}/{fileId}`
21
+ * Build the storage key for a file under the configured prefix.
22
+ */
23
+ private normalizedKeyPrefix;
24
+ /**
25
+ * Build the storage key for a file under the configured prefix.
21
26
  */
22
27
  private storageKey;
28
+ private fileIdFromStorageKey;
29
+ private attachmentMetadataService;
30
+ private requestUsername;
31
+ private safeToISOString;
32
+ private metadataToListEntry;
33
+ private buildMetadataRow;
34
+ private safelyUpsertMetadata;
35
+ private safelyDeleteMetadata;
36
+ private safelyRecordAccess;
37
+ private backfillMetadataFromDisk;
38
+ private datastreamListEntry;
39
+ private isStorageNotFoundError;
40
+ private isStorageAlreadyExistsError;
41
+ private promoteFromStagingOnce;
42
+ private promoteFromStaging;
43
+ private promoteTusPartsFromStaging;
44
+ private listTusPartKeys;
45
+ private listedObjectKey;
46
+ private tusPartsPrefix;
47
+ private tusInfoKey;
48
+ private streamDiskObjects;
23
49
  /**
24
50
  * Add multiple datastreams for a record.
25
51
  * Each datastream is moved from the staging disk to the primary disk.
@@ -39,6 +65,7 @@ export declare namespace Services {
39
65
  * Add a single datastream: read from staging disk, write to primary disk.
40
66
  */
41
67
  addDatastream(oid: string, datastream: Datastream, stagingDisk?: IDisk): Promise<unknown>;
68
+ private afterDatastreamPromoted;
42
69
  /**
43
70
  * Remove a single datastream from the primary disk.
44
71
  */
@@ -51,7 +78,7 @@ export declare namespace Services {
51
78
  * Get a datastream (file contents) from the primary disk.
52
79
  * Returns an Attachment with a readstream.
53
80
  */
54
- getDatastream(oid: string, fileId: string): Promise<{
81
+ getDatastream(oid: string, fileId: string, requestContext?: DatastreamRequestContext): Promise<{
55
82
  readstream?: NodeJS.ReadableStream;
56
83
  body?: Buffer | string;
57
84
  } & Record<string, unknown>>;
@@ -59,7 +86,7 @@ export declare namespace Services {
59
86
  * List datastreams for a record.
60
87
  * If fileId is provided, lists that specific file; otherwise lists all files for the oid.
61
88
  */
62
- listDatastreams(oid: string, fileId: string): Promise<Record<string, unknown>[]>;
89
+ listDatastreams(oid: string, fileId: string, requestContext?: DatastreamRequestContext): Promise<Record<string, unknown>[]>;
63
90
  }
64
91
  }
65
92
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"StandardDatastreamService.d.ts","sourceRoot":"","sources":["../../src/services/StandardDatastreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAM,MAAM,MAAM,CAAC;AAItC,OAAO,KAAK,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAElF,KAAK,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAO1C;;;;;;GAMG;AACH,yBAAiB,QAAQ,CAAC;IACxB,MAAa,kBAAmB,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAQ,YAAW,iBAAiB;QACxF,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAQlC;QAEF,SAAS,CAAC,SAAS,EAAE,MAAM,CAAiC;QAG5D;;WAEG;QACH,OAAO,CAAC,UAAU;QAQlB;;;WAGG;QACU,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAqBvG;;;WAGG;QACI,gBAAgB,CACrB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,KAAK,EAClB,YAAY,EAAE,UAAU,EAAE,GACzB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QA2CjC,OAAO,CAAC,YAAY;QAkBpB,OAAO,CAAC,cAAc;QAOtB,OAAO,CAAC,cAAc;QAQtB,OAAO,CAAC,eAAe;QAOvB,OAAO,CAAC,YAAY;QAIpB;;WAEG;QACU,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;QAyBtG;;WAEG;QACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;QAgBpF;;WAEG;QACU,uBAAuB,CAClC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,UAAU,EAAE,EAC5B,iBAAiB,EAAE,UAAU,EAAE,EAC/B,WAAW,CAAC,EAAE,KAAK,GAClB,OAAO,CAAC,OAAO,CAAC;QAUnB;;;WAGG;QACU,aAAa,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAgCpG;;;WAGG;QACU,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KAsC9F;CACF"}
1
+ {"version":3,"file":"StandardDatastreamService.d.ts","sourceRoot":"","sources":["../../src/services/StandardDatastreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAM,MAAM,MAAM,CAAC;AAItC,OAAO,KAAK,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIlF,KAAK,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAuB1C;;;;;;GAMG;AACH,yBAAiB,QAAQ,CAAC;IACxB,MAAa,kBAAmB,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAQ,YAAW,iBAAiB;QACxF,OAAO,CAAC,MAAM,CAAC,eAAe,CAA4C;QAE1E,UAAmB,gBAAgB,EAAE,MAAM,EAAE,CAQ3C;QAEF,UAAmB,SAAS,EAAE,MAAM,CAAiC;QAErE;;WAEG;QACH,OAAO,CAAC,mBAAmB;QAS3B;;WAEG;QACH,OAAO,CAAC,UAAU;QAIlB,OAAO,CAAC,oBAAoB;QAI5B,OAAO,CAAC,yBAAyB;QAIjC,OAAO,CAAC,eAAe;QAKvB,OAAO,CAAC,eAAe;QAsBvB,OAAO,CAAC,mBAAmB;gBAuBb,gBAAgB;gBAuBhB,oBAAoB;gBAYpB,oBAAoB;gBAYpB,kBAAkB;gBAmBlB,wBAAwB;QA8CtC,OAAO,CAAC,mBAAmB;QAa3B,OAAO,CAAC,sBAAsB;QAuB9B,OAAO,CAAC,2BAA2B;gBAoBrB,sBAAsB;gBAkBtB,kBAAkB;gBA+ClB,0BAA0B;gBA6B1B,eAAe;QAQ7B,OAAO,CAAC,eAAe;QAcvB,OAAO,CAAC,cAAc;QAItB,OAAO,CAAC,UAAU;gBAIH,iBAAiB;QAahC;;;WAGG;QACU,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAqBvG;;;WAGG;QACI,gBAAgB,CACrB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,KAAK,EAClB,YAAY,EAAE,UAAU,EAAE,GACzB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAkDjC,OAAO,CAAC,YAAY;QAkBpB,OAAO,CAAC,cAAc;QAOtB,OAAO,CAAC,cAAc;QAQtB,OAAO,CAAC,eAAe;QAOvB,OAAO,CAAC,YAAY;QAIpB;;WAEG;QACU,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;gBAkCxF,uBAAuB;QAgBrC;;WAEG;QACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;QAkBpF;;WAEG;QACU,uBAAuB,CAClC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,UAAU,EAAE,EAC5B,iBAAiB,EAAE,UAAU,EAAE,EAC/B,WAAW,CAAC,EAAE,KAAK,GAClB,OAAO,CAAC,OAAO,CAAC;QAUnB;;;WAGG;QACU,aAAa,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,wBAAwB,GACxC,OAAO,CAAC;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QA2DpG;;;WAGG;QACU,eAAe,CAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,wBAAwB,GACxC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KAiItC;CACF"}