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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/dist/CoreController.d.ts +4 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +33 -1
  4. package/dist/DatastreamService.d.ts +5 -2
  5. package/dist/DatastreamService.d.ts.map +1 -1
  6. package/dist/QueueService.d.ts +1 -1
  7. package/dist/QueueService.d.ts.map +1 -1
  8. package/dist/RecordsService.d.ts +38 -2
  9. package/dist/RecordsService.d.ts.map +1 -1
  10. package/dist/StorageService.d.ts +2 -1
  11. package/dist/StorageService.d.ts.map +1 -1
  12. package/dist/api-routes/apib.d.ts +7 -0
  13. package/dist/api-routes/apib.d.ts.map +1 -0
  14. package/dist/api-routes/apib.js +43 -0
  15. package/dist/api-routes/define.d.ts +4 -0
  16. package/dist/api-routes/define.d.ts.map +1 -0
  17. package/dist/api-routes/define.js +29 -0
  18. package/dist/api-routes/groups/admin.d.ts +6 -0
  19. package/dist/api-routes/groups/admin.d.ts.map +1 -0
  20. package/dist/api-routes/groups/admin.js +53 -0
  21. package/dist/api-routes/groups/appconfig.d.ts +4 -0
  22. package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
  23. package/dist/api-routes/groups/appconfig.js +33 -0
  24. package/dist/api-routes/groups/branding.d.ts +8 -0
  25. package/dist/api-routes/groups/branding.d.ts.map +1 -0
  26. package/dist/api-routes/groups/branding.js +61 -0
  27. package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
  28. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
  29. package/dist/api-routes/groups/dashboard-config.js +90 -0
  30. package/dist/api-routes/groups/export.d.ts +3 -0
  31. package/dist/api-routes/groups/export.d.ts.map +1 -0
  32. package/dist/api-routes/groups/export.js +30 -0
  33. package/dist/api-routes/groups/forms.d.ts +4 -0
  34. package/dist/api-routes/groups/forms.d.ts.map +1 -0
  35. package/dist/api-routes/groups/forms.js +29 -0
  36. package/dist/api-routes/groups/integration-audit.d.ts +3 -0
  37. package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
  38. package/dist/api-routes/groups/integration-audit.js +35 -0
  39. package/dist/api-routes/groups/notifications.d.ts +3 -0
  40. package/dist/api-routes/groups/notifications.d.ts.map +1 -0
  41. package/dist/api-routes/groups/notifications.js +20 -0
  42. package/dist/api-routes/groups/records.d.ts +28 -0
  43. package/dist/api-routes/groups/records.d.ts.map +1 -0
  44. package/dist/api-routes/groups/records.js +349 -0
  45. package/dist/api-routes/groups/recordtypes.d.ts +4 -0
  46. package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
  47. package/dist/api-routes/groups/recordtypes.js +27 -0
  48. package/dist/api-routes/groups/reports.d.ts +3 -0
  49. package/dist/api-routes/groups/reports.d.ts.map +1 -0
  50. package/dist/api-routes/groups/reports.js +20 -0
  51. package/dist/api-routes/groups/search-query.d.ts +4 -0
  52. package/dist/api-routes/groups/search-query.d.ts.map +1 -0
  53. package/dist/api-routes/groups/search-query.js +51 -0
  54. package/dist/api-routes/groups/search.d.ts +6 -0
  55. package/dist/api-routes/groups/search.d.ts.map +1 -0
  56. package/dist/api-routes/groups/search.js +31 -0
  57. package/dist/api-routes/groups/translation.d.ts +8 -0
  58. package/dist/api-routes/groups/translation.d.ts.map +1 -0
  59. package/dist/api-routes/groups/translation.js +78 -0
  60. package/dist/api-routes/groups/users.d.ts +17 -0
  61. package/dist/api-routes/groups/users.d.ts.map +1 -0
  62. package/dist/api-routes/groups/users.js +149 -0
  63. package/dist/api-routes/groups/vocabulary.d.ts +10 -0
  64. package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
  65. package/dist/api-routes/groups/vocabulary.js +97 -0
  66. package/dist/api-routes/helpers.d.ts +29 -0
  67. package/dist/api-routes/helpers.d.ts.map +1 -0
  68. package/dist/api-routes/helpers.js +486 -0
  69. package/dist/api-routes/index.d.ts +25 -0
  70. package/dist/api-routes/index.d.ts.map +1 -0
  71. package/dist/api-routes/index.js +41 -0
  72. package/dist/api-routes/openapi.d.ts +27 -0
  73. package/dist/api-routes/openapi.d.ts.map +1 -0
  74. package/dist/api-routes/openapi.js +273 -0
  75. package/dist/api-routes/request-extraction.d.ts +14 -0
  76. package/dist/api-routes/request-extraction.d.ts.map +1 -0
  77. package/dist/api-routes/request-extraction.js +100 -0
  78. package/dist/api-routes/route-factory.d.ts +3 -0
  79. package/dist/api-routes/route-factory.d.ts.map +1 -0
  80. package/dist/api-routes/route-factory.js +30 -0
  81. package/dist/api-routes/route-registry.d.ts +24 -0
  82. package/dist/api-routes/route-registry.d.ts.map +1 -0
  83. package/dist/api-routes/route-registry.js +113 -0
  84. package/dist/api-routes/route-resolution.d.ts +4 -0
  85. package/dist/api-routes/route-resolution.d.ts.map +1 -0
  86. package/dist/api-routes/route-resolution.js +57 -0
  87. package/dist/api-routes/schemas/common.d.ts +37 -0
  88. package/dist/api-routes/schemas/common.d.ts.map +1 -0
  89. package/dist/api-routes/schemas/common.js +147 -0
  90. package/dist/api-routes/schemas/responses.d.ts +2904 -0
  91. package/dist/api-routes/schemas/responses.d.ts.map +1 -0
  92. package/dist/api-routes/schemas/responses.js +417 -0
  93. package/dist/api-routes/types.d.ts +70 -0
  94. package/dist/api-routes/types.d.ts.map +1 -0
  95. package/dist/api-routes/types.js +3 -0
  96. package/dist/api-routes/validation.d.ts +32 -0
  97. package/dist/api-routes/validation.d.ts.map +1 -0
  98. package/dist/api-routes/validation.js +142 -0
  99. package/dist/bootstrap.d.ts.map +1 -1
  100. package/dist/bootstrap.js +10 -10
  101. package/dist/config/agendaQueue.config.d.ts +25 -1
  102. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  103. package/dist/config/agendaQueue.config.js +19 -2
  104. package/dist/config/auth.config.d.ts.map +1 -1
  105. package/dist/config/auth.config.js +21 -2
  106. package/dist/config/brandingConfigurationDefaults.config.js +3 -3
  107. package/dist/config/dashboardtype.config.d.ts +5 -0
  108. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  109. package/dist/config/dashboardtype.config.js +1 -1
  110. package/dist/config/dashboardview.config.d.ts +24 -0
  111. package/dist/config/dashboardview.config.d.ts.map +1 -0
  112. package/dist/config/dashboardview.config.js +137 -0
  113. package/dist/config/dompurify.config.d.ts.map +1 -1
  114. package/dist/config/dompurify.config.js +2 -2
  115. package/dist/config/http.config.d.ts.map +1 -1
  116. package/dist/config/http.config.js +5 -3
  117. package/dist/config/index.d.ts +6 -0
  118. package/dist/config/index.d.ts.map +1 -1
  119. package/dist/config/index.js +4 -1
  120. package/dist/config/namedQuery.config.d.ts +10 -2
  121. package/dist/config/namedQuery.config.d.ts.map +1 -1
  122. package/dist/config/namedQuery.config.js +17 -17
  123. package/dist/config/policies.config.d.ts +3 -0
  124. package/dist/config/policies.config.d.ts.map +1 -1
  125. package/dist/config/policies.config.js +35 -1
  126. package/dist/config/record.config.d.ts.map +1 -1
  127. package/dist/config/record.config.js +2 -1
  128. package/dist/config/recordtype.config.d.ts +28 -0
  129. package/dist/config/recordtype.config.d.ts.map +1 -1
  130. package/dist/config/recordtype.config.js +85 -9
  131. package/dist/config/routes.config.d.ts +5 -2
  132. package/dist/config/routes.config.d.ts.map +1 -1
  133. package/dist/config/routes.config.js +24 -110
  134. package/dist/config/storage.config.d.ts +20 -2
  135. package/dist/config/storage.config.d.ts.map +1 -1
  136. package/dist/config/storage.config.js +2 -1
  137. package/dist/config/vocab.config.d.ts +30 -0
  138. package/dist/config/vocab.config.d.ts.map +1 -1
  139. package/dist/config/vocab.config.js +21 -1
  140. package/dist/config/webpack.config.d.ts.map +1 -1
  141. package/dist/config/webpack.config.js +13 -7
  142. package/dist/config/workflow.config.d.ts +0 -1
  143. package/dist/config/workflow.config.d.ts.map +1 -1
  144. package/dist/config/workflow.config.js +1 -137
  145. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  146. package/dist/configmodels/AdminSidebarConfig.js +1 -2
  147. package/dist/configmodels/ConfigModels.d.ts +1 -1
  148. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  149. package/dist/configmodels/ConfigModels.js +9 -1
  150. package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
  151. package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
  152. package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
  153. package/dist/controllers/AdminController.d.ts +0 -1
  154. package/dist/controllers/AdminController.d.ts.map +1 -1
  155. package/dist/controllers/AdminController.js +2 -32
  156. package/dist/controllers/BrandingController.d.ts +3 -5
  157. package/dist/controllers/BrandingController.d.ts.map +1 -1
  158. package/dist/controllers/BrandingController.js +29 -21
  159. package/dist/controllers/DashboardConfigController.d.ts +8 -0
  160. package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
  161. package/dist/controllers/DashboardConfigController.js +17 -0
  162. package/dist/controllers/DynamicAssetController.d.ts +1 -0
  163. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  164. package/dist/controllers/DynamicAssetController.js +20 -1
  165. package/dist/controllers/EmailController.d.ts.map +1 -1
  166. package/dist/controllers/EmailController.js +16 -12
  167. package/dist/controllers/FormVocabularyController.d.ts +1 -0
  168. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  169. package/dist/controllers/FormVocabularyController.js +94 -4
  170. package/dist/controllers/RecordController.d.ts +18 -1
  171. package/dist/controllers/RecordController.d.ts.map +1 -1
  172. package/dist/controllers/RecordController.js +274 -124
  173. package/dist/controllers/RenderViewController.d.ts.map +1 -1
  174. package/dist/controllers/RenderViewController.js +4 -2
  175. package/dist/controllers/TranslationController.d.ts.map +1 -1
  176. package/dist/controllers/TranslationController.js +3 -2
  177. package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
  178. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
  179. package/dist/controllers/WorkspaceTypesController.js +120 -31
  180. package/dist/controllers/index.d.ts.map +1 -1
  181. package/dist/controllers/index.js +7 -4
  182. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  183. package/dist/controllers/webservice/AdminController.js +15 -16
  184. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
  185. package/dist/controllers/webservice/AppConfigController.js +19 -20
  186. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  187. package/dist/controllers/webservice/BrandingController.js +101 -48
  188. package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
  189. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
  190. package/dist/controllers/webservice/DashboardConfigController.js +241 -0
  191. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  192. package/dist/controllers/webservice/ExportController.js +11 -11
  193. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  194. package/dist/controllers/webservice/FormManagementController.js +11 -13
  195. package/dist/controllers/webservice/RecordController.d.ts +4 -0
  196. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  197. package/dist/controllers/webservice/RecordController.js +428 -257
  198. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  199. package/dist/controllers/webservice/RecordTypeController.js +9 -10
  200. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  201. package/dist/controllers/webservice/ReportController.js +18 -20
  202. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  203. package/dist/controllers/webservice/SearchController.js +28 -35
  204. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  205. package/dist/controllers/webservice/TranslationController.js +61 -39
  206. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  207. package/dist/controllers/webservice/UserManagementController.js +112 -99
  208. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  209. package/dist/controllers/webservice/VocabularyController.js +76 -28
  210. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  211. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  212. package/dist/hooks/defineRedboxHook.js +4 -1
  213. package/dist/index.d.ts +2 -0
  214. package/dist/index.d.ts.map +1 -1
  215. package/dist/index.js +2 -1
  216. package/dist/loader/index.d.ts +6 -0
  217. package/dist/loader/index.d.ts.map +1 -1
  218. package/dist/loader/index.js +57 -10
  219. package/dist/middleware/redboxSession.js +1 -1
  220. package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
  221. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  222. package/dist/model/DashboardTypeResponseModel.js +12 -4
  223. package/dist/model/DashboardViewResponseModel.d.ts +20 -0
  224. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
  225. package/dist/model/DashboardViewResponseModel.js +38 -0
  226. package/dist/model/RecordTypeResponseModel.d.ts +3 -1
  227. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  228. package/dist/model/RecordTypeResponseModel.js +4 -2
  229. package/dist/model/index.d.ts +1 -0
  230. package/dist/model/index.d.ts.map +1 -1
  231. package/dist/model/index.js +5 -2
  232. package/dist/model/storage/BrandingModel.d.ts +0 -16
  233. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  234. package/dist/model/storage/BrandingModel.js +2 -51
  235. package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
  236. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
  237. package/dist/model/storage/RecordTypeModel.d.ts +16 -0
  238. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  239. package/dist/model/storage/RecordTypeModel.js +9 -1
  240. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  241. package/dist/policies/contentSecurityPolicy.js +23 -2
  242. package/dist/policies/index.d.ts +3 -0
  243. package/dist/policies/index.d.ts.map +1 -1
  244. package/dist/policies/index.js +6 -2
  245. package/dist/policies/validateApiContractRequest.d.ts +3 -0
  246. package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
  247. package/dist/policies/validateApiContractRequest.js +74 -0
  248. package/dist/responses/badRequest.d.ts.map +1 -1
  249. package/dist/responses/badRequest.js +5 -3
  250. package/dist/responses/created.d.ts.map +1 -1
  251. package/dist/responses/created.js +5 -3
  252. package/dist/responses/forbidden.d.ts.map +1 -1
  253. package/dist/responses/forbidden.js +5 -3
  254. package/dist/responses/ok.d.ts.map +1 -1
  255. package/dist/responses/ok.js +5 -3
  256. package/dist/responses/serverError.d.ts.map +1 -1
  257. package/dist/responses/serverError.js +5 -3
  258. package/dist/responses/siteTitle.d.ts +6 -0
  259. package/dist/responses/siteTitle.d.ts.map +1 -0
  260. package/dist/responses/siteTitle.js +28 -0
  261. package/dist/sails.d.ts +7 -0
  262. package/dist/sails.d.ts.map +1 -1
  263. package/dist/services/AgendaQueueService.d.ts +38 -17
  264. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  265. package/dist/services/AgendaQueueService.js +311 -81
  266. package/dist/services/AttachmentMetadataService.d.ts +34 -0
  267. package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
  268. package/dist/services/AttachmentMetadataService.js +133 -0
  269. package/dist/services/BrandingLogoService.d.ts +6 -8
  270. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  271. package/dist/services/BrandingLogoService.js +66 -72
  272. package/dist/services/DashboardConfigService.d.ts +71 -0
  273. package/dist/services/DashboardConfigService.d.ts.map +1 -0
  274. package/dist/services/DashboardConfigService.js +309 -0
  275. package/dist/services/DashboardTypesService.d.ts +61 -63
  276. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  277. package/dist/services/DashboardTypesService.js +361 -198
  278. package/dist/services/DoiService.d.ts +11 -0
  279. package/dist/services/DoiService.d.ts.map +1 -1
  280. package/dist/services/DoiService.js +206 -1
  281. package/dist/services/FigshareService.d.ts.map +1 -1
  282. package/dist/services/FigshareService.js +5 -1
  283. package/dist/services/FormVocabularyService.d.ts +45 -0
  284. package/dist/services/FormVocabularyService.d.ts.map +1 -0
  285. package/dist/services/FormVocabularyService.js +326 -0
  286. package/dist/services/I18nEntriesService.d.ts +3 -0
  287. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  288. package/dist/services/I18nEntriesService.js +14 -2
  289. package/dist/services/NamedQueryService.d.ts +27 -9
  290. package/dist/services/NamedQueryService.d.ts.map +1 -1
  291. package/dist/services/NamedQueryService.js +223 -55
  292. package/dist/services/RDMPService.d.ts.map +1 -1
  293. package/dist/services/RDMPService.js +3 -2
  294. package/dist/services/RecordsService.d.ts +8 -2
  295. package/dist/services/RecordsService.d.ts.map +1 -1
  296. package/dist/services/RecordsService.js +64 -16
  297. package/dist/services/ReportsService.d.ts.map +1 -1
  298. package/dist/services/ReportsService.js +7 -1
  299. package/dist/services/StandardDatastreamService.d.ts +32 -5
  300. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  301. package/dist/services/StandardDatastreamService.js +490 -38
  302. package/dist/services/StorageManagerService.d.ts +12 -1
  303. package/dist/services/StorageManagerService.d.ts.map +1 -1
  304. package/dist/services/StorageManagerService.js +72 -7
  305. package/dist/services/index.d.ts +9 -3
  306. package/dist/services/index.d.ts.map +1 -1
  307. package/dist/services/index.js +17 -7
  308. package/dist/storage/GridFSDriver.d.ts +101 -0
  309. package/dist/storage/GridFSDriver.d.ts.map +1 -0
  310. package/dist/storage/GridFSDriver.js +291 -0
  311. package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
  312. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
  313. package/dist/storage/TusStorageManagerDataStore.js +300 -0
  314. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  315. package/dist/visitor/construct.visitor.js +6 -3
  316. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  317. package/dist/visitor/migrate-config-v4-v5.visitor.js +19 -1
  318. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  319. package/dist/visitor/validator.visitor.js +11 -3
  320. package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
  321. package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
  322. package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
  323. package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
  324. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
  325. package/dist/waterline-models/AttachmentMetadata.js +147 -0
  326. package/dist/waterline-models/BrandingConfig.d.ts +0 -2
  327. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  328. package/dist/waterline-models/BrandingConfig.js +1 -6
  329. package/dist/waterline-models/DashboardType.d.ts +7 -0
  330. package/dist/waterline-models/DashboardType.d.ts.map +1 -1
  331. package/dist/waterline-models/DashboardType.js +16 -1
  332. package/dist/waterline-models/I18nTranslation.d.ts +2 -0
  333. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
  334. package/dist/waterline-models/I18nTranslation.js +6 -1
  335. package/dist/waterline-models/NamedQuery.d.ts +6 -0
  336. package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
  337. package/dist/waterline-models/NamedQuery.js +16 -1
  338. package/dist/waterline-models/index.d.ts +4 -0
  339. package/dist/waterline-models/index.d.ts.map +1 -1
  340. package/dist/waterline-models/index.js +7 -1
  341. package/package.json +31 -21
  342. package/dist/controllers/VocabController.d.ts +0 -43
  343. package/dist/controllers/VocabController.d.ts.map +0 -1
  344. package/dist/controllers/VocabController.js +0 -190
  345. package/dist/services/VocabService.d.ts +0 -81
  346. package/dist/services/VocabService.d.ts.map +0 -1
  347. package/dist/services/VocabService.js +0 -424
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * Policy mapping configuration for controller actions.
6
6
  */
7
+ import { type ApiRouteDefinition } from '../api-routes';
7
8
  export type PolicyName = string;
8
9
  export type PolicyChain = PolicyName | PolicyName[] | boolean;
9
10
  export interface ControllerPolicies {
@@ -14,5 +15,7 @@ export interface PoliciesConfig {
14
15
  '*'?: PolicyChain;
15
16
  [controllerName: string]: ControllerPolicies | PolicyChain | undefined;
16
17
  }
18
+ export declare function buildContractApiPolicies(apiRoutes?: readonly ApiRouteDefinition[]): PoliciesConfig;
19
+ export declare function mergeContractApiPolicies(targetPolicies: PoliciesConfig, apiRoutes: readonly ApiRouteDefinition[]): PoliciesConfig;
17
20
  export declare const policies: PoliciesConfig;
18
21
  //# sourceMappingURL=policies.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.config.d.ts","sourceRoot":"","sources":["../../src/config/policies.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,CAAC;CAC1E;AA4BD,eAAO,MAAM,QAAQ,EAAE,cAgCtB,CAAC"}
1
+ {"version":3,"file":"policies.config.d.ts","sourceRoot":"","sources":["../../src/config/policies.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,CAAC;CAC1E;AAiCD,wBAAgB,wBAAwB,CAAC,SAAS,GAAE,SAAS,kBAAkB,EAA4B,GAAG,cAAc,CAU3H;AAED,wBAAgB,wBAAwB,CACpC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,kBAAkB,EAAE,GACzC,cAAc,CAehB;AAED,eAAO,MAAM,QAAQ,EAAE,cAiCtB,CAAC"}
@@ -7,6 +7,9 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.policies = void 0;
10
+ exports.buildContractApiPolicies = buildContractApiPolicies;
11
+ exports.mergeContractApiPolicies = mergeContractApiPolicies;
12
+ const api_routes_1 = require("../api-routes");
10
13
  // Default policy chains
11
14
  const defaultPolicies = [
12
15
  'brandingAndPortal',
@@ -20,6 +23,10 @@ const defaultPolicies = [
20
23
  'contentSecurityPolicy',
21
24
  ];
22
25
  const noCachePlusDefaultPolicies = ['noCache', ...defaultPolicies];
26
+ const noCachePlusApiValidationPolicies = [
27
+ ...noCachePlusDefaultPolicies,
28
+ 'validateApiContractRequest'
29
+ ];
23
30
  const doAttachmentPolicies = noCachePlusDefaultPolicies.flatMap((policy) => (policy === 'checkAuth' ? ['companionAttachmentUploadAuth', policy] : [policy]));
24
31
  const publicTranslationPolicies = [
25
32
  'noCache',
@@ -29,6 +36,32 @@ const publicTranslationPolicies = [
29
36
  'prepWs'
30
37
  ];
31
38
  const noCachePlusCspNoncePolicy = ['noCache', 'contentSecurityPolicy'];
39
+ function buildContractApiPolicies(apiRoutes = (0, api_routes_1.registerCoreApiRoutes)()) {
40
+ return apiRoutes.reduce((acc, route) => {
41
+ const controllerPolicies = acc[route.controller];
42
+ acc[route.controller] = {
43
+ '*': noCachePlusDefaultPolicies,
44
+ ...(controllerPolicies ?? {}),
45
+ [route.action]: noCachePlusApiValidationPolicies
46
+ };
47
+ return acc;
48
+ }, {});
49
+ }
50
+ function mergeContractApiPolicies(targetPolicies, apiRoutes) {
51
+ const routePolicies = buildContractApiPolicies(apiRoutes);
52
+ Object.entries(routePolicies).forEach(([controllerName, controllerPolicy]) => {
53
+ if (controllerName === '*' || typeof controllerPolicy !== 'object' || Array.isArray(controllerPolicy)) {
54
+ targetPolicies[controllerName] = controllerPolicy;
55
+ return;
56
+ }
57
+ const existingPolicy = targetPolicies[controllerName];
58
+ targetPolicies[controllerName] = {
59
+ ...(typeof existingPolicy === 'object' && !Array.isArray(existingPolicy) ? existingPolicy : {}),
60
+ ...controllerPolicy,
61
+ };
62
+ });
63
+ return targetPolicies;
64
+ }
32
65
  exports.policies = {
33
66
  UserController: {
34
67
  '*': noCachePlusDefaultPolicies,
@@ -53,6 +86,7 @@ exports.policies = {
53
86
  'webservice/BrandingController': {
54
87
  '*': noCachePlusDefaultPolicies
55
88
  },
89
+ ...buildContractApiPolicies(),
56
90
  'DynamicAssetController': {
57
91
  '*': noCachePlusDefaultPolicies
58
92
  },
@@ -62,4 +96,4 @@ exports.policies = {
62
96
  },
63
97
  '*': defaultPolicies
64
98
  };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWNpZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9wb2xpY2llcy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7QUFlSCx3QkFBd0I7QUFDeEIsTUFBTSxlQUFlLEdBQWlCO0lBQ2xDLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsU0FBUztJQUNULFFBQVE7SUFDUixlQUFlO0lBQ2YsY0FBYztJQUNkLDJCQUEyQjtJQUMzQixXQUFXO0lBQ1gsdUJBQXVCO0NBQzFCLENBQUM7QUFFRixNQUFNLDBCQUEwQixHQUFpQixDQUFDLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDO0FBQ2pGLE1BQU0sb0JBQW9CLEdBQWlCLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FDdEYsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDaEYsQ0FBQyxDQUFDO0FBQ0gsTUFBTSx5QkFBeUIsR0FBaUI7SUFDNUMsU0FBUztJQUNULG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsU0FBUztJQUNULFFBQVE7Q0FDWCxDQUFDO0FBRUYsTUFBTSx5QkFBeUIsR0FBaUIsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztBQUN4RSxRQUFBLFFBQVEsR0FBbUI7SUFDcEMsY0FBYyxFQUFFO1FBQ1osR0FBRyxFQUFFLDBCQUEwQjtRQUMvQixZQUFZLEVBQUUseUJBQXlCO1FBQ3ZDLFVBQVUsRUFBRSx5QkFBeUI7UUFDckMsb0JBQW9CLEVBQUUseUJBQXlCO1FBQy9DLFdBQVcsRUFBRSx5QkFBeUI7UUFDdEMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDO0tBQ2xFO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDbEIsUUFBUSxFQUFFLDBCQUEwQjtLQUN2QztJQUNELGdCQUFnQixFQUFFO1FBQ2QsR0FBRyxFQUFFLDBCQUEwQjtRQUMvQiw4RUFBOEU7UUFDOUUsbURBQW1EO1FBQ25ELGNBQWMsRUFBRSxvQkFBb0I7S0FDdkM7SUFDRCw2QkFBNkIsRUFBRTtRQUMzQixHQUFHLEVBQUUsMEJBQTBCO0tBQ2xDO0lBQ0QsK0JBQStCLEVBQUU7UUFDN0IsR0FBRyxFQUFFLDBCQUEwQjtLQUNsQztJQUNELHdCQUF3QixFQUFFO1FBQ3RCLEdBQUcsRUFBRSwwQkFBMEI7S0FDbEM7SUFDRCx1QkFBdUIsRUFBRTtRQUNyQixHQUFHLEVBQUUsMEJBQTBCO1FBQy9CLGNBQWMsRUFBRSx5QkFBeUI7S0FDNUM7SUFDRCxHQUFHLEVBQUUsZUFBZTtDQUN2QixDQUFDIn0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWNpZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9wb2xpY2llcy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7QUFnREgsNERBVUM7QUFFRCw0REFrQkM7QUE1RUQsOENBQStFO0FBZS9FLHdCQUF3QjtBQUN4QixNQUFNLGVBQWUsR0FBaUI7SUFDbEMsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixTQUFTO0lBQ1QsUUFBUTtJQUNSLGVBQWU7SUFDZixjQUFjO0lBQ2QsMkJBQTJCO0lBQzNCLFdBQVc7SUFDWCx1QkFBdUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQWlCLENBQUMsU0FBUyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUM7QUFDakYsTUFBTSxnQ0FBZ0MsR0FBaUI7SUFDbkQsR0FBRywwQkFBMEI7SUFDN0IsNEJBQTRCO0NBQy9CLENBQUM7QUFDRixNQUFNLG9CQUFvQixHQUFpQiwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQ3RGLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsK0JBQStCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQ2hGLENBQUMsQ0FBQztBQUNILE1BQU0seUJBQXlCLEdBQWlCO0lBQzVDLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLFNBQVM7SUFDVCxRQUFRO0NBQ1gsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQWlCLENBQUMsU0FBUyxFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFFckYsU0FBZ0Isd0JBQXdCLENBQUMsWUFBMkMsSUFBQSxrQ0FBcUIsR0FBRTtJQUN2RyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxr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
@@ -1 +1 @@
1
- {"version":3,"file":"record.config.d.ts","sourceRoot":"","sources":["../../src/config/record.config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE;QACH,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,EAAE,CAAC,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,oBAAoB,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC,CAAC,EAAE,MAAM,CAAC;IAC/C,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC9D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,uBAAuB,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,EAAE,YA+FpB,CAAC"}
1
+ {"version":3,"file":"record.config.d.ts","sourceRoot":"","sources":["../../src/config/record.config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE;QACH,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,EAAE,CAAC,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,oBAAoB,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC,CAAC,EAAE,MAAM,CAAC;IAC/C,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC9D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,uBAAuB,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,EAAE,YAgGpB,CAAC"}
@@ -17,6 +17,7 @@ exports.record = {
17
17
  maxUploadSize: 1073741824,
18
18
  mongodbDisk: '/attachments',
19
19
  diskSpaceThreshold: 10737418240,
20
+ datastreamService: 'standarddatastreamservice',
20
21
  form: {
21
22
  htmlSanitizationMode: 'sanitize'
22
23
  },
@@ -101,4 +102,4 @@ exports.record = {
101
102
  },
102
103
  helpEmail: 'support@redboxresearchdata.com.au'
103
104
  };
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvcmVjb3JkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFnRlUsUUFBQSxNQUFNLEdBQWlCO0lBQ2hDLFFBQVEsRUFBRTtRQUNOLE9BQU8sRUFBRSxJQUFJO1FBQ2Isa0JBQWtCLEVBQUUsaUNBQWlDO0tBQ3hEO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsTUFBTSxFQUFFLDhCQUE4QjtRQUN0QyxJQUFJLEVBQUUsNkNBQTZDO0tBQ3REO0lBQ0QsYUFBYSxFQUFFLFVBQVU7SUFDekIsV0FBVyxFQUFFLGNBQWM7SUFDM0Isa0JBQWtCLEVBQUUsV0FBVztJQUMvQixJQUFJLEVBQUU7UUFDRixvQkFBb0IsRUFBRSxVQUFVO0tBQ25DO0lBQ0QsR0FBRyxFQUFFO1FBQ0QsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsNkJBQTZCLEVBQUU7UUFDOUQsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUU7UUFDaEQsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFO1FBQy9DLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLDZCQUE2QixFQUFFO1FBQzlELElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtRQUM1QyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSw2QkFBNkIsRUFBRTtRQUNsRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRTtRQUNsRSxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcs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
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvcmVjb3JkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFnRlUsUUFBQSxNQUFNLEdBQWlCO0lBQ2hDLFFBQVEsRUFBRTtRQUNOLE9BQU8sRUFBRSxJQUFJO1FBQ2Isa0JBQWtCLEVBQUUsaUNBQWlDO0tBQ3hEO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsTUFBTSxFQUFFLDhCQUE4QjtRQUN0QyxJQUFJLEVBQUUsNkNBQTZDO0tBQ3REO0lBQ0QsYUFBYSxFQUFFLFVBQVU7SUFDekIsV0FBVyxFQUFFLGNBQWM7SUFDM0Isa0JBQWtCLEVBQUUsV0FBVztJQUMvQixpQkFBaUIsRUFBRSwyQkFBMkI7SUFDOUMsSUFBSSxFQUFFO1FBQ0Ysb0JBQW9CLEVBQUUsVUFBVTtLQUNuQztJQUNELEdBQUcsRUFBRTtRQUNELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLDZCQUE2QixFQUFFO1FBQzlELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFO1FBQ2hELEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRTtRQUMvQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSw2QkFBNkIsRUFBRTtRQUM5RCxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUU7UUFDNUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsNkJBQTZCLEVBQUU7UUFDbEUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsZ0NBQWdDLEVBQUU7UUFDbEUsYUFBYSxFQUFFLEVBQUUs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
@@ -23,10 +23,38 @@ export interface RecordHooksConfig {
23
23
  };
24
24
  }
25
25
  export interface RecordRelation {
26
+ id?: string;
27
+ label?: string;
26
28
  recordType: string;
27
29
  localField?: string;
28
30
  foreignField: string;
31
+ cardinality?: 'one' | 'many';
32
+ direction?: 'outbound' | 'inbound';
33
+ formHints?: {
34
+ componentNames?: string[];
35
+ sourceField?: string;
36
+ targetField?: string;
37
+ inferWhen?: 'missingConfigOnly' | 'always';
38
+ };
39
+ dashboard?: {
40
+ rowLevel?: number;
41
+ compareField?: string;
42
+ };
43
+ includeByDefault?: boolean;
44
+ }
45
+ export interface NormalizedRecordRelation extends RecordRelation {
46
+ id: string;
47
+ localField: string;
48
+ cardinality: 'one' | 'many';
49
+ direction: 'outbound' | 'inbound';
29
50
  }
51
+ export declare const DEFAULT_RECORD_RELATION_LOCAL_FIELD: "redboxOid";
52
+ export declare const DEFAULT_RECORD_RELATION_CARDINALITY: "many";
53
+ export declare const DEFAULT_RECORD_RELATION_DIRECTION: "outbound";
54
+ export declare function buildRecordRelationId(sourceRecordType: string, relation: RecordRelation): string;
55
+ export declare function normalizeRecordRelation(sourceRecordType: string, relation: RecordRelation): NormalizedRecordRelation;
56
+ export declare function normalizeRecordRelations(sourceRecordType: string, relations: unknown): NormalizedRecordRelation[];
57
+ export declare function findNormalizedRecordRelation(sourceRecordType: string, relations: unknown, relationId: string): NormalizedRecordRelation | undefined;
30
58
  export interface TransferResponsibilityField {
31
59
  label: string;
32
60
  updateField?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"recordtype.config.d.ts","sourceRoot":"","sources":["../../src/config/recordtype.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAC9B,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,oBAAoB,EAAE,CAAC;KACjC,CAAC;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,4BAA4B;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,cAAc,EAAE,MAAM,GAAG,oBAAoB,CAAC;CAClD;AAGD,eAAO,MAAM,UAAU,EAAE,gBA+pBxB,CAAC"}
1
+ {"version":3,"file":"recordtype.config.d.ts","sourceRoot":"","sources":["../../src/config/recordtype.config.ts"],"names":[],"mappings":"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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkdHlwZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3JlY29yZHR5cGUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBMkZILHNEQVdDO0FBRUQsMERBdUJDO0FBRUQsNERBTUM7QUFFRCxvRUFRQztBQTlGWSxRQUFBLG1DQUFtQyxHQUFHLFdBQW9CLENBQUM7QUFDM0QsUUFBQSxtQ0FBbUMsR0FBRyxNQUFlLENBQUM7QUFDdEQsUUFBQSxpQ0FBaUMsR0FBRyxVQUFtQixDQUFDO0FBRXJFLFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNwQixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUU5QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sY0FBYyxHQUNoQixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztZQUM1QixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztZQUM1QixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDakIsVUFBVSxJQUFJLElBQUksQ0FBQztZQUNuQixpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDMUIsU0FBUztRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQixVQUFVLElBQUksR0FBRyxDQUFDO1lBQ2xCLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksS0FBSyxH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
@@ -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,YA+TpB,CAAC"}