@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
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ // Copyright (c) 2017 Queensland Cyber Infrastructure Foundation (http://www.qcif.edu.au/)
3
+ //
4
+ // GNU GENERAL PUBLIC LICENSE
5
+ // Version 2, June 1991
6
+ //
7
+ // This program is free software; you can redistribute it and/or modify
8
+ // it under the terms of the GNU General Public License as published by
9
+ // the Free Software Foundation; either version 2 of the License, or
10
+ // (at your option) any later version.
11
+ //
12
+ // This program is distributed in the hope that it will be useful,
13
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ // GNU General Public License for more details.
16
+ //
17
+ // You should have received a copy of the GNU General Public License along
18
+ // with this program; if not, write to the Free Software Foundation, Inc.,
19
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.Services = void 0;
25
+ const CoreService_1 = require("../CoreService");
26
+ const axios_1 = __importDefault(require("axios"));
27
+ var Services;
28
+ (function (Services) {
29
+ class FormVocabulary extends CoreService_1.Services.Core.Service {
30
+ _exportedMethods = [
31
+ 'findInExternalService',
32
+ 'findInServiceLookup',
33
+ 'findRecords',
34
+ 'buildNamedQueryParamMap',
35
+ 'getResultObjectMappings'
36
+ ];
37
+ async findRecords(sourceType, brand, searchString, start, rows, user) {
38
+ const normalizedSourceType = String(sourceType ?? '').trim();
39
+ const queryConfig = sails.config.vocab.queries?.[normalizedSourceType];
40
+ if (!this.isPlainObject(queryConfig)) {
41
+ throw this.createFormVocabularyError('query-vocab-not-configured', `No query vocabulary configured for '${normalizedSourceType}'.`);
42
+ }
43
+ if (queryConfig.querySource == 'database') {
44
+ const queryName = String(queryConfig.databaseQuery?.queryName ?? '').trim();
45
+ if (!queryName) {
46
+ throw this.createFormVocabularyError('query-vocab-invalid-config', `Query vocabulary '${normalizedSourceType}' is missing a database query name.`);
47
+ }
48
+ const namedQueryConfig = await NamedQueryService.getNamedQueryConfig(brand, queryName);
49
+ if (!namedQueryConfig) {
50
+ throw this.createFormVocabularyError('query-vocab-invalid-config', `Query vocabulary '${normalizedSourceType}' references unknown named query '${queryName}'.`);
51
+ }
52
+ const paramMap = this.buildNamedQueryParamMap(queryConfig, searchString, user);
53
+ const dbResults = await NamedQueryService.performNamedQueryFromConfig(namedQueryConfig, paramMap, brand, start, rows);
54
+ if (queryConfig.resultObjectMapping) {
55
+ return this.getResultObjectMappings(dbResults, queryConfig);
56
+ }
57
+ else {
58
+ return dbResults;
59
+ }
60
+ }
61
+ else if (queryConfig.querySource == 'solr') {
62
+ const searchCore = String(queryConfig.searchQuery?.searchCore ?? '').trim();
63
+ if (!searchCore) {
64
+ throw this.createFormVocabularyError('query-vocab-invalid-config', `Query vocabulary '${normalizedSourceType}' is missing a search core.`);
65
+ }
66
+ const solrQuery = this.buildSolrParams(brand, searchString, queryConfig, start, rows, 'json', user);
67
+ const solrResults = await this.getSearchService().searchAdvanced(searchCore, '', solrQuery);
68
+ if (queryConfig.resultObjectMapping) {
69
+ return this.getResultObjectMappings(solrResults, queryConfig);
70
+ }
71
+ else {
72
+ return solrResults;
73
+ }
74
+ }
75
+ throw this.createFormVocabularyError('query-vocab-invalid-config', `Query vocabulary '${normalizedSourceType}' has unsupported querySource '${String(queryConfig.querySource ?? '')}'.`);
76
+ }
77
+ async findInExternalService(providerName, params) {
78
+ const normalizedProviderName = String(providerName ?? '').trim();
79
+ const providerConfig = sails.config.vocab.external?.[normalizedProviderName];
80
+ if (!this.isPlainObject(providerConfig)) {
81
+ throw this.createFormVocabularyError('external-vocab-not-configured', `No external vocabulary provider configured for '${normalizedProviderName}'.`);
82
+ }
83
+ const method = providerConfig.method;
84
+ let url = String(providerConfig.url ?? '').trim();
85
+ if (!url || (method !== 'get' && method !== 'post')) {
86
+ throw this.createFormVocabularyError('external-vocab-invalid-config', `External vocabulary provider '${normalizedProviderName}' has an invalid method or URL.`);
87
+ }
88
+ const templateFunction = this.getTemplateStringFunction(url, normalizedProviderName);
89
+ const optionMap = this.isPlainObject(params?.options) ? params.options : {};
90
+ url = templateFunction(optionMap);
91
+ sails.log.info(url);
92
+ const options = this.isPlainObject(providerConfig.options) ? providerConfig.options : {};
93
+ if (method == 'post') {
94
+ const post = {
95
+ method: method,
96
+ url: url,
97
+ data: params?.postBody,
98
+ params: options
99
+ };
100
+ sails.log.verbose(post);
101
+ const response = await (0, axios_1.default)(post);
102
+ return response.data;
103
+ }
104
+ else {
105
+ const getSearch = {
106
+ method: method,
107
+ url: url,
108
+ params: options
109
+ };
110
+ sails.log.verbose(getSearch);
111
+ const response = await (0, axios_1.default)(getSearch);
112
+ return response.data;
113
+ }
114
+ }
115
+ async findInServiceLookup(serviceId, requestParams) {
116
+ const normalizedServiceId = String(serviceId ?? '').trim();
117
+ const serviceConfig = sails.config.vocab.services?.[normalizedServiceId];
118
+ if (!serviceConfig) {
119
+ throw this.createServiceLookupError('service-lookup-not-configured', `No service lookup configured for '${normalizedServiceId}'.`);
120
+ }
121
+ const serviceName = String(serviceConfig.serviceName ?? '').trim();
122
+ const methodName = String(serviceConfig.methodName ?? '').trim();
123
+ if (!serviceName || !methodName) {
124
+ throw this.createServiceLookupError('service-lookup-invalid-target', `Service lookup '${normalizedServiceId}' has an invalid target configuration.`);
125
+ }
126
+ const servicesRegistry = sails.services;
127
+ const targetService = servicesRegistry?.[serviceName]
128
+ ?? servicesRegistry?.[serviceName.toLowerCase()]
129
+ ?? Object.entries(servicesRegistry ?? {}).find(([registeredServiceName]) => registeredServiceName.toLowerCase() === serviceName.toLowerCase())?.[1];
130
+ const targetMethod = targetService?.[methodName];
131
+ if (!targetService || typeof targetMethod !== 'function') {
132
+ throw this.createServiceLookupError('service-lookup-invalid-target', `Service lookup '${normalizedServiceId}' could not resolve ${serviceName}.${methodName}().`);
133
+ }
134
+ const lookupRequest = {
135
+ serviceId: normalizedServiceId,
136
+ search: String(requestParams.search ?? ''),
137
+ start: requestParams.start,
138
+ rows: requestParams.rows,
139
+ branding: String(requestParams.branding ?? ''),
140
+ portal: String(requestParams.portal ?? ''),
141
+ brand: requestParams.brand,
142
+ user: this.isPlainObject(requestParams.user) ? requestParams.user : {},
143
+ options: serviceConfig.options ?? {},
144
+ };
145
+ const response = await targetMethod.call(targetService, lookupRequest);
146
+ return this.normalizeServiceLookupResponse(normalizedServiceId, response);
147
+ }
148
+ buildNamedQueryParamMap(queryConfig, searchString, user) {
149
+ const paramMap = {};
150
+ if (queryConfig.queryField.type == 'text') {
151
+ paramMap[queryConfig.queryField.property] = searchString;
152
+ }
153
+ if (queryConfig.userQueryFields != null) {
154
+ for (const userQueryField of queryConfig.userQueryFields) {
155
+ paramMap[userQueryField.property] = _.get(user, userQueryField.userValueProperty, null);
156
+ }
157
+ }
158
+ return paramMap;
159
+ }
160
+ getResultObjectMappings(results, queryConfig) {
161
+ let responseRecords = _.get(results, 'response.docs', '');
162
+ if (responseRecords == '') {
163
+ responseRecords = results.records ?? [];
164
+ }
165
+ const response = [];
166
+ const that = this;
167
+ const resultObjectMapping = queryConfig.resultObjectMapping;
168
+ for (const record of responseRecords) {
169
+ try {
170
+ const variables = {
171
+ record: record,
172
+ _: _
173
+ };
174
+ let defaultMetadata = {};
175
+ if (!_.isEmpty(resultObjectMapping)) {
176
+ const resultMetadata = _.cloneDeep(resultObjectMapping);
177
+ _.forOwn(resultObjectMapping, function (value, key) {
178
+ _.set(resultMetadata, key, that.runTemplate(value, variables));
179
+ });
180
+ defaultMetadata = resultMetadata;
181
+ response.push(defaultMetadata);
182
+ }
183
+ }
184
+ catch (_error) {
185
+ continue;
186
+ }
187
+ }
188
+ return response;
189
+ }
190
+ buildSolrParams(brand, searchString, queryConfig, start, rows, format = 'json', user) {
191
+ let query = `${queryConfig.searchQuery.baseQuery}&sort=date_object_modified desc&version=2.2&start=${start}&rows=${rows}`;
192
+ query = query + `&fq=metaMetadata_brandId:${brand.id}&wt=${format}`;
193
+ if (queryConfig.queryField.type == 'text') {
194
+ const value = searchString;
195
+ if (!_.isEmpty(value)) {
196
+ const searchProperty = queryConfig.queryField.property;
197
+ query = query + '&fq=' + searchProperty + ':';
198
+ if (value.indexOf('*') != -1) {
199
+ query = query + value.replaceAll('*', '') + '*';
200
+ }
201
+ else {
202
+ query = query + value + '*';
203
+ }
204
+ }
205
+ }
206
+ if (queryConfig.userQueryFields != null) {
207
+ for (const userQueryField of queryConfig.userQueryFields) {
208
+ const searchProperty = userQueryField.property;
209
+ query = query + '&fq=' + searchProperty + ':' + _.get(user, userQueryField.userValueProperty, null);
210
+ }
211
+ }
212
+ return query;
213
+ }
214
+ getSearchService() {
215
+ return sails.services[sails.config.search.serviceName];
216
+ }
217
+ runTemplate(templateOrPath, variables) {
218
+ if (templateOrPath && templateOrPath.indexOf('<%') != -1) {
219
+ return _.template(templateOrPath)(variables);
220
+ }
221
+ return _.get(variables, templateOrPath);
222
+ }
223
+ getTemplateStringFunction(template, providerName) {
224
+ return (map) => template.replace(/\$\{([^}]+)\}/g, (_match, rawPath) => {
225
+ const propertyPath = String(rawPath ?? '').trim();
226
+ if (!this.isSafeTemplatePath(propertyPath)) {
227
+ throw this.createFormVocabularyError('external-vocab-invalid-config', `External vocabulary provider '${providerName}' contains unsupported template path '${propertyPath}'.`);
228
+ }
229
+ const value = _.get(map, propertyPath);
230
+ return this.normalizeTemplateValue(value);
231
+ });
232
+ }
233
+ normalizeServiceLookupResponse(serviceId, response) {
234
+ if (!this.isPlainObject(response)) {
235
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' returned a non-object response.`);
236
+ }
237
+ const data = response['data'];
238
+ if (!Array.isArray(data)) {
239
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' response is missing a data array.`);
240
+ }
241
+ const normalized = {
242
+ data: data.map((item, index) => this.normalizeServiceLookupOption(serviceId, item, index)),
243
+ };
244
+ if (response['meta'] !== undefined) {
245
+ if (!this.isPlainObject(response['meta'])) {
246
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' response meta must be an object.`);
247
+ }
248
+ normalized.meta = response['meta'];
249
+ }
250
+ return normalized;
251
+ }
252
+ normalizeServiceLookupOption(serviceId, item, index) {
253
+ if (!this.isPlainObject(item)) {
254
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' returned a non-object option at index ${index}.`);
255
+ }
256
+ const label = this.normalizeServiceLookupString(item['label']);
257
+ const value = this.normalizeServiceLookupString(item['value']);
258
+ if (!label || !value) {
259
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' returned an option without a valid label/value at index ${index}.`);
260
+ }
261
+ if (item['historical'] !== undefined && typeof item['historical'] !== 'boolean') {
262
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' returned a non-boolean historical flag at index ${index}.`);
263
+ }
264
+ if (item['disabled'] !== undefined && typeof item['disabled'] !== 'boolean') {
265
+ throw this.createServiceLookupError('service-lookup-invalid-response', `Service lookup '${serviceId}' returned a non-boolean disabled flag at index ${index}.`);
266
+ }
267
+ const normalized = {
268
+ label,
269
+ value,
270
+ sourceType: 'service',
271
+ };
272
+ if (item['historical'] === true) {
273
+ normalized.historical = true;
274
+ }
275
+ if (item['disabled'] === true) {
276
+ normalized.disabled = true;
277
+ }
278
+ if (Object.prototype.hasOwnProperty.call(item, 'raw')) {
279
+ normalized.raw = item['raw'];
280
+ }
281
+ return normalized;
282
+ }
283
+ normalizeServiceLookupString(value) {
284
+ if (typeof value === 'string') {
285
+ const trimmed = value.trim();
286
+ return trimmed ? trimmed : null;
287
+ }
288
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
289
+ return String(value);
290
+ }
291
+ return null;
292
+ }
293
+ isPlainObject(value) {
294
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
295
+ }
296
+ isSafeTemplatePath(propertyPath) {
297
+ if (!/^[A-Za-z_$][A-Za-z0-9_$]*(?:\.(?:[A-Za-z_$][A-Za-z0-9_$]*|\d+))*$/.test(propertyPath)) {
298
+ return false;
299
+ }
300
+ return propertyPath
301
+ .split('.')
302
+ .every(segment => !['__proto__', 'constructor', 'prototype'].includes(segment));
303
+ }
304
+ normalizeTemplateValue(value) {
305
+ if (typeof value === 'string') {
306
+ return value;
307
+ }
308
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
309
+ return String(value);
310
+ }
311
+ return '';
312
+ }
313
+ createFormVocabularyError(code, message) {
314
+ const error = new Error(message);
315
+ error.code = code;
316
+ return error;
317
+ }
318
+ createServiceLookupError(code, message) {
319
+ const error = new Error(message);
320
+ error.code = code;
321
+ return error;
322
+ }
323
+ }
324
+ Services.FormVocabulary = FormVocabulary;
325
+ })(Services || (exports.Services = Services = {}));
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVZvY2FidWxhcnlTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0Zvcm1Wb2NhYnVsYXJ5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7OztBQVk5RCxnREFBc0Q7QUFDdEQsa0RBQTBCO0FBRTFCLElBQWlCLFFBQVEsQ0ErWnhCO0FBL1pELFdBQWlCLFFBQVE7SUFzQnZCLE1BQWEsY0FBZSxTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFFcEMsZ0JBQWdCLEdBQWE7WUFDOUMsdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IseUJBQXlCO1lBQ3pCLHlCQUF5QjtTQUMxQixDQUFDO1FBRUssS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFrQixFQUFFLEtBQW9CLEVBQUUsWUFBb0IsRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLElBQStCO1lBQ25KLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBaUMsQ0FBQztZQUN2RyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FDbEMsNEJBQTRCLEVBQzVCLHVDQUF1QyxvQkFBb0IsSUFBSSxDQUNoRSxDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksV0FBVyxDQUFDLFdBQVcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM1RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQ2xDLDRCQUE0QixFQUM1QixxQkFBcUIsb0JBQW9CLHFDQUFxQyxDQUMvRSxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDdkYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQ3RCLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUNsQyw0QkFBNEIsRUFDNUIscUJBQXFCLG9CQUFvQixxQ0FBcUMsU0FBUyxJQUFJLENBQzVGLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0UsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdEgsSUFBSSxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDcEMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBK0MsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEcsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sU0FBK0MsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxXQUFXLENBQUMsV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUM3QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQ2xDLDRCQUE0QixFQUM1QixxQkFBcUIsb0JBQW9CLDZCQUE2QixDQUN2RSxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDcEcsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDNUYsSUFBSSxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDcEMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxXQUFXLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQ2xDLDRCQUE0QixFQUM1QixxQkFBcUIsb0JBQW9CLGtDQUFrQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUNySCxDQUFDO1FBQ0osQ0FBQztRQUVNLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxZQUFvQixFQUFFLE1BQTZCO1lBQ3BGLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBc0MsQ0FBQztZQUNsSCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FDbEMsK0JBQStCLEVBQy9CLG1EQUFtRCxzQkFBc0IsSUFBSSxDQUM5RSxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDckMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUNsQywrQkFBK0IsRUFDL0IsaUNBQWlDLHNCQUFzQixpQ0FBaUMsQ0FDekYsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztZQUNyRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVFLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVsQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRXpGLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNyQixNQUFNLElBQUksR0FBRztvQkFDWCxNQUFNLEVBQUUsTUFBTTtvQkFDZCxHQUFHLEVBQUUsR0FBRztvQkFDUixJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVE7b0JBQ3RCLE1BQU0sRUFBRSxPQUFPO2lCQUNoQixDQUFDO2dCQUNGLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV4QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsZUFBSyxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLFFBQVEsQ0FBQyxJQUErQixDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFNBQVMsR0FBRztvQkFDaEIsTUFBTSxFQUFFLE1BQU07b0JBQ2QsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsTUFBTSxFQUFFLE9BQU87aUJBQ2hCLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRTdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxlQUFLLEVBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sUUFBUSxDQUFDLElBQStCLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7UUFFTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxhQUF5QztZQUMzRixNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0QsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsbUJBQW1CLENBQXlDLENBQUM7WUFDakgsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDakMsK0JBQStCLEVBQy9CLHFDQUFxQyxtQkFBbUIsSUFBSSxDQUM3RCxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25FLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQ2pDLCtCQUErQixFQUMvQixtQkFBbUIsbUJBQW1CLHdDQUF3QyxDQUMvRSxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFFBQStELENBQUM7WUFDL0YsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQyxXQUFXLENBQUM7bUJBQ2hELGdCQUFnQixFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO21CQUM3QyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0SixNQUFNLFlBQVksR0FBRyxhQUFhLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sWUFBWSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUN6RCxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDakMsK0JBQStCLEVBQy9CLG1CQUFtQixtQkFBbUIsdUJBQXVCLFdBQVcsSUFBSSxVQUFVLEtBQUssQ0FDNUYsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBOEI7Z0JBQy9DLFNBQVMsRUFBRSxtQkFBbUI7Z0JBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztnQkFDMUIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJO2dCQUN4QixRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUM5QyxNQUFNLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7Z0JBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLElBQUksRUFBRTthQUNyQyxDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTyxZQUF5RSxDQUFDLElBQUksQ0FDcEcsYUFBYSxFQUNiLGFBQWEsQ0FDZCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELHVCQUF1QixDQUFDLFdBQTZCLEVBQUUsWUFBb0IsRUFBRSxJQUErQjtZQUMxRyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFBO1lBQzVDLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQzFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFBSSxXQUFXLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN4QyxLQUFLLE1BQU0sY0FBYyxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDekQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFGLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELHVCQUF1QixDQUFDLE9BQWdDLEVBQUUsV0FBNkI7WUFFckYsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBd0MsQ0FBQztZQUNqRyxJQUFJLGVBQWUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsZUFBZSxHQUFJLE9BQXdELENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUM1RixDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQW1DLEVBQUUsQ0FBQztZQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbEIsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUM7WUFDNUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDO29CQUNILE1BQU0sU0FBUyxHQUFHO3dCQUNoQixNQUFNLEVBQUUsTUFBTTt3QkFDZCxDQUFDLEVBQUUsQ0FBQztxQkFDTCxDQUFDO29CQUNGLElBQUksZUFBZSxHQUE0QixFQUFFLENBQUM7b0JBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQzt3QkFDcEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3dCQUN4RCxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsS0FBYyxFQUFFLEdBQVc7NEJBQ2pFLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO3dCQUMzRSxDQUFDLENBQUMsQ0FBQzt3QkFDSCxlQUFlLEdBQUcsY0FBeUMsQ0FBQzt3QkFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDakMsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sTUFBTSxFQUFFLENBQUM7b0JBQ2hCLFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRU8sZUFBZSxDQUFDLEtBQW9CLEVBQUUsWUFBb0IsRUFBRSxXQUE2QixFQUFFLEtBQWEsRUFBRSxJQUFZLEVBQUUsU0FBaUIsTUFBTSxFQUFFLElBQStCO1lBQ3RMLElBQUksS0FBSyxHQUFHLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLHFEQUFxRCxLQUFLLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDMUgsS0FBSyxHQUFHLEtBQUssR0FBRyw0QkFBNEIsS0FBSyxDQUFDLEVBQUUsT0FBTyxNQUFNLEVBQUUsQ0FBQztZQUVwRSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUN2RCxLQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxjQUFjLEdBQUcsR0FBRyxDQUFDO29CQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDN0IsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7b0JBQ2xELENBQUM7eUJBQU0sQ0FBQzt3QkFDTixLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7b0JBQzlCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLFdBQVcsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLEtBQUssTUFBTSxjQUFjLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN6RCxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDO29CQUMvQyxLQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxjQUFjLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdEcsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFTyxnQkFBZ0I7WUFDdEIsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBNkIsQ0FBQztRQUNyRixDQUFDO1FBRU8sV0FBVyxDQUFDLGNBQXNCLEVBQUUsU0FBa0M7WUFDNUUsSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVPLHlCQUF5QixDQUFDLFFBQWdCLEVBQUUsWUFBb0I7WUFDdEUsT0FBTyxDQUFDLEdBQTRCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLEVBQUU7Z0JBQzlHLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDM0MsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQ2xDLCtCQUErQixFQUMvQixpQ0FBaUMsWUFBWSx5Q0FBeUMsWUFBWSxJQUFJLENBQ3ZHLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDdkMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU8sOEJBQThCLENBQUMsU0FBaUIsRUFBRSxRQUFpQjtZQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDakMsaUNBQWlDLEVBQ2pDLG1CQUFtQixTQUFTLG1DQUFtQyxDQUNoRSxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QixNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDakMsaUNBQWlDLEVBQ2pDLG1CQUFtQixTQUFTLHFDQUFxQyxDQUNsRSxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sVUFBVSxHQUErQjtnQkFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMzRixDQUFDO1lBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUNqQyxpQ0FBaUMsRUFDakMsbUJBQW1CLFNBQVMsb0NBQW9DLENBQ2pFLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxVQUFVLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVPLDRCQUE0QixDQUFDLFNBQWlCLEVBQUUsSUFBYSxFQUFFLEtBQWE7WUFDbEYsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQ2pDLGlDQUFpQyxFQUNqQyxtQkFBbUIsU0FBUywyQ0FBMkMsS0FBSyxHQUFHLENBQ2hGLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUNqQyxpQ0FBaUMsRUFDakMsbUJBQW1CLFNBQVMsNkRBQTZELEtBQUssR0FBRyxDQUNsRyxDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEYsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQ2pDLGlDQUFpQyxFQUNqQyxtQkFBbUIsU0FBUyxxREFBcUQsS0FBSyxHQUFHLENBQzFGLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM1RSxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FDakMsaUNBQWlDLEVBQ2pDLG1CQUFtQixTQUFTLG1EQUFtRCxLQUFLLEdBQUcsQ0FDeEYsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLFVBQVUsR0FBNkI7Z0JBQzNDLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxVQUFVLEVBQUUsU0FBUzthQUN0QixDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQy9CLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDOUIsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVPLDRCQUE0QixDQUFDLEtBQWM7WUFDakQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDekYsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVPLGFBQWEsQ0FBQyxLQUFjO1lBQ2xDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFTyxrQkFBa0IsQ0FBQyxZQUFvQjtZQUM3QyxJQUFJLENBQUMsbUVBQW1FLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQzVGLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELE9BQU8sWUFBWTtpQkFDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRU8sc0JBQXNCLENBQUMsS0FBYztZQUMzQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3pGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFTyx5QkFBeUIsQ0FBQyxJQUE2QixFQUFFLE9BQWU7WUFDOUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUE4QyxDQUFDO1lBQzlFLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVPLHdCQUF3QixDQUFDLElBQTRCLEVBQUUsT0FBZTtZQUM1RSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQTZDLENBQUM7WUFDN0UsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0tBQ0Y7SUF4WVksdUJBQWMsaUJBd1kxQixDQUFBO0FBQ0gsQ0FBQyxFQS9aZ0IsUUFBUSx3QkFBUixRQUFRLFFBK1p4QiJ9
@@ -148,7 +148,7 @@ var Services;
148
148
  this.logger.warn(`No form config found for ${formName}, skipping bootstrap.`);
149
149
  return null;
150
150
  }
151
- // TODO: Make the typing stronger here by removing the Record type here
151
+ // TODO: Make the typing stronger here by removing the Record type here
152
152
  // once we remove the legacy forms config
153
153
  const formConfig = {
154
154
  name: formName,
@@ -535,16 +535,16 @@ var Services;
535
535
  */
536
536
  async buildClientFormConfig(item, formMode, userRoles, recordMetadata, reusableFormDefs, branding, contextVariablesMap) {
537
537
  const constructor = new construct_visitor_1.ConstructFormConfigVisitor(this.logger);
538
- const constructed = constructor.start({ data: item, reusableFormDefs, formMode, record: recordMetadata });
538
+ const constructed = await constructor.start({ data: item, reusableFormDefs, formMode, record: recordMetadata });
539
539
  const vocabVisitor = new vocab_inline_visitor_1.VocabInlineFormConfigVisitor(this.logger);
540
540
  await vocabVisitor.resolveVocabs(constructed, branding, {
541
541
  includeHistoricalValues: recordMetadata !== null && recordMetadata !== undefined
542
542
  });
543
543
  const contextVariablesVisitor = new context_variables_visitor_1.ContextVariablesFormConfigVisitor(this.logger);
544
- contextVariablesVisitor.applyContextVariables(constructed, contextVariablesMap);
544
+ await contextVariablesVisitor.applyContextVariables(constructed, contextVariablesMap);
545
545
  // create the client form config
546
546
  const visitor = new client_visitor_1.ClientFormConfigVisitor(this.logger);
547
- const result = visitor.start({ form: constructed, formMode, userRoles, reusableFormDefs });
547
+ const result = await visitor.start({ form: constructed, formMode, userRoles, reusableFormDefs });
548
548
  if (!result) {
549
549
  throw new Error(`The form config is invalid because all form fields were removed, ` +
550
550
  `the form config must have at least one field the current user can view: ${JSON.stringify({
@@ -579,4 +579,4 @@ var Services;
579
579
  }
580
580
  Services.Forms = Forms;
581
581
  })(Services || (exports.Services = Services = {}));
582
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybXNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0Zvcm1zU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFBc0Q7QUFDdEQsOENBQWlGO0FBQ2pGLGdEQUFzRDtBQUd0RCx5Q0FBeUM7QUFDekMsMkNBQTZCO0FBQzdCLDBFQUErRTtBQUsvRSw4REFBb0U7QUFDcEUsb0VBQTBFO0FBQzFFLG9GQUF5RjtBQThCekYsSUFBaUIsUUFBUSxDQXVsQnhCO0FBdmxCRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxLQUFNLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUM3QixzQ0FBc0MsR0FBRyxzQ0FBc0MsQ0FBQztRQUU5RSxnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gsU0FBUztZQUNULGVBQWU7WUFDZixlQUFlO1lBQ2YsMkJBQTJCO1lBQzNCLFdBQVc7WUFDWCx5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLCtCQUErQjtZQUMvQix1QkFBdUI7U0FDeEIsQ0FBQztRQUVLLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBOEIsRUFBRSxVQUFrQjtZQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsWUFBWSxDQUFDLEVBQUUsc0JBQXNCLFlBQVksQ0FBQyxNQUFN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
582
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybXNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0Zvcm1zU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFBc0Q7QUFDdEQsOENBQWlGO0FBQ2pGLGdEQUFzRDtBQUd0RCx5Q0FBeUM7QUFDekMsMkNBQTZCO0FBQzdCLDBFQUErRTtBQUsvRSw4REFBb0U7QUFDcEUsb0VBQTBFO0FBQzFFLG9GQUF5RjtBQThCekYsSUFBaUIsUUFBUSxDQXVsQnhCO0FBdmxCRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxLQUFNLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUM3QixzQ0FBc0MsR0FBRyxzQ0FBc0MsQ0FBQztRQUU5RSxnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gsU0FBUztZQUNULGVBQWU7WUFDZixlQUFlO1lBQ2YsMkJBQTJCO1lBQzNCLFdBQVc7WUFDWCx5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLCtCQUErQjtZQUMvQix1QkFBdUI7U0FDeEIsQ0FBQztRQUVLLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBOEIsRUFBRSxVQUFrQjtZQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsWUFBWSxDQUFDLEVBQUUsc0JBQXNCLFlBQVksQ0FBQyxNQUFN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
@@ -8,8 +8,13 @@ export declare namespace Services {
8
8
  type MetaEntry = {
9
9
  category?: string;
10
10
  description?: string;
11
+ contentFormat?: unknown;
11
12
  };
12
13
  type MetaMap = Record<string, MetaEntry>;
14
+ type BundleSetOptions = {
15
+ splitToEntries?: boolean;
16
+ overwriteEntries?: boolean;
17
+ };
13
18
  export function isBundle(obj: unknown): obj is Bundle;
14
19
  /**
15
20
  * I18nEntriesService: Manage i18next translations stored in DB.
@@ -33,6 +38,7 @@ export declare namespace Services {
33
38
  setEntry(branding: BrandingModel, locale: string, namespace: string, key: string, value: unknown, options?: {
34
39
  bundleId?: string;
35
40
  category?: string;
41
+ contentFormat?: unknown;
36
42
  description?: string;
37
43
  noReload?: boolean;
38
44
  }): Promise<I18nTranslationAttributes | null>;
@@ -40,16 +46,15 @@ export declare namespace Services {
40
46
  listEntries(branding: BrandingModel, locale: string, namespace: string, keyPrefix?: string): Promise<I18nTranslationAttributes[]>;
41
47
  getBundle(branding: BrandingModel, locale: string, namespace: string): Promise<I18nBundleAttributes | null>;
42
48
  listBundles(branding: BrandingModel): Promise<I18nBundleAttributes[]>;
43
- setBundle(branding: BrandingModel, locale: string, namespace: string, data: I18nData, displayName?: string, _options?: {
44
- splitToEntries?: boolean;
45
- overwriteEntries?: boolean;
46
- }): Promise<I18nBundleAttributes | null>;
49
+ private addMissingDefaultEntriesFromBundle;
50
+ setBundle(branding: BrandingModel, locale: string, namespace: string, data: I18nData, displayName?: string, options?: BundleSetOptions): Promise<I18nBundleAttributes | null>;
47
51
  updateBundleEnabled(branding: BrandingModel, locale: string, namespace: string, enabled: boolean): Promise<I18nBundleAttributes>;
48
52
  composeNamespace(entries: Array<{
49
53
  key: string;
50
54
  value?: unknown;
51
55
  }>): I18nData;
52
56
  syncEntriesFromBundle(bundleOrId: I18nBundleAttributes | string | number, overwrite?: boolean): Promise<void>;
57
+ private normalizeContentFormat;
53
58
  /**
54
59
  * Load centralized metadata from language-defaults/meta.json.
55
60
  * This metadata provides additional context and information about
@@ -1 +1 @@
1
- {"version":3,"file":"I18nEntriesService.d.ts","sourceRoot":"","sources":["../../src/services/I18nEntriesService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"I18nEntriesService.d.ts","sourceRoot":"","sources":["../../src/services/I18nEntriesService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,yBAAiB,QAAQ,CAAC;IAExB,MAAM,MAAM,MAAM,GAAG,oBAAoB,CAAC;IAC1C,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExC,KAAK,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtF,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,KAAK,gBAAgB,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAEjF,MAAM,UAAU,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;IAED;;;;OAIG;IAEH,MAAM,OAAO,WAAY,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QAGpD;;;;WAIG;QACU,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAqF3D,OAAO,CAAC,OAAO;QAef,OAAO,CAAC,SAAS;QAmBjB,OAAO,CAAC,SAAS;QAiBjB,OAAO,CAAC,YAAY;QAYpB,OAAO,CAAC,iBAAiB;QAUzB,OAAO,CAAC,QAAQ;QAMH,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;QAK5H,QAAQ,CACnB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,GACpH,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;QA+C/B,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAmBtG,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAUjI,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAM3G,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBAKpE,kCAAkC;QAgEnC,SAAS,CACpB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAyC1B,mBAAmB,CAC9B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,oBAAoB,CAAC;QAgBzB,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,GAAG,QAAQ;QAQtE,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,GAAG,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAyExH,OAAO,CAAC,sBAAsB;QAK9B;;;;;;;;;;;UAWE;QACW,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;QAiBpD;;WAEG;QACU,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAiBjE;;WAEG;QACU,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;KAIrE;;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC;CAC9C"}