@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.
Files changed (649) hide show
  1. package/dist/CoreController.d.ts +4 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +68 -23
  4. package/dist/CoreService.d.ts +1 -1
  5. package/dist/CoreService.d.ts.map +1 -1
  6. package/dist/CoreService.js +1 -1
  7. package/dist/DatastreamService.d.ts +5 -2
  8. package/dist/DatastreamService.d.ts.map +1 -1
  9. package/dist/HarvestRunService.d.ts +49 -0
  10. package/dist/HarvestRunService.d.ts.map +1 -0
  11. package/dist/HarvestRunService.js +13 -0
  12. package/dist/IntegrationAuditParams.d.ts +11 -0
  13. package/dist/IntegrationAuditParams.js +14 -0
  14. package/dist/QueueService.d.ts +1 -1
  15. package/dist/QueueService.d.ts.map +1 -1
  16. package/dist/RecordAuditParams.d.ts +2 -0
  17. package/dist/RecordAuditParams.d.ts.map +1 -1
  18. package/dist/RecordAuditParams.js +3 -1
  19. package/dist/RecordsService.d.ts +52 -2
  20. package/dist/RecordsService.d.ts.map +1 -1
  21. package/dist/StorageService.d.ts +5 -1
  22. package/dist/StorageService.d.ts.map +1 -1
  23. package/dist/api-routes/apib.d.ts +7 -0
  24. package/dist/api-routes/apib.d.ts.map +1 -0
  25. package/dist/api-routes/apib.js +43 -0
  26. package/dist/api-routes/define.d.ts +4 -0
  27. package/dist/api-routes/define.d.ts.map +1 -0
  28. package/dist/api-routes/define.js +29 -0
  29. package/dist/api-routes/groups/admin.d.ts +6 -0
  30. package/dist/api-routes/groups/admin.d.ts.map +1 -0
  31. package/dist/api-routes/groups/admin.js +53 -0
  32. package/dist/api-routes/groups/appconfig.d.ts +4 -0
  33. package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
  34. package/dist/api-routes/groups/appconfig.js +33 -0
  35. package/dist/api-routes/groups/branding.d.ts +8 -0
  36. package/dist/api-routes/groups/branding.d.ts.map +1 -0
  37. package/dist/api-routes/groups/branding.js +61 -0
  38. package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
  39. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
  40. package/dist/api-routes/groups/dashboard-config.js +90 -0
  41. package/dist/api-routes/groups/export.d.ts +3 -0
  42. package/dist/api-routes/groups/export.d.ts.map +1 -0
  43. package/dist/api-routes/groups/export.js +30 -0
  44. package/dist/api-routes/groups/forms.d.ts +4 -0
  45. package/dist/api-routes/groups/forms.d.ts.map +1 -0
  46. package/dist/api-routes/groups/forms.js +29 -0
  47. package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
  48. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
  49. package/dist/api-routes/groups/harvest-runs.js +79 -0
  50. package/dist/api-routes/groups/integration-audit.d.ts +3 -0
  51. package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
  52. package/dist/api-routes/groups/integration-audit.js +35 -0
  53. package/dist/api-routes/groups/named-query.d.ts +8 -0
  54. package/dist/api-routes/groups/named-query.d.ts.map +1 -0
  55. package/dist/api-routes/groups/named-query.js +54 -0
  56. package/dist/api-routes/groups/notifications.d.ts +3 -0
  57. package/dist/api-routes/groups/notifications.d.ts.map +1 -0
  58. package/dist/api-routes/groups/notifications.js +20 -0
  59. package/dist/api-routes/groups/records.d.ts +28 -0
  60. package/dist/api-routes/groups/records.d.ts.map +1 -0
  61. package/dist/api-routes/groups/records.js +353 -0
  62. package/dist/api-routes/groups/recordtypes.d.ts +4 -0
  63. package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
  64. package/dist/api-routes/groups/recordtypes.js +27 -0
  65. package/dist/api-routes/groups/reports.d.ts +9 -0
  66. package/dist/api-routes/groups/reports.d.ts.map +1 -0
  67. package/dist/api-routes/groups/reports.js +63 -0
  68. package/dist/api-routes/groups/search-query.d.ts +4 -0
  69. package/dist/api-routes/groups/search-query.d.ts.map +1 -0
  70. package/dist/api-routes/groups/search-query.js +51 -0
  71. package/dist/api-routes/groups/search.d.ts +6 -0
  72. package/dist/api-routes/groups/search.d.ts.map +1 -0
  73. package/dist/api-routes/groups/search.js +31 -0
  74. package/dist/api-routes/groups/translation.d.ts +8 -0
  75. package/dist/api-routes/groups/translation.d.ts.map +1 -0
  76. package/dist/api-routes/groups/translation.js +82 -0
  77. package/dist/api-routes/groups/users.d.ts +17 -0
  78. package/dist/api-routes/groups/users.d.ts.map +1 -0
  79. package/dist/api-routes/groups/users.js +149 -0
  80. package/dist/api-routes/groups/vocabulary.d.ts +10 -0
  81. package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
  82. package/dist/api-routes/groups/vocabulary.js +97 -0
  83. package/dist/api-routes/helpers.d.ts +29 -0
  84. package/dist/api-routes/helpers.d.ts.map +1 -0
  85. package/dist/api-routes/helpers.js +485 -0
  86. package/dist/api-routes/index.d.ts +27 -0
  87. package/dist/api-routes/index.d.ts.map +1 -0
  88. package/dist/api-routes/index.js +43 -0
  89. package/dist/api-routes/openapi.d.ts +26 -0
  90. package/dist/api-routes/openapi.d.ts.map +1 -0
  91. package/dist/api-routes/openapi.js +292 -0
  92. package/dist/api-routes/request-extraction.d.ts +14 -0
  93. package/dist/api-routes/request-extraction.d.ts.map +1 -0
  94. package/dist/api-routes/request-extraction.js +100 -0
  95. package/dist/api-routes/route-factory.d.ts +3 -0
  96. package/dist/api-routes/route-factory.d.ts.map +1 -0
  97. package/dist/api-routes/route-factory.js +30 -0
  98. package/dist/api-routes/route-registry.d.ts +24 -0
  99. package/dist/api-routes/route-registry.d.ts.map +1 -0
  100. package/dist/api-routes/route-registry.js +117 -0
  101. package/dist/api-routes/route-resolution.d.ts +4 -0
  102. package/dist/api-routes/route-resolution.d.ts.map +1 -0
  103. package/dist/api-routes/route-resolution.js +71 -0
  104. package/dist/api-routes/schemas/common.d.ts +35 -0
  105. package/dist/api-routes/schemas/common.d.ts.map +1 -0
  106. package/dist/api-routes/schemas/common.js +146 -0
  107. package/dist/api-routes/schemas/responses.d.ts +972 -0
  108. package/dist/api-routes/schemas/responses.d.ts.map +1 -0
  109. package/dist/api-routes/schemas/responses.js +512 -0
  110. package/dist/api-routes/types.d.ts +70 -0
  111. package/dist/api-routes/types.d.ts.map +1 -0
  112. package/dist/api-routes/types.js +3 -0
  113. package/dist/api-routes/validation.d.ts +32 -0
  114. package/dist/api-routes/validation.d.ts.map +1 -0
  115. package/dist/api-routes/validation.js +142 -0
  116. package/dist/api-routes/zod-openapi.d.ts +3 -0
  117. package/dist/api-routes/zod-openapi.d.ts.map +1 -0
  118. package/dist/api-routes/zod-openapi.js +8 -0
  119. package/dist/bootstrap.d.ts.map +1 -1
  120. package/dist/bootstrap.js +12 -12
  121. package/dist/config/agendaQueue.config.d.ts +33 -6
  122. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  123. package/dist/config/agendaQueue.config.js +40 -18
  124. package/dist/config/auth.config.d.ts.map +1 -1
  125. package/dist/config/auth.config.js +29 -2
  126. package/dist/config/branding.config.d.ts +2 -1
  127. package/dist/config/branding.config.d.ts.map +1 -1
  128. package/dist/config/branding.config.js +5 -95
  129. package/dist/config/brandingConfigurationDefaults.config.d.ts +3 -0
  130. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  131. package/dist/config/brandingConfigurationDefaults.config.js +158 -5
  132. package/dist/config/custom.config.d.ts +6 -0
  133. package/dist/config/custom.config.d.ts.map +1 -1
  134. package/dist/config/custom.config.js +10 -1
  135. package/dist/config/dashboardtype.config.d.ts +5 -0
  136. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  137. package/dist/config/dashboardtype.config.js +1 -1
  138. package/dist/config/dashboardview.config.d.ts +24 -0
  139. package/dist/config/dashboardview.config.d.ts.map +1 -0
  140. package/dist/config/dashboardview.config.js +137 -0
  141. package/dist/config/dompurify.config.d.ts +1 -0
  142. package/dist/config/dompurify.config.d.ts.map +1 -1
  143. package/dist/config/dompurify.config.js +5 -4
  144. package/dist/config/emailnotification.config.d.ts.map +1 -1
  145. package/dist/config/emailnotification.config.js +2 -1
  146. package/dist/config/figshareDev.config.d.ts +12 -0
  147. package/dist/config/figshareDev.config.js +9 -0
  148. package/dist/config/form.config.d.ts +4 -0
  149. package/dist/config/form.config.d.ts.map +1 -1
  150. package/dist/config/form.config.js +1 -1
  151. package/dist/config/harvestRuns.config.d.ts +9 -0
  152. package/dist/config/harvestRuns.config.d.ts.map +1 -0
  153. package/dist/config/harvestRuns.config.js +11 -0
  154. package/dist/config/http.config.d.ts +13 -1
  155. package/dist/config/http.config.d.ts.map +1 -1
  156. package/dist/config/http.config.js +201 -38
  157. package/dist/config/index.d.ts +14 -19
  158. package/dist/config/index.d.ts.map +1 -1
  159. package/dist/config/index.js +10 -15
  160. package/dist/config/namedQuery.config.d.ts +26 -4
  161. package/dist/config/namedQuery.config.d.ts.map +1 -1
  162. package/dist/config/namedQuery.config.js +7 -350
  163. package/dist/config/policies.config.d.ts +3 -0
  164. package/dist/config/policies.config.d.ts.map +1 -1
  165. package/dist/config/policies.config.js +35 -1
  166. package/dist/config/record.config.d.ts.map +1 -1
  167. package/dist/config/record.config.js +2 -1
  168. package/dist/config/recordtype.config.d.ts +28 -0
  169. package/dist/config/recordtype.config.d.ts.map +1 -1
  170. package/dist/config/recordtype.config.js +105 -13
  171. package/dist/config/redboxSession.config.d.ts +3 -0
  172. package/dist/config/redboxSession.config.d.ts.map +1 -1
  173. package/dist/config/redboxSession.config.js +1 -1
  174. package/dist/config/report.config.d.ts +2 -11
  175. package/dist/config/report.config.d.ts.map +1 -1
  176. package/dist/config/report.config.js +3 -49
  177. package/dist/config/reusableContributorFormDefinitions.config.d.ts +1 -1
  178. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  179. package/dist/config/reusableContributorFormDefinitions.config.js +371 -206
  180. package/dist/config/reusableViewFormDefinitions.config.js +3 -3
  181. package/dist/config/routes.config.d.ts +5 -2
  182. package/dist/config/routes.config.d.ts.map +1 -1
  183. package/dist/config/routes.config.js +55 -117
  184. package/dist/config/storage.config.d.ts +20 -2
  185. package/dist/config/storage.config.d.ts.map +1 -1
  186. package/dist/config/storage.config.js +2 -1
  187. package/dist/config/validators.config.d.ts +6 -4
  188. package/dist/config/validators.config.d.ts.map +1 -1
  189. package/dist/config/validators.config.js +5 -3
  190. package/dist/config/vocab.config.d.ts +30 -0
  191. package/dist/config/vocab.config.d.ts.map +1 -1
  192. package/dist/config/vocab.config.js +21 -1
  193. package/dist/config/webpack.config.d.ts.map +1 -1
  194. package/dist/config/webpack.config.js +18 -12
  195. package/dist/config/workflow.config.d.ts +0 -1
  196. package/dist/config/workflow.config.d.ts.map +1 -1
  197. package/dist/config/workflow.config.js +1 -137
  198. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  199. package/dist/configmodels/AdminSidebarConfig.js +4 -3
  200. package/dist/configmodels/AuthorizedDomainsEmails.d.ts +48 -0
  201. package/dist/configmodels/AuthorizedDomainsEmails.d.ts.map +1 -1
  202. package/dist/configmodels/AuthorizedDomainsEmails.js +50 -2
  203. package/dist/configmodels/ConfigModels.d.ts +7 -1
  204. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  205. package/dist/configmodels/ConfigModels.js +41 -1
  206. package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
  207. package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
  208. package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
  209. package/dist/configmodels/DoiPublishing.d.ts +4711 -0
  210. package/dist/configmodels/DoiPublishing.js +639 -0
  211. package/dist/configmodels/FigsharePublishing.d.ts +1376 -0
  212. package/dist/configmodels/FigsharePublishing.js +630 -0
  213. package/dist/configmodels/IntegrationNotificationConfig.d.ts +133 -0
  214. package/dist/configmodels/IntegrationNotificationConfig.d.ts.map +1 -0
  215. package/dist/configmodels/IntegrationNotificationConfig.js +64 -0
  216. package/dist/configmodels/SystemMessage.d.ts +32 -0
  217. package/dist/configmodels/SystemMessage.d.ts.map +1 -1
  218. package/dist/configmodels/SystemMessage.js +34 -2
  219. package/dist/controllers/AdminController.d.ts +1 -1
  220. package/dist/controllers/AdminController.d.ts.map +1 -1
  221. package/dist/controllers/AdminController.js +6 -32
  222. package/dist/controllers/AppConfigController.js +3 -3
  223. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  224. package/dist/controllers/BrandingAppController.js +11 -10
  225. package/dist/controllers/BrandingController.d.ts +11 -5
  226. package/dist/controllers/BrandingController.d.ts.map +1 -1
  227. package/dist/controllers/BrandingController.js +116 -48
  228. package/dist/controllers/DashboardConfigController.d.ts +8 -0
  229. package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
  230. package/dist/controllers/DashboardConfigController.js +17 -0
  231. package/dist/controllers/DynamicAssetController.d.ts +1 -21
  232. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  233. package/dist/controllers/DynamicAssetController.js +19 -41
  234. package/dist/controllers/EmailController.d.ts.map +1 -1
  235. package/dist/controllers/EmailController.js +16 -12
  236. package/dist/controllers/FormVocabularyController.d.ts +3 -0
  237. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  238. package/dist/controllers/FormVocabularyController.js +154 -4
  239. package/dist/controllers/NamedQueryController.d.ts +8 -0
  240. package/dist/controllers/NamedQueryController.d.ts.map +1 -0
  241. package/dist/controllers/NamedQueryController.js +17 -0
  242. package/dist/controllers/RecordAuditController.d.ts +31 -14
  243. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  244. package/dist/controllers/RecordAuditController.js +509 -57
  245. package/dist/controllers/RecordController.d.ts +18 -16
  246. package/dist/controllers/RecordController.d.ts.map +1 -1
  247. package/dist/controllers/RecordController.js +314 -167
  248. package/dist/controllers/RenderViewController.d.ts.map +1 -1
  249. package/dist/controllers/RenderViewController.js +4 -2
  250. package/dist/controllers/ReportController.d.ts +7 -0
  251. package/dist/controllers/ReportController.d.ts.map +1 -1
  252. package/dist/controllers/ReportController.js +75 -2
  253. package/dist/controllers/ReportsController.d.ts +1 -0
  254. package/dist/controllers/ReportsController.d.ts.map +1 -1
  255. package/dist/controllers/ReportsController.js +12 -2
  256. package/dist/controllers/TranslationController.d.ts.map +1 -1
  257. package/dist/controllers/TranslationController.js +14 -12
  258. package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
  259. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
  260. package/dist/controllers/WorkspaceTypesController.js +120 -31
  261. package/dist/controllers/index.d.ts.map +1 -1
  262. package/dist/controllers/index.js +19 -4
  263. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  264. package/dist/controllers/webservice/AdminController.js +16 -17
  265. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
  266. package/dist/controllers/webservice/AppConfigController.js +17 -18
  267. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  268. package/dist/controllers/webservice/BrandingController.js +102 -48
  269. package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
  270. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
  271. package/dist/controllers/webservice/DashboardConfigController.js +241 -0
  272. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  273. package/dist/controllers/webservice/ExportController.js +11 -11
  274. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  275. package/dist/controllers/webservice/FormManagementController.js +11 -13
  276. package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
  277. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
  278. package/dist/controllers/webservice/HarvestRunController.js +148 -0
  279. package/dist/controllers/webservice/IntegrationAuditController.d.ts +10 -0
  280. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
  281. package/dist/controllers/webservice/IntegrationAuditController.js +98 -0
  282. package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
  283. package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
  284. package/dist/controllers/webservice/NamedQueryController.js +127 -0
  285. package/dist/controllers/webservice/RecordController.d.ts +4 -0
  286. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  287. package/dist/controllers/webservice/RecordController.js +441 -314
  288. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  289. package/dist/controllers/webservice/RecordTypeController.js +9 -10
  290. package/dist/controllers/webservice/ReportController.d.ts +7 -0
  291. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  292. package/dist/controllers/webservice/ReportController.js +125 -19
  293. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  294. package/dist/controllers/webservice/SearchController.js +28 -35
  295. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  296. package/dist/controllers/webservice/TranslationController.js +65 -43
  297. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  298. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  299. package/dist/controllers/webservice/UserManagementController.js +114 -101
  300. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  301. package/dist/controllers/webservice/VocabularyController.js +76 -28
  302. package/dist/form-config/dataRecord-1.0-draft.js +3 -3
  303. package/dist/form-config/default-1.0-draft.d.ts.map +1 -1
  304. package/dist/form-config/default-1.0-draft.js +27 -3
  305. package/dist/form-config/index.d.ts.map +1 -1
  306. package/dist/form-config/index.js +1 -1
  307. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  308. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  309. package/dist/hooks/defineRedboxHook.js +4 -1
  310. package/dist/hooks/webpack.d.ts.map +1 -1
  311. package/dist/hooks/webpack.js +17 -7
  312. package/dist/index.d.ts +12 -2
  313. package/dist/index.d.ts.map +1 -1
  314. package/dist/index.js +17 -2
  315. package/dist/loader/MigrationRunner.d.ts +19 -0
  316. package/dist/loader/MigrationRunner.d.ts.map +1 -0
  317. package/dist/loader/MigrationRunner.js +108 -0
  318. package/dist/loader/bootstrapShimRuntime.d.ts +2 -1
  319. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  320. package/dist/loader/bootstrapShimRuntime.js +7 -2
  321. package/dist/loader/index.d.ts +17 -0
  322. package/dist/loader/index.d.ts.map +1 -1
  323. package/dist/loader/index.js +216 -13
  324. package/dist/middleware/redboxSession.d.ts +5 -0
  325. package/dist/middleware/redboxSession.d.ts.map +1 -1
  326. package/dist/middleware/redboxSession.js +19 -6
  327. package/dist/model/BuildResponse.d.ts +4 -0
  328. package/dist/model/BuildResponse.d.ts.map +1 -1
  329. package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
  330. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  331. package/dist/model/DashboardTypeResponseModel.js +12 -4
  332. package/dist/model/DashboardViewResponseModel.d.ts +20 -0
  333. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
  334. package/dist/model/DashboardViewResponseModel.js +38 -0
  335. package/dist/model/RecordTypeResponseModel.d.ts +3 -1
  336. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  337. package/dist/model/RecordTypeResponseModel.js +4 -2
  338. package/dist/model/RequestDetails.d.ts +1 -1
  339. package/dist/model/RequestDetails.d.ts.map +1 -1
  340. package/dist/model/RequestDetails.js +1 -1
  341. package/dist/model/config/ReportConfig.d.ts +1 -1
  342. package/dist/model/config/ReportConfig.d.ts.map +1 -1
  343. package/dist/model/config/ReportConfig.js +2 -2
  344. package/dist/model/index.d.ts +1 -0
  345. package/dist/model/index.d.ts.map +1 -1
  346. package/dist/model/index.js +5 -2
  347. package/dist/model/storage/BrandingModel.d.ts +0 -16
  348. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  349. package/dist/model/storage/BrandingModel.js +2 -51
  350. package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
  351. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
  352. package/dist/model/storage/HarvestRunModel.d.ts +140 -0
  353. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
  354. package/dist/model/storage/HarvestRunModel.js +110 -0
  355. package/dist/model/storage/IntegrationAuditModel.d.ts +49 -0
  356. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  357. package/dist/model/storage/IntegrationAuditModel.js +106 -0
  358. package/dist/model/storage/RecordTypeModel.d.ts +16 -0
  359. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  360. package/dist/model/storage/RecordTypeModel.js +9 -1
  361. package/dist/model/storage/ReportModel.d.ts +1 -0
  362. package/dist/model/storage/ReportModel.d.ts.map +1 -1
  363. package/dist/model/storage/index.d.ts +2 -0
  364. package/dist/model/storage/index.d.ts.map +1 -1
  365. package/dist/model/storage/index.js +15 -2
  366. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  367. package/dist/policies/contentSecurityPolicy.js +23 -2
  368. package/dist/policies/i18nLanguages.d.ts.map +1 -1
  369. package/dist/policies/i18nLanguages.js +1 -1
  370. package/dist/policies/index.d.ts +3 -0
  371. package/dist/policies/index.d.ts.map +1 -1
  372. package/dist/policies/index.js +6 -2
  373. package/dist/policies/menuResolver.d.ts.map +1 -1
  374. package/dist/policies/menuResolver.js +1 -1
  375. package/dist/policies/setLang.d.ts.map +1 -1
  376. package/dist/policies/setLang.js +1 -1
  377. package/dist/policies/validateApiContractRequest.d.ts +3 -0
  378. package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
  379. package/dist/policies/validateApiContractRequest.js +74 -0
  380. package/dist/responses/badRequest.d.ts.map +1 -1
  381. package/dist/responses/badRequest.js +5 -3
  382. package/dist/responses/created.d.ts.map +1 -1
  383. package/dist/responses/created.js +5 -3
  384. package/dist/responses/forbidden.d.ts.map +1 -1
  385. package/dist/responses/forbidden.js +5 -3
  386. package/dist/responses/ok.d.ts.map +1 -1
  387. package/dist/responses/ok.js +5 -3
  388. package/dist/responses/serverError.d.ts.map +1 -1
  389. package/dist/responses/serverError.js +5 -3
  390. package/dist/responses/siteTitle.d.ts +6 -0
  391. package/dist/responses/siteTitle.d.ts.map +1 -0
  392. package/dist/responses/siteTitle.js +28 -0
  393. package/dist/sails.d.ts +9 -0
  394. package/dist/sails.d.ts.map +1 -1
  395. package/dist/services/AgendaQueueService.d.ts +39 -17
  396. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  397. package/dist/services/AgendaQueueService.js +328 -87
  398. package/dist/services/AppConfigService.d.ts +20 -2
  399. package/dist/services/AppConfigService.d.ts.map +1 -1
  400. package/dist/services/AppConfigService.js +129 -15
  401. package/dist/services/AttachmentMetadataService.d.ts +34 -0
  402. package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
  403. package/dist/services/AttachmentMetadataService.js +133 -0
  404. package/dist/services/BrandingLogoService.d.ts +11 -8
  405. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  406. package/dist/services/BrandingLogoService.js +71 -72
  407. package/dist/services/BrandingService.d.ts.map +1 -1
  408. package/dist/services/BrandingService.js +4 -32
  409. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  410. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  411. package/dist/services/BrandingThemeCssService.js +113 -0
  412. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  413. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  414. package/dist/services/BrandingThemeTokens.js +82 -0
  415. package/dist/services/CacheService.d.ts.map +1 -1
  416. package/dist/services/CacheService.js +37 -29
  417. package/dist/services/DashboardConfigService.d.ts +71 -0
  418. package/dist/services/DashboardConfigService.d.ts.map +1 -0
  419. package/dist/services/DashboardConfigService.js +315 -0
  420. package/dist/services/DashboardTypesService.d.ts +61 -63
  421. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  422. package/dist/services/DashboardTypesService.js +361 -198
  423. package/dist/services/DoiService.d.ts +30 -25
  424. package/dist/services/DoiService.d.ts.map +1 -1
  425. package/dist/services/DoiService.js +448 -393
  426. package/dist/services/EmailService.d.ts +17 -3
  427. package/dist/services/EmailService.d.ts.map +1 -1
  428. package/dist/services/EmailService.js +44 -17
  429. package/dist/services/FigshareService.d.ts +40 -65
  430. package/dist/services/FigshareService.d.ts.map +1 -1
  431. package/dist/services/FigshareService.js +616 -2038
  432. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  433. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  434. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  435. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  436. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  437. package/dist/services/FormRecordConsistencyService.js +21 -19
  438. package/dist/services/FormVocabularyService.d.ts +45 -0
  439. package/dist/services/FormVocabularyService.d.ts.map +1 -0
  440. package/dist/services/FormVocabularyService.js +326 -0
  441. package/dist/services/FormsService.d.ts.map +1 -1
  442. package/dist/services/FormsService.js +8 -6
  443. package/dist/services/HarvestRunService.d.ts +73 -0
  444. package/dist/services/HarvestRunService.d.ts.map +1 -0
  445. package/dist/services/HarvestRunService.js +1317 -0
  446. package/dist/services/I18nEntriesService.d.ts +9 -4
  447. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  448. package/dist/services/I18nEntriesService.js +96 -18
  449. package/dist/services/IntegrationAuditService.d.ts +158 -0
  450. package/dist/services/IntegrationAuditService.d.ts.map +1 -1
  451. package/dist/services/IntegrationAuditService.js +838 -0
  452. package/dist/services/IntegrationNotificationService.d.ts +55 -0
  453. package/dist/services/IntegrationNotificationService.d.ts.map +1 -0
  454. package/dist/services/IntegrationNotificationService.js +271 -0
  455. package/dist/services/NamedQueryService.d.ts +51 -12
  456. package/dist/services/NamedQueryService.d.ts.map +1 -1
  457. package/dist/services/NamedQueryService.js +622 -125
  458. package/dist/services/OniService.js +2 -2
  459. package/dist/services/RDMPService.d.ts.map +1 -1
  460. package/dist/services/RDMPService.js +3 -2
  461. package/dist/services/RecordsService.d.ts +24 -2
  462. package/dist/services/RecordsService.d.ts.map +1 -1
  463. package/dist/services/RecordsService.js +119 -19
  464. package/dist/services/ReportsService.d.ts +57 -1
  465. package/dist/services/ReportsService.d.ts.map +1 -1
  466. package/dist/services/ReportsService.js +258 -34
  467. package/dist/services/SassCompilerService.d.ts +4 -10
  468. package/dist/services/SassCompilerService.d.ts.map +1 -1
  469. package/dist/services/SassCompilerService.js +9 -173
  470. package/dist/services/SolrSearchService.d.ts +1 -0
  471. package/dist/services/SolrSearchService.d.ts.map +1 -1
  472. package/dist/services/SolrSearchService.js +14 -3
  473. package/dist/services/StandardDatastreamService.d.ts +37 -5
  474. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  475. package/dist/services/StandardDatastreamService.js +535 -38
  476. package/dist/services/StorageManagerService.d.ts +13 -1
  477. package/dist/services/StorageManagerService.d.ts.map +1 -1
  478. package/dist/services/StorageManagerService.js +94 -11
  479. package/dist/services/TemplateService.d.ts +2 -18
  480. package/dist/services/TemplateService.d.ts.map +1 -1
  481. package/dist/services/TemplateService.js +9 -53
  482. package/dist/services/VocabularyService.d.ts +13 -0
  483. package/dist/services/VocabularyService.d.ts.map +1 -1
  484. package/dist/services/VocabularyService.js +204 -14
  485. package/dist/services/doi-v2/audit.d.ts +7 -0
  486. package/dist/services/doi-v2/audit.d.ts.map +1 -1
  487. package/dist/services/doi-v2/audit.js +30 -0
  488. package/dist/services/doi-v2/bindings.d.ts +8 -0
  489. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  490. package/dist/services/doi-v2/bindings.js +79 -0
  491. package/dist/services/doi-v2/config.d.ts +7 -0
  492. package/dist/services/doi-v2/config.js +51 -0
  493. package/dist/services/doi-v2/context.d.ts +18 -0
  494. package/dist/services/doi-v2/context.js +41 -0
  495. package/dist/services/doi-v2/http.d.ts +21 -0
  496. package/dist/services/doi-v2/http.js +88 -0
  497. package/dist/services/doi-v2/payload.d.ts +4 -0
  498. package/dist/services/doi-v2/payload.js +291 -0
  499. package/dist/services/doi-v2/profiles.d.ts +5 -0
  500. package/dist/services/doi-v2/profiles.js +31 -0
  501. package/dist/services/doi-v2/runtime.d.ts +16 -0
  502. package/dist/services/doi-v2/runtime.js +173 -0
  503. package/dist/services/doi-v2/types.d.ts +49 -0
  504. package/dist/services/doi-v2/types.js +3 -0
  505. package/dist/services/figshare-v2/assets.d.ts +5 -0
  506. package/dist/services/figshare-v2/assets.js +297 -0
  507. package/dist/services/figshare-v2/audit.d.ts +7 -0
  508. package/dist/services/figshare-v2/audit.d.ts.map +1 -0
  509. package/dist/services/figshare-v2/audit.js +30 -0
  510. package/dist/services/figshare-v2/bindings.d.ts +6 -0
  511. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  512. package/dist/services/figshare-v2/bindings.js +58 -0
  513. package/dist/services/figshare-v2/config.d.ts +13 -0
  514. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  515. package/dist/services/figshare-v2/config.js +105 -0
  516. package/dist/services/figshare-v2/context.d.ts +4 -0
  517. package/dist/services/figshare-v2/context.d.ts.map +1 -1
  518. package/dist/services/figshare-v2/context.js +21 -0
  519. package/dist/services/figshare-v2/embargo.d.ts +5 -0
  520. package/dist/services/figshare-v2/embargo.js +36 -0
  521. package/dist/services/figshare-v2/http.d.ts +42 -0
  522. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  523. package/dist/services/figshare-v2/http.js +324 -0
  524. package/dist/services/figshare-v2/metadata.d.ts +6 -0
  525. package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
  526. package/dist/services/figshare-v2/metadata.js +280 -0
  527. package/dist/services/figshare-v2/observability.d.ts +7 -0
  528. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  529. package/dist/services/figshare-v2/observability.js +87 -0
  530. package/dist/services/figshare-v2/plan.d.ts +5 -0
  531. package/dist/services/figshare-v2/plan.js +51 -0
  532. package/dist/services/figshare-v2/publish.d.ts +5 -0
  533. package/dist/services/figshare-v2/publish.js +20 -0
  534. package/dist/services/figshare-v2/queue.d.ts +4 -0
  535. package/dist/services/figshare-v2/queue.js +11 -0
  536. package/dist/services/figshare-v2/runtime.d.ts +14 -0
  537. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  538. package/dist/services/figshare-v2/runtime.js +88 -0
  539. package/dist/services/figshare-v2/types.d.ts +198 -0
  540. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  541. package/dist/services/figshare-v2/types.js +59 -0
  542. package/dist/services/figshare-v2/workflow.d.ts +3 -0
  543. package/dist/services/figshare-v2/workflow.js +7 -0
  544. package/dist/services/figshare-v2/writeback.d.ts +5 -0
  545. package/dist/services/figshare-v2/writeback.js +45 -0
  546. package/dist/services/index.d.ts +24 -3
  547. package/dist/services/index.d.ts.map +1 -1
  548. package/dist/services/index.js +43 -7
  549. package/dist/shims/momentShim.d.ts.map +1 -1
  550. package/dist/shims/momentShim.js +1 -6
  551. package/dist/storage/GridFSDriver.d.ts +101 -0
  552. package/dist/storage/GridFSDriver.d.ts.map +1 -0
  553. package/dist/storage/GridFSDriver.js +291 -0
  554. package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
  555. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
  556. package/dist/storage/TusStorageManagerDataStore.js +300 -0
  557. package/dist/utilities/RequestParamUtils.d.ts +3 -0
  558. package/dist/utilities/RequestParamUtils.d.ts.map +1 -0
  559. package/dist/utilities/RequestParamUtils.js +13 -0
  560. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  561. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  562. package/dist/visitor/attachment-fields.visitor.js +44 -34
  563. package/dist/visitor/client.visitor.d.ts +145 -97
  564. package/dist/visitor/client.visitor.d.ts.map +1 -1
  565. package/dist/visitor/client.visitor.js +366 -273
  566. package/dist/visitor/construct.visitor.d.ts +99 -93
  567. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  568. package/dist/visitor/construct.visitor.js +302 -227
  569. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  570. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  571. package/dist/visitor/context-variables.visitor.js +85 -75
  572. package/dist/visitor/data-value.visitor.d.ts +99 -93
  573. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  574. package/dist/visitor/data-value.visitor.js +157 -148
  575. package/dist/visitor/json-type-def.visitor.d.ts +96 -90
  576. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  577. package/dist/visitor/json-type-def.visitor.js +158 -149
  578. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +101 -94
  579. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  580. package/dist/visitor/migrate-config-v4-v5.visitor.js +356 -295
  581. package/dist/visitor/template.visitor.d.ts +100 -92
  582. package/dist/visitor/template.visitor.d.ts.map +1 -1
  583. package/dist/visitor/template.visitor.js +245 -156
  584. package/dist/visitor/validator.visitor.d.ts +95 -91
  585. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  586. package/dist/visitor/validator.visitor.js +184 -152
  587. package/dist/visitor/visitor-helpers.js +9 -9
  588. package/dist/visitor/vocab-inline.visitor.d.ts +34 -19
  589. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  590. package/dist/visitor/vocab-inline.visitor.js +157 -48
  591. package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
  592. package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
  593. package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
  594. package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
  595. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
  596. package/dist/waterline-models/AttachmentMetadata.js +147 -0
  597. package/dist/waterline-models/BrandingConfig.d.ts +0 -2
  598. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  599. package/dist/waterline-models/BrandingConfig.js +5 -9
  600. package/dist/waterline-models/DashboardType.d.ts +7 -0
  601. package/dist/waterline-models/DashboardType.d.ts.map +1 -1
  602. package/dist/waterline-models/DashboardType.js +16 -1
  603. package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
  604. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
  605. package/dist/waterline-models/HarvestRecordEvent.js +107 -0
  606. package/dist/waterline-models/HarvestRun.d.ts +51 -0
  607. package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
  608. package/dist/waterline-models/HarvestRun.js +125 -0
  609. package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
  610. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
  611. package/dist/waterline-models/HarvestRunChunk.js +140 -0
  612. package/dist/waterline-models/I18nTranslation.d.ts +2 -0
  613. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
  614. package/dist/waterline-models/I18nTranslation.js +6 -1
  615. package/dist/waterline-models/Migration.d.ts +24 -0
  616. package/dist/waterline-models/Migration.d.ts.map +1 -0
  617. package/dist/waterline-models/Migration.js +52 -0
  618. package/dist/waterline-models/NamedQuery.d.ts +6 -0
  619. package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
  620. package/dist/waterline-models/NamedQuery.js +16 -1
  621. package/dist/waterline-models/index.d.ts +12 -0
  622. package/dist/waterline-models/index.d.ts.map +1 -1
  623. package/dist/waterline-models/index.js +19 -1
  624. package/package.json +77 -51
  625. package/redbox-loader-templates/bootstrap-shim.js.hbs +14 -1
  626. package/dist/config/datacite.config.d.ts +0 -51
  627. package/dist/config/datacite.config.d.ts.map +0 -1
  628. package/dist/config/datacite.config.js +0 -44
  629. package/dist/config/figshareAPI.config.d.ts +0 -116
  630. package/dist/config/figshareAPI.config.d.ts.map +0 -1
  631. package/dist/config/figshareAPI.config.js +0 -857
  632. package/dist/config/figshareAPIEnv.config.d.ts +0 -11
  633. package/dist/config/figshareAPIEnv.config.d.ts.map +0 -1
  634. package/dist/config/figshareAPIEnv.config.js +0 -13
  635. package/dist/config/figshareRedboxFORMapping.config.d.ts +0 -15
  636. package/dist/config/figshareRedboxFORMapping.config.d.ts.map +0 -1
  637. package/dist/config/figshareRedboxFORMapping.config.js +0 -7458
  638. package/dist/config/relatedObjectsFormDefinition.config.d.ts.map +0 -1
  639. package/dist/controllers/VocabController.d.ts +0 -43
  640. package/dist/controllers/VocabController.d.ts.map +0 -1
  641. package/dist/controllers/VocabController.js +0 -190
  642. package/dist/form-config/dataPublication-1.0-draft.d.ts.map +0 -1
  643. package/dist/form-config/dataPublication-1.0-embargoed.d.ts.map +0 -1
  644. package/dist/form-config/dataPublication-1.0-published.d.ts.map +0 -1
  645. package/dist/form-config/dataPublication-1.0-queued.d.ts.map +0 -1
  646. package/dist/form-config/dataPublication-1.0-retired.d.ts.map +0 -1
  647. package/dist/services/VocabService.d.ts +0 -81
  648. package/dist/services/VocabService.d.ts.map +0 -1
  649. package/dist/services/VocabService.js +0 -424
@@ -9,6 +9,20 @@ export declare namespace Services {
9
9
  */
10
10
  class Email extends services.Core.Service {
11
11
  protected _exportedMethods: string[];
12
+ private helpersRegistered;
13
+ private compiledTemplates;
14
+ /**
15
+ * Register the shared Handlebars helpers once per service lifecycle.
16
+ * @private
17
+ */
18
+ private ensureHelpersRegistered;
19
+ /**
20
+ * Compile (and cache) a Handlebars template from its source string.
21
+ * @param source The Handlebars template source.
22
+ * @return The compiled template delegate.
23
+ * @private
24
+ */
25
+ private getCompiledTemplate;
12
26
  /**
13
27
  * Simple API service to POST a message queue to Redbox.
14
28
  * Base email sending method.
@@ -53,7 +67,7 @@ export declare namespace Services {
53
67
  */
54
68
  private sendMessageAsync;
55
69
  /**
56
- * Build Email Body from an EJS Template.
70
+ * Build Email Body from a Handlebars Template.
57
71
  * Templates are defined in sails config.
58
72
  *
59
73
  * @param template The file name without extension.
@@ -61,7 +75,7 @@ export declare namespace Services {
61
75
  * @param res The response object. Will contain 'status', 'body', might contain 'ex'.
62
76
  * @return The response object with 'status', 'body', and maybe 'ex' set.
63
77
  */
64
- buildFromTemplateAsync(template: string, data?: Record<string, unknown>, res?: Record<string, unknown>): Promise<Record<string, unknown>>;
78
+ buildFromTemplateAsync(templateName: string, data?: Record<string, unknown>, res?: Record<string, unknown>): Promise<Record<string, unknown>>;
65
79
  /**
66
80
  * Build Email Body from Template.
67
81
  * Templates are defined in sails config.
@@ -84,7 +98,7 @@ export declare namespace Services {
84
98
  */
85
99
  sendTemplate(to: string, subject: string, template: string, data: Record<string, unknown>): void;
86
100
  /**
87
- * Render a lodash template from a string.
101
+ * Render a Handlebars template from a string.
88
102
  * @param template The template string.
89
103
  * @param variables The variables to use when rendering the template.
90
104
  * @return The rendered template string.
@@ -1 +1 @@
1
- {"version":3,"file":"EmailService.d.ts","sourceRoot":"","sources":["../../src/services/EmailService.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,UAAU,EACX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQtD,yBAAiB,QAAQ,CAAC;IACxB;;;;;OAKG;IACH,MAAa,KAAM,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QAE9C,UAAmB,gBAAgB,EAAE,MAAM,EAAE,CAO3C;QAEF;;;;;;;;;;;;;;;;;;WAkBG;QACI,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAwD,EACpE,OAAO,GAAE,MAAqD,EAC9D,SAAS,GAAE,MAAuD,EAClE,EAAE,GAAE,MAAiE,EACrE,GAAG,GAAE,MAAkE,EACvE,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAA0E,GACjH,UAAU,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAMhD;;;;;;;;;;;;;;;;;;WAkBG;gBACW,gBAAgB;QA2D9B;;;;;;;;WAQG;QACU,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;QAuB3H;;;;;;;WAOG;QACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAInH;;;;;;;;;;WAUG;QACI,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAiBhG;;;;;;WAMG;QACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAOvE;;;;;;;;;WASG;QACU,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAgGpL;;;;;WAKG;QACI,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG;YAC7I,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YACvC,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YACnC,EAAE,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAC/B,EAAE,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;SACvF;QAiFD;;;;;;;;;;;WAWG;QACH,OAAO,CAAC,gBAAgB;QAgBxB;;;;;;;;WAQG;QACH,OAAO,CAAC,uBAAuB;QAgB/B;;;;;;;WAOG;QACH,OAAO,CAAC,uBAAuB;QAS/B;;;;;;;;;WASG;QACH,OAAO,CAAC,8BAA8B;QAetC;;;;;;;;WAQG;QACH,OAAO,CAAC,wBAAwB;KAcjC;CAIF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;CAClC"}
1
+ {"version":3,"file":"EmailService.d.ts","sourceRoot":"","sources":["../../src/services/EmailService.ts"],"names":[],"mappings":"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"}
@@ -50,12 +50,16 @@ var __importStar = (this && this.__importStar) || (function () {
50
50
  return result;
51
51
  };
52
52
  })();
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
53
56
  Object.defineProperty(exports, "__esModule", { value: true });
54
57
  exports.Services = void 0;
55
58
  const rxjs_1 = require("rxjs");
56
59
  const CoreService_1 = require("../CoreService");
57
60
  // removed deprecated rxjs/add/operator imports; use firstValueFrom instead
58
- const ejs = __importStar(require("ejs"));
61
+ const handlebars_1 = __importDefault(require("handlebars"));
62
+ const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
59
63
  const fs = __importStar(require("graceful-fs"));
60
64
  const nodemailer = __importStar(require("nodemailer"));
61
65
  const rxjs_2 = require("rxjs");
@@ -76,6 +80,34 @@ var Services;
76
80
  'evaluateProperties',
77
81
  'runTemplate',
78
82
  ];
83
+ helpersRegistered = false;
84
+ compiledTemplates = new Map();
85
+ /**
86
+ * Register the shared Handlebars helpers once per service lifecycle.
87
+ * @private
88
+ */
89
+ ensureHelpersRegistered() {
90
+ if (!this.helpersRegistered) {
91
+ (0, sails_ng_common_1.registerSharedHandlebarsHelpers)(handlebars_1.default);
92
+ this.helpersRegistered = true;
93
+ sails.log.verbose('EmailService: Registered shared Handlebars helpers');
94
+ }
95
+ }
96
+ /**
97
+ * Compile (and cache) a Handlebars template from its source string.
98
+ * @param source The Handlebars template source.
99
+ * @return The compiled template delegate.
100
+ * @private
101
+ */
102
+ getCompiledTemplate(templateName) {
103
+ this.ensureHelpersRegistered();
104
+ if (!this.compiledTemplates.has(templateName)) {
105
+ const filePath = sails.config.emailnotification.settings.templateDir + templateName + '.hbs';
106
+ const source = fs.readFileSync(filePath, 'utf-8') || '';
107
+ this.compiledTemplates.set(templateName, handlebars_1.default.compile(source, { strict: true }));
108
+ }
109
+ return this.compiledTemplates.get(templateName);
110
+ }
79
111
  /**
80
112
  * Simple API service to POST a message queue to Redbox.
81
113
  * Base email sending method.
@@ -165,7 +197,7 @@ var Services;
165
197
  return response;
166
198
  }
167
199
  /**
168
- * Build Email Body from an EJS Template.
200
+ * Build Email Body from a Handlebars Template.
169
201
  * Templates are defined in sails config.
170
202
  *
171
203
  * @param template The file name without extension.
@@ -173,19 +205,15 @@ var Services;
173
205
  * @param res The response object. Will contain 'status', 'body', might contain 'ex'.
174
206
  * @return The response object with 'status', 'body', and maybe 'ex' set.
175
207
  */
176
- async buildFromTemplateAsync(template, data = {}, res = {}) {
208
+ async buildFromTemplateAsync(templateName, data = {}, res = {}) {
177
209
  try {
178
- const readTemplate = fs.readFileSync(sails.config.emailnotification.settings.templateDir + template + '.ejs', 'utf-8');
179
- const renderedTemplate = ejs.render((readTemplate || "").toString(), data, {
180
- cache: true,
181
- filename: template
182
- });
210
+ const renderedTemplate = this.getCompiledTemplate(templateName)(data);
183
211
  res['status'] = 200;
184
212
  res['body'] = renderedTemplate;
185
213
  return res;
186
214
  }
187
215
  catch (err) {
188
- sails.log.error(`Unable to render template ${template} with data: ${JSON.stringify(data)}`);
216
+ sails.log.error(`Unable to render template ${templateName} with data: ${JSON.stringify(data)}`);
189
217
  res['status'] = 500;
190
218
  res['body'] = 'Templating error.';
191
219
  res['ex'] = err;
@@ -232,15 +260,16 @@ var Services;
232
260
  });
233
261
  }
234
262
  /**
235
- * Render a lodash template from a string.
263
+ * Render a Handlebars template from a string.
236
264
  * @param template The template string.
237
265
  * @param variables The variables to use when rendering the template.
238
266
  * @return The rendered template string.
239
267
  * @protected
240
268
  */
241
269
  runTemplate(template, variables) {
242
- if (template && template.indexOf('<%') != -1) {
243
- return _.template(template, variables)();
270
+ if (template && template.indexOf('{{') != -1) {
271
+ this.ensureHelpersRegistered();
272
+ return handlebars_1.default.compile(template, { strict: true })(variables);
244
273
  }
245
274
  return template;
246
275
  }
@@ -512,10 +541,8 @@ var Services;
512
541
  const templateFunc = _.get(propConfig, 'templateFunc', null);
513
542
  if (!_.isNil(propValue) && !_.isNil(templateFunc)) {
514
543
  sails.log.verbose(`EmailService::EvaluatePropertyTemplate: Rendering using template function. Data: ${JSON.stringify(propValue)} `);
515
- if (!_.has(templateData, 'imports')) {
516
- // the lodash template function expects the data to be in under 'imports'
517
- templateData['imports'] = _.cloneDeep(templateData);
518
- }
544
+ // Handlebars reads the template context directly (record/oid are already
545
+ // top-level keys), so no lodash-style 'imports' wrapping is required.
519
546
  const func = templateFunc.bind(this);
520
547
  return func(propValue, templateData);
521
548
  }
@@ -524,4 +551,4 @@ var Services;
524
551
  }
525
552
  Services.Email = Email;
526
553
  })(Services || (exports.Services = Services = {}));
527
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0VtYWlsU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFFYztBQUNkLGdEQUFzRDtBQUN0RCwyRUFBMkU7QUFDM0UseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx1REFBeUM7QUFDekMsK0JBQWtDO0FBR2xDLElBQWlCLFFBQVEsQ0EyaEJ4QjtBQTNoQkQsV0FBaUIsUUFBUTtJQUN2Qjs7Ozs7T0FLRztJQUNILE1BQWEsS0FBTSxTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFFM0IsZ0JBQWdCLEdBQWE7WUFDOUMsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQixhQUFhO1NBQ2QsQ0FBQztRQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FrQkc7UUFDSSxXQUFXLENBQ2hCLEtBQWEsRUFDYixPQUFlLEVBQ2YsYUFBcUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUNwRSxVQUFrQixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQzlELFlBQW9CLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUSxD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
554
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0VtYWlsU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFFYztBQUNkLGdEQUFzRDtBQUN0RCwyRUFBMkU7QUFDM0UsNERBQXdGO0FBQ3hGLHNFQUFtRjtBQUNuRixnREFBa0M7QUFDbEMsdURBQXlDO0FBQ3pDLCtCQUFrQztBQUdsQyxJQUFpQixRQUFRLENBbWpCeEI7QUFuakJELFdBQWlCLFFBQVE7SUFDdkI7Ozs7O09BS0c7SUFDSCxNQUFhLEtBQU0sU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBRTNCLGdCQUFnQixHQUFhO1lBQzlDLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsYUFBYTtTQUNkLENBQUM7UUFFTSxpQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsaUJBQWlCLEdBQTRDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFL0U7OztXQUdHO1FBQ0ssdUJBQXVCO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUIsSUFBQSxpREFBK0IsRUFBQyxvQkFBVSxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENB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
@@ -1,75 +1,50 @@
1
1
  import { Services as services } from '../CoreService';
2
- import { RecordModel } from '../model/storage/RecordModel';
3
- type AnyRecord = Record<string, unknown>;
4
- type RecordLike = RecordModel | AnyRecord;
2
+ import { resolveFigsharePublishingConfig } from './figshare-v2/config';
3
+ import { FigshareClient } from './figshare-v2/http';
4
+ import { RecordModel, UserModel, FigshareArticle, FigsharePublicationPlan, FigsharePublishResult, FigshareSyncState, FigshareJob, AssetSyncResult } from './figshare-v2/types';
5
5
  export declare namespace Services {
6
6
  class FigshareService extends services.Core.Service {
7
- private datastreamService;
8
- private queueService;
9
7
  protected _exportedMethods: string[];
10
- constructor();
11
- init(): void;
12
- private getRuntimeConfig;
13
- private isFigshareAPIEnabled;
14
- private getAxiosConfig;
15
- private logWithLevel;
16
- private logVerbose;
17
- private getRetryConfig;
18
- private shouldRetryRequest;
19
- private redactAxiosConfig;
20
- private describeAxiosError;
21
- protected sleep(delayMs: number): Promise<void>;
22
- private requestWithRetry;
23
- private getValueFromObject;
24
- private getValueFromRecord;
25
- private setFieldInRecord;
26
- private setStandardFieldInRequestBody;
27
- private setCustomFieldInRequestBody;
28
- private setFieldByNameInRequestBody;
29
- private getAuthorUserIDs;
30
- private getContributorsFromRecord;
31
- private isRecordEmbargoed;
32
- private isClearEmbargoNeeded;
33
- private checkEmbargoDetailsChanged;
34
- private findCategoryIDs;
35
- private getFigPrivateLicenses;
36
- private getArticleDetails;
37
- private isArticleApprovedAndPublished;
38
- private getArticleFileList;
39
- private isFileUploadInProgress;
40
- private checkArticleHasURLsOrFilesAttached;
41
- private getArticleUpdateRequestBody;
42
- private getArticleCreateRequestBody;
43
- private getEmbargoRequestBody;
44
- private getPublishRequestBody;
45
- private sendDataPublicationToFigshare;
46
- private validateEmbargoRequestBody;
47
- private checkCreateFields;
48
- private validateFieldInRequestBody;
49
- private validateCreateRequestBody;
50
- private checkRequestUpdateFields;
51
- private validateUpdateRequestBody;
52
- private isFileAttachmentInDataLocations;
53
- private isURLAttachmentInDataLocations;
54
- private countFileAttachmentsInDataLocations;
55
- private checkUploadFilesPending;
56
- private formatBytes;
57
- private processFileUploadToFigshare;
58
- private deleteFilesAndUpdateDataLocationEntries;
59
- private isArticleInExpectedState;
60
- private transitionRecordWorkflowFromFigshareArticleProperties;
61
- createUpdateFigshareArticle(oid: string, record: RecordLike, options: AnyRecord, user: AnyRecord): AnyRecord | Promise<AnyRecord>;
62
- uploadFilesToFigshareArticle(oid: string, record: RecordLike, options: AnyRecord, user: AnyRecord): void;
63
- deleteFilesFromRedboxTrigger(oid: string, record: RecordLike, options: AnyRecord, user: AnyRecord): AnyRecord | Promise<AnyRecord>;
64
- publishAfterUploadFilesJob(job: AnyRecord): Promise<void>;
65
- deleteFilesFromRedbox(job: AnyRecord): Promise<void>;
66
- queuePublishAfterUploadFiles(oid: string, articleId: string, user: AnyRecord, brandId: string): void;
67
- queueDeleteFiles(oid: string, user: AnyRecord, brandId: string, articleId: string): void;
68
- transitionRecordWorkflowFromFigshareArticlePropertiesJob(_job: AnyRecord): Promise<void>;
8
+ private _msgPrefix;
9
+ private msgPrefix;
10
+ private hasConfiguredTriggerCondition;
11
+ private shouldRunFigshareLifecycleSync;
12
+ private summarizeError;
13
+ private wrapHttpError;
14
+ private getFigshareResponseMessage;
15
+ private figshareResponseToRBValidationError;
16
+ private assertConfig;
17
+ getConfig(record?: RecordModel): import("./figshare-v2/config").ResolvedFigsharePublishingConfigData | null;
18
+ getSyncState(config: NonNullable<ReturnType<typeof resolveFigsharePublishingConfig>>, record: RecordModel): FigshareSyncState;
19
+ setSyncState(config: NonNullable<ReturnType<typeof resolveFigsharePublishingConfig>>, record: RecordModel, syncState: FigshareSyncState): void;
20
+ validateHandlebarsTemplate(template: string): void;
21
+ buildMetadataPayload(config: NonNullable<ReturnType<typeof resolveFigsharePublishingConfig>>, record: RecordModel): Promise<Record<string, unknown>>;
22
+ makeClient(config: NonNullable<ReturnType<typeof resolveFigsharePublishingConfig>>, record: RecordModel, jobId?: string, triggerSource?: string): FigshareClient;
23
+ preparePublication(record: RecordModel, jobId?: string): FigsharePublicationPlan;
24
+ syncMetadata(record: RecordModel, plan?: FigsharePublicationPlan): Promise<FigshareArticle>;
25
+ syncAssets(record: RecordModel, article: FigshareArticle): Promise<AssetSyncResult & Record<string, unknown>>;
26
+ syncEmbargo(record: RecordModel, articleId: string): Promise<Record<string, unknown>>;
27
+ publishIfNeeded(record: RecordModel, articleId: string): Promise<FigsharePublishResult>;
28
+ writeBack(record: RecordModel, article: FigshareArticle, publishResult?: FigsharePublishResult, assetSyncResult?: Record<string, unknown>): RecordModel;
29
+ private getArticleFiles;
30
+ private isCurationLocked;
31
+ private ensureNoFileUploadInProgress;
32
+ private cleanupUploadedFiles;
33
+ private isArticleReadyForWorkflowTransition;
34
+ private transitionWorkflowForRecord;
35
+ syncRecordWithFigshare(record: RecordModel, jobId?: string, triggerSource?: string): Promise<RecordModel>;
36
+ persistSyncRecord(oid: string, record: RecordModel, user: UserModel): Promise<boolean>;
37
+ createUpdateFigshareArticle(oid: string | null, record: RecordModel, options: Record<string, unknown>, user: unknown): RecordModel | Promise<RecordModel>;
38
+ uploadFilesToFigshareArticle(oid: string, record: RecordModel, options: Record<string, unknown>, user: UserModel): RecordModel | undefined;
39
+ deleteFilesFromRedboxTrigger(oid: string, record: RecordModel, options: Record<string, unknown>, user: UserModel): Promise<RecordModel>;
40
+ publishAfterUploadFilesJob(job: FigshareJob): Promise<void>;
41
+ deleteFilesFromRedbox(job: FigshareJob): Promise<void>;
42
+ queuePublishAfterUploadFiles(oid: string, articleId: string, user: UserModel, brandId: string): void;
43
+ queueDeleteFiles(oid: string, user: UserModel, brandId: string, articleId: string): void;
44
+ transitionRecordWorkflowFromFigshareArticlePropertiesJob(_job: Record<string, unknown>): Promise<void>;
69
45
  }
70
46
  }
71
47
  declare global {
72
48
  let FigshareService: Services.FigshareService;
73
49
  }
74
- export {};
75
50
  //# sourceMappingURL=FigshareService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FigshareService.d.ts","sourceRoot":"","sources":["../../src/services/FigshareService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FigshareService.d.ts","sourceRoot":"","sources":["../../src/services/FigshareService.ts"],"names":[],"mappings":"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"}