@researchdatabox/redbox-core 0.0.1-beta.9228 → 0.0.1-beta.9604

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/CoreController.d.ts +4 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +40 -4
  4. package/dist/DatastreamService.d.ts +5 -2
  5. package/dist/DatastreamService.d.ts.map +1 -1
  6. package/dist/QueueService.d.ts +1 -1
  7. package/dist/QueueService.d.ts.map +1 -1
  8. package/dist/RecordsService.d.ts +38 -2
  9. package/dist/RecordsService.d.ts.map +1 -1
  10. package/dist/StorageService.d.ts +2 -1
  11. package/dist/StorageService.d.ts.map +1 -1
  12. package/dist/api-routes/apib.d.ts +7 -0
  13. package/dist/api-routes/apib.d.ts.map +1 -0
  14. package/dist/api-routes/apib.js +43 -0
  15. package/dist/api-routes/define.d.ts +4 -0
  16. package/dist/api-routes/define.d.ts.map +1 -0
  17. package/dist/api-routes/define.js +29 -0
  18. package/dist/api-routes/groups/admin.d.ts +6 -0
  19. package/dist/api-routes/groups/admin.d.ts.map +1 -0
  20. package/dist/api-routes/groups/admin.js +53 -0
  21. package/dist/api-routes/groups/appconfig.d.ts +4 -0
  22. package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
  23. package/dist/api-routes/groups/appconfig.js +33 -0
  24. package/dist/api-routes/groups/branding.d.ts +8 -0
  25. package/dist/api-routes/groups/branding.d.ts.map +1 -0
  26. package/dist/api-routes/groups/branding.js +61 -0
  27. package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
  28. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
  29. package/dist/api-routes/groups/dashboard-config.js +90 -0
  30. package/dist/api-routes/groups/export.d.ts +3 -0
  31. package/dist/api-routes/groups/export.d.ts.map +1 -0
  32. package/dist/api-routes/groups/export.js +30 -0
  33. package/dist/api-routes/groups/forms.d.ts +4 -0
  34. package/dist/api-routes/groups/forms.d.ts.map +1 -0
  35. package/dist/api-routes/groups/forms.js +29 -0
  36. package/dist/api-routes/groups/integration-audit.d.ts +3 -0
  37. package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
  38. package/dist/api-routes/groups/integration-audit.js +35 -0
  39. package/dist/api-routes/groups/notifications.d.ts +3 -0
  40. package/dist/api-routes/groups/notifications.d.ts.map +1 -0
  41. package/dist/api-routes/groups/notifications.js +20 -0
  42. package/dist/api-routes/groups/records.d.ts +28 -0
  43. package/dist/api-routes/groups/records.d.ts.map +1 -0
  44. package/dist/api-routes/groups/records.js +349 -0
  45. package/dist/api-routes/groups/recordtypes.d.ts +4 -0
  46. package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
  47. package/dist/api-routes/groups/recordtypes.js +27 -0
  48. package/dist/api-routes/groups/reports.d.ts +3 -0
  49. package/dist/api-routes/groups/reports.d.ts.map +1 -0
  50. package/dist/api-routes/groups/reports.js +20 -0
  51. package/dist/api-routes/groups/search-query.d.ts +4 -0
  52. package/dist/api-routes/groups/search-query.d.ts.map +1 -0
  53. package/dist/api-routes/groups/search-query.js +51 -0
  54. package/dist/api-routes/groups/search.d.ts +6 -0
  55. package/dist/api-routes/groups/search.d.ts.map +1 -0
  56. package/dist/api-routes/groups/search.js +31 -0
  57. package/dist/api-routes/groups/translation.d.ts +8 -0
  58. package/dist/api-routes/groups/translation.d.ts.map +1 -0
  59. package/dist/api-routes/groups/translation.js +82 -0
  60. package/dist/api-routes/groups/users.d.ts +17 -0
  61. package/dist/api-routes/groups/users.d.ts.map +1 -0
  62. package/dist/api-routes/groups/users.js +149 -0
  63. package/dist/api-routes/groups/vocabulary.d.ts +10 -0
  64. package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
  65. package/dist/api-routes/groups/vocabulary.js +97 -0
  66. package/dist/api-routes/helpers.d.ts +29 -0
  67. package/dist/api-routes/helpers.d.ts.map +1 -0
  68. package/dist/api-routes/helpers.js +486 -0
  69. package/dist/api-routes/index.d.ts +25 -0
  70. package/dist/api-routes/index.d.ts.map +1 -0
  71. package/dist/api-routes/index.js +41 -0
  72. package/dist/api-routes/openapi.d.ts +27 -0
  73. package/dist/api-routes/openapi.d.ts.map +1 -0
  74. package/dist/api-routes/openapi.js +273 -0
  75. package/dist/api-routes/request-extraction.d.ts +14 -0
  76. package/dist/api-routes/request-extraction.d.ts.map +1 -0
  77. package/dist/api-routes/request-extraction.js +100 -0
  78. package/dist/api-routes/route-factory.d.ts +3 -0
  79. package/dist/api-routes/route-factory.d.ts.map +1 -0
  80. package/dist/api-routes/route-factory.js +30 -0
  81. package/dist/api-routes/route-registry.d.ts +24 -0
  82. package/dist/api-routes/route-registry.d.ts.map +1 -0
  83. package/dist/api-routes/route-registry.js +113 -0
  84. package/dist/api-routes/route-resolution.d.ts +4 -0
  85. package/dist/api-routes/route-resolution.d.ts.map +1 -0
  86. package/dist/api-routes/route-resolution.js +57 -0
  87. package/dist/api-routes/schemas/common.d.ts +37 -0
  88. package/dist/api-routes/schemas/common.d.ts.map +1 -0
  89. package/dist/api-routes/schemas/common.js +147 -0
  90. package/dist/api-routes/schemas/responses.d.ts +2904 -0
  91. package/dist/api-routes/schemas/responses.d.ts.map +1 -0
  92. package/dist/api-routes/schemas/responses.js +417 -0
  93. package/dist/api-routes/types.d.ts +70 -0
  94. package/dist/api-routes/types.d.ts.map +1 -0
  95. package/dist/api-routes/types.js +3 -0
  96. package/dist/api-routes/validation.d.ts +32 -0
  97. package/dist/api-routes/validation.d.ts.map +1 -0
  98. package/dist/api-routes/validation.js +142 -0
  99. package/dist/bootstrap.d.ts.map +1 -1
  100. package/dist/bootstrap.js +10 -10
  101. package/dist/config/agendaQueue.config.d.ts +25 -1
  102. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  103. package/dist/config/agendaQueue.config.js +19 -2
  104. package/dist/config/auth.config.d.ts.map +1 -1
  105. package/dist/config/auth.config.js +21 -2
  106. package/dist/config/branding.config.d.ts +2 -1
  107. package/dist/config/branding.config.d.ts.map +1 -1
  108. package/dist/config/branding.config.js +5 -95
  109. package/dist/config/brandingConfigurationDefaults.config.js +3 -3
  110. package/dist/config/dashboardtype.config.d.ts +5 -0
  111. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  112. package/dist/config/dashboardtype.config.js +1 -1
  113. package/dist/config/dashboardview.config.d.ts +24 -0
  114. package/dist/config/dashboardview.config.d.ts.map +1 -0
  115. package/dist/config/dashboardview.config.js +137 -0
  116. package/dist/config/dompurify.config.d.ts.map +1 -1
  117. package/dist/config/dompurify.config.js +2 -2
  118. package/dist/config/form.config.d.ts +4 -0
  119. package/dist/config/form.config.d.ts.map +1 -1
  120. package/dist/config/form.config.js +1 -1
  121. package/dist/config/http.config.d.ts +1 -1
  122. package/dist/config/http.config.d.ts.map +1 -1
  123. package/dist/config/http.config.js +36 -6
  124. package/dist/config/index.d.ts +6 -0
  125. package/dist/config/index.d.ts.map +1 -1
  126. package/dist/config/index.js +4 -1
  127. package/dist/config/namedQuery.config.d.ts +10 -2
  128. package/dist/config/namedQuery.config.d.ts.map +1 -1
  129. package/dist/config/namedQuery.config.js +17 -17
  130. package/dist/config/policies.config.d.ts +3 -0
  131. package/dist/config/policies.config.d.ts.map +1 -1
  132. package/dist/config/policies.config.js +35 -1
  133. package/dist/config/record.config.d.ts.map +1 -1
  134. package/dist/config/record.config.js +2 -1
  135. package/dist/config/recordtype.config.d.ts +28 -0
  136. package/dist/config/recordtype.config.d.ts.map +1 -1
  137. package/dist/config/recordtype.config.js +85 -9
  138. package/dist/config/routes.config.d.ts +5 -2
  139. package/dist/config/routes.config.d.ts.map +1 -1
  140. package/dist/config/routes.config.js +28 -113
  141. package/dist/config/storage.config.d.ts +20 -2
  142. package/dist/config/storage.config.d.ts.map +1 -1
  143. package/dist/config/storage.config.js +2 -1
  144. package/dist/config/validators.config.d.ts +6 -4
  145. package/dist/config/validators.config.d.ts.map +1 -1
  146. package/dist/config/validators.config.js +5 -3
  147. package/dist/config/vocab.config.d.ts +30 -0
  148. package/dist/config/vocab.config.d.ts.map +1 -1
  149. package/dist/config/vocab.config.js +21 -1
  150. package/dist/config/webpack.config.d.ts.map +1 -1
  151. package/dist/config/webpack.config.js +18 -12
  152. package/dist/config/workflow.config.d.ts +0 -1
  153. package/dist/config/workflow.config.d.ts.map +1 -1
  154. package/dist/config/workflow.config.js +1 -137
  155. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  156. package/dist/configmodels/AdminSidebarConfig.js +1 -2
  157. package/dist/configmodels/ConfigModels.d.ts +1 -1
  158. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  159. package/dist/configmodels/ConfigModels.js +9 -1
  160. package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
  161. package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
  162. package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
  163. package/dist/controllers/AdminController.d.ts +0 -1
  164. package/dist/controllers/AdminController.d.ts.map +1 -1
  165. package/dist/controllers/AdminController.js +2 -32
  166. package/dist/controllers/BrandingAppController.js +2 -2
  167. package/dist/controllers/BrandingController.d.ts +11 -5
  168. package/dist/controllers/BrandingController.d.ts.map +1 -1
  169. package/dist/controllers/BrandingController.js +116 -48
  170. package/dist/controllers/DashboardConfigController.d.ts +8 -0
  171. package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
  172. package/dist/controllers/DashboardConfigController.js +17 -0
  173. package/dist/controllers/DynamicAssetController.d.ts +1 -21
  174. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  175. package/dist/controllers/DynamicAssetController.js +19 -41
  176. package/dist/controllers/EmailController.d.ts.map +1 -1
  177. package/dist/controllers/EmailController.js +16 -12
  178. package/dist/controllers/FormVocabularyController.d.ts +3 -0
  179. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  180. package/dist/controllers/FormVocabularyController.js +151 -4
  181. package/dist/controllers/RecordController.d.ts +18 -1
  182. package/dist/controllers/RecordController.d.ts.map +1 -1
  183. package/dist/controllers/RecordController.js +295 -129
  184. package/dist/controllers/RenderViewController.d.ts.map +1 -1
  185. package/dist/controllers/RenderViewController.js +4 -2
  186. package/dist/controllers/TranslationController.d.ts.map +1 -1
  187. package/dist/controllers/TranslationController.js +5 -4
  188. package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
  189. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
  190. package/dist/controllers/WorkspaceTypesController.js +120 -31
  191. package/dist/controllers/index.d.ts.map +1 -1
  192. package/dist/controllers/index.js +7 -4
  193. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  194. package/dist/controllers/webservice/AdminController.js +16 -17
  195. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
  196. package/dist/controllers/webservice/AppConfigController.js +19 -20
  197. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  198. package/dist/controllers/webservice/BrandingController.js +102 -49
  199. package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
  200. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
  201. package/dist/controllers/webservice/DashboardConfigController.js +241 -0
  202. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  203. package/dist/controllers/webservice/ExportController.js +11 -11
  204. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  205. package/dist/controllers/webservice/FormManagementController.js +11 -13
  206. package/dist/controllers/webservice/RecordController.d.ts +4 -0
  207. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  208. package/dist/controllers/webservice/RecordController.js +428 -257
  209. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  210. package/dist/controllers/webservice/RecordTypeController.js +9 -10
  211. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  212. package/dist/controllers/webservice/ReportController.js +18 -20
  213. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  214. package/dist/controllers/webservice/SearchController.js +28 -35
  215. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  216. package/dist/controllers/webservice/TranslationController.js +65 -43
  217. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  218. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  219. package/dist/controllers/webservice/UserManagementController.js +114 -101
  220. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  221. package/dist/controllers/webservice/VocabularyController.js +76 -28
  222. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  223. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  224. package/dist/hooks/defineRedboxHook.js +4 -1
  225. package/dist/hooks/webpack.d.ts.map +1 -1
  226. package/dist/hooks/webpack.js +17 -7
  227. package/dist/index.d.ts +2 -0
  228. package/dist/index.d.ts.map +1 -1
  229. package/dist/index.js +2 -1
  230. package/dist/loader/index.d.ts +6 -0
  231. package/dist/loader/index.d.ts.map +1 -1
  232. package/dist/loader/index.js +57 -10
  233. package/dist/middleware/redboxSession.d.ts.map +1 -1
  234. package/dist/middleware/redboxSession.js +6 -2
  235. package/dist/model/BuildResponse.d.ts +4 -0
  236. package/dist/model/BuildResponse.d.ts.map +1 -1
  237. package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
  238. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  239. package/dist/model/DashboardTypeResponseModel.js +12 -4
  240. package/dist/model/DashboardViewResponseModel.d.ts +20 -0
  241. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
  242. package/dist/model/DashboardViewResponseModel.js +38 -0
  243. package/dist/model/RecordTypeResponseModel.d.ts +3 -1
  244. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  245. package/dist/model/RecordTypeResponseModel.js +4 -2
  246. package/dist/model/index.d.ts +1 -0
  247. package/dist/model/index.d.ts.map +1 -1
  248. package/dist/model/index.js +5 -2
  249. package/dist/model/storage/BrandingModel.d.ts +0 -16
  250. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  251. package/dist/model/storage/BrandingModel.js +2 -51
  252. package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
  253. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
  254. package/dist/model/storage/RecordTypeModel.d.ts +16 -0
  255. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  256. package/dist/model/storage/RecordTypeModel.js +9 -1
  257. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  258. package/dist/policies/contentSecurityPolicy.js +23 -2
  259. package/dist/policies/index.d.ts +3 -0
  260. package/dist/policies/index.d.ts.map +1 -1
  261. package/dist/policies/index.js +6 -2
  262. package/dist/policies/validateApiContractRequest.d.ts +3 -0
  263. package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
  264. package/dist/policies/validateApiContractRequest.js +74 -0
  265. package/dist/responses/badRequest.d.ts.map +1 -1
  266. package/dist/responses/badRequest.js +5 -3
  267. package/dist/responses/created.d.ts.map +1 -1
  268. package/dist/responses/created.js +5 -3
  269. package/dist/responses/forbidden.d.ts.map +1 -1
  270. package/dist/responses/forbidden.js +5 -3
  271. package/dist/responses/ok.d.ts.map +1 -1
  272. package/dist/responses/ok.js +5 -3
  273. package/dist/responses/serverError.d.ts.map +1 -1
  274. package/dist/responses/serverError.js +5 -3
  275. package/dist/responses/siteTitle.d.ts +6 -0
  276. package/dist/responses/siteTitle.d.ts.map +1 -0
  277. package/dist/responses/siteTitle.js +28 -0
  278. package/dist/sails.d.ts +9 -0
  279. package/dist/sails.d.ts.map +1 -1
  280. package/dist/services/AgendaQueueService.d.ts +38 -17
  281. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  282. package/dist/services/AgendaQueueService.js +311 -81
  283. package/dist/services/AttachmentMetadataService.d.ts +34 -0
  284. package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
  285. package/dist/services/AttachmentMetadataService.js +133 -0
  286. package/dist/services/BrandingLogoService.d.ts +6 -8
  287. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  288. package/dist/services/BrandingLogoService.js +66 -72
  289. package/dist/services/BrandingService.d.ts.map +1 -1
  290. package/dist/services/BrandingService.js +4 -32
  291. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  292. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  293. package/dist/services/BrandingThemeCssService.js +113 -0
  294. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  295. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  296. package/dist/services/BrandingThemeTokens.js +82 -0
  297. package/dist/services/CacheService.d.ts.map +1 -1
  298. package/dist/services/CacheService.js +37 -29
  299. package/dist/services/DashboardConfigService.d.ts +71 -0
  300. package/dist/services/DashboardConfigService.d.ts.map +1 -0
  301. package/dist/services/DashboardConfigService.js +309 -0
  302. package/dist/services/DashboardTypesService.d.ts +61 -63
  303. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  304. package/dist/services/DashboardTypesService.js +361 -198
  305. package/dist/services/DoiService.d.ts +11 -0
  306. package/dist/services/DoiService.d.ts.map +1 -1
  307. package/dist/services/DoiService.js +206 -1
  308. package/dist/services/FigshareService.d.ts.map +1 -1
  309. package/dist/services/FigshareService.js +5 -1
  310. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  311. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  312. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  313. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  314. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  315. package/dist/services/FormRecordConsistencyService.js +18 -18
  316. package/dist/services/FormVocabularyService.d.ts +45 -0
  317. package/dist/services/FormVocabularyService.d.ts.map +1 -0
  318. package/dist/services/FormVocabularyService.js +326 -0
  319. package/dist/services/FormsService.js +5 -5
  320. package/dist/services/I18nEntriesService.d.ts +9 -4
  321. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  322. package/dist/services/I18nEntriesService.js +96 -18
  323. package/dist/services/NamedQueryService.d.ts +27 -9
  324. package/dist/services/NamedQueryService.d.ts.map +1 -1
  325. package/dist/services/NamedQueryService.js +223 -55
  326. package/dist/services/OniService.js +2 -2
  327. package/dist/services/RDMPService.d.ts.map +1 -1
  328. package/dist/services/RDMPService.js +3 -2
  329. package/dist/services/RecordsService.d.ts +8 -2
  330. package/dist/services/RecordsService.d.ts.map +1 -1
  331. package/dist/services/RecordsService.js +66 -18
  332. package/dist/services/ReportsService.d.ts.map +1 -1
  333. package/dist/services/ReportsService.js +7 -1
  334. package/dist/services/SassCompilerService.d.ts +4 -10
  335. package/dist/services/SassCompilerService.d.ts.map +1 -1
  336. package/dist/services/SassCompilerService.js +9 -173
  337. package/dist/services/StandardDatastreamService.d.ts +37 -5
  338. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  339. package/dist/services/StandardDatastreamService.js +535 -38
  340. package/dist/services/StorageManagerService.d.ts +13 -1
  341. package/dist/services/StorageManagerService.d.ts.map +1 -1
  342. package/dist/services/StorageManagerService.js +94 -11
  343. package/dist/services/TemplateService.d.ts +1 -17
  344. package/dist/services/TemplateService.d.ts.map +1 -1
  345. package/dist/services/TemplateService.js +5 -50
  346. package/dist/services/VocabularyService.d.ts +12 -0
  347. package/dist/services/VocabularyService.d.ts.map +1 -1
  348. package/dist/services/VocabularyService.js +201 -14
  349. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  350. package/dist/services/doi-v2/bindings.js +2 -8
  351. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  352. package/dist/services/figshare-v2/bindings.js +2 -5
  353. package/dist/services/index.d.ts +15 -3
  354. package/dist/services/index.d.ts.map +1 -1
  355. package/dist/services/index.js +27 -7
  356. package/dist/storage/GridFSDriver.d.ts +101 -0
  357. package/dist/storage/GridFSDriver.d.ts.map +1 -0
  358. package/dist/storage/GridFSDriver.js +291 -0
  359. package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
  360. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
  361. package/dist/storage/TusStorageManagerDataStore.js +300 -0
  362. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  363. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  364. package/dist/visitor/attachment-fields.visitor.js +44 -34
  365. package/dist/visitor/client.visitor.d.ts +93 -92
  366. package/dist/visitor/client.visitor.d.ts.map +1 -1
  367. package/dist/visitor/client.visitor.js +159 -159
  368. package/dist/visitor/construct.visitor.d.ts +95 -95
  369. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  370. package/dist/visitor/construct.visitor.js +159 -156
  371. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  372. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  373. package/dist/visitor/context-variables.visitor.js +85 -75
  374. package/dist/visitor/data-value.visitor.d.ts +95 -95
  375. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  376. package/dist/visitor/data-value.visitor.js +151 -151
  377. package/dist/visitor/json-type-def.visitor.d.ts +92 -92
  378. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  379. package/dist/visitor/json-type-def.visitor.js +152 -152
  380. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +96 -96
  381. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  382. package/dist/visitor/migrate-config-v4-v5.visitor.js +205 -184
  383. package/dist/visitor/template.visitor.d.ts +96 -94
  384. package/dist/visitor/template.visitor.d.ts.map +1 -1
  385. package/dist/visitor/template.visitor.js +214 -159
  386. package/dist/visitor/validator.visitor.d.ts +92 -92
  387. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  388. package/dist/visitor/validator.visitor.js +175 -154
  389. package/dist/visitor/visitor-helpers.js +9 -9
  390. package/dist/visitor/vocab-inline.visitor.d.ts +18 -18
  391. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  392. package/dist/visitor/vocab-inline.visitor.js +67 -53
  393. package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
  394. package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
  395. package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
  396. package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
  397. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
  398. package/dist/waterline-models/AttachmentMetadata.js +147 -0
  399. package/dist/waterline-models/BrandingConfig.d.ts +0 -2
  400. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  401. package/dist/waterline-models/BrandingConfig.js +5 -9
  402. package/dist/waterline-models/DashboardType.d.ts +7 -0
  403. package/dist/waterline-models/DashboardType.d.ts.map +1 -1
  404. package/dist/waterline-models/DashboardType.js +16 -1
  405. package/dist/waterline-models/I18nTranslation.d.ts +2 -0
  406. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
  407. package/dist/waterline-models/I18nTranslation.js +6 -1
  408. package/dist/waterline-models/NamedQuery.d.ts +6 -0
  409. package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
  410. package/dist/waterline-models/NamedQuery.js +16 -1
  411. package/dist/waterline-models/index.d.ts +4 -0
  412. package/dist/waterline-models/index.d.ts.map +1 -1
  413. package/dist/waterline-models/index.js +7 -1
  414. package/package.json +36 -23
  415. package/dist/controllers/VocabController.d.ts +0 -43
  416. package/dist/controllers/VocabController.d.ts.map +0 -1
  417. package/dist/controllers/VocabController.js +0 -190
  418. package/dist/services/VocabService.d.ts +0 -81
  419. package/dist/services/VocabService.d.ts.map +0 -1
  420. package/dist/services/VocabService.js +0 -424
@@ -6,7 +6,90 @@
6
6
  * Record type definitions with hooks and permissions.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.recordtype = void 0;
9
+ exports.recordtype = exports.DEFAULT_RECORD_RELATION_DIRECTION = exports.DEFAULT_RECORD_RELATION_CARDINALITY = exports.DEFAULT_RECORD_RELATION_LOCAL_FIELD = void 0;
10
+ exports.buildRecordRelationId = buildRecordRelationId;
11
+ exports.normalizeRecordRelation = normalizeRecordRelation;
12
+ exports.normalizeRecordRelations = normalizeRecordRelations;
13
+ exports.findNormalizedRecordRelation = findNormalizedRecordRelation;
14
+ exports.DEFAULT_RECORD_RELATION_LOCAL_FIELD = 'redboxOid';
15
+ exports.DEFAULT_RECORD_RELATION_CARDINALITY = 'many';
16
+ exports.DEFAULT_RECORD_RELATION_DIRECTION = 'outbound';
17
+ function normalizeRelationIdPart(value) {
18
+ const input = String(value ?? '').trim();
19
+ let normalized = '';
20
+ let lastWasUnderscore = false;
21
+ for (const char of input) {
22
+ const isAlphaNumeric = (char >= 'a' && char <= 'z') ||
23
+ (char >= 'A' && char <= 'Z') ||
24
+ (char >= '0' && char <= '9');
25
+ if (isAlphaNumeric) {
26
+ normalized += char;
27
+ lastWasUnderscore = false;
28
+ continue;
29
+ }
30
+ if (!lastWasUnderscore) {
31
+ normalized += '_';
32
+ lastWasUnderscore = true;
33
+ }
34
+ }
35
+ let start = 0;
36
+ let end = normalized.length;
37
+ while (start < end && normalized[start] === '_') {
38
+ start += 1;
39
+ }
40
+ while (end > start && normalized[end - 1] === '_') {
41
+ end -= 1;
42
+ }
43
+ const trimmed = normalized.slice(start, end);
44
+ return trimmed || 'relationship';
45
+ }
46
+ function buildRecordRelationId(sourceRecordType, relation) {
47
+ const explicitId = String(relation.id ?? '').trim();
48
+ if (explicitId) {
49
+ return explicitId;
50
+ }
51
+ return [
52
+ normalizeRelationIdPart(sourceRecordType),
53
+ normalizeRelationIdPart(String(relation.recordType ?? '')),
54
+ normalizeRelationIdPart(String(relation.foreignField ?? '')),
55
+ ].join('__');
56
+ }
57
+ function normalizeRecordRelation(sourceRecordType, relation) {
58
+ const recordType = String(relation.recordType ?? '').trim();
59
+ const foreignField = String(relation.foreignField ?? '').trim();
60
+ if (!recordType) {
61
+ throw new Error(`Record relation for '${sourceRecordType}' is missing 'recordType'.`);
62
+ }
63
+ if (!foreignField) {
64
+ throw new Error(`Record relation '${recordType}' for '${sourceRecordType}' is missing 'foreignField'.`);
65
+ }
66
+ const localField = String(relation.localField ?? exports.DEFAULT_RECORD_RELATION_LOCAL_FIELD).trim() || exports.DEFAULT_RECORD_RELATION_LOCAL_FIELD;
67
+ const cardinality = relation.cardinality === 'one' ? 'one' : exports.DEFAULT_RECORD_RELATION_CARDINALITY;
68
+ const direction = relation.direction === 'inbound' ? 'inbound' : exports.DEFAULT_RECORD_RELATION_DIRECTION;
69
+ return {
70
+ ...relation,
71
+ id: buildRecordRelationId(sourceRecordType, relation),
72
+ recordType,
73
+ localField,
74
+ foreignField,
75
+ cardinality,
76
+ direction,
77
+ };
78
+ }
79
+ function normalizeRecordRelations(sourceRecordType, relations) {
80
+ if (!Array.isArray(relations)) {
81
+ return [];
82
+ }
83
+ return relations.map((relation) => normalizeRecordRelation(sourceRecordType, relation));
84
+ }
85
+ function findNormalizedRecordRelation(sourceRecordType, relations, relationId) {
86
+ const normalizedRelationId = String(relationId ?? '').trim();
87
+ if (!normalizedRelationId) {
88
+ return undefined;
89
+ }
90
+ return normalizeRecordRelations(sourceRecordType, relations)
91
+ .find((relation) => relation.id === normalizedRelationId);
92
+ }
10
93
  // Note: Default configuration ported from config/recordtype.js
11
94
  exports.recordtype = {
12
95
  "rdmp": {
@@ -617,13 +700,6 @@ exports.recordtype = {
617
700
  }
618
701
  }
619
702
  },
620
- "consolidated": {
621
- "searchable": false,
622
- "packageType": "rdmp",
623
- "packageName": "consolidated",
624
- "searchFilters": [],
625
- hooks: {}
626
- },
627
703
  "party": {
628
704
  packageType: "party",
629
705
  dashboard: {
@@ -673,4 +749,4 @@ exports.recordtype = {
673
749
  }
674
750
  }
675
751
  };
676
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkdHlwZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3JlY29yZHR5cGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBc0VILCtEQUErRDtBQUNsRCxRQUFBLFVBQVUsR0FBcUI7SUFDeEMsTUFBTSxFQUFFO1FBQ0osYUFBYSxFQUFFLE1BQU07UUFDckIsS0FBSyxFQUFFO1lBQ0gsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRTtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsOENBQThDO3dCQUN4RCxPQUFPLEVBQUU7NEJBQ0wsZUFBZSxFQUFFLE9BQU87NEJBQ3hCLDJCQUEyQixFQUFFO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLG1DQUFtQztnQ0FDbkMsMEJBQTBCOzZCQUM3Qjs0QkFDRCwyQkFBMkIsRUFBRTtnQ0FDekIseUJBQXlCO2dDQUN6QixtQ0FBbUM7Z0NBQ25DLGlDQUFpQztnQ0FDakMsdUJBQXVCOzZCQUMxQjs0QkFDRCwwQkFBMEIsRUFBRSxXQUFXO3lCQUMxQztxQkFDSjtvQkFDRCxJQUFJO29CQUNKLHdEQUF3RDtvQkFDeEQsZUFBZTtvQkFDZixxRUFBcUU7b0JBQ3JFLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixnSkFBZ0o7b0JBQ2hKLHFDQUFxQztvQkFDckMsVUFBVTtvQkFDVixRQUFRO29CQUNSLE1BQU07b0JBQ04sSUFBSTtpQkFDUDtnQkFDRCxvSEFBb0g7Z0JBQ3BILFdBQVc7Z0JBQ1gsRUFBRTtnQkFDRixxREFBcUQ7Z0JBQ3JELGVBQWU7Z0JBQ2YsNkNBQTZDO2dCQUM3Qyw2QkFBNkI7Z0JBQzdCLDBEQUEwRDtnQkFDMUQsMkNBQTJDO2dCQUMzQyxNQUFNO2dCQUNOLEtBQUs7Z0JBQ0wsSUFBSSxFQUFFO2dCQUNGLElBQUk7Z0JBQ0osdUVBQXVFO2dCQUN2RSxlQUFlO2dCQUNmLDZFQUE2RTtnQkFDN0UsTUFBTTtnQkFDTixJQUFJO2lCQUNQO2FBQ0o7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sR0FBRyxFQUFFO29CQUNEO3dCQUNJLFFBQVEsRUFBRSw4Q0FBOEM7d0JBQ3hELE9BQU8sRUFBRTs0QkFDTCxlQUFlLEVBQUUsT0FBTzs0QkFDeEIsMkJBQTJCLEVBQUU7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsbUNBQW1DO2dDQUNuQywwQkFBMEI7NkJBQzdCOzRCQUNELDJCQUEyQixFQUFFO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLG1DQUFtQztnQ0FDbkMsaUNBQWlDO2dDQUNqQyx1QkFBdUI7NkJBQzFCOzRCQUNELDBCQUEwQixFQUFFLFdBQVc7eUJBQzFDO3FCQUNKO29CQUNEO3dCQUNJLFFBQVEsRUFBRSwwREFBMEQ7d0JBQ3BFLE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSxpSkFBaUo7NEJBQ25LLHdCQUF3QixFQUFFLDBEQUEwRDs0QkFDcEYsZUFBZSxFQUFFLFFBQVE7eUJBQzVCO3FCQUNKO29CQUNELElBQUk7b0JBQ0osd0RBQXdEO29CQUN4RCxlQUFlO29CQUNmLHFFQUFxRTtvQkFDckUsaUJBQWlCO29CQUNqQixnQkFBZ0I7b0JBQ2hCLGdKQUFnSjtvQkFDaEoscUNBQXFDO29CQUNyQyxVQUFVO29CQUNWLFFBQVE7b0JBQ1IsTUFBTTtvQkFDTixJQUFJO2lCQUNQO2dCQUNELG9IQUFvSDtnQkFDcEgsV0FBVztnQkFDWCxxREFBcUQ7Z0JBQ3JELGVBQWU7Z0JBQ2YsNkNBQTZDO2dCQUM3Qyw0QkFBNEI7Z0JBQzVCLE1BQU07Z0JBQ04sS0FBSzthQUNSO1NBQ0o7UUFDRCxTQUFTLEVBQUUsQ0FBQztnQkFDUixZQUFZLEVBQUUsWUFBWTtnQkFDMUIsY0FBYyxFQUFFLG1CQUFtQjthQUN0QyxDQUFDO1FBQ0Ysc0JBQXNCLEVBQUU7WUFDcEI7O2NBRUU7WUFDRixNQUFNLEVBQUU7Z0JBQ0osaUJBQWlCLEVBQUU7b0JBQ2YsS0FBSyxFQUFFLHFCQUFxQixFQUFFLGdEQUFnRDtvQkFDOUUsV0FBVyxFQUFFLGdCQUFnQjtvQkFDN0IsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM1QjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLCtCQUErQixFQUFFLGdEQUFnRDtvQkFDeEYsV0FBVyxFQUFFLDBCQUEwQjtpQkFDMUM7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxnREFBZ0Q7b0JBQ3RGLFVBQVUsRUFBRTt3QkFDUixLQUFLLEVBQUUsaUJBQWlCLEVBQUUsaUVBQWlFO3dCQUMzRixjQUFjLEVBQUUsZ0JBQWdCLENBQUMsNkJBQTZCO3FCQUNqRTtpQkFDSjthQUNKO1lBQ0Q7OztjQUdFO1lBQ0YsT0FBTyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUM7Z0JBQzlELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQztnQkFDN0MsaUJBQWlCLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUMzQztTQUNKO1FBQ0QsYUFBYSxFQUFFLENBQUM7Z0JBQ1osSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSx3QkFBd0I7YUFDdEM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixLQUFLLEVBQUUsMkJBQTJCO2dCQUNsQyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsd0JBQXdCO2FBQ3RDO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsS0FBSyxFQUFFLGlDQUFpQztnQkFDeEMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsZUFBZTtnQkFDckIsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7WUFDRDtnQkFDSSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixLQUFLLEVBQUUsbUNBQW1DO2dCQUMxQyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtTQUNBO0tBQ0o7SUFDRCxZQUFZLEVBQUU7UUFDVixhQUFhLEVBQUUsWUFBWTtRQUMzQixNQUFNLEVBQUU7WUFDSixJQUFJLEVBQUUsUUFBUTtZQUNkLFVBQVUsRUFBRSxTQUFTO1NBQ3hCO1FBQ0QsYUFBYSxFQUFFLENBQUM7Z0JBQ1osSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSx3QkFBd0I7YUFDdEM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixLQUFLLEVBQUUsMkJBQTJCO2dCQUNsQyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsd0JBQXdCO2FBQ3RDO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsS0FBSyxFQUFFLGlDQUFpQztnQkFDeEMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsZUFBZTtnQkFDckIsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7WUFDRDtnQkFDSSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixLQUFLLEVBQUUsbUNBQW1DO2dCQUMxQyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtTQUNBO1FBQ0QsU0FBUyxFQUFFLENBQUM7Z0JBQ1IsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLFlBQVksRUFBRSxtQkFBbUI7Z0JBQ2pDLGNBQWMsRUFBRSxXQUFXO2FBQzlCO1lBQ0Q7Z0JBQ0ksWUFBWSxFQUFFLGlCQUFpQjtnQkFDL0IsY0FBYyxFQUFFLHlCQUF5QjthQUM1QyxDQUFDO1FBQ0Ysc0JBQXNCLEVBQUU7WUFDcEI7O2NBRUU7WUFDRixNQUFNLEVBQUU7Z0JBQ0osaUJBQWlCLEVBQUU7b0JBQ2YsS0FBSyxFQUFFLHFCQUFxQixFQUFFLGdEQUFnRDtvQkFDOUUsV0FBVyxFQUFFLGdCQUFnQjtvQkFDN0IsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM1QjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLCtCQUErQixFQUFFLGdEQUFnRDtvQkFDeEYsV0FBVyxFQUFFLDBCQUEwQjtpQkFDMUM7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxnREFBZ0Q7b0JBQ3RGLFVBQVUsRUFBRTt3QkFDUixLQUFLLEVBQUUsaUJBQWlCLEVBQUUsaUVBQWlFO3dCQUMzRixjQUFjLEVBQUUsZ0JBQWdCLENBQUMsNkJBQTZCO3FCQUNqRTtpQkFDSjthQUNKO1lBQ0Q7OztjQUdFO1lBQ0YsT0FBTyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUM7Z0JBQzlELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQztnQkFDN0MsaUJBQWlCLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUMzQztTQUNKO1FBQ0QsS0FBSyxFQUFFO1lBQ0gsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRSxDQUFDO3dCQUNGLFFBQVEsRUFBRSw4Q0FBOEM7d0JBQ3hELE9BQU8sRUFBRTs0QkFDTCxlQUFlLEVBQUUsT0FBTzs0QkFDeEIsMkJBQTJCLEVBQUU7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsbUNBQW1DO2dDQUNuQywwQkFBMEI7NkJBQzdCOzRCQUNELDJCQUEyQixFQUFFO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLG1DQUFtQztnQ0FDbkMsaUNBQWlDO2dDQUNqQyx1QkFBdUI7NkJBQzFCOzRCQUNELDBCQUEwQixFQUFFLFdBQVc7eUJBQzFDO3FCQUNKLENBQUM7YUFDTDtZQUNELFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUUsQ0FBQzt3QkFDRixRQUFRLEVBQUUsOENBQThDO3dCQUN4RCxPQUFPLEVBQUU7NEJBQ0wsZUFBZSxFQUFFLE9BQU87NEJBQ3hCLDJCQUEyQixFQUFFO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLG1DQUFtQztnQ0FDbkMsMEJBQTBCOzZCQUM3Qjs0QkFDRCwyQkFBMkIsRUFBRTtnQ0FDekIseUJBQXlCO2dDQUN6QixtQ0FBbUM7Z0NBQ25DLGlDQUFpQztnQ0FDakMsdUJBQXVCOzZCQUMxQjs0QkFDRCwwQkFBMEIsRUFBRSxXQUFXO3lCQUMxQztxQkFDSixDQUFDO2FBQ0w7U0FDSjtLQUNKO0lBQ0QsaUJBQWlCLEVBQUU7UUFDZixhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLE1BQU0sRUFBRTtZQUNKLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsVUFBVSxFQUFFLG1CQUFtQjtTQUNsQztRQUNELGFBQWEsRUFBRSxDQUFDO2dCQUNaLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsd0JBQXdCO2FBQ3RDO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsS0FBSyxFQUFFLDJCQUEyQjtnQkFDbEMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLEtBQUssRUFBRSxpQ0FBaUM7Z0JBQ3hDLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFlBQVksRUFBRSxJQUFJO2FBQ3JCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFlBQVksRUFBRSxJQUFJO2FBQ3JCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLHFCQUFxQjtnQkFDM0IsS0FBSyxFQUFFLG1DQUFtQztnQkFDMUMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7U0FDQTtRQUNELEtBQUssRUFBRTtZQUNILFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUU7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLGtEQUFrRDt3QkFDNUQsT0FBTyxFQUFFOzRCQUNMLGtCQUFrQixFQUFFLDZGQUE2Rjs0QkFDakgseUJBQXlCLEVBQUUsV0FBVzs0QkFDdEMsMEJBQTBCLEVBQUUsV0FBVzs0QkFDdkMsWUFBWSxFQUFFLCtCQUErQjt5QkFDaEQ7cUJBQ0o7b0JBQ0Qsb0RBQW9EO29CQUNwRDt3QkFDSSxRQUFRLEVBQUUscURBQXFEO3dCQUMvRCxPQUFPLEVBQUU7NEJBQ0wsSUFBSSxFQUFFLDJCQUEyQjs0QkFDakMsOEhBQThIOzRCQUM5SCxnQkFBZ0IsRUFBRSxpREFBaUQ7NEJBQ25FLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSw2Q0FBNkM7NEJBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsbUJBQW1COzRCQUNyQyxVQUFVLEVBQUUsS0FBSyxDQUFDLDhGQUE4Rjt5QkFDbkg7cUJBQ0o7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLDhDQUE4Qzt3QkFDeEQsT0FBTyxFQUFFOzRCQUNMLGVBQWUsRUFBRSxPQUFPOzRCQUN4QiwyQkFBMkIsRUFBRTtnQ0FDekIsbUJBQW1COzZCQUN0Qjs0QkFDRCwyQkFBMkIsRUFBRTtnQ0FDekIsbUJBQW1COzZCQUN0Qjs0QkFDRCwwQkFBMEIsRUFBRSxXQUFXO3lCQUMxQztxQkFDSjtvQkFFRDt3QkFDSSxRQUFRLEVBQUUsc0RBQXNEO3dCQUNoRSxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUscUhBQXFIO3lCQUMxSTtxQkFDSjtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsd0RBQXdEO3dCQUNsRSxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUsdUNBQXVDO3lCQUM1RDtxQkFDSjtpQkFDSjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsaUhBQWlIO29CQUNqSDt3QkFDSSxRQUFRLEVBQUUsb0RBQW9EO3dCQUM5RCxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUsaUhBQWlIOzRCQUNuSSxFQUFFLEVBQUUsdUpBQXVKOzRCQUMzSixPQUFPLEVBQUUsK0NBQStDOzRCQUN4RCxRQUFRLEVBQUUsbUJBQW1COzRCQUM3QixlQUFlLEVBQUU7Z0NBQ2IsZ0pBQWdKO2dDQUNoSjtvQ0FDSSxRQUFRLEVBQUUsb0RBQW9EO29DQUM5RCxPQUFPLEVBQUU7d0NBQ0wsUUFBUSxFQUFFLElBQUk7d0NBQ2QsRUFBRSxFQUFFLHFDQUFxQzt3Q0FDekMsT0FBTyxFQUFFLG1DQUFtQzt3Q0FDNUMsUUFBUSxFQUFFLG1CQUFtQjtxQ0FDaEM7aUNBQ0o7Z0NBQ0Q7b0NBQ0ksUUFBUSxFQUFFLHFEQUFxRDtvQ0FDL0QsT0FBTyxFQUFFO3dDQUNMLElBQUksRUFBRSx1Q0FBdUM7d0NBQzdDLFFBQVEsRUFBRSxJQUFJO3dDQUNkLFFBQVEsRUFBRSxvQkFBb0I7d0NBQzlCLE9BQU8sRUFBRSxtQkFBbUI7d0NBQzVCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkI7d0NBQ2xFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0NBQWtDO3FDQUN0RDtpQ0FDSjs2QkFDSjt5QkFDSjtxQkFDSjtvQkFDRCxrR0FBa0c7b0JBQ2xHO3dCQUNJLFFBQVEsRUFBRSxvREFBb0Q7d0JBQzlELE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSxnSUFBZ0k7NEJBQ2xKLEVBQUUsRUFBRSxnVUFBZ1U7NEJBQ3BVLE9BQU8sRUFBRSwrQ0FBK0M7NEJBQ3hELFFBQVEsRUFBRSxzQkFBc0I7NEJBQ2hDLGVBQWUsRUFBRTtnQ0FDYjtvQ0FDSSxRQUFRLEVBQUUscURBQXFEO29DQUMvRCxPQUFPLEVBQUU7d0NBQ0wsSUFBSSxFQUFFLHVDQUF1Qzt3Q0FDN0MsUUFBUSxFQUFFLElBQUk7d0NBQ2QsUUFBUSxFQUFFLG9CQUFvQjt3Q0FDOUIsT0FBTyxFQUFFLG1CQUFtQjt3Q0FDNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQjt3Q0FDbEUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQ0FBa0M7cUNBQ3REO2lDQUNKOzZCQUNKO3lCQUNKO3FCQUNKO29CQUNEO3dCQUNJLFFBQVEsRUFBRSxpREFBaUQ7d0JBQzNELE9BQU8sRUFBRTs0QkFDTCxRQUFRLEVBQUUsSUFBSTs0QkFDZCxnQkFBZ0IsRUFBRSx1Q0FBdUM7NEJBQ3pELEtBQUssRUFBRSxPQUFPO3lCQUNqQjtxQkFDSjtpQkFDSjthQUNKO1lBQ0QsdUJBQXVCO1lBQ3ZCLFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUU7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLGtEQUFrRDt3QkFDNUQsT0FBTyxFQUFFOzRCQUNMLGtCQUFrQixFQUFFLGdHQUFnRzs0QkFDcEgseUJBQXlCLEVBQUUsV0FBVzs0QkFDdEMsMEJBQTBCLEVBQUUsV0FBVzs0QkFDdkMsWUFBWSxFQUFFLCtCQUErQjt5QkFDaEQ7cUJBQ0o7b0JBQ0Qsb0RBQW9EO29CQUNwRDt3QkFDSSxRQUFRLEVBQUUscURBQXFEO3dCQUMvRCxPQUFPLEVBQUU7NEJBQ0wsSUFBSSxFQUFFLDJCQUEyQjs0QkFDakMsOEhBQThIOzRCQUM5SCxnQkFBZ0IsRUFBRSxpREFBaUQ7NEJBQ25FLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSw2Q0FBNkM7NEJBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsbUJBQW1COzRCQUNyQyxVQUFVLEVBQUUsS0FBSyxDQUFDLDhGQUE4Rjt5QkFDbkg7cUJBQ0o7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLDhDQUE4Qzt3QkFDeEQsT0FBTyxFQUFFOzRCQUNMLGVBQWUsRUFBRSxPQUFPOzRCQUN4QiwyQkFBMkIsRUFBRTtnQ0FDekIsbUJBQW1COzZCQUN0Qjs0QkFDRCwyQkFBMkIsRUFBRTtnQ0FDekIsbUJBQW1COzZCQUN0Qjs0QkFDRCwwQkFBMEIsRUFBRSxXQUFXO3lCQUMxQztxQkFDSjtvQkFFRDt3QkFDSSxRQUFRLEVBQUUsc0RBQXNEO3dCQUNoRSxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUscUhBQXFIO3lCQUMxSTtxQkFDSjtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsd0RBQXdEO3dCQUNsRSxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUsdUNBQXVDO3lCQUM1RDtxQkFDSjtpQkFDSjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0Y7d0JBQ0ksUUFBUSxFQUFFLG9EQUFvRDt3QkFDOUQsT0FBTyxFQUFFOzRCQUNMLGdCQUFnQixFQUFFLGlIQUFpSDs0QkFDbkksRUFBRSxFQUFFLHVKQUF1Sjs0QkFDM0osT0FBTyxFQUFFLDJDQUEyQzs0QkFDcEQsUUFBUSxFQUFFLG1CQUFtQjs0QkFDN0IsZUFBZSxFQUFFO2dDQUNiLGdKQUFnSjtnQ0FDaEo7b0NBQ0ksUUFBUSxFQUFFLG9EQUFvRDtvQ0FDOUQsT0FBTyxFQUFFO3dDQUNMLFFBQVEsRUFBRSxJQUFJO3dDQUNkLEVBQUUsRUFBRSxxQ0FBcUM7d0NBQ3pDLE9BQU8sRUFBRSxtQ0FBbUM7d0NBQzVDLFFBQVEsRUFBRSxtQkFBbUI7cUNBQ2hDO2lDQUNKO2dDQUNEO29DQUNJLFFBQVEsRUFBRSxxREFBcUQ7b0NBQy9ELE9BQU8sRUFBRTt3Q0FDTCxJQUFJLEVBQUUsdUNBQXVDO3dDQUM3QyxRQUFRLEVBQUUsSUFBSTt3Q0FDZCxRQUFRLEVBQUUsb0JBQW9CO3dDQUM5QixPQUFPLEVBQUUsbUJBQW1CO3dDQUM1QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsMkJBQTJCO3dDQUNsRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtDQUFrQztxQ0FDdEQ7aUNBQ0o7NkJBQ0o7eUJBQ0o7cUJBQ0o7b0JBSUQsa0dBQWtHO29CQUNsRzt3QkFDSSxRQUFRLEVBQUUsb0RBQW9EO3dCQUM5RCxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUsZ0lBQWdJOzRCQUNsSixFQUFFLEVBQUUsZ1VBQWdVOzRCQUNwVSxPQUFPLEVBQUUsK0NBQStDOzRCQUN4RCxRQUFRLEVBQUUsc0JBQXNCOzRCQUNoQyxlQUFlLEVBQUU7Z0NBQ2I7b0NBQ0ksUUFBUSxFQUFFLHFEQUFxRDtvQ0FDL0QsT0FBTyxFQUFFO3dDQUNMLElBQUksRUFBRSx1Q0FBdUM7d0NBQzdDLFFBQVEsRUFBRSxJQUFJO3dDQUNkLFFBQVEsRUFBRSxvQkFBb0I7d0NBQzlCLE9BQU8sRUFBRSxtQkFBbUI7d0NBQzVCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkI7d0NBQ2xFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0NBQWtDO3FDQUN0RDtpQ0FDSjs2QkFDSjt5QkFDSjtxQkFDSjtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsZ0RBQWdEO3dCQUMxRCxPQUFPLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLElBQUk7NEJBQ2QsZ0JBQWdCLEVBQUUsdUNBQXVDOzRCQUN6RCxLQUFLLEVBQUUsT0FBTzt5QkFDakI7cUJBQ0o7aUJBQ0o7YUFDSjtTQUNKO0tBQ0o7SUFDRCw2REFBNkQ7SUFDN0Qsb0JBQW9CLEVBQUU7UUFDbEIsWUFBWSxFQUFFLEtBQUs7UUFDbkIsYUFBYSxFQUFFLFdBQVc7UUFDMUIsYUFBYSxFQUFFLG9CQUFvQjtRQUNuQyxlQUFlLEVBQUU7WUFDYjtnQkFDSSxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSx3QkFBd0I7YUFDdEM7U0FDSjtRQUNELEtBQUssRUFBRTtZQUNILFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUUsRUFDSjtnQkFDRCxRQUFRLEVBQUU7b0JBQ047d0JBQ0ksUUFBUSxFQUFFLGlEQUFpRDt3QkFDM0QsT0FBTyxFQUFFLEVBQ1I7cUJBQ0o7aUJBQ0o7YUFDSjtTQUNKO0tBQ0o7SUFDRCxjQUFjLEVBQUU7UUFDWixZQUFZLEVBQUUsS0FBSztRQUNuQixhQUFhLEVBQUUsTUFBTTtRQUNyQixhQUFhLEVBQUUsY0FBYztRQUM3QixlQUFlLEVBQUUsRUFBRTtRQUNuQixLQUFLLEVBQUUsRUFBRTtLQUNaO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsV0FBVyxFQUFFLE9BQU87UUFDcEIsU0FBUyxFQUFFO1lBQ1AsZ0JBQWdCLEVBQUUsSUFBSTtTQUN6QjtRQUNELEtBQUssRUFBRTtZQUNILFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUU7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLHlDQUF5Qzt3QkFDbkQsT0FBTyxFQUFFOzRCQUNMLFdBQVcsRUFBRSxLQUFLOzRCQUNsQixTQUFTLEVBQUU7Z0NBQ1A7b0NBQ0ksS0FBSyxFQUFFLG1CQUFtQjtvQ0FDMUIsUUFBUSxFQUFFLDhGQUE4RjtpQ0FDM0c7Z0NBQ0Q7b0NBQ0ksS0FBSyxFQUFFLHFCQUFxQjtvQ0FDNUIsUUFBUSxFQUFFLDBEQUEwRDtpQ0FDdkU7NkJBQ0o7eUJBQ0o7cUJBQ0o7aUJBQ0o7YUFDSjtZQUNELFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUU7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLHlDQUF5Qzt3QkFDbkQsT0FBTyxFQUFFOzRCQUNMLFdBQVcsRUFBRSxLQUFLOzRCQUNsQixTQUFTLEVBQUU7Z0NBQ1A7b0NBQ0ksS0FBSyxFQUFFLG1CQUFtQjtvQ0FDMUIsUUFBUSxFQUFFLDhGQUE4RjtpQ0FDM0c7Z0NBQ0Q7b0NBQ0ksS0FBSyxFQUFFLHFCQUFxQjtvQ0FDNUIsUUFBUSxFQUFFLDBEQUEwRDtpQ0FDdkU7NkJBQ0o7eUJBQ0o7cUJBQ0o7aUJBQ0o7YUFDSjtTQUNKO0tBQ0o7Q0FDSixDQUFDIn0=
752
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkdHlwZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3JlY29yZHR5cGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBMkZILHNEQVdDO0FBRUQsMERBdUJDO0FBRUQsNERBTUM7QUFFRCxvRUFRQztBQTlGWSxRQUFBLG1DQUFtQyxHQUFHLFdBQW9CLENBQUM7QUFDM0QsUUFBQSxtQ0FBbUMsR0FBRyxNQUFlLENBQUM7QUFDdEQsUUFBQSxpQ0FBaUMsR0FBRyxVQUFtQixDQUFDO0FBRXJFLFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNwQixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUU5QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sY0FBYyxHQUNoQixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztZQUM1QixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztZQUM1QixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDakIsVUFBVSxJQUFJLElBQUksQ0FBQztZQUNuQixpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDMUIsU0FBUztRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQixVQUFVLElBQUksR0FBRyxDQUFDO1lBQ2xCLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDNUIsT0FBTyxLQUFLLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM5QyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sR0FBRyxHQUFHLEtBQUssSUFBSSxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hELEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0MsT0FBTyxPQUFPLElBQUksY0FBYyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxnQkFBd0IsRUFBRSxRQUF3QjtJQUNwRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2IsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU87UUFDSCx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6Qyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRCx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztLQUMvRCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsZ0JBQXdCLEVBQUUsUUFBd0I7SUFDdEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsZ0JBQWdCLDRCQUE0QixDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixVQUFVLFVBQVUsZ0JBQWdCLDhCQUE4QixDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLDJDQUFtQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksMkNBQW1DLENBQUM7SUFDcEksTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsMkNBQW1DLENBQUM7SUFDakcsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMseUNBQWlDLENBQUM7SUFFbkcsT0FBTztRQUNILEdBQUcsUUFBUTtRQUNYLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUM7UUFDckQsVUFBVTtRQUNWLFVBQVU7UUFDVixZQUFZO1FBQ1osV0FBVztRQUNYLFNBQVM7S0FDWixDQUFDO0FBQ04sQ0FBQztBQUVELFNBQWdCLHdCQUF3QixDQUFDLGdCQUF3QixFQUFFLFNBQWtCO0lBQ2pGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUEwQixDQUFDLENBQUMsQ0FBQztBQUM5RyxDQUFDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQUMsZ0JBQXdCLEVBQUUsU0FBa0IsRUFBRSxVQUFrQjtJQUN6RyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDeEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDO1NBQ3ZELElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUEyQ0QsK0RBQStEO0FBQ2xELFFBQUEsVUFBVSxHQUFxQjtJQUN4QyxNQUFNLEVBQUU7UUFDSixhQUFhLEVBQUUsTUFBTTtRQUNyQixLQUFLLEVBQUU7WUFDSCxRQUFRLEVBQUU7Z0JBQ04sR0FBRyxFQUFFO29CQUNEO3dCQUNJLFFBQVEsRUFBRSw4Q0FBOEM7d0JBQ3hELE9BQU8sRUFBRTs0QkFDTCxlQUFlLEVBQUUsT0FBTzs0QkFDeEIsMkJBQTJCLEVBQUU7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsbUNBQW1DO2dDQUNuQywwQkFBMEI7NkJBQzdCOzRCQUNELDJCQUEyQixFQUFFO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLG1DQUFtQztnQ0FDbkMsaUNBQWlDO2dDQUNqQyx1QkFBdUI7NkJBQzFCOzRCQUNELDBCQUEwQixFQUFFLFdBQVc7eUJBQzFDO3FCQUNKO29CQUNELElBQUk7b0JBQ0osd0RBQXdEO29CQUN4RCxlQUFlO29CQUNmLHFFQUFxRTtvQkFDckUsaUJBQWlCO29CQUNqQixnQkFBZ0I7b0JBQ2hCLGdKQUFnSjtvQkFDaEoscUNBQXFDO29CQUNyQyxVQUFVO29CQUNWLFFBQVE7b0JBQ1IsTUFBTTtvQkFDTixJQUFJO2lCQUNQO2dCQUNELG9IQUFvSDtnQkFDcEgsV0FBVztnQkFDWCxFQUFFO2dCQUNGLHFEQUFxRDtnQkFDckQsZUFBZTtnQkFDZiw2Q0FBNkM7Z0JBQzdDLDZCQUE2QjtnQkFDN0IsMERBQTBEO2dCQUMxRCwyQ0FBMkM7Z0JBQzNDLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxJQUFJLEVBQUU7Z0JBQ0YsSUFBSTtnQkFDSix1RUFBdUU7Z0JBQ3ZFLGVBQWU7Z0JBQ2YsNkVBQTZFO2dCQUM3RSxNQUFNO2dCQUNOLElBQUk7aUJBQ1A7YUFDSjtZQUNELFFBQVEsRUFBRTtnQkFDTixHQUFHLEVBQUU7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLDhDQUE4Qzt3QkFDeEQsT0FBTyxFQUFFOzRCQUNMLGVBQWUsRUFBRSxPQUFPOzRCQUN4QiwyQkFBMkIsRUFBRTtnQ0FDekIseUJBQXlCO2dDQUN6QixtQ0FBbUM7Z0NBQ25DLDBCQUEwQjs2QkFDN0I7NEJBQ0QsMkJBQTJCLEVBQUU7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsbUNBQW1DO2dDQUNuQyxpQ0FBaUM7Z0NBQ2pDLHVCQUF1Qjs2QkFDMUI7NEJBQ0QsMEJBQTBCLEVBQUUsV0FBVzt5QkFDMUM7cUJBQ0o7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLDBEQUEwRDt3QkFDcEUsT0FBTyxFQUFFOzRCQUNMLGdCQUFnQixFQUFFLGlKQUFpSjs0QkFDbkssd0JBQXdCLEVBQUUsMERBQTBEOzRCQUNwRixlQUFlLEVBQUUsUUFBUTt5QkFDNUI7cUJBQ0o7b0JBQ0QsSUFBSTtvQkFDSix3REFBd0Q7b0JBQ3hELGVBQWU7b0JBQ2YscUVBQXFFO29CQUNyRSxpQkFBaUI7b0JBQ2pCLGdCQUFnQjtvQkFDaEIsZ0pBQWdKO29CQUNoSixxQ0FBcUM7b0JBQ3JDLFVBQVU7b0JBQ1YsUUFBUTtvQkFDUixNQUFNO29CQUNOLElBQUk7aUJBQ1A7Z0JBQ0Qsb0hBQW9IO2dCQUNwSCxXQUFXO2dCQUNYLHFEQUFxRDtnQkFDckQsZUFBZTtnQkFDZiw2Q0FBNkM7Z0JBQzdDLDRCQUE0QjtnQkFDNUIsTUFBTTtnQkFDTixLQUFLO2FBQ1I7U0FDSjtRQUNELFNBQVMsRUFBRSxDQUFDO2dCQUNSLFlBQVksRUFBRSxZQUFZO2dCQUMxQixjQUFjLEVBQUUsbUJBQW1CO2FBQ3RDLENBQUM7UUFDRixzQkFBc0IsRUFBRTtZQUNwQjs7Y0FFRTtZQUNGLE1BQU0sRUFBRTtnQkFDSixpQkFBaUIsRUFBRTtvQkFDZixLQUFLLEVBQUUscUJBQXFCLEVBQUUsZ0RBQWdEO29CQUM5RSxXQUFXLEVBQUUsZ0JBQWdCO29CQUM3QixVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQzVCO2dCQUNELFdBQVcsRUFBRTtvQkFDVCxLQUFLLEVBQUUsK0JBQStCLEVBQUUsZ0RBQWdEO29CQUN4RixXQUFXLEVBQUUsMEJBQTBCO2lCQUMxQztnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsS0FBSyxFQUFFLDZCQUE2QixFQUFFLGdEQUFnRDtvQkFDdEYsVUFBVSxFQUFFO3dCQUNSLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxpRUFBaUU7d0JBQzNGLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyw2QkFBNkI7cUJBQ2pFO2lCQUNKO2FBQ0o7WUFDRDs7O2NBR0U7WUFDRixPQUFPLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQztnQkFDOUQsU0FBUyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO2dCQUM3QyxpQkFBaUIsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQzNDO1NBQ0o7UUFDRCxhQUFhLEVBQUUsQ0FBQztnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSx3QkFBd0I7YUFDdEM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixLQUFLLEVBQUUsaUNBQWlDO2dCQUN4QyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtZQUNEO2dCQUNJLElBQUksRUFBRSxlQUFlO2dCQUNyQixLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtZQUNEO2dCQUNJLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLEtBQUssRUFBRSxtQ0FBbUM7Z0JBQzFDLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFlBQVksRUFBRSxJQUFJO2FBQ3JCO1NBQ0E7S0FDSjtJQUNELFlBQVksRUFBRTtRQUNWLGFBQWEsRUFBRSxZQUFZO1FBQzNCLE1BQU0sRUFBRTtZQUNKLElBQUksRUFBRSxRQUFRO1lBQ2QsVUFBVSxFQUFFLFNBQVM7U0FDeEI7UUFDRCxhQUFhLEVBQUUsQ0FBQztnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSx3QkFBd0I7YUFDdEM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixLQUFLLEVBQUUsaUNBQWlDO2dCQUN4QyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtZQUNEO2dCQUNJLElBQUksRUFBRSxlQUFlO2dCQUNyQixLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtZQUNEO2dCQUNJLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLEtBQUssRUFBRSxtQ0FBbUM7Z0JBQzFDLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFlBQVksRUFBRSxJQUFJO2FBQ3JCO1NBQ0E7UUFDRCxTQUFTLEVBQUUsQ0FBQztnQkFDUixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsWUFBWSxFQUFFLG1CQUFtQjtnQkFDakMsY0FBYyxFQUFFLFdBQVc7YUFDOUI7WUFDRDtnQkFDSSxZQUFZLEVBQUUsaUJBQWlCO2dCQUMvQixjQUFjLEVBQUUseUJBQXlCO2FBQzVDLENBQUM7UUFDRixzQkFBc0IsRUFBRTtZQUNwQjs7Y0FFRTtZQUNGLE1BQU0sRUFBRTtnQkFDSixpQkFBaUIsRUFBRTtvQkFDZixLQUFLLEVBQUUscUJBQXFCLEVBQUUsZ0RBQWdEO29CQUM5RSxXQUFXLEVBQUUsZ0JBQWdCO29CQUM3QixVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQzVCO2dCQUNELFdBQVcsRUFBRTtvQkFDVCxLQUFLLEVBQUUsK0JBQStCLEVBQUUsZ0RBQWdEO29CQUN4RixXQUFXLEVBQUUsMEJBQTBCO2lCQUMxQztnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsS0FBSyxFQUFFLDZCQUE2QixFQUFFLGdEQUFnRDtvQkFDdEYsVUFBVSxFQUFFO3dCQUNSLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxpRUFBaUU7d0JBQzNGLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyw2QkFBNkI7cUJBQ2pFO2lCQUNKO2FBQ0o7WUFDRDs7O2NBR0U7WUFDRixPQUFPLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQztnQkFDOUQsU0FBUyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO2dCQUM3QyxpQkFBaUIsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQzNDO1NBQ0o7UUFDRCxLQUFLLEVBQUU7WUFDSCxRQUFRLEVBQUU7Z0JBQ04sR0FBRyxFQUFFLENBQUM7d0JBQ0YsUUFBUSxFQUFFLDhDQUE4Qzt3QkFDeEQsT0FBTyxFQUFFOzRCQUNMLGVBQWUsRUFBRSxPQUFPOzRCQUN4QiwyQkFBMkIsRUFBRTtnQ0FDekIseUJBQXlCO2dDQUN6QixtQ0FBbUM7Z0NBQ25DLDBCQUEwQjs2QkFDN0I7NEJBQ0QsMkJBQTJCLEVBQUU7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsbUNBQW1DO2dDQUNuQyxpQ0FBaUM7Z0NBQ2pDLHVCQUF1Qjs2QkFDMUI7NEJBQ0QsMEJBQTBCLEVBQUUsV0FBVzt5QkFDMUM7cUJBQ0osQ0FBQzthQUNMO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRSxDQUFDO3dCQUNGLFFBQVEsRUFBRSw4Q0FBOEM7d0JBQ3hELE9BQU8sRUFBRTs0QkFDTCxlQUFlLEVBQUUsT0FBTzs0QkFDeEIsMkJBQTJCLEVBQUU7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsbUNBQW1DO2dDQUNuQywwQkFBMEI7NkJBQzdCOzRCQUNELDJCQUEyQixFQUFFO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLG1DQUFtQztnQ0FDbkMsaUNBQWlDO2dDQUNqQyx1QkFBdUI7NkJBQzFCOzRCQUNELDBCQUEwQixFQUFFLFdBQVc7eUJBQzFDO3FCQUNKLENBQUM7YUFDTDtTQUNKO0tBQ0o7SUFDRCxpQkFBaUIsRUFBRTtRQUNmLGFBQWEsRUFBRSxpQkFBaUI7UUFDaEMsTUFBTSxFQUFFO1lBQ0osSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixVQUFVLEVBQUUsbUJBQW1CO1NBQ2xDO1FBQ0QsYUFBYSxFQUFFLENBQUM7Z0JBQ1osSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLElBQUksRUFBRSxPQUFPO2dCQUNiLFNBQVMsRUFBRSx3QkFBd0I7YUFDdEM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixLQUFLLEVBQUUsMkJBQTJCO2dCQUNsQyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsd0JBQXdCO2FBQ3RDO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsS0FBSyxFQUFFLGlDQUFpQztnQkFDeEMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsZUFBZTtnQkFDckIsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUk7YUFDckI7WUFDRDtnQkFDSSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixLQUFLLEVBQUUsbUNBQW1DO2dCQUMxQyxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsSUFBSTtnQkFDZixZQUFZLEVBQUUsSUFBSTthQUNyQjtTQUNBO1FBQ0QsS0FBSyxFQUFFO1lBQ0gsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRTtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsa0RBQWtEO3dCQUM1RCxPQUFPLEVBQUU7NEJBQ0wsa0JBQWtCLEVBQUUsNkZBQTZGOzRCQUNqSCx5QkFBeUIsRUFBRSxXQUFXOzRCQUN0QywwQkFBMEIsRUFBRSxXQUFXOzRCQUN2QyxZQUFZLEVBQUUsK0JBQStCO3lCQUNoRDtxQkFDSjtvQkFDRCxvREFBb0Q7b0JBQ3BEO3dCQUNJLFFBQVEsRUFBRSxxREFBcUQ7d0JBQy9ELE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsMkJBQTJCOzRCQUNqQyw4SEFBOEg7NEJBQzlILGdCQUFnQixFQUFFLGlEQUFpRDs0QkFDbkUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLDZDQUE2Qzs0QkFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQ3JDLFVBQVUsRUFBRSxLQUFLLENBQUMsOEZBQThGO3lCQUNuSDtxQkFDSjtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsOENBQThDO3dCQUN4RCxPQUFPLEVBQUU7NEJBQ0wsZUFBZSxFQUFFLE9BQU87NEJBQ3hCLDJCQUEyQixFQUFFO2dDQUN6QixtQkFBbUI7NkJBQ3RCOzRCQUNELDJCQUEyQixFQUFFO2dDQUN6QixtQkFBbUI7NkJBQ3RCOzRCQUNELDBCQUEwQixFQUFFLFdBQVc7eUJBQzFDO3FCQUNKO29CQUVEO3dCQUNJLFFBQVEsRUFBRSxzREFBc0Q7d0JBQ2hFLE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSxxSEFBcUg7eUJBQzFJO3FCQUNKO29CQUNEO3dCQUNJLFFBQVEsRUFBRSx3REFBd0Q7d0JBQ2xFLE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSx1Q0FBdUM7eUJBQzVEO3FCQUNKO2lCQUNKO2dCQUNELElBQUksRUFBRTtvQkFDRixpSEFBaUg7b0JBQ2pIO3dCQUNJLFFBQVEsRUFBRSxvREFBb0Q7d0JBQzlELE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSxpSEFBaUg7NEJBQ25JLEVBQUUsRUFBRSx1SkFBdUo7NEJBQzNKLE9BQU8sRUFBRSwrQ0FBK0M7NEJBQ3hELFFBQVEsRUFBRSxtQkFBbUI7NEJBQzdCLGVBQWUsRUFBRTtnQ0FDYixnSkFBZ0o7Z0NBQ2hKO29DQUNJLFFBQVEsRUFBRSxvREFBb0Q7b0NBQzlELE9BQU8sRUFBRTt3Q0FDTCxRQUFRLEVBQUUsSUFBSTt3Q0FDZCxFQUFFLEVBQUUscUNBQXFDO3dDQUN6QyxPQUFPLEVBQUUsbUNBQW1DO3dDQUM1QyxRQUFRLEVBQUUsbUJBQW1CO3FDQUNoQztpQ0FDSjtnQ0FDRDtvQ0FDSSxRQUFRLEVBQUUscURBQXFEO29DQUMvRCxPQUFPLEVBQUU7d0NBQ0wsSUFBSSxFQUFFLHVDQUF1Qzt3Q0FDN0MsUUFBUSxFQUFFLElBQUk7d0NBQ2QsUUFBUSxFQUFFLG9CQUFvQjt3Q0FDOUIsT0FBTyxFQUFFLG1CQUFtQjt3Q0FDNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQjt3Q0FDbEUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQ0FBa0M7cUNBQ3REO2lDQUNKOzZCQUNKO3lCQUNKO3FCQUNKO29CQUNELGtHQUFrRztvQkFDbEc7d0JBQ0ksUUFBUSxFQUFFLG9EQUFvRDt3QkFDOUQsT0FBTyxFQUFFOzRCQUNMLGdCQUFnQixFQUFFLGdJQUFnSTs0QkFDbEosRUFBRSxFQUFFLGdVQUFnVTs0QkFDcFUsT0FBTyxFQUFFLCtDQUErQzs0QkFDeEQsUUFBUSxFQUFFLHNCQUFzQjs0QkFDaEMsZUFBZSxFQUFFO2dDQUNiO29DQUNJLFFBQVEsRUFBRSxxREFBcUQ7b0NBQy9ELE9BQU8sRUFBRTt3Q0FDTCxJQUFJLEVBQUUsdUNBQXVDO3dDQUM3QyxRQUFRLEVBQUUsSUFBSTt3Q0FDZCxRQUFRLEVBQUUsb0JBQW9CO3dDQUM5QixPQUFPLEVBQUUsbUJBQW1CO3dDQUM1QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsMkJBQTJCO3dDQUNsRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtDQUFrQztxQ0FDdEQ7aUNBQ0o7NkJBQ0o7eUJBQ0o7cUJBQ0o7b0JBQ0Q7d0JBQ0ksUUFBUSxFQUFFLGlEQUFpRDt3QkFDM0QsT0FBTyxFQUFFOzRCQUNMLFFBQVEsRUFBRSxJQUFJOzRCQUNkLGdCQUFnQixFQUFFLHVDQUF1Qzs0QkFDekQsS0FBSyxFQUFFLE9BQU87eUJBQ2pCO3FCQUNKO2lCQUNKO2FBQ0o7WUFDRCx1QkFBdUI7WUFDdkIsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRTtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsa0RBQWtEO3dCQUM1RCxPQUFPLEVBQUU7NEJBQ0wsa0JBQWtCLEVBQUUsZ0dBQWdHOzRCQUNwSCx5QkFBeUIsRUFBRSxXQUFXOzRCQUN0QywwQkFBMEIsRUFBRSxXQUFXOzRCQUN2QyxZQUFZLEVBQUUsK0JBQStCO3lCQUNoRDtxQkFDSjtvQkFDRCxvREFBb0Q7b0JBQ3BEO3dCQUNJLFFBQVEsRUFBRSxxREFBcUQ7d0JBQy9ELE9BQU8sRUFBRTs0QkFDTCxJQUFJLEVBQUUsMkJBQTJCOzRCQUNqQyw4SEFBOEg7NEJBQzlILGdCQUFnQixFQUFFLGlEQUFpRDs0QkFDbkUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLDZDQUE2Qzs0QkFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQ3JDLFVBQVUsRUFBRSxLQUFLLENBQUMsOEZBQThGO3lCQUNuSDtxQkFDSjtvQkFDRDt3QkFDSSxRQUFRLEVBQUUsOENBQThDO3dCQUN4RCxPQUFPLEVBQUU7NEJBQ0wsZUFBZSxFQUFFLE9BQU87NEJBQ3hCLDJCQUEyQixFQUFFO2dDQUN6QixtQkFBbUI7NkJBQ3RCOzRCQUNELDJCQUEyQixFQUFFO2dDQUN6QixtQkFBbUI7NkJBQ3RCOzRCQUNELDBCQUEwQixFQUFFLFdBQVc7eUJBQzFDO3FCQUNKO29CQUVEO3dCQUNJLFFBQVEsRUFBRSxzREFBc0Q7d0JBQ2hFLE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSxxSEFBcUg7eUJBQzFJO3FCQUNKO29CQUNEO3dCQUNJLFFBQVEsRUFBRSx3REFBd0Q7d0JBQ2xFLE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSx1Q0FBdUM7eUJBQzVEO3FCQUNKO2lCQUNKO2dCQUNELElBQUksRUFBRTtvQkFDRjt3QkFDSSxRQUFRLEVBQUUsb0RBQW9EO3dCQUM5RCxPQUFPLEVBQUU7NEJBQ0wsZ0JBQWdCLEVBQUUsaUhBQWlIOzRCQUNuSSxFQUFFLEVBQUUsdUpBQXVKOzRCQUMzSixPQUFPLEVBQUUsMkNBQTJDOzRCQUNwRCxRQUFRLEVBQUUsbUJBQW1COzRCQUM3QixlQUFlLEVBQUU7Z0NBQ2IsZ0pBQWdKO2dDQUNoSjtvQ0FDSSxRQUFRLEVBQUUsb0RBQW9EO29DQUM5RCxPQUFPLEVBQUU7d0NBQ0wsUUFBUSxFQUFFLElBQUk7d0NBQ2QsRUFBRSxFQUFFLHFDQUFxQzt3Q0FDekMsT0FBTyxFQUFFLG1DQUFtQzt3Q0FDNUMsUUFBUSxFQUFFLG1CQUFtQjtxQ0FDaEM7aUNBQ0o7Z0NBQ0Q7b0NBQ0ksUUFBUSxFQUFFLHFEQUFxRDtvQ0FDL0QsT0FBTyxFQUFFO3dDQUNMLElBQUksRUFBRSx1Q0FBdUM7d0NBQzdDLFFBQVEsRUFBRSxJQUFJO3dDQUNkLFFBQVEsRUFBRSxvQkFBb0I7d0NBQzlCLE9BQU8sRUFBRSxtQkFBbUI7d0NBQzVCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkI7d0NBQ2xFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0NBQWtDO3FDQUN0RDtpQ0FDSjs2QkFDSjt5QkFDSjtxQkFDSjtvQkFJRCxrR0FBa0c7b0JBQ2xHO3dCQUNJLFFBQVEsRUFBRSxvREFBb0Q7d0JBQzlELE9BQU8sRUFBRTs0QkFDTCxnQkFBZ0IsRUFBRSxnSUFBZ0k7NEJBQ2xKLEVBQUUsRUFBRSxnVUFBZ1U7NEJBQ3BVLE9BQU8sRUFBRSwrQ0FBK0M7NEJBQ3hELFFBQVEsRUFBRSxzQkFBc0I7NEJBQ2hDLGVBQWUsRUFBRTtnQ0FDYjtvQ0FDSSxRQUFRLEVBQUUscURBQXFEO29DQUMvRCxPQUFPLEVBQUU7d0NBQ0wsSUFBSSxFQUFFLHVDQUF1Qzt3Q0FDN0MsUUFBUSxFQUFFLElBQUk7d0NBQ2QsUUFBUSxFQUFFLG9CQUFvQjt3Q0FDOUIsT0FBTyxFQUFFLG1CQUFtQjt3Q0FDNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQjt3Q0FDbEUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQ0FBa0M7cUNBQ3REO2lDQUNKOzZCQUNKO3lCQUNKO3FCQUNKO29CQUNEO3dCQUNJLFFBQVEsRUFBRSxnREFBZ0Q7d0JBQzFELE9BQU8sRUFBRTs0QkFDTCxRQUFRLEVBQUUsSUFBSTs0QkFDZCxnQkFBZ0IsRUFBRSx1Q0FBdUM7NEJBQ3pELEtBQUssRUFBRSxPQUFPO3lCQUNqQjtxQkFDSjtpQkFDSjthQUNKO1NBQ0o7S0FDSjtJQUNELDZEQUE2RDtJQUM3RCxvQkFBb0IsRUFBRTtRQUNsQixZQUFZLEVBQUUsS0FBSztRQUNuQixhQUFhLEVBQUUsV0FBVztRQUMxQixhQUFhLEVBQUUsb0JBQW9CO1FBQ25DLGVBQWUsRUFBRTtZQUNiO2dCQUNJLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsd0JBQXdCO2FBQ3RDO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsS0FBSyxFQUFFLDJCQUEyQjtnQkFDbEMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztTQUNKO1FBQ0QsS0FBSyxFQUFFO1lBQ0gsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRSxFQUNKO2dCQUNELFFBQVEsRUFBRTtvQkFDTjt3QkFDSSxRQUFRLEVBQUUsaURBQWlEO3dCQUMzRCxPQUFPLEVBQUUsRUFDUjtxQkFDSjtpQkFDSjthQUNKO1NBQ0o7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFNBQVMsRUFBRTtZQUNQLGdCQUFnQixFQUFFLElBQUk7U0FDekI7UUFDRCxLQUFLLEVBQUU7WUFDSCxRQUFRLEVBQUU7Z0JBQ04sR0FBRyxFQUFFO29CQUNEO3dCQUNJLFFBQVEsRUFBRSx5Q0FBeUM7d0JBQ25ELE9BQU8sRUFBRTs0QkFDTCxXQUFXLEVBQUUsS0FBSzs0QkFDbEIsU0FBUyxFQUFFO2dDQUNQO29DQUNJLEtBQUssRUFBRSxtQkFBbUI7b0NBQzFCLFFBQVEsRUFBRSw4RkFBOEY7aUNBQzNHO2dDQUNEO29DQUNJLEtBQUssRUFBRSxxQkFBcUI7b0NBQzVCLFFBQVEsRUFBRSwwREFBMEQ7aUNBQ3ZFOzZCQUNKO3lCQUNKO3FCQUNKO2lCQUNKO2FBQ0o7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sR0FBRyxFQUFFO29CQUNEO3dCQUNJLFFBQVEsRUFBRSx5Q0FBeUM7d0JBQ25ELE9BQU8sRUFBRTs0QkFDTCxXQUFXLEVBQUUsS0FBSzs0QkFDbEIsU0FBUyxFQUFFO2dDQUNQO29DQUNJLEtBQUssRUFBRSxtQkFBbUI7b0NBQzFCLFFBQVEsRUFBRSw4RkFBOEY7aUNBQzNHO2dDQUNEO29DQUNJLEtBQUssRUFBRSxxQkFBcUI7b0NBQzVCLFFBQVEsRUFBRSwwREFBMEQ7aUNBQ3ZFOzZCQUNKO3lCQUNKO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSjtLQUNKO0NBQ0osQ0FBQyJ9
@@ -7,10 +7,13 @@
7
7
  export interface RouteTargetObject {
8
8
  controller?: string;
9
9
  action?: string;
10
- policy?: string;
10
+ policy?: string | string[];
11
11
  csrf?: boolean;
12
12
  skipAssets?: boolean;
13
- locals?: Record<string, unknown>;
13
+ locals?: Record<string, unknown> & {
14
+ pageTitleKey?: string;
15
+ pageTitle?: string;
16
+ };
14
17
  view?: string;
15
18
  }
16
19
  export type RouteTarget = string | RouteTargetObject;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.config.d.ts","sourceRoot":"","sources":["../../src/config/routes.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAErD,MAAM,WAAW,YAAY;IACzB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC;CACvC;AAED,eAAO,MAAM,MAAM,EAAE,YAqapB,CAAC"}
1
+ {"version":3,"file":"routes.config.d.ts","sourceRoot":"","sources":["../../src/config/routes.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAErD,MAAM,WAAW,YAAY;IACzB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC;CACvC;AAED,eAAO,MAAM,MAAM,EAAE,YAgUpB,CAAC"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.routes = void 0;
10
+ const api_routes_1 = require("../api-routes");
10
11
  exports.routes = {
11
12
  // CSRF Token
12
13
  'GET /csrfToken': { action: 'security/grant-csrf-token' },
@@ -15,23 +16,22 @@ exports.routes = {
15
16
  '/:branding/:portal/home': {
16
17
  controller: 'RenderViewController',
17
18
  action: 'render',
18
- locals: { 'view': 'homepage' }
19
+ locals: { 'view': 'homepage', pageTitleKey: 'welcome-title' }
19
20
  },
20
21
  '/:branding/:portal/researcher/home': {
21
22
  controller: 'RenderViewController',
22
23
  action: 'render',
23
- locals: { 'view': 'researcher/home' }
24
+ locals: { 'view': 'researcher/home', pageTitleKey: 'welcome-title' }
24
25
  },
25
26
  // Record view routes
26
27
  '/:branding/:portal/record/view/:oid': {
27
- controller: 'RenderViewController',
28
- action: 'render',
29
- locals: { 'view': 'record/view' }
28
+ controller: 'RecordController',
29
+ action: 'view'
30
30
  },
31
31
  '/:branding/:portal/record/search': {
32
32
  controller: 'RenderViewController',
33
33
  action: 'render',
34
- locals: { 'view': 'record/search' }
34
+ locals: { 'view': 'record/search', pageTitleKey: 'record-search-heading' }
35
35
  },
36
36
  '/:branding/:portal/record/view-orig/:oid': {
37
37
  controller: 'RenderViewController',
@@ -82,11 +82,6 @@ exports.routes = {
82
82
  action: 'usersIndex',
83
83
  skipAssets: true
84
84
  },
85
- '/:branding/:portal/admin/supportAgreement': {
86
- controller: 'AdminController',
87
- action: 'supportAgreementIndex',
88
- skipAssets: true
89
- },
90
85
  'get /:branding/:portal/admin/vocabulary/manager': {
91
86
  controller: 'VocabularyController',
92
87
  action: 'manager'
@@ -129,7 +124,7 @@ exports.routes = {
129
124
  '/:branding/:portal/availableServicesList': {
130
125
  controller: 'RenderViewController',
131
126
  action: 'render',
132
- locals: { 'view': 'availableServicesList' }
127
+ locals: { 'view': 'availableServicesList', pageTitle: 'List of available services' }
133
128
  },
134
129
  '/:branding/:portal/workspaces/list': {
135
130
  controller: 'RecordController',
@@ -138,17 +133,15 @@ exports.routes = {
138
133
  '/:branding/:portal/getAdvice': {
139
134
  controller: 'RenderViewController',
140
135
  action: 'render',
141
- locals: { 'view': 'getAdvice' }
136
+ locals: { 'view': 'getAdvice', pageTitle: 'Get advice' }
142
137
  },
143
138
  // Dynamic asset routes
144
139
  'get /dynamic/:asset': 'DynamicAssetController.get',
145
140
  'get /:branding/:portal/dynamic/:asset': 'DynamicAssetController.get',
146
141
  'get /:branding/:portal/dynamicAsset/formCompiledItems/:recordType/:oid?': 'DynamicAssetController.getFormCompiledItems',
147
- 'get /:branding/:portal/dynamicAsset/formStructureValidations/:recordType/:oid?': 'DynamicAssetController.getFormStructureValidations',
148
- 'get /:branding/:portal/dynamicAsset/formDataValidations/:recordType/:oid?': 'DynamicAssetController.getFormDataValidations',
149
- 'get /:branding/:portal/dynamicAsset/formExpressions/:recordType/:oid?': 'DynamicAssetController.getFormExpressions',
150
142
  'get /:branding/:portal/dynamicAsset/adminReportTemplates/:reportName': 'DynamicAssetController.getAdminReportTemplates',
151
143
  'get /:branding/:portal/dynamicAsset/recordDashboardTemplates/:recordType/:workflowStage': 'DynamicAssetController.getRecordDashboardTemplates',
144
+ 'get /:branding/:portal/dynamicAsset/dashboardViewTemplates/:dashboardView/:stepName': 'DynamicAssetController.getDashboardViewTemplates',
152
145
  // Auth routes
153
146
  'post /user/login_local': 'UserController.localLogin',
154
147
  'post /user/login_aaf': { controller: 'UserController', action: 'aafLogin', csrf: false },
@@ -189,6 +182,7 @@ exports.routes = {
189
182
  'get /:branding/:portal/record/type': 'RecordController.getAllTypes',
190
183
  'get /:branding/:portal/dashboard/type/:dashboardType': 'RecordController.getDashboardType',
191
184
  'get /:branding/:portal/dashboard/type': 'RecordController.getAllDashboardTypes',
185
+ 'get /:branding/:portal/dashboard/view/:dashboardView': 'RecordController.getDashboardView',
192
186
  'get /:branding/:portal/record/type/:recordType': 'RecordController.getType',
193
187
  'get /:branding/:portal/record/:recordType/edit': 'RecordController.edit',
194
188
  'get /:branding/:portal/record/edit/:oid': 'RecordController.edit',
@@ -216,7 +210,9 @@ exports.routes = {
216
210
  'post /:branding/:portal/recordmeta/:recordType': 'RecordController.create',
217
211
  'put /:branding/:portal/recordmeta/:oid': 'RecordController.update',
218
212
  'post /:branding/:portal/record/workflow/step/:targetStep/:oid': 'RecordController.stepTo',
213
+ 'get /:branding/:portal/dashboard/consolidated': 'RecordController.redirectLegacyConsolidatedDashboard',
219
214
  'get /:branding/:portal/dashboard/:recordType': 'RecordController.render',
215
+ 'get /:branding/:portal/dashboard-view/:dashboardView': 'RecordController.renderDashboardView',
220
216
  'get /:branding/:portal/listRecords': 'RecordController.getRecordList',
221
217
  'get /:branding/:portal/listDeletedRecords': 'RecordController.getDeletedRecordList',
222
218
  // Vocab routes
@@ -224,6 +220,10 @@ exports.routes = {
224
220
  controller: 'FormVocabularyController',
225
221
  action: 'get'
226
222
  },
223
+ 'get /:branding/:portal/vocab/:vocabIdOrSlug/expandPath': {
224
+ controller: 'FormVocabularyController',
225
+ action: 'expandPath'
226
+ },
227
227
  'get /:branding/:portal/vocab/:vocabIdOrSlug/entries': {
228
228
  controller: 'FormVocabularyController',
229
229
  action: 'entries'
@@ -236,6 +236,10 @@ exports.routes = {
236
236
  controller: 'FormVocabularyController',
237
237
  action: 'getRecords'
238
238
  },
239
+ 'post /:branding/:portal/service/vocab/:serviceId': {
240
+ controller: 'FormVocabularyController',
241
+ action: 'serviceEntries'
242
+ },
239
243
  'post /:branding/:portal/external/vocab/:provider': {
240
244
  controller: 'FormVocabularyController',
241
245
  action: 'externalEntries'
@@ -261,6 +265,12 @@ exports.routes = {
261
265
  'get /:branding/:portal/api-docs.apib': 'BrandingController.renderApiB',
262
266
  'get /:branding/:portal/api-docs.json': 'BrandingController.renderSwaggerJSON',
263
267
  'get /:branding/:portal/api-docs.yaml': 'BrandingController.renderSwaggerYAML',
268
+ 'get /:branding/:portal/admin/api-docs': {
269
+ controller: 'RenderViewController',
270
+ action: 'render',
271
+ locals: { 'view': 'admin/api-docs', 'layout': false }
272
+ },
273
+ 'get /:branding/:portal/admin/api-docs/openapi.json': 'BrandingController.renderSwaggerJSON',
264
274
  // User key management
265
275
  'post /:branding/:portal/user/genKey': 'UserController.generateUserKey',
266
276
  'post /:branding/:portal/user/revokeKey': 'UserController.revokeUserKey',
@@ -280,95 +290,7 @@ exports.routes = {
280
290
  action: 'render',
281
291
  locals: { 'view': 'admin/branding' }
282
292
  },
283
- // REST API routes - Records
284
- 'post /:branding/:portal/api/records/metadata/:recordType': { controller: 'webservice/RecordController', action: 'create', csrf: false },
285
- 'put /:branding/:portal/api/records/metadata/:oid': { controller: 'webservice/RecordController', action: 'updateMeta', csrf: false },
286
- 'post /:branding/:portal/api/records/harvest/:recordType': { controller: 'webservice/RecordController', action: 'harvest', csrf: false },
287
- 'post /:branding/:portal/api/mint/harvest/:recordType': { controller: 'webservice/RecordController', action: 'legacyHarvest', csrf: false },
288
- 'put /:branding/:portal/api/records/objectmetadata/:oid': { controller: 'webservice/RecordController', action: 'updateObjectMeta', csrf: false },
289
- 'get /:branding/:portal/api/records/metadata/:oid': { controller: 'webservice/RecordController', action: 'getMeta', csrf: false },
290
- 'get /:branding/:portal/api/records/audit/:oid': { controller: 'webservice/RecordController', action: 'getRecordAudit', csrf: false },
291
- 'get /:branding/:portal/api/integration-audit/:oid': { controller: 'webservice/IntegrationAuditController', action: 'getAuditLog', csrf: false },
292
- 'get /:branding/:portal/api/records/list': { controller: 'webservice/RecordController', action: 'listRecords', csrf: false },
293
- 'get /:branding/:portal/api/deletedrecords/list': { controller: 'webservice/RecordController', action: 'listDeletedRecords', csrf: false },
294
- 'put /:branding/:portal/api/deletedrecords/:oid': { controller: 'webservice/RecordController', action: 'restoreRecord', csrf: false },
295
- 'delete /:branding/:portal/api/deletedrecords/:oid': { controller: 'webservice/RecordController', action: 'destroyDeletedRecord', csrf: false },
296
- 'get /:branding/:portal/api/records/objectmetadata/:oid': { controller: 'webservice/RecordController', action: 'getObjectMeta', csrf: false },
297
- 'delete /:branding/:portal/api/records/metadata/:oid': { controller: 'webservice/RecordController', action: 'deleteRecord', csrf: false },
298
- // REST API routes - Permissions
299
- 'post /:branding/:portal/api/records/permissions/edit/:oid': { controller: 'webservice/RecordController', action: 'addUserEdit', csrf: false },
300
- 'delete /:branding/:portal/api/records/permissions/edit/:oid': { controller: 'webservice/RecordController', action: 'removeUserEdit', csrf: false },
301
- 'post /:branding/:portal/api/records/permissions/view/:oid': { controller: 'webservice/RecordController', action: 'addUserView', csrf: false },
302
- 'delete /:branding/:portal/api/records/permissions/view/:oid': { controller: 'webservice/RecordController', action: 'removeUserView', csrf: false },
303
- 'post /:branding/:portal/api/records/permissions/editRole/:oid': { controller: 'webservice/RecordController', action: 'addRoleEdit', csrf: false },
304
- 'delete /:branding/:portal/api/records/permissions/editRole/:oid': { controller: 'webservice/RecordController', action: 'removeRoleEdit', csrf: false },
305
- 'post /:branding/:portal/api/records/permissions/viewRole/:oid': { controller: 'webservice/RecordController', action: 'addRoleView', csrf: false },
306
- 'delete /:branding/:portal/api/records/permissions/viewRole/:oid': { controller: 'webservice/RecordController', action: 'removeRoleView', csrf: false },
307
- 'get /:branding/:portal/api/records/permissions/:oid': { controller: 'webservice/RecordController', action: 'getPermissions', csrf: false },
308
- // REST API routes - Datastreams
309
- 'post /:branding/:portal/api/records/datastreams/:oid': { controller: 'webservice/RecordController', action: 'addDataStreams', csrf: false },
310
- 'get /:branding/:portal/api/records/datastreams/:oid/:datastreamId': { controller: 'webservice/RecordController', action: 'getDataStream', csrf: false },
311
- 'get /:branding/:portal/api/records/datastreams/:oid': { controller: 'webservice/RecordController', action: 'listDatastreams', csrf: false },
312
- // REST API routes - Workflow
313
- 'post /:branding/:portal/api/records/workflow/step/:targetStep/:oid': { controller: 'webservice/RecordController', action: 'transitionWorkflow', csrf: false },
314
- // REST API routes - Users
315
- 'get /:branding/:portal/api/users': { controller: 'webservice/UserManagementController', action: 'listUsers', csrf: false },
316
- 'get /:branding/:portal/api/users/find': { controller: 'webservice/UserManagementController', action: 'getUser', csrf: false },
317
- 'get /:branding/:portal/api/users/get': { controller: 'webservice/UserManagementController', action: 'getUser', csrf: false },
318
- 'get /:branding/:portal/api/users/link/candidates': { controller: 'webservice/UserManagementController', action: 'searchLinkCandidates', csrf: false },
319
- 'get /:branding/:portal/api/users/:id/links': { controller: 'webservice/UserManagementController', action: 'getUserLinks', csrf: false },
320
- 'get /:branding/:portal/api/users/:id/audit': { controller: 'webservice/UserManagementController', action: 'getUserAudit', csrf: false },
321
- 'post /:branding/:portal/api/users/link': { controller: 'webservice/UserManagementController', action: 'linkAccounts', csrf: false },
322
- 'put /:branding/:portal/api/users': { controller: 'webservice/UserManagementController', action: 'createUser', csrf: false },
323
- 'post /:branding/:portal/api/users': { controller: 'webservice/UserManagementController', action: 'updateUser', csrf: false },
324
- 'post /:branding/:portal/api/users/:id/disable': { controller: 'webservice/UserManagementController', action: 'disableUser', csrf: false },
325
- 'post /:branding/:portal/api/users/:id/enable': { controller: 'webservice/UserManagementController', action: 'enableUser', csrf: false },
326
- 'get /:branding/:portal/api/users/token/generate': { controller: 'webservice/UserManagementController', action: 'generateAPIToken', csrf: false },
327
- 'get /:branding/:portal/api/users/token/revoke': { controller: 'webservice/UserManagementController', action: 'revokeAPIToken', csrf: false },
328
- // REST API routes - Roles
329
- 'get /:branding/:portal/api/roles': { controller: 'webservice/UserManagementController', action: 'listSystemRoles', csrf: false },
330
- 'post /:branding/:portal/api/roles/:roleName': { controller: 'webservice/UserManagementController', action: 'createSystemRole', csrf: false },
331
- // REST API routes - Search
332
- 'get /:branding/:portal/api/search': { controller: 'webservice/SearchController', action: 'search', csrf: false },
333
- 'get /:branding/:portal/api/search/index': { controller: 'webservice/SearchController', action: 'index', csrf: false },
334
- 'get /:branding/:portal/api/search/indexAll': { controller: 'webservice/SearchController', action: 'indexAll', csrf: false },
335
- 'get /:branding/:portal/api/search/removeAll': { controller: 'webservice/SearchController', action: 'removeAll', csrf: false },
336
- // REST API routes - Forms
337
- 'get /:branding/:portal/api/forms/get': { controller: 'webservice/FormManagementController', action: 'getForm', csrf: false },
338
- 'get /:branding/:portal/api/forms': { controller: 'webservice/FormManagementController', action: 'listForms', csrf: false },
339
- // REST API routes - Vocabulary
340
- 'get /:branding/:portal/api/vocabulary': { controller: 'webservice/VocabularyController', action: 'list', csrf: false },
341
- 'post /:branding/:portal/api/vocabulary/import': { controller: 'webservice/VocabularyController', action: 'import', csrf: false },
342
- 'get /:branding/:portal/api/vocabulary/:id': { controller: 'webservice/VocabularyController', action: 'get', csrf: false },
343
- 'post /:branding/:portal/api/vocabulary': { controller: 'webservice/VocabularyController', action: 'create', csrf: false },
344
- 'put /:branding/:portal/api/vocabulary/:id': { controller: 'webservice/VocabularyController', action: 'update', csrf: false },
345
- 'put /:branding/:portal/api/vocabulary/:id/reorder': { controller: 'webservice/VocabularyController', action: 'reorder', csrf: false },
346
- 'delete /:branding/:portal/api/vocabulary/:id': { controller: 'webservice/VocabularyController', action: 'delete', csrf: false },
347
- 'post /:branding/:portal/api/vocabulary/:id/sync': { controller: 'webservice/VocabularyController', action: 'sync', csrf: false },
348
- // REST API routes - Record Types
349
- 'get /:branding/:portal/api/recordtypes/get': { controller: 'webservice/RecordTypeController', action: 'getRecordType', csrf: false },
350
- 'get /:branding/:portal/api/recordtypes': { controller: 'webservice/RecordTypeController', action: 'listRecordTypes', csrf: false },
351
- // REST API routes - Admin
352
- 'get /:branding/:portal/api/admin/refreshCachedResources': { controller: 'webservice/AdminController', action: 'refreshCachedResources', csrf: false },
353
- 'post /:branding/:portal/api/admin/config/:configKey': { controller: 'webservice/AdminController', action: 'setAppConfig', csrf: false },
354
- 'get /:branding/:portal/api/admin/config/:configKey': { controller: 'webservice/AdminController', action: 'getAppConfig', csrf: false },
355
- 'get /:branding/:portal/api/admin/config': { controller: 'webservice/AdminController', action: 'getAppConfig', csrf: false },
356
- // REST API routes - Notifications
357
- 'post /:branding/:portal/api/sendNotification': { controller: 'EmailController', action: 'sendNotification', csrf: false },
358
- // REST API routes - Reports
359
- 'get /:branding/:portal/api/report/namedQuery': { controller: 'webservice/ReportController', action: 'executeNamedQuery', csrf: false },
360
- // REST API routes - Export
361
- 'get /:branding/:portal/api/export/record/download/:format': { controller: 'webservice/ExportController', action: 'downloadRecs', csrf: false },
362
- // REST API routes - App Config
363
- 'get /:branding/:portal/api/appconfig/:appConfigId': { controller: 'webservice/AppConfigController', action: 'getAppConfig', csrf: false },
364
- 'post /:branding/:portal/api/appconfig/:appConfigId': { controller: 'webservice/AppConfigController', action: 'saveAppConfig', csrf: false },
365
- // REST API routes - Branding
366
- 'post /:branding/:portal/api/branding/draft': { controller: 'webservice/BrandingController', action: 'draft', csrf: false },
367
- 'post /:branding/:portal/api/branding/preview': { controller: 'webservice/BrandingController', action: 'preview', csrf: false },
368
- 'post /:branding/:portal/api/branding/publish': { controller: 'webservice/BrandingController', action: 'publish', csrf: false },
369
- 'post /:branding/:portal/api/branding/rollback/:versionId': { controller: 'webservice/BrandingController', action: 'rollback', csrf: false },
370
- 'post /:branding/:portal/api/branding/logo': { controller: 'webservice/BrandingController', action: 'logo', csrf: false },
371
- 'get /:branding/:portal/api/branding/history': { controller: 'webservice/BrandingController', action: 'history', csrf: false },
293
+ ...(0, api_routes_1.buildMergedApiRouteConfig)(),
372
294
  // Translation routes
373
295
  'get /:branding/:portal/locales/:lng/:ns.json': { controller: 'TranslationController', action: 'getNamespace', csrf: false },
374
296
  'get /:branding/:portal/locales/:lng/translation.json': { controller: 'TranslationController', action: 'getNamespace', csrf: false },
@@ -376,13 +298,6 @@ exports.routes = {
376
298
  // Workspace routes
377
299
  'get /:branding/:portal/workspaces/types/:name': 'WorkspaceTypesController.getOne',
378
300
  'get /:branding/:portal/workspaces/types': 'WorkspaceTypesController.get',
379
- // REST API routes - i18n
380
- 'get /:branding/:portal/api/i18n/entries': { controller: 'webservice/TranslationController', action: 'listEntries', csrf: false },
381
- 'get /:branding/:portal/api/i18n/entries/:locale/:namespace/:key*': { controller: 'webservice/TranslationController', action: 'getEntry', csrf: false },
382
- 'post /:branding/:portal/api/i18n/entries/:locale/:namespace/:key*': { controller: 'webservice/TranslationController', action: 'setEntry', csrf: false },
383
- 'delete /:branding/:portal/api/i18n/entries/:locale/:namespace/:key*': { controller: 'webservice/TranslationController', action: 'deleteEntry', csrf: false },
384
- 'get /:branding/:portal/api/i18n/bundles/:locale/:namespace': { controller: 'webservice/TranslationController', action: 'getBundle', csrf: false },
385
- 'post /:branding/:portal/api/i18n/bundles/:locale/:namespace': { controller: 'webservice/TranslationController', action: 'setBundle', csrf: false },
386
301
  // App i18n routes (CSRF enabled)
387
302
  'get /:branding/:portal/app/i18n/entries': { controller: 'TranslationController', action: 'listEntriesApp' },
388
303
  'post /:branding/:portal/app/i18n/entries/:locale/:namespace/:key*': { controller: 'TranslationController', action: 'setEntryApp' },
@@ -390,4 +305,4 @@ exports.routes = {
390
305
  'post /:branding/:portal/app/i18n/bundles/:locale/:namespace': { controller: 'TranslationController', action: 'setBundleApp' },
391
306
  'post /:branding/:portal/app/i18n/bundles/:locale/:namespace/enabled': { controller: 'webservice/TranslationController', action: 'updateBundleEnabled' }
392
307
  };
393
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvcm91dGVzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQWtCVSxRQUFBLE1BQU0sR0FBaUI7SUFDaEMsYUFBYTtJQUNiLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLDJCQUEyQixFQUFFO0lBRXpELGNBQWM7SUFDZCxHQUFHLEVBQUUsb0JBQW9CO0lBQ3pCLHlCQUF5QixFQUFFO1FBQ3ZCLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRTtLQUNqQztJQUNELG9DQUFvQyxFQUFFO1FBQ2xDLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFO0tBQ3hDO0lBRUQscUJBQXFCO0lBQ3JCLHFDQUFxQyxFQUFFO1FBQ25DLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRTtLQUNwQztJQUNELGtDQUFrQyxFQUFFO1FBQ2hDLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRTtLQUN0QztJQUNELDBDQUEwQyxFQUFFO1FBQ3hDLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFO0tBQ3pDO0lBRUQsMEJBQTBCO0lBQzFCLHlDQUF5QyxFQUFFO1FBQ3ZDLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsTUFBTSxFQUFFLFdBQVc7S0FDdEI7SUFDRCxzREFB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
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvcm91dGVzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUVILDhDQUEwRDtBQXFCN0MsUUFBQSxNQUFNLEdBQWlCO0lBQ2hDLGFBQWE7SUFDYixnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSwyQkFBMkIsRUFBRTtJQUV6RCxjQUFjO0lBQ2QsR0FBRyxFQUFFLG9CQUFvQjtJQUN6Qix5QkFBeUIsRUFBRTtRQUN2QixVQUFVLEVBQUUsc0JBQXNCO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRTtLQUNoRTtJQUNELG9DQUFvQyxFQUFFO1FBQ2xDLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUU7S0FDdkU7SUFFRCxxQkFBcUI7SUFDckIscUNBQXFDLEVBQUU7UUFDbkMsVUFBVSxFQUFFLGtCQUFrQjtRQUM5QixNQUFNLEVBQUUsTUFBTTtLQUNqQjtJQUNELGtDQUFrQyxFQUFFO1FBQ2hDLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUU7S0FDN0U7SUFDRCwwQ0FBMEMsRUFBRTtRQUN4QyxVQUFVLEVBQUUsc0JBQXNCO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRTtLQUN6QztJQUVELDBCQUEwQjtJQUMxQix5Q0FBeUMsRUFBRTtRQUN2QyxVQUFVLEVBQUUsb0JBQW9CO1FB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
@@ -4,9 +4,10 @@
4
4
  *
5
5
  * Storage service configuration with Flydrive v2 disk support.
6
6
  */
7
+ export type Visibility = 'public' | 'private';
7
8
  export interface FSDriverOptions {
8
9
  root: string;
9
- visibility?: string;
10
+ visibility?: Visibility;
10
11
  }
11
12
  export interface S3DriverOptions {
12
13
  key: string;
@@ -14,15 +15,30 @@ export interface S3DriverOptions {
14
15
  bucket: string;
15
16
  region: string;
16
17
  endpoint?: string;
17
- visibility?: string;
18
+ forcePathStyle?: boolean;
19
+ bucketEndpoint?: boolean;
20
+ tls?: boolean;
21
+ useAccelerateEndpoint?: boolean;
22
+ supportsACL?: boolean;
23
+ visibility?: Visibility;
18
24
  [key: string]: unknown;
19
25
  }
26
+ export interface GridFSDriverOptions {
27
+ datastore?: string;
28
+ url?: string;
29
+ databaseName?: string;
30
+ bucketName?: string;
31
+ visibility?: Visibility;
32
+ }
20
33
  export type DiskConfig = {
21
34
  driver: 'fs';
22
35
  config: FSDriverOptions;
23
36
  } | {
24
37
  driver: 's3';
25
38
  config: S3DriverOptions;
39
+ } | {
40
+ driver: 'gridfs';
41
+ config: GridFSDriverOptions;
26
42
  };
27
43
  export interface StorageConfig {
28
44
  /** Name of the storage service to use */
@@ -33,6 +49,8 @@ export interface StorageConfig {
33
49
  stagingDisk?: string;
34
50
  /** Name of the primary disk (where files are permanently stored) */
35
51
  primaryDisk?: string;
52
+ /** Prefix for object keys in the primary disk */
53
+ keyPrefix?: string;
36
54
  /** Map of disk names to their driver configurations */
37
55
  disks?: {
38
56
  [key: string]: DiskConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.config.d.ts","sourceRoot":"","sources":["../../src/config/storage.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAE/G,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;KAC3B,CAAC;CACH;AAED,eAAO,MAAM,OAAO,EAAE,aAmBrB,CAAC"}
1
+ {"version":3,"file":"storage.config.d.ts","sourceRoot":"","sources":["../../src/config/storage.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;KAC3B,CAAC;CACH;AAED,eAAO,MAAM,OAAO,EAAE,aAoBrB,CAAC"}
@@ -12,6 +12,7 @@ exports.storage = {
12
12
  defaultDisk: 'primary',
13
13
  stagingDisk: 'staging',
14
14
  primaryDisk: 'primary',
15
+ keyPrefix: 'attachments/',
15
16
  disks: {
16
17
  staging: {
17
18
  driver: 'fs',
@@ -27,4 +28,4 @@ exports.storage = {
27
28
  },
28
29
  },
29
30
  };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3N0b3JhZ2UuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBa0NVLFFBQUEsT0FBTyxHQUFrQjtJQUNwQyxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxzQkFBc0I7YUFDN0I7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxzQkFBc0I7YUFDN0I7U0FDRjtLQUNGO0NBQ0YsQ0FBQyJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3N0b3JhZ2UuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBc0RVLFFBQUEsT0FBTyxHQUFrQjtJQUNwQyxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFNBQVMsRUFBRSxjQUFjO0lBQ3pCLEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxzQkFBc0I7YUFDN0I7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxzQkFBc0I7YUFDN0I7U0FDRjtLQUNGO0NBQ0YsQ0FBQyJ9
@@ -2,12 +2,14 @@
2
2
  * Validators Config
3
3
  *
4
4
  * Sails config for the validators available in the core redbox project.
5
- * Sails hooks can extend or override these using the _dontMerge or _delete
6
- * or create a validator definition with the same name.
5
+ *
6
+ * Sails hooks cannot extend or override these.
7
+ * This is because the functions require utility functions,
8
+ * which are provided to the client in a way that sails hooks cannot extend or override.
7
9
  */
8
- import { formValidatorsSharedDefinitions } from "@researchdatabox/sails-ng-common";
10
+ import { FormValidatorDefinition } from "@researchdatabox/sails-ng-common";
9
11
  export interface ValidatorsConfig {
10
- definitions: typeof formValidatorsSharedDefinitions;
12
+ definitions: FormValidatorDefinition[];
11
13
  }
12
14
  export declare const validators: ValidatorsConfig;
13
15
  //# sourceMappingURL=validators.config.d.ts.map