@researchdatabox/redbox-core 0.0.0-bootstrap.0

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 (934) hide show
  1. package/dist/Attachment.d.ts +17 -0
  2. package/dist/Attachment.d.ts.map +1 -0
  3. package/dist/Attachment.js +40 -0
  4. package/dist/CoreController.d.ts +202 -0
  5. package/dist/CoreController.d.ts.map +1 -0
  6. package/dist/CoreController.js +688 -0
  7. package/dist/CoreService.d.ts +95 -0
  8. package/dist/CoreService.d.ts.map +1 -0
  9. package/dist/CoreService.js +295 -0
  10. package/dist/Datastream.d.ts +11 -0
  11. package/dist/Datastream.d.ts.map +1 -0
  12. package/dist/Datastream.js +38 -0
  13. package/dist/DatastreamService.d.ts +19 -0
  14. package/dist/DatastreamService.d.ts.map +1 -0
  15. package/dist/DatastreamService.js +3 -0
  16. package/dist/DatastreamServiceResponse.d.ts +12 -0
  17. package/dist/DatastreamServiceResponse.d.ts.map +1 -0
  18. package/dist/DatastreamServiceResponse.js +37 -0
  19. package/dist/IntegrationAuditParams.d.ts.map +1 -0
  20. package/dist/Logger.d.ts +16 -0
  21. package/dist/Logger.d.ts.map +1 -0
  22. package/dist/Logger.js +3 -0
  23. package/dist/QueueService.d.ts +9 -0
  24. package/dist/QueueService.d.ts.map +1 -0
  25. package/dist/QueueService.js +21 -0
  26. package/dist/RecordAuditParams.d.ts +6 -0
  27. package/dist/RecordAuditParams.d.ts.map +1 -0
  28. package/dist/RecordAuditParams.js +10 -0
  29. package/dist/RecordsService.d.ts +39 -0
  30. package/dist/RecordsService.d.ts.map +1 -0
  31. package/dist/RecordsService.js +3 -0
  32. package/dist/SearchService.d.ts +8 -0
  33. package/dist/SearchService.d.ts.map +1 -0
  34. package/dist/SearchService.js +3 -0
  35. package/dist/StorageService.d.ts +27 -0
  36. package/dist/StorageService.d.ts.map +1 -0
  37. package/dist/StorageService.js +3 -0
  38. package/dist/StorageServiceResponse.d.ts +16 -0
  39. package/dist/StorageServiceResponse.d.ts.map +1 -0
  40. package/dist/StorageServiceResponse.js +41 -0
  41. package/dist/bootstrap.d.ts +32 -0
  42. package/dist/bootstrap.d.ts.map +1 -0
  43. package/dist/bootstrap.js +172 -0
  44. package/dist/config/action.config.d.ts +13 -0
  45. package/dist/config/action.config.d.ts.map +1 -0
  46. package/dist/config/action.config.js +9 -0
  47. package/dist/config/agendaQueue.config.d.ts +49 -0
  48. package/dist/config/agendaQueue.config.d.ts.map +1 -0
  49. package/dist/config/agendaQueue.config.js +71 -0
  50. package/dist/config/api.config.d.ts +9 -0
  51. package/dist/config/api.config.d.ts.map +1 -0
  52. package/dist/config/api.config.js +11 -0
  53. package/dist/config/appmode.config.d.ts +12 -0
  54. package/dist/config/appmode.config.d.ts.map +1 -0
  55. package/dist/config/appmode.config.js +12 -0
  56. package/dist/config/auth.config.d.ts +15 -0
  57. package/dist/config/auth.config.d.ts.map +1 -0
  58. package/dist/config/auth.config.js +81 -0
  59. package/dist/config/autoreload.config.d.ts +18 -0
  60. package/dist/config/autoreload.config.d.ts.map +1 -0
  61. package/dist/config/autoreload.config.js +21 -0
  62. package/dist/config/blueprints.config.d.ts +28 -0
  63. package/dist/config/blueprints.config.d.ts.map +1 -0
  64. package/dist/config/blueprints.config.js +15 -0
  65. package/dist/config/bootstrap.config.d.ts +15 -0
  66. package/dist/config/bootstrap.config.d.ts.map +1 -0
  67. package/dist/config/bootstrap.config.js +12 -0
  68. package/dist/config/branding.config.d.ts +19 -0
  69. package/dist/config/branding.config.d.ts.map +1 -0
  70. package/dist/config/branding.config.js +109 -0
  71. package/dist/config/brandingConfigurationDefaults.config.d.ts +134 -0
  72. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -0
  73. package/dist/config/brandingConfigurationDefaults.config.js +283 -0
  74. package/dist/config/companion.config.d.ts +41 -0
  75. package/dist/config/companion.config.d.ts.map +1 -0
  76. package/dist/config/companion.config.js +61 -0
  77. package/dist/config/cors.config.d.ts +22 -0
  78. package/dist/config/cors.config.d.ts.map +1 -0
  79. package/dist/config/cors.config.js +11 -0
  80. package/dist/config/crontab.config.d.ts +22 -0
  81. package/dist/config/crontab.config.d.ts.map +1 -0
  82. package/dist/config/crontab.config.js +18 -0
  83. package/dist/config/csp.config.d.ts +53 -0
  84. package/dist/config/csp.config.d.ts.map +1 -0
  85. package/dist/config/csp.config.js +32 -0
  86. package/dist/config/custom.config.d.ts +16 -0
  87. package/dist/config/custom.config.d.ts.map +1 -0
  88. package/dist/config/custom.config.js +22 -0
  89. package/dist/config/custom_cache.config.d.ts +14 -0
  90. package/dist/config/custom_cache.config.d.ts.map +1 -0
  91. package/dist/config/custom_cache.config.js +13 -0
  92. package/dist/config/dashboardtype.config.d.ts +45 -0
  93. package/dist/config/dashboardtype.config.d.ts.map +1 -0
  94. package/dist/config/dashboardtype.config.js +98 -0
  95. package/dist/config/datacite.config.d.ts +51 -0
  96. package/dist/config/datacite.config.d.ts.map +1 -0
  97. package/dist/config/datacite.config.js +44 -0
  98. package/dist/config/datapubs.config.d.ts +72 -0
  99. package/dist/config/datapubs.config.d.ts.map +1 -0
  100. package/dist/config/datapubs.config.js +74 -0
  101. package/dist/config/datastores.config.d.ts +20 -0
  102. package/dist/config/datastores.config.d.ts.map +1 -0
  103. package/dist/config/datastores.config.js +21 -0
  104. package/dist/config/dompurify.config.d.ts +65 -0
  105. package/dist/config/dompurify.config.d.ts.map +1 -0
  106. package/dist/config/dompurify.config.js +181 -0
  107. package/dist/config/dynamicasset.config.d.ts +13 -0
  108. package/dist/config/dynamicasset.config.d.ts.map +1 -0
  109. package/dist/config/dynamicasset.config.js +18 -0
  110. package/dist/config/dynamicconfig.config.d.ts +12 -0
  111. package/dist/config/dynamicconfig.config.d.ts.map +1 -0
  112. package/dist/config/dynamicconfig.config.js +13 -0
  113. package/dist/config/emailnotification.config.d.ts +49 -0
  114. package/dist/config/emailnotification.config.d.ts.map +1 -0
  115. package/dist/config/emailnotification.config.js +37 -0
  116. package/dist/config/figshareAPI.config.d.ts +116 -0
  117. package/dist/config/figshareAPI.config.d.ts.map +1 -0
  118. package/dist/config/figshareAPI.config.js +857 -0
  119. package/dist/config/figshareAPIEnv.config.d.ts +11 -0
  120. package/dist/config/figshareAPIEnv.config.d.ts.map +1 -0
  121. package/dist/config/figshareAPIEnv.config.js +13 -0
  122. package/dist/config/figshareDev.config.d.ts.map +1 -0
  123. package/dist/config/figshareRedboxFORMapping.config.d.ts +15 -0
  124. package/dist/config/figshareRedboxFORMapping.config.d.ts.map +1 -0
  125. package/dist/config/figshareRedboxFORMapping.config.js +7458 -0
  126. package/dist/config/form.config.d.ts +20 -0
  127. package/dist/config/form.config.d.ts.map +1 -0
  128. package/dist/config/form.config.js +11 -0
  129. package/dist/config/globals.config.d.ts +20 -0
  130. package/dist/config/globals.config.d.ts.map +1 -0
  131. package/dist/config/globals.config.js +52 -0
  132. package/dist/config/http.config.d.ts +57 -0
  133. package/dist/config/http.config.d.ts.map +1 -0
  134. package/dist/config/http.config.js +462 -0
  135. package/dist/config/i18n.config.d.ts +38 -0
  136. package/dist/config/i18n.config.d.ts.map +1 -0
  137. package/dist/config/i18n.config.js +30 -0
  138. package/dist/config/index.d.ts +306 -0
  139. package/dist/config/index.d.ts.map +1 -0
  140. package/dist/config/index.js +240 -0
  141. package/dist/config/jsonld.config.d.ts +19 -0
  142. package/dist/config/jsonld.config.d.ts.map +1 -0
  143. package/dist/config/jsonld.config.js +33 -0
  144. package/dist/config/log.config.d.ts +20 -0
  145. package/dist/config/log.config.d.ts.map +1 -0
  146. package/dist/config/log.config.js +157 -0
  147. package/dist/config/lognamespace.config.d.ts +13 -0
  148. package/dist/config/lognamespace.config.d.ts.map +1 -0
  149. package/dist/config/lognamespace.config.js +17 -0
  150. package/dist/config/mint.config.d.ts +23 -0
  151. package/dist/config/mint.config.d.ts.map +1 -0
  152. package/dist/config/mint.config.js +20 -0
  153. package/dist/config/models.config.d.ts +37 -0
  154. package/dist/config/models.config.d.ts.map +1 -0
  155. package/dist/config/models.config.js +23 -0
  156. package/dist/config/namedQuery.config.d.ts +26 -0
  157. package/dist/config/namedQuery.config.d.ts.map +1 -0
  158. package/dist/config/namedQuery.config.js +358 -0
  159. package/dist/config/ng2.config.d.ts +11 -0
  160. package/dist/config/ng2.config.d.ts.map +1 -0
  161. package/dist/config/ng2.config.js +12 -0
  162. package/dist/config/orcid.config.d.ts +12 -0
  163. package/dist/config/orcid.config.d.ts.map +1 -0
  164. package/dist/config/orcid.config.js +13 -0
  165. package/dist/config/orm.config.d.ts +12 -0
  166. package/dist/config/orm.config.d.ts.map +1 -0
  167. package/dist/config/orm.config.js +13 -0
  168. package/dist/config/peopleSearch.config.d.ts +14 -0
  169. package/dist/config/peopleSearch.config.d.ts.map +1 -0
  170. package/dist/config/peopleSearch.config.js +15 -0
  171. package/dist/config/policies.config.d.ts +18 -0
  172. package/dist/config/policies.config.d.ts.map +1 -0
  173. package/dist/config/policies.config.js +65 -0
  174. package/dist/config/queue.config.d.ts +12 -0
  175. package/dist/config/queue.config.d.ts.map +1 -0
  176. package/dist/config/queue.config.js +13 -0
  177. package/dist/config/raid.config.d.ts +66 -0
  178. package/dist/config/raid.config.d.ts.map +1 -0
  179. package/dist/config/raid.config.js +272 -0
  180. package/dist/config/record.config.d.ts +74 -0
  181. package/dist/config/record.config.d.ts.map +1 -0
  182. package/dist/config/record.config.js +104 -0
  183. package/dist/config/recordtype.config.d.ts +66 -0
  184. package/dist/config/recordtype.config.d.ts.map +1 -0
  185. package/dist/config/recordtype.config.js +660 -0
  186. package/dist/config/redboxSession.config.d.ts +29 -0
  187. package/dist/config/redboxSession.config.d.ts.map +1 -0
  188. package/dist/config/redboxSession.config.js +14 -0
  189. package/dist/config/redboxToCkan.config.d.ts +17 -0
  190. package/dist/config/redboxToCkan.config.d.ts.map +1 -0
  191. package/dist/config/redboxToCkan.config.js +18 -0
  192. package/dist/config/relatedObjectsFormDefinition.config.d.ts.map +1 -0
  193. package/dist/config/report.config.d.ts +46 -0
  194. package/dist/config/report.config.d.ts.map +1 -0
  195. package/dist/config/report.config.js +54 -0
  196. package/dist/config/reusableContributorFormDefinitions.config.d.ts +3 -0
  197. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -0
  198. package/dist/config/reusableContributorFormDefinitions.config.js +408 -0
  199. package/dist/config/reusableFormDefinitions.config.d.ts +16 -0
  200. package/dist/config/reusableFormDefinitions.config.d.ts.map +1 -0
  201. package/dist/config/reusableFormDefinitions.config.js +41 -0
  202. package/dist/config/reusableRelatedObjectsFormDefinitions.config.d.ts +22 -0
  203. package/dist/config/reusableRelatedObjectsFormDefinitions.config.d.ts.map +1 -0
  204. package/dist/config/reusableRelatedObjectsFormDefinitions.config.js +291 -0
  205. package/dist/config/reusableViewFormDefinitions.config.d.ts +3 -0
  206. package/dist/config/reusableViewFormDefinitions.config.d.ts.map +1 -0
  207. package/dist/config/reusableViewFormDefinitions.config.js +140 -0
  208. package/dist/config/routes.config.d.ts +21 -0
  209. package/dist/config/routes.config.d.ts.map +1 -0
  210. package/dist/config/routes.config.js +389 -0
  211. package/dist/config/search.config.d.ts +9 -0
  212. package/dist/config/search.config.d.ts.map +1 -0
  213. package/dist/config/search.config.js +11 -0
  214. package/dist/config/security.config.d.ts +22 -0
  215. package/dist/config/security.config.d.ts.map +1 -0
  216. package/dist/config/security.config.js +14 -0
  217. package/dist/config/session.config.d.ts +37 -0
  218. package/dist/config/session.config.d.ts.map +1 -0
  219. package/dist/config/session.config.js +11 -0
  220. package/dist/config/sockets.config.d.ts +17 -0
  221. package/dist/config/sockets.config.d.ts.map +1 -0
  222. package/dist/config/sockets.config.js +12 -0
  223. package/dist/config/solr.config.d.ts +73 -0
  224. package/dist/config/solr.config.d.ts.map +1 -0
  225. package/dist/config/solr.config.js +79 -0
  226. package/dist/config/static_assets.config.d.ts +10 -0
  227. package/dist/config/static_assets.config.d.ts.map +1 -0
  228. package/dist/config/static_assets.config.js +12 -0
  229. package/dist/config/storage.config.d.ts +42 -0
  230. package/dist/config/storage.config.d.ts.map +1 -0
  231. package/dist/config/storage.config.js +30 -0
  232. package/dist/config/typescript.config.d.ts +12 -0
  233. package/dist/config/typescript.config.d.ts.map +1 -0
  234. package/dist/config/typescript.config.js +13 -0
  235. package/dist/config/validators.config.d.ts +13 -0
  236. package/dist/config/validators.config.d.ts.map +1 -0
  237. package/dist/config/validators.config.js +15 -0
  238. package/dist/config/views.config.d.ts +20 -0
  239. package/dist/config/views.config.d.ts.map +1 -0
  240. package/dist/config/views.config.js +20 -0
  241. package/dist/config/vocab.config.d.ts +58 -0
  242. package/dist/config/vocab.config.d.ts.map +1 -0
  243. package/dist/config/vocab.config.js +58 -0
  244. package/dist/config/webpack.config.d.ts +16 -0
  245. package/dist/config/webpack.config.d.ts.map +1 -0
  246. package/dist/config/webpack.config.js +153 -0
  247. package/dist/config/workflow.config.d.ts +76 -0
  248. package/dist/config/workflow.config.d.ts.map +1 -0
  249. package/dist/config/workflow.config.js +339 -0
  250. package/dist/config/workspacetype.config.d.ts +23 -0
  251. package/dist/config/workspacetype.config.d.ts.map +1 -0
  252. package/dist/config/workspacetype.config.js +19 -0
  253. package/dist/configmodels/AdminSidebarConfig.d.ts +352 -0
  254. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -0
  255. package/dist/configmodels/AdminSidebarConfig.js +163 -0
  256. package/dist/configmodels/AppConfig.interface.d.ts +4 -0
  257. package/dist/configmodels/AppConfig.interface.d.ts.map +1 -0
  258. package/dist/configmodels/AppConfig.interface.js +10 -0
  259. package/dist/configmodels/AuthorizedDomainsEmails.d.ts +43 -0
  260. package/dist/configmodels/AuthorizedDomainsEmails.d.ts.map +1 -0
  261. package/dist/configmodels/AuthorizedDomainsEmails.js +49 -0
  262. package/dist/configmodels/ConfigModels.d.ts +22 -0
  263. package/dist/configmodels/ConfigModels.d.ts.map +1 -0
  264. package/dist/configmodels/ConfigModels.js +98 -0
  265. package/dist/configmodels/DoiPublishing.d.ts.map +1 -0
  266. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -0
  267. package/dist/configmodels/HomePanelConfig.d.ts +244 -0
  268. package/dist/configmodels/HomePanelConfig.d.ts.map +1 -0
  269. package/dist/configmodels/HomePanelConfig.js +132 -0
  270. package/dist/configmodels/MenuConfig.d.ts +203 -0
  271. package/dist/configmodels/MenuConfig.d.ts.map +1 -0
  272. package/dist/configmodels/MenuConfig.js +158 -0
  273. package/dist/configmodels/SystemMessage.d.ts +24 -0
  274. package/dist/configmodels/SystemMessage.d.ts.map +1 -0
  275. package/dist/configmodels/SystemMessage.js +30 -0
  276. package/dist/controllers/ActionController.d.ts +21 -0
  277. package/dist/controllers/ActionController.d.ts.map +1 -0
  278. package/dist/controllers/ActionController.js +41 -0
  279. package/dist/controllers/AdminController.d.ts +45 -0
  280. package/dist/controllers/AdminController.d.ts.map +1 -0
  281. package/dist/controllers/AdminController.js +498 -0
  282. package/dist/controllers/AppConfigController.d.ts +25 -0
  283. package/dist/controllers/AppConfigController.d.ts.map +1 -0
  284. package/dist/controllers/AppConfigController.js +90 -0
  285. package/dist/controllers/AsynchController.d.ts +30 -0
  286. package/dist/controllers/AsynchController.d.ts.map +1 -0
  287. package/dist/controllers/AsynchController.js +146 -0
  288. package/dist/controllers/BrandingAppController.d.ts +21 -0
  289. package/dist/controllers/BrandingAppController.d.ts.map +1 -0
  290. package/dist/controllers/BrandingAppController.js +144 -0
  291. package/dist/controllers/BrandingController.d.ts +64 -0
  292. package/dist/controllers/BrandingController.d.ts.map +1 -0
  293. package/dist/controllers/BrandingController.js +256 -0
  294. package/dist/controllers/DynamicAssetController.d.ts +67 -0
  295. package/dist/controllers/DynamicAssetController.d.ts.map +1 -0
  296. package/dist/controllers/DynamicAssetController.js +225 -0
  297. package/dist/controllers/EmailController.d.ts +35 -0
  298. package/dist/controllers/EmailController.d.ts.map +1 -0
  299. package/dist/controllers/EmailController.js +138 -0
  300. package/dist/controllers/ExportController.d.ts +22 -0
  301. package/dist/controllers/ExportController.d.ts.map +1 -0
  302. package/dist/controllers/ExportController.js +73 -0
  303. package/dist/controllers/FormVocabularyController.d.ts +12 -0
  304. package/dist/controllers/FormVocabularyController.d.ts.map +1 -0
  305. package/dist/controllers/FormVocabularyController.js +218 -0
  306. package/dist/controllers/RecordAuditController.d.ts +25 -0
  307. package/dist/controllers/RecordAuditController.d.ts.map +1 -0
  308. package/dist/controllers/RecordAuditController.js +74 -0
  309. package/dist/controllers/RecordController.d.ts +114 -0
  310. package/dist/controllers/RecordController.d.ts.map +1 -0
  311. package/dist/controllers/RecordController.js +1614 -0
  312. package/dist/controllers/RenderViewController.d.ts +14 -0
  313. package/dist/controllers/RenderViewController.d.ts.map +1 -0
  314. package/dist/controllers/RenderViewController.js +30 -0
  315. package/dist/controllers/ReportController.d.ts +25 -0
  316. package/dist/controllers/ReportController.d.ts.map +1 -0
  317. package/dist/controllers/ReportController.js +80 -0
  318. package/dist/controllers/ReportsController.d.ts +22 -0
  319. package/dist/controllers/ReportsController.d.ts.map +1 -0
  320. package/dist/controllers/ReportsController.js +37 -0
  321. package/dist/controllers/TranslationController.d.ts +27 -0
  322. package/dist/controllers/TranslationController.d.ts.map +1 -0
  323. package/dist/controllers/TranslationController.js +245 -0
  324. package/dist/controllers/UserController.d.ts +50 -0
  325. package/dist/controllers/UserController.d.ts.map +1 -0
  326. package/dist/controllers/UserController.js +518 -0
  327. package/dist/controllers/VocabController.d.ts +43 -0
  328. package/dist/controllers/VocabController.d.ts.map +1 -0
  329. package/dist/controllers/VocabController.js +190 -0
  330. package/dist/controllers/VocabularyController.d.ts +23 -0
  331. package/dist/controllers/VocabularyController.d.ts.map +1 -0
  332. package/dist/controllers/VocabularyController.js +344 -0
  333. package/dist/controllers/WorkspaceAsyncController.d.ts +18 -0
  334. package/dist/controllers/WorkspaceAsyncController.d.ts.map +1 -0
  335. package/dist/controllers/WorkspaceAsyncController.js +63 -0
  336. package/dist/controllers/WorkspaceTypesController.d.ts +19 -0
  337. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -0
  338. package/dist/controllers/WorkspaceTypesController.js +96 -0
  339. package/dist/controllers/index.d.ts +8 -0
  340. package/dist/controllers/index.d.ts.map +1 -0
  341. package/dist/controllers/index.js +159 -0
  342. package/dist/controllers/webservice/AdminController.d.ts +20 -0
  343. package/dist/controllers/webservice/AdminController.d.ts.map +1 -0
  344. package/dist/controllers/webservice/AdminController.js +83 -0
  345. package/dist/controllers/webservice/AppConfigController.d.ts +25 -0
  346. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -0
  347. package/dist/controllers/webservice/AppConfigController.js +72 -0
  348. package/dist/controllers/webservice/BrandingController.d.ts +13 -0
  349. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -0
  350. package/dist/controllers/webservice/BrandingController.js +147 -0
  351. package/dist/controllers/webservice/ExportController.d.ts +22 -0
  352. package/dist/controllers/webservice/ExportController.d.ts.map +1 -0
  353. package/dist/controllers/webservice/ExportController.js +67 -0
  354. package/dist/controllers/webservice/FormManagementController.d.ts +24 -0
  355. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -0
  356. package/dist/controllers/webservice/FormManagementController.js +79 -0
  357. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -0
  358. package/dist/controllers/webservice/RecordController.d.ts +65 -0
  359. package/dist/controllers/webservice/RecordController.d.ts.map +1 -0
  360. package/dist/controllers/webservice/RecordController.js +1348 -0
  361. package/dist/controllers/webservice/RecordTypeController.d.ts +24 -0
  362. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -0
  363. package/dist/controllers/webservice/RecordTypeController.js +70 -0
  364. package/dist/controllers/webservice/ReportController.d.ts +22 -0
  365. package/dist/controllers/webservice/ReportController.d.ts.map +1 -0
  366. package/dist/controllers/webservice/ReportController.js +74 -0
  367. package/dist/controllers/webservice/SearchController.d.ts +28 -0
  368. package/dist/controllers/webservice/SearchController.d.ts.map +1 -0
  369. package/dist/controllers/webservice/SearchController.js +123 -0
  370. package/dist/controllers/webservice/TranslationController.d.ts +18 -0
  371. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -0
  372. package/dist/controllers/webservice/TranslationController.js +226 -0
  373. package/dist/controllers/webservice/UserManagementController.d.ts +38 -0
  374. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -0
  375. package/dist/controllers/webservice/UserManagementController.js +608 -0
  376. package/dist/controllers/webservice/VocabularyController.d.ts +18 -0
  377. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -0
  378. package/dist/controllers/webservice/VocabularyController.js +172 -0
  379. package/dist/decorator/PopulateExportedMethods.decorator.d.ts +4 -0
  380. package/dist/decorator/PopulateExportedMethods.decorator.d.ts.map +1 -0
  381. package/dist/decorator/PopulateExportedMethods.decorator.js +22 -0
  382. package/dist/decorator/index.d.ts +2 -0
  383. package/dist/decorator/index.d.ts.map +1 -0
  384. package/dist/decorator/index.js +6 -0
  385. package/dist/decorators/Associations.d.ts +4 -0
  386. package/dist/decorators/Associations.d.ts.map +1 -0
  387. package/dist/decorators/Associations.js +12 -0
  388. package/dist/decorators/Attr.d.ts +4 -0
  389. package/dist/decorators/Attr.d.ts.map +1 -0
  390. package/dist/decorators/Attr.js +34 -0
  391. package/dist/decorators/Entity.d.ts +3 -0
  392. package/dist/decorators/Entity.d.ts.map +1 -0
  393. package/dist/decorators/Entity.js +29 -0
  394. package/dist/decorators/Lifecycle.d.ts +10 -0
  395. package/dist/decorators/Lifecycle.d.ts.map +1 -0
  396. package/dist/decorators/Lifecycle.js +26 -0
  397. package/dist/decorators/index.d.ts +8 -0
  398. package/dist/decorators/index.d.ts.map +1 -0
  399. package/dist/decorators/index.js +35 -0
  400. package/dist/decorators/registry.d.ts +8 -0
  401. package/dist/decorators/registry.d.ts.map +1 -0
  402. package/dist/decorators/registry.js +68 -0
  403. package/dist/decorators/types.d.ts +81 -0
  404. package/dist/decorators/types.d.ts.map +1 -0
  405. package/dist/decorators/types.js +4 -0
  406. package/dist/decorators/utils.d.ts +5 -0
  407. package/dist/decorators/utils.d.ts.map +1 -0
  408. package/dist/decorators/utils.js +68 -0
  409. package/dist/form-config/dataPublication-1.0-draft.d.ts.map +1 -0
  410. package/dist/form-config/dataPublication-1.0-embargoed.d.ts.map +1 -0
  411. package/dist/form-config/dataPublication-1.0-published.d.ts.map +1 -0
  412. package/dist/form-config/dataPublication-1.0-queued.d.ts.map +1 -0
  413. package/dist/form-config/dataPublication-1.0-retired.d.ts.map +1 -0
  414. package/dist/form-config/dataRecord-1.0-draft.d.ts +4 -0
  415. package/dist/form-config/dataRecord-1.0-draft.d.ts.map +1 -0
  416. package/dist/form-config/dataRecord-1.0-draft.js +1042 -0
  417. package/dist/form-config/default-1.0-draft.d.ts +4 -0
  418. package/dist/form-config/default-1.0-draft.d.ts.map +1 -0
  419. package/dist/form-config/default-1.0-draft.js +1132 -0
  420. package/dist/form-config/generated-view-only.d.ts +12 -0
  421. package/dist/form-config/generated-view-only.d.ts.map +1 -0
  422. package/dist/form-config/generated-view-only.js +169 -0
  423. package/dist/form-config/index.d.ts +3 -0
  424. package/dist/form-config/index.d.ts.map +1 -0
  425. package/dist/form-config/index.js +15 -0
  426. package/dist/hooks/defineRedboxHook.d.ts +31 -0
  427. package/dist/hooks/defineRedboxHook.d.ts.map +1 -0
  428. package/dist/hooks/defineRedboxHook.js +47 -0
  429. package/dist/hooks/index.d.ts +9 -0
  430. package/dist/hooks/index.d.ts.map +1 -0
  431. package/dist/hooks/index.js +13 -0
  432. package/dist/hooks/webpack.d.ts +27 -0
  433. package/dist/hooks/webpack.d.ts.map +1 -0
  434. package/dist/hooks/webpack.js +82 -0
  435. package/dist/index.d.ts +58 -0
  436. package/dist/index.d.ts.map +1 -0
  437. package/dist/index.js +116 -0
  438. package/dist/loader/bootstrapShimRuntime.d.ts +8 -0
  439. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -0
  440. package/dist/loader/bootstrapShimRuntime.js +83 -0
  441. package/dist/loader/index.d.ts +93 -0
  442. package/dist/loader/index.d.ts.map +1 -0
  443. package/dist/loader/index.js +767 -0
  444. package/dist/middleware/redboxSession.d.ts +6 -0
  445. package/dist/middleware/redboxSession.d.ts.map +1 -0
  446. package/dist/middleware/redboxSession.js +60 -0
  447. package/dist/model/APIActionResponse.d.ts +6 -0
  448. package/dist/model/APIActionResponse.d.ts.map +1 -0
  449. package/dist/model/APIActionResponse.js +13 -0
  450. package/dist/model/APIErrorResponse.d.ts +6 -0
  451. package/dist/model/APIErrorResponse.d.ts.map +1 -0
  452. package/dist/model/APIErrorResponse.js +13 -0
  453. package/dist/model/APIHarvestResponse.d.ts +9 -0
  454. package/dist/model/APIHarvestResponse.d.ts.map +1 -0
  455. package/dist/model/APIHarvestResponse.js +19 -0
  456. package/dist/model/APIObjectActionResponse.d.ts +7 -0
  457. package/dist/model/APIObjectActionResponse.d.ts.map +1 -0
  458. package/dist/model/APIObjectActionResponse.js +15 -0
  459. package/dist/model/BuildResponse.d.ts +47 -0
  460. package/dist/model/BuildResponse.d.ts.map +1 -0
  461. package/dist/model/BuildResponse.js +5 -0
  462. package/dist/model/DashboardTypeResponseModel.d.ts +6 -0
  463. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -0
  464. package/dist/model/DashboardTypeResponseModel.js +13 -0
  465. package/dist/model/ListAPIResponse.d.ts +7 -0
  466. package/dist/model/ListAPIResponse.d.ts.map +1 -0
  467. package/dist/model/ListAPIResponse.js +12 -0
  468. package/dist/model/ListAPISummary.d.ts +7 -0
  469. package/dist/model/ListAPISummary.d.ts.map +1 -0
  470. package/dist/model/ListAPISummary.js +12 -0
  471. package/dist/model/RBValidationError.d.ts +62 -0
  472. package/dist/model/RBValidationError.d.ts.map +1 -0
  473. package/dist/model/RBValidationError.js +98 -0
  474. package/dist/model/RecordTypeResponseModel.d.ts +10 -0
  475. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -0
  476. package/dist/model/RecordTypeResponseModel.js +19 -0
  477. package/dist/model/RequestDetails.d.ts +27 -0
  478. package/dist/model/RequestDetails.d.ts.map +1 -0
  479. package/dist/model/RequestDetails.js +53 -0
  480. package/dist/model/SolrDocument.d.ts +17 -0
  481. package/dist/model/SolrDocument.d.ts.map +1 -0
  482. package/dist/model/SolrDocument.js +30 -0
  483. package/dist/model/api/APIResponseVersion2.d.ts +107 -0
  484. package/dist/model/api/APIResponseVersion2.d.ts.map +1 -0
  485. package/dist/model/api/APIResponseVersion2.js +3 -0
  486. package/dist/model/api/APIVersions.d.ts +9 -0
  487. package/dist/model/api/APIVersions.d.ts.map +1 -0
  488. package/dist/model/api/APIVersions.js +11 -0
  489. package/dist/model/api/CreateUserAPIResponse.d.ts +9 -0
  490. package/dist/model/api/CreateUserAPIResponse.d.ts.map +1 -0
  491. package/dist/model/api/CreateUserAPIResponse.js +13 -0
  492. package/dist/model/api/FigshareArticleCreate.d.ts +11 -0
  493. package/dist/model/api/FigshareArticleCreate.d.ts.map +1 -0
  494. package/dist/model/api/FigshareArticleCreate.js +16 -0
  495. package/dist/model/api/FigshareArticleEmbargo.d.ts +11 -0
  496. package/dist/model/api/FigshareArticleEmbargo.d.ts.map +1 -0
  497. package/dist/model/api/FigshareArticleEmbargo.js +23 -0
  498. package/dist/model/api/FigshareArticleUpdate.d.ts +13 -0
  499. package/dist/model/api/FigshareArticleUpdate.d.ts.map +1 -0
  500. package/dist/model/api/FigshareArticleUpdate.js +20 -0
  501. package/dist/model/api/UserAPITokenAPIResponse.d.ts +6 -0
  502. package/dist/model/api/UserAPITokenAPIResponse.d.ts.map +1 -0
  503. package/dist/model/api/UserAPITokenAPIResponse.js +10 -0
  504. package/dist/model/api/index.d.ts +8 -0
  505. package/dist/model/api/index.d.ts.map +1 -0
  506. package/dist/model/api/index.js +16 -0
  507. package/dist/model/config/ReportConfig.d.ts +50 -0
  508. package/dist/model/config/ReportConfig.d.ts.map +1 -0
  509. package/dist/model/config/ReportConfig.js +58 -0
  510. package/dist/model/config/SolrConfig.d.ts +72 -0
  511. package/dist/model/config/SolrConfig.d.ts.map +1 -0
  512. package/dist/model/config/SolrConfig.js +41 -0
  513. package/dist/model/config/VocabQueryConfig.d.ts +30 -0
  514. package/dist/model/config/VocabQueryConfig.d.ts.map +1 -0
  515. package/dist/model/config/VocabQueryConfig.js +32 -0
  516. package/dist/model/config/index.d.ts +4 -0
  517. package/dist/model/config/index.d.ts.map +1 -0
  518. package/dist/model/config/index.js +20 -0
  519. package/dist/model/index.d.ts +16 -0
  520. package/dist/model/index.d.ts.map +1 -0
  521. package/dist/model/index.js +45 -0
  522. package/dist/model/storage/AppConfigModel.d.ts +9 -0
  523. package/dist/model/storage/AppConfigModel.d.ts.map +1 -0
  524. package/dist/model/storage/AppConfigModel.js +3 -0
  525. package/dist/model/storage/AsynchProgressModel.d.ts +18 -0
  526. package/dist/model/storage/AsynchProgressModel.d.ts.map +1 -0
  527. package/dist/model/storage/AsynchProgressModel.js +3 -0
  528. package/dist/model/storage/BrandingModel.d.ts +24 -0
  529. package/dist/model/storage/BrandingModel.d.ts.map +1 -0
  530. package/dist/model/storage/BrandingModel.js +60 -0
  531. package/dist/model/storage/CacheEntryModel.d.ts +6 -0
  532. package/dist/model/storage/CacheEntryModel.d.ts.map +1 -0
  533. package/dist/model/storage/CacheEntryModel.js +3 -0
  534. package/dist/model/storage/CounterModel.d.ts +7 -0
  535. package/dist/model/storage/CounterModel.d.ts.map +1 -0
  536. package/dist/model/storage/CounterModel.js +3 -0
  537. package/dist/model/storage/DashboardTypeModel.d.ts +9 -0
  538. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -0
  539. package/dist/model/storage/DashboardTypeModel.js +3 -0
  540. package/dist/model/storage/DeletedRecordModel.d.ts +7 -0
  541. package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -0
  542. package/dist/model/storage/DeletedRecordModel.js +3 -0
  543. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -0
  544. package/dist/model/storage/NamedQueryModel.d.ts +13 -0
  545. package/dist/model/storage/NamedQueryModel.d.ts.map +1 -0
  546. package/dist/model/storage/NamedQueryModel.js +17 -0
  547. package/dist/model/storage/RecordAuditModel.d.ts +15 -0
  548. package/dist/model/storage/RecordAuditModel.d.ts.map +1 -0
  549. package/dist/model/storage/RecordAuditModel.js +28 -0
  550. package/dist/model/storage/RecordModel.d.ts +42 -0
  551. package/dist/model/storage/RecordModel.d.ts.map +1 -0
  552. package/dist/model/storage/RecordModel.js +3 -0
  553. package/dist/model/storage/RecordTypeModel.d.ts +36 -0
  554. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -0
  555. package/dist/model/storage/RecordTypeModel.js +43 -0
  556. package/dist/model/storage/ReportModel.d.ts +5 -0
  557. package/dist/model/storage/ReportModel.d.ts.map +1 -0
  558. package/dist/model/storage/ReportModel.js +3 -0
  559. package/dist/model/storage/RoleModel.d.ts +9 -0
  560. package/dist/model/storage/RoleModel.d.ts.map +1 -0
  561. package/dist/model/storage/RoleModel.js +12 -0
  562. package/dist/model/storage/UserAuditModel.d.ts +9 -0
  563. package/dist/model/storage/UserAuditModel.d.ts.map +1 -0
  564. package/dist/model/storage/UserAuditModel.js +3 -0
  565. package/dist/model/storage/UserLinkModel.d.ts +14 -0
  566. package/dist/model/storage/UserLinkModel.d.ts.map +1 -0
  567. package/dist/model/storage/UserLinkModel.js +18 -0
  568. package/dist/model/storage/UserModel.d.ts +25 -0
  569. package/dist/model/storage/UserModel.d.ts.map +1 -0
  570. package/dist/model/storage/UserModel.js +26 -0
  571. package/dist/model/storage/WorkflowStepModel.d.ts +11 -0
  572. package/dist/model/storage/WorkflowStepModel.d.ts.map +1 -0
  573. package/dist/model/storage/WorkflowStepModel.js +3 -0
  574. package/dist/model/storage/WorkspaceAppModel.d.ts +8 -0
  575. package/dist/model/storage/WorkspaceAppModel.d.ts.map +1 -0
  576. package/dist/model/storage/WorkspaceAppModel.js +3 -0
  577. package/dist/model/storage/index.d.ts +18 -0
  578. package/dist/model/storage/index.d.ts.map +1 -0
  579. package/dist/model/storage/index.js +19 -0
  580. package/dist/policies/brandingAndPortal.d.ts +9 -0
  581. package/dist/policies/brandingAndPortal.d.ts.map +1 -0
  582. package/dist/policies/brandingAndPortal.js +34 -0
  583. package/dist/policies/checkAuth.d.ts +9 -0
  584. package/dist/policies/checkAuth.d.ts.map +1 -0
  585. package/dist/policies/checkAuth.js +64 -0
  586. package/dist/policies/checkBrandingValid.d.ts +9 -0
  587. package/dist/policies/checkBrandingValid.d.ts.map +1 -0
  588. package/dist/policies/checkBrandingValid.js +40 -0
  589. package/dist/policies/companionAttachmentUploadAuth.d.ts +9 -0
  590. package/dist/policies/companionAttachmentUploadAuth.d.ts.map +1 -0
  591. package/dist/policies/companionAttachmentUploadAuth.js +221 -0
  592. package/dist/policies/contentSecurityPolicy.d.ts +23 -0
  593. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -0
  594. package/dist/policies/contentSecurityPolicy.js +135 -0
  595. package/dist/policies/disallowedHeadRequestHandler.d.ts +8 -0
  596. package/dist/policies/disallowedHeadRequestHandler.d.ts.map +1 -0
  597. package/dist/policies/disallowedHeadRequestHandler.js +17 -0
  598. package/dist/policies/i18nLanguages.d.ts +8 -0
  599. package/dist/policies/i18nLanguages.d.ts.map +1 -0
  600. package/dist/policies/i18nLanguages.js +56 -0
  601. package/dist/policies/index.d.ts +52 -0
  602. package/dist/policies/index.d.ts.map +1 -0
  603. package/dist/policies/index.js +70 -0
  604. package/dist/policies/isAuthenticated.d.ts +9 -0
  605. package/dist/policies/isAuthenticated.d.ts.map +1 -0
  606. package/dist/policies/isAuthenticated.js +19 -0
  607. package/dist/policies/isWebServiceAuthenticated.d.ts +9 -0
  608. package/dist/policies/isWebServiceAuthenticated.d.ts.map +1 -0
  609. package/dist/policies/isWebServiceAuthenticated.js +25 -0
  610. package/dist/policies/menuResolver.d.ts +11 -0
  611. package/dist/policies/menuResolver.d.ts.map +1 -0
  612. package/dist/policies/menuResolver.js +58 -0
  613. package/dist/policies/noCache.d.ts +9 -0
  614. package/dist/policies/noCache.d.ts.map +1 -0
  615. package/dist/policies/noCache.js +34 -0
  616. package/dist/policies/prepWs.d.ts +9 -0
  617. package/dist/policies/prepWs.d.ts.map +1 -0
  618. package/dist/policies/prepWs.js +23 -0
  619. package/dist/policies/sessionAuth.d.ts +11 -0
  620. package/dist/policies/sessionAuth.d.ts.map +1 -0
  621. package/dist/policies/sessionAuth.js +23 -0
  622. package/dist/policies/setLang.d.ts +8 -0
  623. package/dist/policies/setLang.d.ts.map +1 -0
  624. package/dist/policies/setLang.js +13 -0
  625. package/dist/responses/badRequest.d.ts +22 -0
  626. package/dist/responses/badRequest.d.ts.map +1 -0
  627. package/dist/responses/badRequest.js +66 -0
  628. package/dist/responses/created.d.ts +22 -0
  629. package/dist/responses/created.d.ts.map +1 -0
  630. package/dist/responses/created.js +55 -0
  631. package/dist/responses/forbidden.d.ts +22 -0
  632. package/dist/responses/forbidden.d.ts.map +1 -0
  633. package/dist/responses/forbidden.js +66 -0
  634. package/dist/responses/index.d.ts +6 -0
  635. package/dist/responses/index.d.ts.map +1 -0
  636. package/dist/responses/index.js +22 -0
  637. package/dist/responses/ok.d.ts +26 -0
  638. package/dist/responses/ok.d.ts.map +1 -0
  639. package/dist/responses/ok.js +59 -0
  640. package/dist/responses/serverError.d.ts +22 -0
  641. package/dist/responses/serverError.d.ts.map +1 -0
  642. package/dist/responses/serverError.js +66 -0
  643. package/dist/sails.d.ts +238 -0
  644. package/dist/sails.d.ts.map +1 -0
  645. package/dist/sails.js +3 -0
  646. package/dist/services/AgendaQueueService.d.ts +58 -0
  647. package/dist/services/AgendaQueueService.d.ts.map +1 -0
  648. package/dist/services/AgendaQueueService.js +225 -0
  649. package/dist/services/AppConfigService.d.ts +59 -0
  650. package/dist/services/AppConfigService.d.ts.map +1 -0
  651. package/dist/services/AppConfigService.js +273 -0
  652. package/dist/services/AsynchsService.d.ts +20 -0
  653. package/dist/services/AsynchsService.d.ts.map +1 -0
  654. package/dist/services/AsynchsService.js +64 -0
  655. package/dist/services/BrandingLogoService.d.ts +47 -0
  656. package/dist/services/BrandingLogoService.d.ts.map +1 -0
  657. package/dist/services/BrandingLogoService.js +212 -0
  658. package/dist/services/BrandingService.d.ts +70 -0
  659. package/dist/services/BrandingService.d.ts.map +1 -0
  660. package/dist/services/BrandingService.js +332 -0
  661. package/dist/services/CacheService.d.ts +25 -0
  662. package/dist/services/CacheService.d.ts.map +1 -0
  663. package/dist/services/CacheService.js +153 -0
  664. package/dist/services/ConfigService.d.ts +23 -0
  665. package/dist/services/ConfigService.d.ts.map +1 -0
  666. package/dist/services/ConfigService.js +379 -0
  667. package/dist/services/ContrastService.d.ts +77 -0
  668. package/dist/services/ContrastService.d.ts.map +1 -0
  669. package/dist/services/ContrastService.js +218 -0
  670. package/dist/services/DashboardTypesService.d.ts +98 -0
  671. package/dist/services/DashboardTypesService.d.ts.map +1 -0
  672. package/dist/services/DashboardTypesService.js +291 -0
  673. package/dist/services/DoiService.d.ts +36 -0
  674. package/dist/services/DoiService.d.ts.map +1 -0
  675. package/dist/services/DoiService.js +494 -0
  676. package/dist/services/DomSanitizerService.d.ts +105 -0
  677. package/dist/services/DomSanitizerService.d.ts.map +1 -0
  678. package/dist/services/DomSanitizerService.js +506 -0
  679. package/dist/services/EmailService.d.ts +185 -0
  680. package/dist/services/EmailService.d.ts.map +1 -0
  681. package/dist/services/EmailService.js +527 -0
  682. package/dist/services/FigshareService.d.ts +75 -0
  683. package/dist/services/FigshareService.d.ts.map +1 -0
  684. package/dist/services/FigshareService.js +2193 -0
  685. package/dist/services/FormRecordConsistencyService.d.ts +156 -0
  686. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -0
  687. package/dist/services/FormRecordConsistencyService.js +516 -0
  688. package/dist/services/FormsService.d.ts +65 -0
  689. package/dist/services/FormsService.d.ts.map +1 -0
  690. package/dist/services/FormsService.js +580 -0
  691. package/dist/services/I18nEntriesService.d.ts +80 -0
  692. package/dist/services/I18nEntriesService.d.ts.map +1 -0
  693. package/dist/services/I18nEntriesService.js +469 -0
  694. package/dist/services/IntegrationAuditService.d.ts.map +1 -0
  695. package/dist/services/NamedQueryService.d.ts +87 -0
  696. package/dist/services/NamedQueryService.d.ts.map +1 -0
  697. package/dist/services/NamedQueryService.js +396 -0
  698. package/dist/services/NavigationService.d.ts +115 -0
  699. package/dist/services/NavigationService.d.ts.map +1 -0
  700. package/dist/services/NavigationService.js +553 -0
  701. package/dist/services/OniService.d.ts +77 -0
  702. package/dist/services/OniService.d.ts.map +1 -0
  703. package/dist/services/OniService.js +753 -0
  704. package/dist/services/OrcidService.d.ts +30 -0
  705. package/dist/services/OrcidService.d.ts.map +1 -0
  706. package/dist/services/OrcidService.js +126 -0
  707. package/dist/services/PathRulesService.d.ts +57 -0
  708. package/dist/services/PathRulesService.d.ts.map +1 -0
  709. package/dist/services/PathRulesService.js +129 -0
  710. package/dist/services/RDMPService.d.ts +102 -0
  711. package/dist/services/RDMPService.d.ts.map +1 -0
  712. package/dist/services/RDMPService.js +767 -0
  713. package/dist/services/RaidService.d.ts +83 -0
  714. package/dist/services/RaidService.d.ts.map +1 -0
  715. package/dist/services/RaidService.js +556 -0
  716. package/dist/services/RecordTypesService.d.ts +27 -0
  717. package/dist/services/RecordTypesService.d.ts.map +1 -0
  718. package/dist/services/RecordTypesService.js +106 -0
  719. package/dist/services/RecordsService.d.ts +129 -0
  720. package/dist/services/RecordsService.d.ts.map +1 -0
  721. package/dist/services/RecordsService.js +1477 -0
  722. package/dist/services/ReportsService.d.ts +99 -0
  723. package/dist/services/ReportsService.d.ts.map +1 -0
  724. package/dist/services/ReportsService.js +475 -0
  725. package/dist/services/RolesService.d.ts +41 -0
  726. package/dist/services/RolesService.d.ts.map +1 -0
  727. package/dist/services/RolesService.js +171 -0
  728. package/dist/services/RvaImportService.d.ts +56 -0
  729. package/dist/services/RvaImportService.d.ts.map +1 -0
  730. package/dist/services/RvaImportService.js +410 -0
  731. package/dist/services/SassCompilerService.d.ts +26 -0
  732. package/dist/services/SassCompilerService.d.ts.map +1 -0
  733. package/dist/services/SassCompilerService.js +201 -0
  734. package/dist/services/SolrSearchService.d.ts +52 -0
  735. package/dist/services/SolrSearchService.d.ts.map +1 -0
  736. package/dist/services/SolrSearchService.js +463 -0
  737. package/dist/services/StandardDatastreamService.d.ts +66 -0
  738. package/dist/services/StandardDatastreamService.d.ts.map +1 -0
  739. package/dist/services/StandardDatastreamService.js +297 -0
  740. package/dist/services/StorageManagerService.d.ts +90 -0
  741. package/dist/services/StorageManagerService.d.ts.map +1 -0
  742. package/dist/services/StorageManagerService.js +234 -0
  743. package/dist/services/TemplateService.d.ts +65 -0
  744. package/dist/services/TemplateService.d.ts.map +1 -0
  745. package/dist/services/TemplateService.js +208 -0
  746. package/dist/services/TranslationService.d.ts +38 -0
  747. package/dist/services/TranslationService.d.ts.map +1 -0
  748. package/dist/services/TranslationService.js +358 -0
  749. package/dist/services/TriggerService.d.ts +72 -0
  750. package/dist/services/TriggerService.d.ts.map +1 -0
  751. package/dist/services/TriggerService.js +554 -0
  752. package/dist/services/UsersService.d.ts +174 -0
  753. package/dist/services/UsersService.d.ts.map +1 -0
  754. package/dist/services/UsersService.js +2108 -0
  755. package/dist/services/ViewUtilsService.d.ts +36 -0
  756. package/dist/services/ViewUtilsService.d.ts.map +1 -0
  757. package/dist/services/ViewUtilsService.js +120 -0
  758. package/dist/services/VocabService.d.ts +81 -0
  759. package/dist/services/VocabService.d.ts.map +1 -0
  760. package/dist/services/VocabService.js +424 -0
  761. package/dist/services/VocabularyService.d.ts +115 -0
  762. package/dist/services/VocabularyService.d.ts.map +1 -0
  763. package/dist/services/VocabularyService.js +752 -0
  764. package/dist/services/WorkflowStepsService.d.ts +29 -0
  765. package/dist/services/WorkflowStepsService.d.ts.map +1 -0
  766. package/dist/services/WorkflowStepsService.js +110 -0
  767. package/dist/services/WorkspaceAsyncService.d.ts +34 -0
  768. package/dist/services/WorkspaceAsyncService.d.ts.map +1 -0
  769. package/dist/services/WorkspaceAsyncService.js +68 -0
  770. package/dist/services/WorkspaceService.d.ts +67 -0
  771. package/dist/services/WorkspaceService.d.ts.map +1 -0
  772. package/dist/services/WorkspaceService.js +148 -0
  773. package/dist/services/WorkspaceTypesService.d.ts +33 -0
  774. package/dist/services/WorkspaceTypesService.d.ts.map +1 -0
  775. package/dist/services/WorkspaceTypesService.js +89 -0
  776. package/dist/services/doi-v2/audit.d.ts.map +1 -0
  777. package/dist/services/doi-v2/bindings.d.ts.map +1 -0
  778. package/dist/services/doi-v2/config.d.ts.map +1 -0
  779. package/dist/services/doi-v2/context.d.ts.map +1 -0
  780. package/dist/services/doi-v2/http.d.ts.map +1 -0
  781. package/dist/services/doi-v2/payload.d.ts.map +1 -0
  782. package/dist/services/doi-v2/profiles.d.ts.map +1 -0
  783. package/dist/services/doi-v2/runtime.d.ts.map +1 -0
  784. package/dist/services/doi-v2/types.d.ts.map +1 -0
  785. package/dist/services/figshare-v2/assets.d.ts.map +1 -0
  786. package/dist/services/figshare-v2/bindings.d.ts.map +1 -0
  787. package/dist/services/figshare-v2/config.d.ts.map +1 -0
  788. package/dist/services/figshare-v2/context.d.ts.map +1 -0
  789. package/dist/services/figshare-v2/embargo.d.ts.map +1 -0
  790. package/dist/services/figshare-v2/http.d.ts.map +1 -0
  791. package/dist/services/figshare-v2/metadata.d.ts.map +1 -0
  792. package/dist/services/figshare-v2/observability.d.ts.map +1 -0
  793. package/dist/services/figshare-v2/plan.d.ts.map +1 -0
  794. package/dist/services/figshare-v2/publish.d.ts.map +1 -0
  795. package/dist/services/figshare-v2/queue.d.ts.map +1 -0
  796. package/dist/services/figshare-v2/runtime.d.ts.map +1 -0
  797. package/dist/services/figshare-v2/types.d.ts.map +1 -0
  798. package/dist/services/figshare-v2/workflow.d.ts.map +1 -0
  799. package/dist/services/figshare-v2/writeback.d.ts.map +1 -0
  800. package/dist/services/index.d.ts +136 -0
  801. package/dist/services/index.d.ts.map +1 -0
  802. package/dist/services/index.js +276 -0
  803. package/dist/shims/index.d.ts +9 -0
  804. package/dist/shims/index.d.ts.map +1 -0
  805. package/dist/shims/index.js +15 -0
  806. package/dist/shims/momentShim.d.ts +7 -0
  807. package/dist/shims/momentShim.d.ts.map +1 -0
  808. package/dist/shims/momentShim.js +69 -0
  809. package/dist/transformers/ExportJSONTransformer.d.ts +16 -0
  810. package/dist/transformers/ExportJSONTransformer.d.ts.map +1 -0
  811. package/dist/transformers/ExportJSONTransformer.js +90 -0
  812. package/dist/utilities/ContextVariableUtils.d.ts +8 -0
  813. package/dist/utilities/ContextVariableUtils.d.ts.map +1 -0
  814. package/dist/utilities/ContextVariableUtils.js +91 -0
  815. package/dist/utilities/TransactionUtils.d.ts +7 -0
  816. package/dist/utilities/TransactionUtils.d.ts.map +1 -0
  817. package/dist/utilities/TransactionUtils.js +25 -0
  818. package/dist/visitor/attachment-fields.visitor.d.ts +37 -0
  819. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -0
  820. package/dist/visitor/attachment-fields.visitor.js +93 -0
  821. package/dist/visitor/client.visitor.d.ts +211 -0
  822. package/dist/visitor/client.visitor.d.ts.map +1 -0
  823. package/dist/visitor/client.visitor.js +865 -0
  824. package/dist/visitor/construct.visitor.d.ts +219 -0
  825. package/dist/visitor/construct.visitor.d.ts.map +1 -0
  826. package/dist/visitor/construct.visitor.js +1499 -0
  827. package/dist/visitor/context-variables.visitor.d.ts +51 -0
  828. package/dist/visitor/context-variables.visitor.d.ts.map +1 -0
  829. package/dist/visitor/context-variables.visitor.js +192 -0
  830. package/dist/visitor/data-value.visitor.d.ts +159 -0
  831. package/dist/visitor/data-value.visitor.d.ts.map +1 -0
  832. package/dist/visitor/data-value.visitor.js +310 -0
  833. package/dist/visitor/json-type-def.visitor.d.ts +155 -0
  834. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -0
  835. package/dist/visitor/json-type-def.visitor.js +384 -0
  836. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +244 -0
  837. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -0
  838. package/dist/visitor/migrate-config-v4-v5.visitor.js +2941 -0
  839. package/dist/visitor/template.visitor.d.ts +163 -0
  840. package/dist/visitor/template.visitor.d.ts.map +1 -0
  841. package/dist/visitor/template.visitor.js +397 -0
  842. package/dist/visitor/validator.visitor.d.ts +123 -0
  843. package/dist/visitor/validator.visitor.d.ts.map +1 -0
  844. package/dist/visitor/validator.visitor.js +480 -0
  845. package/dist/visitor/visitor-helpers.d.ts +15 -0
  846. package/dist/visitor/visitor-helpers.d.ts.map +1 -0
  847. package/dist/visitor/visitor-helpers.js +191 -0
  848. package/dist/visitor/vocab-inline.visitor.d.ts +33 -0
  849. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -0
  850. package/dist/visitor/vocab-inline.visitor.js +173 -0
  851. package/dist/waterline-models/AppConfig.d.ts +19 -0
  852. package/dist/waterline-models/AppConfig.d.ts.map +1 -0
  853. package/dist/waterline-models/AppConfig.js +38 -0
  854. package/dist/waterline-models/AsynchProgress.d.ts +37 -0
  855. package/dist/waterline-models/AsynchProgress.d.ts.map +1 -0
  856. package/dist/waterline-models/AsynchProgress.js +83 -0
  857. package/dist/waterline-models/BrandingConfig.d.ts +28 -0
  858. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -0
  859. package/dist/waterline-models/BrandingConfig.js +132 -0
  860. package/dist/waterline-models/BrandingConfigHistory.d.ts +25 -0
  861. package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -0
  862. package/dist/waterline-models/BrandingConfigHistory.js +66 -0
  863. package/dist/waterline-models/CacheEntry.d.ts +18 -0
  864. package/dist/waterline-models/CacheEntry.d.ts.map +1 -0
  865. package/dist/waterline-models/CacheEntry.js +38 -0
  866. package/dist/waterline-models/Counter.d.ts +19 -0
  867. package/dist/waterline-models/Counter.d.ts.map +1 -0
  868. package/dist/waterline-models/Counter.js +38 -0
  869. package/dist/waterline-models/DashboardType.d.ts +23 -0
  870. package/dist/waterline-models/DashboardType.d.ts.map +1 -0
  871. package/dist/waterline-models/DashboardType.js +53 -0
  872. package/dist/waterline-models/Form.d.ts +21 -0
  873. package/dist/waterline-models/Form.d.ts.map +1 -0
  874. package/dist/waterline-models/Form.js +38 -0
  875. package/dist/waterline-models/I18nBundle.d.ts +29 -0
  876. package/dist/waterline-models/I18nBundle.d.ts.map +1 -0
  877. package/dist/waterline-models/I18nBundle.js +85 -0
  878. package/dist/waterline-models/I18nTranslation.d.ts +32 -0
  879. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -0
  880. package/dist/waterline-models/I18nTranslation.js +110 -0
  881. package/dist/waterline-models/NamedQuery.d.ts +29 -0
  882. package/dist/waterline-models/NamedQuery.d.ts.map +1 -0
  883. package/dist/waterline-models/NamedQuery.js +68 -0
  884. package/dist/waterline-models/PathRule.d.ts +26 -0
  885. package/dist/waterline-models/PathRule.d.ts.map +1 -0
  886. package/dist/waterline-models/PathRule.js +53 -0
  887. package/dist/waterline-models/RBReport.d.ts +38 -0
  888. package/dist/waterline-models/RBReport.d.ts.map +1 -0
  889. package/dist/waterline-models/RBReport.js +73 -0
  890. package/dist/waterline-models/RecordType.d.ts +37 -0
  891. package/dist/waterline-models/RecordType.d.ts.map +1 -0
  892. package/dist/waterline-models/RecordType.js +88 -0
  893. package/dist/waterline-models/Role.d.ts +19 -0
  894. package/dist/waterline-models/Role.d.ts.map +1 -0
  895. package/dist/waterline-models/Role.js +38 -0
  896. package/dist/waterline-models/ThemeConfig.d.ts +16 -0
  897. package/dist/waterline-models/ThemeConfig.d.ts.map +1 -0
  898. package/dist/waterline-models/ThemeConfig.js +33 -0
  899. package/dist/waterline-models/User.d.ts +50 -0
  900. package/dist/waterline-models/User.d.ts.map +1 -0
  901. package/dist/waterline-models/User.js +151 -0
  902. package/dist/waterline-models/UserAudit.d.ts +18 -0
  903. package/dist/waterline-models/UserAudit.d.ts.map +1 -0
  904. package/dist/waterline-models/UserAudit.js +38 -0
  905. package/dist/waterline-models/UserLink.d.ts +30 -0
  906. package/dist/waterline-models/UserLink.d.ts.map +1 -0
  907. package/dist/waterline-models/UserLink.js +62 -0
  908. package/dist/waterline-models/Vocabulary.d.ts +38 -0
  909. package/dist/waterline-models/Vocabulary.d.ts.map +1 -0
  910. package/dist/waterline-models/Vocabulary.js +183 -0
  911. package/dist/waterline-models/VocabularyEntry.d.ts +33 -0
  912. package/dist/waterline-models/VocabularyEntry.d.ts.map +1 -0
  913. package/dist/waterline-models/VocabularyEntry.js +210 -0
  914. package/dist/waterline-models/WorkflowStep.d.ts +25 -0
  915. package/dist/waterline-models/WorkflowStep.d.ts.map +1 -0
  916. package/dist/waterline-models/WorkflowStep.js +53 -0
  917. package/dist/waterline-models/WorkspaceApp.d.ts +19 -0
  918. package/dist/waterline-models/WorkspaceApp.d.ts.map +1 -0
  919. package/dist/waterline-models/WorkspaceApp.js +50 -0
  920. package/dist/waterline-models/WorkspaceAsync.d.ts +32 -0
  921. package/dist/waterline-models/WorkspaceAsync.d.ts.map +1 -0
  922. package/dist/waterline-models/WorkspaceAsync.js +73 -0
  923. package/dist/waterline-models/WorkspaceType.d.ts +25 -0
  924. package/dist/waterline-models/WorkspaceType.d.ts.map +1 -0
  925. package/dist/waterline-models/WorkspaceType.js +53 -0
  926. package/dist/waterline-models/index.d.ts +53 -0
  927. package/dist/waterline-models/index.d.ts.map +1 -0
  928. package/dist/waterline-models/index.js +99 -0
  929. package/dist/waterline-models/types.d.ts +8 -0
  930. package/dist/waterline-models/types.d.ts.map +1 -0
  931. package/dist/waterline-models/types.js +3 -0
  932. package/package.json +150 -0
  933. package/redbox-loader-templates/bootstrap-shim.js.hbs +17 -0
  934. package/redbox-loader-templates/form-config-index.js.hbs +11 -0
@@ -0,0 +1,554 @@
1
+ "use strict";
2
+ // Copyright (c) 2017 Queensland Cyber Infrastructure Foundation (http://www.qcif.edu.au/)
3
+ //
4
+ // GNU GENERAL PUBLIC LICENSE
5
+ // Version 2, June 1991
6
+ //
7
+ // This program is free software; you can redistribute it and/or modify
8
+ // it under the terms of the GNU General Public License as published by
9
+ // the Free Software Foundation; either version 2 of the License, or
10
+ // (at your option) any later version.
11
+ //
12
+ // This program is distributed in the hope that it will be useful,
13
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ // GNU General Public License for more details.
16
+ //
17
+ // You should have received a copy of the GNU General Public License along
18
+ // with this program; if not, write to the Free Software Foundation, Inc.,
19
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
21
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
23
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
24
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
25
+ };
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.Services = void 0;
31
+ const rxjs_1 = require("rxjs");
32
+ const operators_1 = require("rxjs/operators");
33
+ const RBValidationError_1 = require("../model/RBValidationError");
34
+ const CoreService_1 = require("../CoreService");
35
+ const PopulateExportedMethods_decorator_1 = require("../decorator/PopulateExportedMethods.decorator");
36
+ const momentShim_1 = require("../shims/momentShim");
37
+ const numeral_1 = __importDefault(require("numeral"));
38
+ var Services;
39
+ (function (Services) {
40
+ /**
41
+ * Trigger related functions...
42
+ *
43
+ * Author: <a href='https://github.com/shilob' target='_blank'>Shilo Banihit</a>
44
+ *
45
+ */
46
+ let Trigger = class Trigger extends CoreService_1.Services.Core.Service {
47
+ /**
48
+ * Used in changing the workflow stages automatically based on configuration.
49
+ *
50
+ * @author <a target='_' href='https://github.com/shilob'>Shilo Banihit</a>
51
+ * @param oid
52
+ * @param record
53
+ * @param options
54
+ * @return
55
+ */
56
+ transitionWorkflow(oid, record, options) {
57
+ const triggerCondition = String(_.get(options, "triggerCondition", ""));
58
+ const variables = {};
59
+ variables['imports'] = record;
60
+ const compiled = _.template(triggerCondition, variables);
61
+ const compileResult = compiled();
62
+ sails.log.verbose(`Trigger condition for ${oid} ==> "${triggerCondition}", has result: '${compileResult}'`);
63
+ if (_.isEqual(compileResult, "true")) {
64
+ const workflowStageTarget = _.get(options, "targetWorkflowStageName", _.get(record, 'workflow.stage'));
65
+ const workflowStageLabel = _.get(options, "targetWorkflowStageLabel", _.get(record, 'workflow.stageLabel'));
66
+ sails.log.verbose(`Trigger condition met for ${oid}, transitioning to: ${workflowStageTarget}`);
67
+ _.set(record, "workflow.stage", workflowStageTarget);
68
+ _.set(record, "workflow.stageLabel", workflowStageLabel);
69
+ // we need to update the form too!!!!
70
+ _.set(record, "metaMetadata.form", _.get(options, "targetForm", _.get(record, 'metaMetadata.form')));
71
+ }
72
+ return (0, rxjs_1.of)(record);
73
+ }
74
+ /**
75
+ *
76
+ * By default, hooks are launched asynch, this method allows for synch running of hooks while not blocking the save request thread.
77
+ * Will work as pre and post hooks.
78
+ *
79
+ *
80
+ * @author <a target='_' href='https://github.com/shilob'>Shilo Banihit</a>
81
+ * @param oid
82
+ * @param record
83
+ * @param options
84
+ * map of:
85
+ * "hooks" - array, same structure as that of hook option's "pre" and "post" fields
86
+ * @return
87
+ */
88
+ runHooksSync(oid, record, options, user) {
89
+ sails.log.debug(`runHooksSync, starting...`);
90
+ sails.log.debug(JSON.stringify(options));
91
+ const hookFnArray = _.get(options, 'hooks', []);
92
+ const hookFnDefArray = [];
93
+ _.each(hookFnArray, (hookFnDef) => {
94
+ const hookFnStr = _.get(hookFnDef, "function", null);
95
+ if (!_.isEmpty(hookFnStr) && _.isString(hookFnStr)) {
96
+ const hookFn = eval(hookFnStr);
97
+ const hookOpt = _.get(hookFnDef, "options");
98
+ if (_.isFunction(hookFn)) {
99
+ sails.log.debug(`runHooksSync, adding: ${hookFnStr}`);
100
+ hookFnDefArray.push({ hookFn: hookFn, hookOpt: hookOpt });
101
+ }
102
+ else {
103
+ sails.log.error(`runHooksSync, this is not a valid function: ${hookFnStr}`);
104
+ sails.log.error(hookFnDef);
105
+ }
106
+ }
107
+ else {
108
+ sails.log.error(`runHooksSync, expected a string function name, got: ${hookFnStr}`);
109
+ sails.log.error(hookFnDef);
110
+ }
111
+ });
112
+ if (!_.isEmpty(hookFnDefArray)) {
113
+ sails.log.debug(`runHooksSync, running..`);
114
+ return (0, rxjs_1.from)(hookFnDefArray)
115
+ .pipe((0, operators_1.concatMap)((hookDef) => {
116
+ return hookDef.hookFn(oid, record, hookDef.hookOpt ?? {}, user);
117
+ }), (0, operators_1.last)());
118
+ }
119
+ else {
120
+ sails.log.debug(`runHooksSync, no observables to run`);
121
+ return (0, rxjs_1.of)(record);
122
+ }
123
+ }
124
+ async applyFieldLevelPermissions(oid, record, options, user) {
125
+ // mandatory
126
+ const fieldDBNames = _.get(options, 'fieldDBNames', []);
127
+ // Allow a certain user to edit
128
+ const userWithPermissionToEdit = _.get(options, 'userWithPermissionToEdit', '');
129
+ const roleEditPermission = _.get(options, 'roleEditPermission', '');
130
+ if (user.username != userWithPermissionToEdit && !this.userHasRoleEditPermission(user, roleEditPermission)) {
131
+ const previousRecord = await RecordsService.getMeta(oid);
132
+ for (const fieldDBName of fieldDBNames) {
133
+ const data = _.get(record, fieldDBName);
134
+ sails.log.debug(`field name ${fieldDBName} value is ${data}`);
135
+ const previousData = _.get(previousRecord, fieldDBName);
136
+ sails.log.debug(`previous field name ${fieldDBName} value is ${previousData}`);
137
+ if (previousData != null && String(previousData).trim() != '') {
138
+ _.set(record, fieldDBName, previousData);
139
+ sails.log.info(`Setting field name ${fieldDBName} of record with OID ${oid} to ${previousData}`);
140
+ }
141
+ }
142
+ }
143
+ return record;
144
+ }
145
+ userHasRoleEditPermission(user, roleEditPermission) {
146
+ for (const role of user.roles ?? []) {
147
+ if (role.name === roleEditPermission) {
148
+ return true;
149
+ }
150
+ }
151
+ return false;
152
+ }
153
+ async validateFieldUsingRegex(oid, record, options) {
154
+ // mandatory
155
+ const fieldDBName = _.get(options, 'fieldDBName', '');
156
+ const errorLanguageCode = _.get(options, 'errorLanguageCode', '');
157
+ const regexPattern = _.get(options, 'regexPattern', '');
158
+ // optional
159
+ const fieldLanguageCode = _.get(options, 'fieldLanguageCode', '');
160
+ const arrayObjFieldDBName = _.get(options, 'arrayObjFieldDBName', '');
161
+ // trimLeadingAndTrailingSpacesBeforeValidation:
162
+ // Set false by default if not present this option will remove leading and trailing spaces from a none array value
163
+ // then it will modify the value in the record if the regex validation is passed therefore handle with care
164
+ const trimLeadingAndTrailingSpacesBeforeValidation = Boolean(_.get(options, 'trimLeadingAndTrailingSpacesBeforeValidation', false));
165
+ // default to true - is only false when set to bool false or string 'false'
166
+ const caseSensitive = String(_.get(options, 'caseSensitive', true)) !== 'false';
167
+ // default to true for backwards compatibility - is only false when set to bool false or string 'false'
168
+ const allowNulls = String(_.get(options, 'allowNulls', true)) !== 'false';
169
+ // re-usable functions
170
+ const textRegex = function (value) {
171
+ let flags = '';
172
+ if (!caseSensitive) {
173
+ flags += 'i';
174
+ }
175
+ const re = new RegExp(regexPattern, flags);
176
+ return re.test(value);
177
+ };
178
+ const getError = function () {
179
+ let displayErrorDetail = TranslationService.t(errorLanguageCode);
180
+ const displayErrorMeta = { errorLanguageCode: errorLanguageCode };
181
+ if (fieldLanguageCode) {
182
+ displayErrorDetail = `${TranslationService.t(fieldLanguageCode)} ${displayErrorDetail}`;
183
+ displayErrorMeta.fieldLanguageCode = fieldLanguageCode;
184
+ }
185
+ return new RBValidationError_1.RBValidationError({
186
+ message: `Failed validating field using regex record ${record} options ${options}`,
187
+ displayErrors: [{ detail: displayErrorDetail, meta: displayErrorMeta }],
188
+ });
189
+ };
190
+ const hasValue = function (data) {
191
+ return data !== '' && data !== null && data !== undefined;
192
+ };
193
+ const evaluate = function (element, fieldName) {
194
+ let value = String(_.get(element, fieldName, ''));
195
+ if (trimLeadingAndTrailingSpacesBeforeValidation) {
196
+ value = _.trim(value);
197
+ }
198
+ if (!hasValue(value) && !allowNulls) {
199
+ return false;
200
+ }
201
+ else if (!hasValue(value) && allowNulls) {
202
+ // this is ok
203
+ }
204
+ else if (!textRegex(value)) {
205
+ return false;
206
+ }
207
+ if (trimLeadingAndTrailingSpacesBeforeValidation) {
208
+ _.set(element, fieldName, value);
209
+ }
210
+ return true;
211
+ };
212
+ // get the data
213
+ const data = _.get(record, fieldDBName);
214
+ // early checks
215
+ if (!hasValue(data) && !allowNulls) {
216
+ throw getError();
217
+ }
218
+ if (!hasValue(data) && allowNulls) {
219
+ sails.log.debug('validateFieldUsingRegex', 'data value is null and value is allowed to be null', record, options);
220
+ return record;
221
+ }
222
+ if (!_.isArray(data) && arrayObjFieldDBName) {
223
+ throw getError();
224
+ }
225
+ if (_.isArray(data) && !arrayObjFieldDBName) {
226
+ throw getError();
227
+ }
228
+ // evaluate the record field against the regex
229
+ if (_.isArray(data)) {
230
+ for (const row of data) {
231
+ if (!evaluate(row, arrayObjFieldDBName)) {
232
+ throw getError();
233
+ }
234
+ }
235
+ }
236
+ else {
237
+ if (!evaluate(record, fieldDBName)) {
238
+ throw getError();
239
+ }
240
+ }
241
+ sails.log.debug('validateFieldUsingRegex', 'data value passed check', record, options);
242
+ return record;
243
+ }
244
+ /**
245
+ * Trigger function that will run a lodash template that can be used to validate a record.
246
+ * The trigger expects the template to return an array of error objects of the format:
247
+ * {
248
+ * name: 'the field name that is in validation error',
249
+ * label: 'the human readable label for the field',
250
+ * error: 'optional error message'
251
+ * }
252
+ *
253
+ * An empty array should be returned if no errors are found.
254
+ *
255
+ * @param oid
256
+ * @param record
257
+ * @param options
258
+ * @returns
259
+ */
260
+ async validateFieldsUsingTemplate(oid, record, options) {
261
+ sails.log.verbose('validateFieldsUsingTemplate - enter');
262
+ if (this.metTriggerCondition(oid, record, options) === "true") {
263
+ sails.log.verbose('validateFieldsUsingTemplate - metTriggerCondition');
264
+ const getErrorMessage = function (errorLanguageCode) {
265
+ const baseErrorMessage = TranslationService.t(errorLanguageCode);
266
+ return baseErrorMessage;
267
+ };
268
+ const addError = function (errorFieldList, name, label, errorLabel) {
269
+ const errorField = {};
270
+ _.set(errorField, 'name', name);
271
+ _.set(errorField, 'label', getErrorMessage(label));
272
+ const error = getErrorMessage(errorLabel);
273
+ if (error != '') {
274
+ _.set(errorField, 'error', error);
275
+ }
276
+ errorFieldList.push(errorField);
277
+ };
278
+ let template = _.get(options, 'template', "<% return []; %>");
279
+ const imports = {
280
+ moment: momentShim_1.momentShim,
281
+ numeral: numeral_1.default,
282
+ _: _,
283
+ TranslationService: TranslationService
284
+ };
285
+ const altErrorMessage = _.get(options, 'altErrorMessage', []);
286
+ if (_.isString(template)) {
287
+ const compiledTemplate = _.template(template, { imports });
288
+ options.template = compiledTemplate;
289
+ template = compiledTemplate;
290
+ }
291
+ if (!_.isFunction(template)) {
292
+ throw new Error('Template is not a string or function');
293
+ }
294
+ const errorFieldList = template({
295
+ oid: oid, record: record, options: options, addError: addError,
296
+ getErrorMessage: getErrorMessage
297
+ });
298
+ const errorMap = {
299
+ altErrorMessage: altErrorMessage,
300
+ errorFieldList: errorFieldList
301
+ };
302
+ if (!_.isEmpty(errorMap.errorFieldList)) {
303
+ throw new RBValidationError_1.RBValidationError({
304
+ message: `Field validation using template failed: errorMap ${JSON.stringify(errorMap)}`,
305
+ displayErrors: [{ title: "Validation failed", meta: errorMap }]
306
+ });
307
+ }
308
+ sails.log.debug('validateFieldsUsingTemplate data value passed check');
309
+ }
310
+ return record;
311
+ }
312
+ async validateFieldMapUsingRegex(oid, record, options) {
313
+ sails.log.verbose('validateFieldMapUsingRegex - enter');
314
+ if (this.metTriggerCondition(oid, record, options) === "true") {
315
+ sails.log.verbose('validateFieldMapUsingRegex - metTriggerCondition');
316
+ // re-usable functions
317
+ const textRegex = function (value, regexPattern, caseSensitive) {
318
+ if (regexPattern == '') {
319
+ return true;
320
+ }
321
+ else {
322
+ let flags = '';
323
+ if (!caseSensitive) {
324
+ flags += 'i';
325
+ }
326
+ const re = new RegExp(regexPattern, flags);
327
+ return re.test(value);
328
+ }
329
+ };
330
+ const getError = function (errorLanguageCode) {
331
+ const baseErrorMessage = TranslationService.t(errorLanguageCode);
332
+ sails.log.error('validateFieldMapUsingRegex ' + baseErrorMessage);
333
+ return baseErrorMessage;
334
+ };
335
+ const hasValue = function (data) {
336
+ return data !== '' && data !== null && data !== undefined;
337
+ };
338
+ const evaluate = function (element, fieldName, trim, allowNulls, regexPattern, caseSensitive) {
339
+ let value = '';
340
+ if (_.isString(element) && fieldName == '') {
341
+ value = element;
342
+ }
343
+ else if (fieldName != '') {
344
+ value = _.get(element, fieldName);
345
+ sails.log.debug('validateFieldMapUsingRegex evaluate fieldName ' + fieldName + ' value ' + value);
346
+ }
347
+ if (trim) {
348
+ value = _.trim(value);
349
+ }
350
+ if (!hasValue(value) && !allowNulls) {
351
+ return false;
352
+ }
353
+ else if (!hasValue(value) && allowNulls) {
354
+ // this is ok
355
+ }
356
+ else if (!textRegex(value, regexPattern, caseSensitive)) {
357
+ return false;
358
+ }
359
+ if (trim && _.isObject(element) && fieldName != '') {
360
+ _.set(element, fieldName, value);
361
+ }
362
+ return true;
363
+ };
364
+ const fieldObjectList = _.get(options, 'fieldObjectList', []);
365
+ const altErrorMessage = _.get(options, 'altErrorMessage', []);
366
+ const errorMap = {
367
+ altErrorMessage: altErrorMessage,
368
+ errorFieldList: []
369
+ };
370
+ sails.log.debug('validateFieldMapUsingRegex fieldObjectList ' + JSON.stringify(fieldObjectList));
371
+ for (const field of fieldObjectList) {
372
+ const fieldName = String(_.get(field, 'name', ''));
373
+ const fieldLabel = String(_.get(field, 'label', ''));
374
+ const fieldErrorLabel = String(_.get(field, 'errorLabel', ''));
375
+ // get the data
376
+ const data = _.get(record, 'metadata.' + fieldName);
377
+ // caseSensitive default is true - is only false when set to bool false or string 'false'
378
+ const caseSensitive = String(_.get(field, 'caseSensitive', true)) !== 'false';
379
+ sails.log.debug('validateFieldMapUsingRegex field.allowNulls ' + _.get(field, 'allowNulls'));
380
+ const allowNulls = String(_.get(field, 'allowNulls', true)) !== 'false';
381
+ sails.log.debug('validateFieldMapUsingRegex allowNulls ' + allowNulls);
382
+ const trim = Boolean(_.get(field, 'trim', true));
383
+ const regexPattern = String(_.get(field, 'regexPattern', ''));
384
+ sails.log.debug('validateFieldMapUsingRegex ' + fieldName + ' data ' + JSON.stringify(data));
385
+ // early checks
386
+ if (!hasValue(data) && !allowNulls) {
387
+ const errorField = {};
388
+ _.set(errorField, 'name', fieldName);
389
+ _.set(errorField, 'label', getError(fieldLabel));
390
+ const error = getError(fieldErrorLabel);
391
+ if (error != '') {
392
+ _.set(errorField, 'error', error);
393
+ }
394
+ errorMap.errorFieldList.push(errorField);
395
+ sails.log.debug('validateFieldMapUsingRegex !hasValue(data) && !allowNulls');
396
+ continue;
397
+ }
398
+ // evaluate the record field against the regex
399
+ if (_.isArray(data)) {
400
+ for (const row of data) {
401
+ const innerFieldName = String(_.get(field, 'arrayObjFieldDBName', ''));
402
+ if (!evaluate(row, innerFieldName, trim, allowNulls, regexPattern, caseSensitive)) {
403
+ sails.log.debug('validateFieldMapUsingRegex evaluate arrayObjFieldDBName ' + fieldName);
404
+ const errorField = {};
405
+ _.set(errorField, 'name', fieldName);
406
+ _.set(errorField, 'label', getError(fieldLabel));
407
+ const error = getError(fieldErrorLabel);
408
+ if (error != '') {
409
+ _.set(errorField, 'error', error);
410
+ }
411
+ errorMap.errorFieldList.push(errorField);
412
+ }
413
+ }
414
+ }
415
+ else {
416
+ if (!evaluate(data, '', trim, allowNulls, regexPattern, caseSensitive)) {
417
+ sails.log.debug('validateFieldMapUsingRegex evaluate field.name ' + fieldName);
418
+ const errorField = {};
419
+ _.set(errorField, 'name', fieldName);
420
+ _.set(errorField, 'label', getError(fieldLabel));
421
+ const error = getError(fieldErrorLabel);
422
+ if (error != '') {
423
+ _.set(errorField, 'error', error);
424
+ }
425
+ errorMap.errorFieldList.push(errorField);
426
+ }
427
+ }
428
+ }
429
+ sails.log.debug('validateFieldMapUsingRegex errorMap ' + JSON.stringify(errorMap));
430
+ if (!_.isEmpty(errorMap.errorFieldList)) {
431
+ throw new RBValidationError_1.RBValidationError({
432
+ message: `Field map validation using regex failed: errorMap ${JSON.stringify(errorMap)}`,
433
+ displayErrors: [{ title: "Validation failed", meta: errorMap }]
434
+ });
435
+ }
436
+ sails.log.debug('validateFieldMapUsingRegex data value passed check');
437
+ }
438
+ return record;
439
+ }
440
+ async runTemplatesOnRelatedRecord(relatedOid, relatedRecord, options, user) {
441
+ if (this.metTriggerCondition(relatedOid, relatedRecord, options) === "true") {
442
+ sails.log.verbose('runTemplatesOnRelatedRecord - metTriggerCondition');
443
+ const templates = _.get(options, 'templates', []);
444
+ sails.log.verbose(`runTemplatesOnRelatedRecord config: ${JSON.stringify(templates)}`);
445
+ sails.log.verbose(`runTemplatesOnRelatedRecord to oid: ${relatedOid} with user: ${JSON.stringify(user)}`);
446
+ const pathToRelatedOid = String(_.get(options, 'pathToRelatedOid', ''));
447
+ const innerPathToRelatedOid = String(_.get(options, 'innerPathToRelatedOid', ''));
448
+ const runPreSaveTriggers = Boolean(_.get(options, 'runPreSaveTriggers', false));
449
+ const runPostSaveTriggers = Boolean(_.get(options, 'runPostSaveTriggers', false));
450
+ const parseObject = Boolean(_.get(options, 'parseObject', false));
451
+ const oidStringOrArray = _.get(relatedRecord, pathToRelatedOid, '');
452
+ let record = null;
453
+ const oidList = [];
454
+ if (!_.isArray(oidStringOrArray) && _.isString(oidStringOrArray)) {
455
+ oidList.push(oidStringOrArray);
456
+ }
457
+ else if (_.isArray(oidStringOrArray)) {
458
+ if (innerPathToRelatedOid != '') {
459
+ for (const oidObj of oidStringOrArray) {
460
+ const tmpOid = _.get(oidObj, innerPathToRelatedOid, '');
461
+ if (tmpOid != '' && _.isString(tmpOid)) {
462
+ oidList.push(tmpOid);
463
+ }
464
+ }
465
+ }
466
+ else {
467
+ for (const oid of oidStringOrArray) {
468
+ if (_.isString(oid)) {
469
+ oidList.push(oid);
470
+ }
471
+ }
472
+ }
473
+ }
474
+ if (!_.isEmpty(oidList)) {
475
+ for (const oid of oidList) {
476
+ sails.log.verbose(`runTemplatesOnRelatedRecord trying to find related record with oid: ${oid}`);
477
+ let tmplConfig = null;
478
+ try {
479
+ record = await RecordsService.getMeta(oid);
480
+ if (_.isObject(record)) {
481
+ sails.log.verbose(`runTemplatesOnRelatedRecord related record found and will run templates...`);
482
+ _.each(templates, (templateConfig) => {
483
+ tmplConfig = templateConfig;
484
+ const imports = _.extend({
485
+ moment: momentShim_1.momentShim,
486
+ numeral: numeral_1.default
487
+ }, this);
488
+ const templateImportsData = {
489
+ imports: imports
490
+ };
491
+ const templateData = {
492
+ oid: oid,
493
+ record: record,
494
+ user: user,
495
+ options: options
496
+ };
497
+ const templateValue = templateConfig.template;
498
+ let templateFn = null;
499
+ if (_.isString(templateValue)) {
500
+ templateFn = _.template(templateValue, { imports: templateImportsData });
501
+ }
502
+ else if (_.isFunction(templateValue)) {
503
+ templateFn = templateValue;
504
+ }
505
+ if (!templateFn) {
506
+ throw new Error('Template is not a string or function');
507
+ }
508
+ const data = templateFn(templateData);
509
+ const fieldPath = String(_.get(templateConfig, 'field', ''));
510
+ if (parseObject) {
511
+ const obj = JSON.parse(data);
512
+ _.set(record, fieldPath, obj);
513
+ }
514
+ else {
515
+ _.set(record, fieldPath, data);
516
+ }
517
+ });
518
+ const brandId = _.get(record, 'metaMetadata.brandId', '');
519
+ if (_.isEmpty(brandId)) {
520
+ throw new RBValidationError_1.RBValidationError({
521
+ message: 'Brand id not found for related record',
522
+ displayErrors: [{ title: 'Processing failed', meta: { oid: oid, relatedOid: relatedOid } }]
523
+ });
524
+ }
525
+ const brand = BrandingService.getBrandById(brandId);
526
+ sails.log.verbose(`runTemplatesOnRelatedRecord Brand: ${JSON.stringify(brand)}`);
527
+ await RecordsService.updateMeta(brand, oid, record, user, runPreSaveTriggers, runPostSaveTriggers);
528
+ }
529
+ else {
530
+ sails.log.verbose(`runTemplatesOnRelatedRecord did't find related record using oid: ${oid} - object retrived is: ${JSON.stringify(record)}`);
531
+ }
532
+ }
533
+ catch (e) {
534
+ throw new RBValidationError_1.RBValidationError({
535
+ message: `Failed to run one of the string templates for oid ${oid} relatedOid ${relatedOid}: ${JSON.stringify(tmplConfig)}`,
536
+ options: { cause: e },
537
+ displayErrors: [{ title: "Processing failed", meta: { oid: oid, relatedOid: relatedOid } }]
538
+ });
539
+ }
540
+ }
541
+ }
542
+ else {
543
+ sails.log.verbose(`runTemplatesOnRelatedRecord did't find related oid list: ${JSON.stringify(oidList)} - in specified path: ${pathToRelatedOid} - and inner path ${innerPathToRelatedOid}`);
544
+ }
545
+ }
546
+ return relatedRecord;
547
+ }
548
+ };
549
+ Trigger = __decorate([
550
+ PopulateExportedMethods_decorator_1.PopulateExportedMethods
551
+ ], Trigger);
552
+ Services.Trigger = Trigger;
553
+ })(Services || (exports.Services = Services = {}));
554
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJpZ2dlclNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvVHJpZ2dlclNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBGQUEwRjtBQUMxRixFQUFFO0FBQ0YsNkJBQTZCO0FBQzdCLDBCQUEwQjtBQUMxQixFQUFFO0FBQ0YsdUVBQXVFO0FBQ3ZFLHVFQUF1RTtBQUN2RSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBQ3RDLEVBQUU7QUFDRixrRUFBa0U7QUFDbEUsaUVBQWlFO0FBQ2pFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsOERBQThEOzs7Ozs7Ozs7Ozs7QUFFOUQsK0JBQTRDO0FBQzVDLDhDQUFpRDtBQUNqRCxrRUFBK0Q7QUFHL0QsZ0RBQXNEO0FBQ3RELHNHQUF5RjtBQUN6RixvREFBMkQ7QUFDM0Qsc0RBQThCO0FBRzlCLElBQWlCLFFBQVEsQ0FvakJ4QjtBQXBqQkQsV0FBaUIsUUFBUTtJQUt2Qjs7Ozs7T0FLRztJQUVILElBQWEsT0FBTyxHQUFwQixNQUFhLE9BQVEsU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBR2hEOzs7Ozs7OztXQVFHO1FBQ0ksa0JBQWtCLENBQUMsR0FBVyxFQUFFLE1BQWtCLEVBQUUsT0FBZ0M7WUFDekYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV4RSxNQUFNLFNBQVMsR0FBNEIsRUFBRSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RCxNQUFNLGFBQWEsR0FBRyxRQUFRLEVB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