@researchdatabox/redbox-core 0.0.0-bootstrap.0 → 0.0.1-beta.10173

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. package/dist/CoreController.d.ts +4 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +68 -23
  4. package/dist/CoreService.d.ts +1 -1
  5. package/dist/CoreService.d.ts.map +1 -1
  6. package/dist/CoreService.js +1 -1
  7. package/dist/DatastreamService.d.ts +5 -2
  8. package/dist/DatastreamService.d.ts.map +1 -1
  9. package/dist/HarvestRunService.d.ts +49 -0
  10. package/dist/HarvestRunService.d.ts.map +1 -0
  11. package/dist/HarvestRunService.js +13 -0
  12. package/dist/IntegrationAuditParams.d.ts +11 -0
  13. package/dist/IntegrationAuditParams.js +14 -0
  14. package/dist/QueueService.d.ts +1 -1
  15. package/dist/QueueService.d.ts.map +1 -1
  16. package/dist/RecordAuditParams.d.ts +2 -0
  17. package/dist/RecordAuditParams.d.ts.map +1 -1
  18. package/dist/RecordAuditParams.js +3 -1
  19. package/dist/RecordsService.d.ts +52 -2
  20. package/dist/RecordsService.d.ts.map +1 -1
  21. package/dist/StorageService.d.ts +5 -1
  22. package/dist/StorageService.d.ts.map +1 -1
  23. package/dist/api-routes/apib.d.ts +7 -0
  24. package/dist/api-routes/apib.d.ts.map +1 -0
  25. package/dist/api-routes/apib.js +43 -0
  26. package/dist/api-routes/define.d.ts +4 -0
  27. package/dist/api-routes/define.d.ts.map +1 -0
  28. package/dist/api-routes/define.js +29 -0
  29. package/dist/api-routes/groups/admin.d.ts +6 -0
  30. package/dist/api-routes/groups/admin.d.ts.map +1 -0
  31. package/dist/api-routes/groups/admin.js +53 -0
  32. package/dist/api-routes/groups/appconfig.d.ts +4 -0
  33. package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
  34. package/dist/api-routes/groups/appconfig.js +33 -0
  35. package/dist/api-routes/groups/branding.d.ts +8 -0
  36. package/dist/api-routes/groups/branding.d.ts.map +1 -0
  37. package/dist/api-routes/groups/branding.js +61 -0
  38. package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
  39. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
  40. package/dist/api-routes/groups/dashboard-config.js +90 -0
  41. package/dist/api-routes/groups/export.d.ts +3 -0
  42. package/dist/api-routes/groups/export.d.ts.map +1 -0
  43. package/dist/api-routes/groups/export.js +30 -0
  44. package/dist/api-routes/groups/forms.d.ts +4 -0
  45. package/dist/api-routes/groups/forms.d.ts.map +1 -0
  46. package/dist/api-routes/groups/forms.js +29 -0
  47. package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
  48. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
  49. package/dist/api-routes/groups/harvest-runs.js +79 -0
  50. package/dist/api-routes/groups/integration-audit.d.ts +3 -0
  51. package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
  52. package/dist/api-routes/groups/integration-audit.js +35 -0
  53. package/dist/api-routes/groups/named-query.d.ts +8 -0
  54. package/dist/api-routes/groups/named-query.d.ts.map +1 -0
  55. package/dist/api-routes/groups/named-query.js +54 -0
  56. package/dist/api-routes/groups/notifications.d.ts +3 -0
  57. package/dist/api-routes/groups/notifications.d.ts.map +1 -0
  58. package/dist/api-routes/groups/notifications.js +20 -0
  59. package/dist/api-routes/groups/records.d.ts +28 -0
  60. package/dist/api-routes/groups/records.d.ts.map +1 -0
  61. package/dist/api-routes/groups/records.js +353 -0
  62. package/dist/api-routes/groups/recordtypes.d.ts +4 -0
  63. package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
  64. package/dist/api-routes/groups/recordtypes.js +27 -0
  65. package/dist/api-routes/groups/reports.d.ts +9 -0
  66. package/dist/api-routes/groups/reports.d.ts.map +1 -0
  67. package/dist/api-routes/groups/reports.js +63 -0
  68. package/dist/api-routes/groups/search-query.d.ts +4 -0
  69. package/dist/api-routes/groups/search-query.d.ts.map +1 -0
  70. package/dist/api-routes/groups/search-query.js +51 -0
  71. package/dist/api-routes/groups/search.d.ts +6 -0
  72. package/dist/api-routes/groups/search.d.ts.map +1 -0
  73. package/dist/api-routes/groups/search.js +31 -0
  74. package/dist/api-routes/groups/translation.d.ts +8 -0
  75. package/dist/api-routes/groups/translation.d.ts.map +1 -0
  76. package/dist/api-routes/groups/translation.js +82 -0
  77. package/dist/api-routes/groups/users.d.ts +17 -0
  78. package/dist/api-routes/groups/users.d.ts.map +1 -0
  79. package/dist/api-routes/groups/users.js +149 -0
  80. package/dist/api-routes/groups/vocabulary.d.ts +10 -0
  81. package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
  82. package/dist/api-routes/groups/vocabulary.js +97 -0
  83. package/dist/api-routes/helpers.d.ts +29 -0
  84. package/dist/api-routes/helpers.d.ts.map +1 -0
  85. package/dist/api-routes/helpers.js +485 -0
  86. package/dist/api-routes/index.d.ts +27 -0
  87. package/dist/api-routes/index.d.ts.map +1 -0
  88. package/dist/api-routes/index.js +43 -0
  89. package/dist/api-routes/openapi.d.ts +26 -0
  90. package/dist/api-routes/openapi.d.ts.map +1 -0
  91. package/dist/api-routes/openapi.js +292 -0
  92. package/dist/api-routes/request-extraction.d.ts +14 -0
  93. package/dist/api-routes/request-extraction.d.ts.map +1 -0
  94. package/dist/api-routes/request-extraction.js +100 -0
  95. package/dist/api-routes/route-factory.d.ts +3 -0
  96. package/dist/api-routes/route-factory.d.ts.map +1 -0
  97. package/dist/api-routes/route-factory.js +30 -0
  98. package/dist/api-routes/route-registry.d.ts +24 -0
  99. package/dist/api-routes/route-registry.d.ts.map +1 -0
  100. package/dist/api-routes/route-registry.js +117 -0
  101. package/dist/api-routes/route-resolution.d.ts +4 -0
  102. package/dist/api-routes/route-resolution.d.ts.map +1 -0
  103. package/dist/api-routes/route-resolution.js +71 -0
  104. package/dist/api-routes/schemas/common.d.ts +35 -0
  105. package/dist/api-routes/schemas/common.d.ts.map +1 -0
  106. package/dist/api-routes/schemas/common.js +146 -0
  107. package/dist/api-routes/schemas/responses.d.ts +972 -0
  108. package/dist/api-routes/schemas/responses.d.ts.map +1 -0
  109. package/dist/api-routes/schemas/responses.js +512 -0
  110. package/dist/api-routes/types.d.ts +70 -0
  111. package/dist/api-routes/types.d.ts.map +1 -0
  112. package/dist/api-routes/types.js +3 -0
  113. package/dist/api-routes/validation.d.ts +32 -0
  114. package/dist/api-routes/validation.d.ts.map +1 -0
  115. package/dist/api-routes/validation.js +142 -0
  116. package/dist/api-routes/zod-openapi.d.ts +3 -0
  117. package/dist/api-routes/zod-openapi.d.ts.map +1 -0
  118. package/dist/api-routes/zod-openapi.js +8 -0
  119. package/dist/bootstrap.d.ts.map +1 -1
  120. package/dist/bootstrap.js +12 -12
  121. package/dist/config/agendaQueue.config.d.ts +33 -6
  122. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  123. package/dist/config/agendaQueue.config.js +40 -18
  124. package/dist/config/auth.config.d.ts.map +1 -1
  125. package/dist/config/auth.config.js +29 -2
  126. package/dist/config/branding.config.d.ts +2 -1
  127. package/dist/config/branding.config.d.ts.map +1 -1
  128. package/dist/config/branding.config.js +5 -95
  129. package/dist/config/brandingConfigurationDefaults.config.d.ts +3 -0
  130. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  131. package/dist/config/brandingConfigurationDefaults.config.js +158 -5
  132. package/dist/config/custom.config.d.ts +6 -0
  133. package/dist/config/custom.config.d.ts.map +1 -1
  134. package/dist/config/custom.config.js +10 -1
  135. package/dist/config/dashboardtype.config.d.ts +5 -0
  136. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  137. package/dist/config/dashboardtype.config.js +1 -1
  138. package/dist/config/dashboardview.config.d.ts +24 -0
  139. package/dist/config/dashboardview.config.d.ts.map +1 -0
  140. package/dist/config/dashboardview.config.js +137 -0
  141. package/dist/config/dompurify.config.d.ts +1 -0
  142. package/dist/config/dompurify.config.d.ts.map +1 -1
  143. package/dist/config/dompurify.config.js +5 -4
  144. package/dist/config/emailnotification.config.d.ts.map +1 -1
  145. package/dist/config/emailnotification.config.js +2 -1
  146. package/dist/config/figshareDev.config.d.ts +12 -0
  147. package/dist/config/figshareDev.config.js +9 -0
  148. package/dist/config/form.config.d.ts +4 -0
  149. package/dist/config/form.config.d.ts.map +1 -1
  150. package/dist/config/form.config.js +1 -1
  151. package/dist/config/harvestRuns.config.d.ts +9 -0
  152. package/dist/config/harvestRuns.config.d.ts.map +1 -0
  153. package/dist/config/harvestRuns.config.js +11 -0
  154. package/dist/config/http.config.d.ts +13 -1
  155. package/dist/config/http.config.d.ts.map +1 -1
  156. package/dist/config/http.config.js +201 -38
  157. package/dist/config/index.d.ts +14 -19
  158. package/dist/config/index.d.ts.map +1 -1
  159. package/dist/config/index.js +10 -15
  160. package/dist/config/namedQuery.config.d.ts +26 -4
  161. package/dist/config/namedQuery.config.d.ts.map +1 -1
  162. package/dist/config/namedQuery.config.js +7 -350
  163. package/dist/config/policies.config.d.ts +3 -0
  164. package/dist/config/policies.config.d.ts.map +1 -1
  165. package/dist/config/policies.config.js +35 -1
  166. package/dist/config/record.config.d.ts.map +1 -1
  167. package/dist/config/record.config.js +2 -1
  168. package/dist/config/recordtype.config.d.ts +28 -0
  169. package/dist/config/recordtype.config.d.ts.map +1 -1
  170. package/dist/config/recordtype.config.js +105 -13
  171. package/dist/config/redboxSession.config.d.ts +3 -0
  172. package/dist/config/redboxSession.config.d.ts.map +1 -1
  173. package/dist/config/redboxSession.config.js +1 -1
  174. package/dist/config/report.config.d.ts +2 -11
  175. package/dist/config/report.config.d.ts.map +1 -1
  176. package/dist/config/report.config.js +3 -49
  177. package/dist/config/reusableContributorFormDefinitions.config.d.ts +1 -1
  178. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  179. package/dist/config/reusableContributorFormDefinitions.config.js +371 -206
  180. package/dist/config/reusableViewFormDefinitions.config.js +3 -3
  181. package/dist/config/routes.config.d.ts +5 -2
  182. package/dist/config/routes.config.d.ts.map +1 -1
  183. package/dist/config/routes.config.js +55 -117
  184. package/dist/config/storage.config.d.ts +20 -2
  185. package/dist/config/storage.config.d.ts.map +1 -1
  186. package/dist/config/storage.config.js +2 -1
  187. package/dist/config/validators.config.d.ts +6 -4
  188. package/dist/config/validators.config.d.ts.map +1 -1
  189. package/dist/config/validators.config.js +5 -3
  190. package/dist/config/vocab.config.d.ts +30 -0
  191. package/dist/config/vocab.config.d.ts.map +1 -1
  192. package/dist/config/vocab.config.js +21 -1
  193. package/dist/config/webpack.config.d.ts.map +1 -1
  194. package/dist/config/webpack.config.js +18 -12
  195. package/dist/config/workflow.config.d.ts +0 -1
  196. package/dist/config/workflow.config.d.ts.map +1 -1
  197. package/dist/config/workflow.config.js +1 -137
  198. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  199. package/dist/configmodels/AdminSidebarConfig.js +4 -3
  200. package/dist/configmodels/AuthorizedDomainsEmails.d.ts +48 -0
  201. package/dist/configmodels/AuthorizedDomainsEmails.d.ts.map +1 -1
  202. package/dist/configmodels/AuthorizedDomainsEmails.js +50 -2
  203. package/dist/configmodels/ConfigModels.d.ts +7 -1
  204. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  205. package/dist/configmodels/ConfigModels.js +41 -1
  206. package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
  207. package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
  208. package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
  209. package/dist/configmodels/DoiPublishing.d.ts +4711 -0
  210. package/dist/configmodels/DoiPublishing.js +639 -0
  211. package/dist/configmodels/FigsharePublishing.d.ts +1376 -0
  212. package/dist/configmodels/FigsharePublishing.js +630 -0
  213. package/dist/configmodels/IntegrationNotificationConfig.d.ts +133 -0
  214. package/dist/configmodels/IntegrationNotificationConfig.d.ts.map +1 -0
  215. package/dist/configmodels/IntegrationNotificationConfig.js +64 -0
  216. package/dist/configmodels/SystemMessage.d.ts +32 -0
  217. package/dist/configmodels/SystemMessage.d.ts.map +1 -1
  218. package/dist/configmodels/SystemMessage.js +34 -2
  219. package/dist/controllers/AdminController.d.ts +1 -1
  220. package/dist/controllers/AdminController.d.ts.map +1 -1
  221. package/dist/controllers/AdminController.js +6 -32
  222. package/dist/controllers/AppConfigController.js +3 -3
  223. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  224. package/dist/controllers/BrandingAppController.js +11 -10
  225. package/dist/controllers/BrandingController.d.ts +11 -5
  226. package/dist/controllers/BrandingController.d.ts.map +1 -1
  227. package/dist/controllers/BrandingController.js +116 -48
  228. package/dist/controllers/DashboardConfigController.d.ts +8 -0
  229. package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
  230. package/dist/controllers/DashboardConfigController.js +17 -0
  231. package/dist/controllers/DynamicAssetController.d.ts +1 -21
  232. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  233. package/dist/controllers/DynamicAssetController.js +19 -41
  234. package/dist/controllers/EmailController.d.ts.map +1 -1
  235. package/dist/controllers/EmailController.js +16 -12
  236. package/dist/controllers/FormVocabularyController.d.ts +3 -0
  237. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  238. package/dist/controllers/FormVocabularyController.js +154 -4
  239. package/dist/controllers/NamedQueryController.d.ts +8 -0
  240. package/dist/controllers/NamedQueryController.d.ts.map +1 -0
  241. package/dist/controllers/NamedQueryController.js +17 -0
  242. package/dist/controllers/RecordAuditController.d.ts +31 -14
  243. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  244. package/dist/controllers/RecordAuditController.js +509 -57
  245. package/dist/controllers/RecordController.d.ts +18 -16
  246. package/dist/controllers/RecordController.d.ts.map +1 -1
  247. package/dist/controllers/RecordController.js +314 -167
  248. package/dist/controllers/RenderViewController.d.ts.map +1 -1
  249. package/dist/controllers/RenderViewController.js +4 -2
  250. package/dist/controllers/ReportController.d.ts +7 -0
  251. package/dist/controllers/ReportController.d.ts.map +1 -1
  252. package/dist/controllers/ReportController.js +75 -2
  253. package/dist/controllers/ReportsController.d.ts +1 -0
  254. package/dist/controllers/ReportsController.d.ts.map +1 -1
  255. package/dist/controllers/ReportsController.js +12 -2
  256. package/dist/controllers/TranslationController.d.ts.map +1 -1
  257. package/dist/controllers/TranslationController.js +14 -12
  258. package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
  259. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
  260. package/dist/controllers/WorkspaceTypesController.js +120 -31
  261. package/dist/controllers/index.d.ts.map +1 -1
  262. package/dist/controllers/index.js +19 -4
  263. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  264. package/dist/controllers/webservice/AdminController.js +16 -17
  265. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
  266. package/dist/controllers/webservice/AppConfigController.js +17 -18
  267. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  268. package/dist/controllers/webservice/BrandingController.js +102 -48
  269. package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
  270. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
  271. package/dist/controllers/webservice/DashboardConfigController.js +241 -0
  272. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  273. package/dist/controllers/webservice/ExportController.js +11 -11
  274. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  275. package/dist/controllers/webservice/FormManagementController.js +11 -13
  276. package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
  277. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
  278. package/dist/controllers/webservice/HarvestRunController.js +148 -0
  279. package/dist/controllers/webservice/IntegrationAuditController.d.ts +10 -0
  280. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
  281. package/dist/controllers/webservice/IntegrationAuditController.js +98 -0
  282. package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
  283. package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
  284. package/dist/controllers/webservice/NamedQueryController.js +127 -0
  285. package/dist/controllers/webservice/RecordController.d.ts +4 -0
  286. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  287. package/dist/controllers/webservice/RecordController.js +441 -314
  288. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  289. package/dist/controllers/webservice/RecordTypeController.js +9 -10
  290. package/dist/controllers/webservice/ReportController.d.ts +7 -0
  291. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  292. package/dist/controllers/webservice/ReportController.js +125 -19
  293. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  294. package/dist/controllers/webservice/SearchController.js +28 -35
  295. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  296. package/dist/controllers/webservice/TranslationController.js +65 -43
  297. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  298. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  299. package/dist/controllers/webservice/UserManagementController.js +114 -101
  300. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  301. package/dist/controllers/webservice/VocabularyController.js +76 -28
  302. package/dist/form-config/dataRecord-1.0-draft.js +3 -3
  303. package/dist/form-config/default-1.0-draft.d.ts.map +1 -1
  304. package/dist/form-config/default-1.0-draft.js +27 -3
  305. package/dist/form-config/index.d.ts.map +1 -1
  306. package/dist/form-config/index.js +1 -1
  307. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  308. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  309. package/dist/hooks/defineRedboxHook.js +4 -1
  310. package/dist/hooks/webpack.d.ts.map +1 -1
  311. package/dist/hooks/webpack.js +17 -7
  312. package/dist/index.d.ts +12 -2
  313. package/dist/index.d.ts.map +1 -1
  314. package/dist/index.js +17 -2
  315. package/dist/loader/MigrationRunner.d.ts +19 -0
  316. package/dist/loader/MigrationRunner.d.ts.map +1 -0
  317. package/dist/loader/MigrationRunner.js +108 -0
  318. package/dist/loader/bootstrapShimRuntime.d.ts +2 -1
  319. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  320. package/dist/loader/bootstrapShimRuntime.js +7 -2
  321. package/dist/loader/index.d.ts +17 -0
  322. package/dist/loader/index.d.ts.map +1 -1
  323. package/dist/loader/index.js +216 -13
  324. package/dist/middleware/redboxSession.d.ts +5 -0
  325. package/dist/middleware/redboxSession.d.ts.map +1 -1
  326. package/dist/middleware/redboxSession.js +19 -6
  327. package/dist/model/BuildResponse.d.ts +4 -0
  328. package/dist/model/BuildResponse.d.ts.map +1 -1
  329. package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
  330. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  331. package/dist/model/DashboardTypeResponseModel.js +12 -4
  332. package/dist/model/DashboardViewResponseModel.d.ts +20 -0
  333. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
  334. package/dist/model/DashboardViewResponseModel.js +38 -0
  335. package/dist/model/RecordTypeResponseModel.d.ts +3 -1
  336. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  337. package/dist/model/RecordTypeResponseModel.js +4 -2
  338. package/dist/model/RequestDetails.d.ts +1 -1
  339. package/dist/model/RequestDetails.d.ts.map +1 -1
  340. package/dist/model/RequestDetails.js +1 -1
  341. package/dist/model/config/ReportConfig.d.ts +1 -1
  342. package/dist/model/config/ReportConfig.d.ts.map +1 -1
  343. package/dist/model/config/ReportConfig.js +2 -2
  344. package/dist/model/index.d.ts +1 -0
  345. package/dist/model/index.d.ts.map +1 -1
  346. package/dist/model/index.js +5 -2
  347. package/dist/model/storage/BrandingModel.d.ts +0 -16
  348. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  349. package/dist/model/storage/BrandingModel.js +2 -51
  350. package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
  351. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
  352. package/dist/model/storage/HarvestRunModel.d.ts +140 -0
  353. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
  354. package/dist/model/storage/HarvestRunModel.js +110 -0
  355. package/dist/model/storage/IntegrationAuditModel.d.ts +49 -0
  356. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  357. package/dist/model/storage/IntegrationAuditModel.js +106 -0
  358. package/dist/model/storage/RecordTypeModel.d.ts +16 -0
  359. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  360. package/dist/model/storage/RecordTypeModel.js +9 -1
  361. package/dist/model/storage/ReportModel.d.ts +1 -0
  362. package/dist/model/storage/ReportModel.d.ts.map +1 -1
  363. package/dist/model/storage/index.d.ts +2 -0
  364. package/dist/model/storage/index.d.ts.map +1 -1
  365. package/dist/model/storage/index.js +15 -2
  366. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  367. package/dist/policies/contentSecurityPolicy.js +23 -2
  368. package/dist/policies/i18nLanguages.d.ts.map +1 -1
  369. package/dist/policies/i18nLanguages.js +1 -1
  370. package/dist/policies/index.d.ts +3 -0
  371. package/dist/policies/index.d.ts.map +1 -1
  372. package/dist/policies/index.js +6 -2
  373. package/dist/policies/menuResolver.d.ts.map +1 -1
  374. package/dist/policies/menuResolver.js +1 -1
  375. package/dist/policies/setLang.d.ts.map +1 -1
  376. package/dist/policies/setLang.js +1 -1
  377. package/dist/policies/validateApiContractRequest.d.ts +3 -0
  378. package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
  379. package/dist/policies/validateApiContractRequest.js +74 -0
  380. package/dist/responses/badRequest.d.ts.map +1 -1
  381. package/dist/responses/badRequest.js +5 -3
  382. package/dist/responses/created.d.ts.map +1 -1
  383. package/dist/responses/created.js +5 -3
  384. package/dist/responses/forbidden.d.ts.map +1 -1
  385. package/dist/responses/forbidden.js +5 -3
  386. package/dist/responses/ok.d.ts.map +1 -1
  387. package/dist/responses/ok.js +5 -3
  388. package/dist/responses/serverError.d.ts.map +1 -1
  389. package/dist/responses/serverError.js +5 -3
  390. package/dist/responses/siteTitle.d.ts +6 -0
  391. package/dist/responses/siteTitle.d.ts.map +1 -0
  392. package/dist/responses/siteTitle.js +28 -0
  393. package/dist/sails.d.ts +9 -0
  394. package/dist/sails.d.ts.map +1 -1
  395. package/dist/services/AgendaQueueService.d.ts +39 -17
  396. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  397. package/dist/services/AgendaQueueService.js +328 -87
  398. package/dist/services/AppConfigService.d.ts +20 -2
  399. package/dist/services/AppConfigService.d.ts.map +1 -1
  400. package/dist/services/AppConfigService.js +129 -15
  401. package/dist/services/AttachmentMetadataService.d.ts +34 -0
  402. package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
  403. package/dist/services/AttachmentMetadataService.js +133 -0
  404. package/dist/services/BrandingLogoService.d.ts +11 -8
  405. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  406. package/dist/services/BrandingLogoService.js +71 -72
  407. package/dist/services/BrandingService.d.ts.map +1 -1
  408. package/dist/services/BrandingService.js +4 -32
  409. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  410. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  411. package/dist/services/BrandingThemeCssService.js +113 -0
  412. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  413. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  414. package/dist/services/BrandingThemeTokens.js +82 -0
  415. package/dist/services/CacheService.d.ts.map +1 -1
  416. package/dist/services/CacheService.js +37 -29
  417. package/dist/services/DashboardConfigService.d.ts +71 -0
  418. package/dist/services/DashboardConfigService.d.ts.map +1 -0
  419. package/dist/services/DashboardConfigService.js +315 -0
  420. package/dist/services/DashboardTypesService.d.ts +61 -63
  421. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  422. package/dist/services/DashboardTypesService.js +361 -198
  423. package/dist/services/DoiService.d.ts +30 -25
  424. package/dist/services/DoiService.d.ts.map +1 -1
  425. package/dist/services/DoiService.js +448 -393
  426. package/dist/services/EmailService.d.ts +17 -3
  427. package/dist/services/EmailService.d.ts.map +1 -1
  428. package/dist/services/EmailService.js +44 -17
  429. package/dist/services/FigshareService.d.ts +40 -65
  430. package/dist/services/FigshareService.d.ts.map +1 -1
  431. package/dist/services/FigshareService.js +616 -2038
  432. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  433. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  434. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  435. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  436. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  437. package/dist/services/FormRecordConsistencyService.js +21 -19
  438. package/dist/services/FormVocabularyService.d.ts +45 -0
  439. package/dist/services/FormVocabularyService.d.ts.map +1 -0
  440. package/dist/services/FormVocabularyService.js +326 -0
  441. package/dist/services/FormsService.d.ts.map +1 -1
  442. package/dist/services/FormsService.js +8 -6
  443. package/dist/services/HarvestRunService.d.ts +73 -0
  444. package/dist/services/HarvestRunService.d.ts.map +1 -0
  445. package/dist/services/HarvestRunService.js +1317 -0
  446. package/dist/services/I18nEntriesService.d.ts +9 -4
  447. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  448. package/dist/services/I18nEntriesService.js +96 -18
  449. package/dist/services/IntegrationAuditService.d.ts +158 -0
  450. package/dist/services/IntegrationAuditService.d.ts.map +1 -1
  451. package/dist/services/IntegrationAuditService.js +838 -0
  452. package/dist/services/IntegrationNotificationService.d.ts +55 -0
  453. package/dist/services/IntegrationNotificationService.d.ts.map +1 -0
  454. package/dist/services/IntegrationNotificationService.js +271 -0
  455. package/dist/services/NamedQueryService.d.ts +51 -12
  456. package/dist/services/NamedQueryService.d.ts.map +1 -1
  457. package/dist/services/NamedQueryService.js +622 -125
  458. package/dist/services/OniService.js +2 -2
  459. package/dist/services/RDMPService.d.ts.map +1 -1
  460. package/dist/services/RDMPService.js +3 -2
  461. package/dist/services/RecordsService.d.ts +24 -2
  462. package/dist/services/RecordsService.d.ts.map +1 -1
  463. package/dist/services/RecordsService.js +119 -19
  464. package/dist/services/ReportsService.d.ts +57 -1
  465. package/dist/services/ReportsService.d.ts.map +1 -1
  466. package/dist/services/ReportsService.js +258 -34
  467. package/dist/services/SassCompilerService.d.ts +4 -10
  468. package/dist/services/SassCompilerService.d.ts.map +1 -1
  469. package/dist/services/SassCompilerService.js +9 -173
  470. package/dist/services/SolrSearchService.d.ts +1 -0
  471. package/dist/services/SolrSearchService.d.ts.map +1 -1
  472. package/dist/services/SolrSearchService.js +14 -3
  473. package/dist/services/StandardDatastreamService.d.ts +37 -5
  474. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  475. package/dist/services/StandardDatastreamService.js +535 -38
  476. package/dist/services/StorageManagerService.d.ts +13 -1
  477. package/dist/services/StorageManagerService.d.ts.map +1 -1
  478. package/dist/services/StorageManagerService.js +94 -11
  479. package/dist/services/TemplateService.d.ts +2 -18
  480. package/dist/services/TemplateService.d.ts.map +1 -1
  481. package/dist/services/TemplateService.js +9 -53
  482. package/dist/services/VocabularyService.d.ts +13 -0
  483. package/dist/services/VocabularyService.d.ts.map +1 -1
  484. package/dist/services/VocabularyService.js +204 -14
  485. package/dist/services/doi-v2/audit.d.ts +7 -0
  486. package/dist/services/doi-v2/audit.d.ts.map +1 -1
  487. package/dist/services/doi-v2/audit.js +30 -0
  488. package/dist/services/doi-v2/bindings.d.ts +8 -0
  489. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  490. package/dist/services/doi-v2/bindings.js +79 -0
  491. package/dist/services/doi-v2/config.d.ts +7 -0
  492. package/dist/services/doi-v2/config.js +51 -0
  493. package/dist/services/doi-v2/context.d.ts +18 -0
  494. package/dist/services/doi-v2/context.js +41 -0
  495. package/dist/services/doi-v2/http.d.ts +21 -0
  496. package/dist/services/doi-v2/http.js +88 -0
  497. package/dist/services/doi-v2/payload.d.ts +4 -0
  498. package/dist/services/doi-v2/payload.js +291 -0
  499. package/dist/services/doi-v2/profiles.d.ts +5 -0
  500. package/dist/services/doi-v2/profiles.js +31 -0
  501. package/dist/services/doi-v2/runtime.d.ts +16 -0
  502. package/dist/services/doi-v2/runtime.js +173 -0
  503. package/dist/services/doi-v2/types.d.ts +49 -0
  504. package/dist/services/doi-v2/types.js +3 -0
  505. package/dist/services/figshare-v2/assets.d.ts +5 -0
  506. package/dist/services/figshare-v2/assets.js +297 -0
  507. package/dist/services/figshare-v2/audit.d.ts +7 -0
  508. package/dist/services/figshare-v2/audit.d.ts.map +1 -0
  509. package/dist/services/figshare-v2/audit.js +30 -0
  510. package/dist/services/figshare-v2/bindings.d.ts +6 -0
  511. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  512. package/dist/services/figshare-v2/bindings.js +58 -0
  513. package/dist/services/figshare-v2/config.d.ts +13 -0
  514. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  515. package/dist/services/figshare-v2/config.js +105 -0
  516. package/dist/services/figshare-v2/context.d.ts +4 -0
  517. package/dist/services/figshare-v2/context.d.ts.map +1 -1
  518. package/dist/services/figshare-v2/context.js +21 -0
  519. package/dist/services/figshare-v2/embargo.d.ts +5 -0
  520. package/dist/services/figshare-v2/embargo.js +36 -0
  521. package/dist/services/figshare-v2/http.d.ts +42 -0
  522. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  523. package/dist/services/figshare-v2/http.js +324 -0
  524. package/dist/services/figshare-v2/metadata.d.ts +6 -0
  525. package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
  526. package/dist/services/figshare-v2/metadata.js +280 -0
  527. package/dist/services/figshare-v2/observability.d.ts +7 -0
  528. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  529. package/dist/services/figshare-v2/observability.js +87 -0
  530. package/dist/services/figshare-v2/plan.d.ts +5 -0
  531. package/dist/services/figshare-v2/plan.js +51 -0
  532. package/dist/services/figshare-v2/publish.d.ts +5 -0
  533. package/dist/services/figshare-v2/publish.js +20 -0
  534. package/dist/services/figshare-v2/queue.d.ts +4 -0
  535. package/dist/services/figshare-v2/queue.js +11 -0
  536. package/dist/services/figshare-v2/runtime.d.ts +14 -0
  537. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  538. package/dist/services/figshare-v2/runtime.js +88 -0
  539. package/dist/services/figshare-v2/types.d.ts +198 -0
  540. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  541. package/dist/services/figshare-v2/types.js +59 -0
  542. package/dist/services/figshare-v2/workflow.d.ts +3 -0
  543. package/dist/services/figshare-v2/workflow.js +7 -0
  544. package/dist/services/figshare-v2/writeback.d.ts +5 -0
  545. package/dist/services/figshare-v2/writeback.js +45 -0
  546. package/dist/services/index.d.ts +24 -3
  547. package/dist/services/index.d.ts.map +1 -1
  548. package/dist/services/index.js +43 -7
  549. package/dist/shims/momentShim.d.ts.map +1 -1
  550. package/dist/shims/momentShim.js +1 -6
  551. package/dist/storage/GridFSDriver.d.ts +101 -0
  552. package/dist/storage/GridFSDriver.d.ts.map +1 -0
  553. package/dist/storage/GridFSDriver.js +291 -0
  554. package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
  555. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
  556. package/dist/storage/TusStorageManagerDataStore.js +300 -0
  557. package/dist/utilities/RequestParamUtils.d.ts +3 -0
  558. package/dist/utilities/RequestParamUtils.d.ts.map +1 -0
  559. package/dist/utilities/RequestParamUtils.js +13 -0
  560. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  561. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  562. package/dist/visitor/attachment-fields.visitor.js +44 -34
  563. package/dist/visitor/client.visitor.d.ts +145 -97
  564. package/dist/visitor/client.visitor.d.ts.map +1 -1
  565. package/dist/visitor/client.visitor.js +366 -273
  566. package/dist/visitor/construct.visitor.d.ts +99 -93
  567. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  568. package/dist/visitor/construct.visitor.js +302 -227
  569. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  570. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  571. package/dist/visitor/context-variables.visitor.js +85 -75
  572. package/dist/visitor/data-value.visitor.d.ts +99 -93
  573. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  574. package/dist/visitor/data-value.visitor.js +157 -148
  575. package/dist/visitor/json-type-def.visitor.d.ts +96 -90
  576. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  577. package/dist/visitor/json-type-def.visitor.js +158 -149
  578. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +101 -94
  579. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  580. package/dist/visitor/migrate-config-v4-v5.visitor.js +356 -295
  581. package/dist/visitor/template.visitor.d.ts +100 -92
  582. package/dist/visitor/template.visitor.d.ts.map +1 -1
  583. package/dist/visitor/template.visitor.js +245 -156
  584. package/dist/visitor/validator.visitor.d.ts +95 -91
  585. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  586. package/dist/visitor/validator.visitor.js +184 -152
  587. package/dist/visitor/visitor-helpers.js +9 -9
  588. package/dist/visitor/vocab-inline.visitor.d.ts +34 -19
  589. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  590. package/dist/visitor/vocab-inline.visitor.js +157 -48
  591. package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
  592. package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
  593. package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
  594. package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
  595. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
  596. package/dist/waterline-models/AttachmentMetadata.js +147 -0
  597. package/dist/waterline-models/BrandingConfig.d.ts +0 -2
  598. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  599. package/dist/waterline-models/BrandingConfig.js +5 -9
  600. package/dist/waterline-models/DashboardType.d.ts +7 -0
  601. package/dist/waterline-models/DashboardType.d.ts.map +1 -1
  602. package/dist/waterline-models/DashboardType.js +16 -1
  603. package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
  604. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
  605. package/dist/waterline-models/HarvestRecordEvent.js +107 -0
  606. package/dist/waterline-models/HarvestRun.d.ts +51 -0
  607. package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
  608. package/dist/waterline-models/HarvestRun.js +125 -0
  609. package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
  610. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
  611. package/dist/waterline-models/HarvestRunChunk.js +140 -0
  612. package/dist/waterline-models/I18nTranslation.d.ts +2 -0
  613. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
  614. package/dist/waterline-models/I18nTranslation.js +6 -1
  615. package/dist/waterline-models/Migration.d.ts +24 -0
  616. package/dist/waterline-models/Migration.d.ts.map +1 -0
  617. package/dist/waterline-models/Migration.js +52 -0
  618. package/dist/waterline-models/NamedQuery.d.ts +6 -0
  619. package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
  620. package/dist/waterline-models/NamedQuery.js +16 -1
  621. package/dist/waterline-models/index.d.ts +12 -0
  622. package/dist/waterline-models/index.d.ts.map +1 -1
  623. package/dist/waterline-models/index.js +19 -1
  624. package/package.json +77 -51
  625. package/redbox-loader-templates/bootstrap-shim.js.hbs +14 -1
  626. package/dist/config/datacite.config.d.ts +0 -51
  627. package/dist/config/datacite.config.d.ts.map +0 -1
  628. package/dist/config/datacite.config.js +0 -44
  629. package/dist/config/figshareAPI.config.d.ts +0 -116
  630. package/dist/config/figshareAPI.config.d.ts.map +0 -1
  631. package/dist/config/figshareAPI.config.js +0 -857
  632. package/dist/config/figshareAPIEnv.config.d.ts +0 -11
  633. package/dist/config/figshareAPIEnv.config.d.ts.map +0 -1
  634. package/dist/config/figshareAPIEnv.config.js +0 -13
  635. package/dist/config/figshareRedboxFORMapping.config.d.ts +0 -15
  636. package/dist/config/figshareRedboxFORMapping.config.d.ts.map +0 -1
  637. package/dist/config/figshareRedboxFORMapping.config.js +0 -7458
  638. package/dist/config/relatedObjectsFormDefinition.config.d.ts.map +0 -1
  639. package/dist/controllers/VocabController.d.ts +0 -43
  640. package/dist/controllers/VocabController.d.ts.map +0 -1
  641. package/dist/controllers/VocabController.js +0 -190
  642. package/dist/form-config/dataPublication-1.0-draft.d.ts.map +0 -1
  643. package/dist/form-config/dataPublication-1.0-embargoed.d.ts.map +0 -1
  644. package/dist/form-config/dataPublication-1.0-published.d.ts.map +0 -1
  645. package/dist/form-config/dataPublication-1.0-queued.d.ts.map +0 -1
  646. package/dist/form-config/dataPublication-1.0-retired.d.ts.map +0 -1
  647. package/dist/services/VocabService.d.ts +0 -81
  648. package/dist/services/VocabService.d.ts.map +0 -1
  649. package/dist/services/VocabService.js +0 -424
@@ -24,29 +24,31 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
24
24
  * @param options Configure the visitor.
25
25
  * @param options.form The constructed form.
26
26
  */
27
- start(options) {
27
+ async start(options) {
28
28
  this.formPathHelper.reset();
29
29
  this.templates = [];
30
- options.form.accept(this);
30
+ await options.form.accept(this);
31
31
  return this.templates;
32
32
  }
33
- visitFormConfig(item) {
34
- const behaviours = item.behaviours;
35
- this.extractExpressions(item.expressions);
36
- this.extractBehaviours(behaviours);
37
- (item?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
33
+ async visitFormConfig(item) {
34
+ await this.extractExpressions(item.expressions);
35
+ await this.extractBehaviours(item.behaviours);
36
+ await this.extractValidators(item.validators);
37
+ for (const [index, componentDefinition] of (item?.componentDefinitions ?? []).entries()) {
38
38
  // Visit children
39
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(componentDefinition, index));
40
- });
39
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(componentDefinition, index));
40
+ }
41
41
  }
42
42
  /* SimpleInput */
43
- visitSimpleInputFieldComponentDefinition(_item) { }
44
- visitSimpleInputFieldModelDefinition(_item) { }
45
- visitSimpleInputFormComponentDefinition(item) {
46
- this.acceptFormComponentDefinition(item);
43
+ async visitSimpleInputFieldComponentDefinition(_item) { }
44
+ async visitSimpleInputFieldModelDefinition(item) {
45
+ await this.extractValidators(item.config?.validators);
46
+ }
47
+ async visitSimpleInputFormComponentDefinition(item) {
48
+ await this.acceptFormComponentDefinition(item);
47
49
  }
48
50
  /* Content */
49
- visitContentFieldComponentDefinition(item) {
51
+ async visitContentFieldComponentDefinition(item) {
50
52
  const template = (item.config?.template ?? '').trim();
51
53
  if (template) {
52
54
  this.templates?.push({
@@ -56,93 +58,125 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
56
58
  });
57
59
  }
58
60
  }
59
- visitContentFormComponentDefinition(item) {
60
- this.acceptFormComponentDefinition(item);
61
+ async visitContentFormComponentDefinition(item) {
62
+ await this.acceptFormComponentDefinition(item);
61
63
  }
62
64
  /* Repeatable */
63
- visitRepeatableFieldComponentDefinition(item) {
65
+ async visitRepeatableFieldComponentDefinition(item) {
64
66
  const componentDefinition = item.config?.elementTemplate;
65
67
  if (componentDefinition) {
66
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForRepeatableFieldComponentDefinition(componentDefinition));
68
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForRepeatableFieldComponentDefinition(componentDefinition));
67
69
  }
68
70
  }
69
- visitRepeatableFieldModelDefinition(_item) { }
70
- visitRepeatableElementFieldLayoutDefinition(_item) { }
71
- visitRepeatableFormComponentDefinition(item) {
72
- this.acceptFormComponentDefinition(item);
71
+ async visitRepeatableFieldModelDefinition(item) {
72
+ await this.extractValidators(item.config?.validators);
73
+ }
74
+ async visitRepeatableElementFieldLayoutDefinition(_item) { }
75
+ async visitRepeatableFormComponentDefinition(item) {
76
+ await this.acceptFormComponentDefinition(item);
73
77
  }
74
78
  /* Validation Summary */
75
- visitValidationSummaryFieldComponentDefinition(_item) { }
76
- visitValidationSummaryFormComponentDefinition(item) {
77
- this.acceptFormComponentDefinition(item);
79
+ async visitValidationSummaryFieldComponentDefinition(_item) { }
80
+ async visitValidationSummaryFormComponentDefinition(item) {
81
+ await this.acceptFormComponentDefinition(item);
82
+ }
83
+ async visitSuggestedValidationSummaryFieldComponentDefinition(_item) { }
84
+ async visitSuggestedValidationSummaryFormComponentDefinition(item) {
85
+ await this.acceptFormComponentDefinition(item);
78
86
  }
79
- visitSaveStatusFieldComponentDefinition(_item) { }
80
- visitSaveStatusFormComponentDefinition(item) {
81
- this.acceptFormComponentDefinition(item);
87
+ async visitSaveStatusFieldComponentDefinition(_item) { }
88
+ async visitSaveStatusFormComponentDefinition(item) {
89
+ await this.acceptFormComponentDefinition(item);
90
+ }
91
+ /* Integration Status */
92
+ async visitIntegrationStatusFieldComponentDefinition(_item) { }
93
+ async visitIntegrationStatusFormComponentDefinition(item) {
94
+ await this.acceptFormComponentDefinition(item);
82
95
  }
83
96
  /* Group */
84
- visitGroupFieldComponentDefinition(item) {
85
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
97
+ async visitGroupFieldComponentDefinition(item) {
98
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
86
99
  // Visit children
87
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(componentDefinition, index));
88
- });
100
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(componentDefinition, index));
101
+ }
102
+ }
103
+ async visitGroupFieldModelDefinition(item) {
104
+ await this.extractValidators(item.config?.validators);
89
105
  }
90
- visitGroupFieldModelDefinition(_item) { }
91
- visitGroupFormComponentDefinition(item) {
92
- this.acceptFormComponentDefinition(item);
106
+ async visitGroupFormComponentDefinition(item) {
107
+ await this.acceptFormComponentDefinition(item);
93
108
  }
94
109
  /* Tab */
95
- visitTabFieldComponentDefinition(item) {
96
- (item.config?.tabs ?? []).forEach((componentDefinition, index) => {
110
+ async visitTabFieldComponentDefinition(item) {
111
+ for (const [index, componentDefinition] of (item.config?.tabs ?? []).entries()) {
97
112
  // Visit children
98
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(componentDefinition, index));
99
- });
113
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(componentDefinition, index));
114
+ }
100
115
  }
101
- visitTabFieldLayoutDefinition(_item) { }
102
- visitTabFormComponentDefinition(item) {
103
- this.acceptFormComponentDefinition(item);
116
+ async visitTabFieldLayoutDefinition(_item) { }
117
+ async visitTabFormComponentDefinition(item) {
118
+ await this.acceptFormComponentDefinition(item);
104
119
  }
105
120
  /* Accordion */
106
- visitAccordionFieldComponentDefinition(item) {
107
- (item.config?.panels ?? []).forEach((componentDefinition, index) => {
108
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionFieldComponentDefinition(componentDefinition, index));
109
- });
121
+ async visitAccordionFieldComponentDefinition(item) {
122
+ for (const [index, componentDefinition] of (item.config?.panels ?? []).entries()) {
123
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionFieldComponentDefinition(componentDefinition, index));
124
+ }
110
125
  }
111
- visitAccordionFieldLayoutDefinition(_item) { }
112
- visitAccordionFormComponentDefinition(item) {
113
- this.acceptFormComponentDefinition(item);
126
+ async visitAccordionFieldLayoutDefinition(_item) { }
127
+ async visitAccordionFormComponentDefinition(item) {
128
+ await this.acceptFormComponentDefinition(item);
114
129
  }
115
- visitAccordionPanelFieldComponentDefinition(item) {
116
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
117
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionPanelFieldComponentDefinition(componentDefinition, index));
118
- });
130
+ async visitAccordionPanelFieldComponentDefinition(item) {
131
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
132
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionPanelFieldComponentDefinition(componentDefinition, index));
133
+ }
119
134
  }
120
- visitAccordionPanelFieldLayoutDefinition(_item) { }
121
- visitAccordionPanelFormComponentDefinition(item) {
122
- this.acceptFormComponentDefinition(item);
135
+ async visitAccordionPanelFieldLayoutDefinition(_item) { }
136
+ async visitAccordionPanelFormComponentDefinition(item) {
137
+ await this.acceptFormComponentDefinition(item);
123
138
  }
124
139
  /* Tab Content */
125
- visitTabContentFieldComponentDefinition(item) {
126
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
140
+ async visitTabContentFieldComponentDefinition(item) {
141
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
127
142
  // Visit children
128
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(componentDefinition, index));
129
- });
143
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(componentDefinition, index));
144
+ }
130
145
  }
131
- visitTabContentFieldLayoutDefinition(_item) { }
132
- visitTabContentFormComponentDefinition(item) {
133
- this.acceptFormComponentDefinition(item);
146
+ async visitTabContentFieldLayoutDefinition(_item) { }
147
+ async visitTabContentFormComponentDefinition(item) {
148
+ await this.acceptFormComponentDefinition(item);
134
149
  }
135
150
  /* Save Button */
136
- visitSaveButtonFieldComponentDefinition(_item) { }
137
- visitSaveButtonFormComponentDefinition(item) {
138
- this.acceptFormComponentDefinition(item);
151
+ async visitSaveButtonFieldComponentDefinition(item) {
152
+ const redirectLocation = (item.config?.redirectLocation ?? '').trim();
153
+ if (redirectLocation) {
154
+ this.templates?.push({
155
+ key: [...(this.formPathHelper.formPath.formConfig ?? []), 'config', 'redirectLocation'],
156
+ value: redirectLocation,
157
+ kind: 'handlebars',
158
+ });
159
+ }
160
+ }
161
+ async visitSaveButtonFormComponentDefinition(item) {
162
+ await this.acceptFormComponentDefinition(item);
139
163
  }
140
164
  /* Cancel Button */
141
- visitCancelButtonFieldComponentDefinition(_item) { }
142
- visitCancelButtonFormComponentDefinition(item) {
143
- this.acceptFormComponentDefinition(item);
165
+ async visitCancelButtonFieldComponentDefinition(item) {
166
+ const redirectLocation = (item.config?.redirectLocation ?? '').trim();
167
+ if (redirectLocation) {
168
+ this.templates?.push({
169
+ key: [...(this.formPathHelper.formPath.formConfig ?? []), 'config', 'redirectLocation'],
170
+ value: redirectLocation,
171
+ kind: 'handlebars',
172
+ });
173
+ }
174
+ }
175
+ async visitCancelButtonFormComponentDefinition(item) {
176
+ await this.acceptFormComponentDefinition(item);
144
177
  }
145
- visitDeleteButtonFieldComponentDefinition(item) {
178
+ /* Delete Button */
179
+ async visitDeleteButtonFieldComponentDefinition(item) {
146
180
  const redirectLocation = (item.config?.redirectLocation ?? '').trim();
147
181
  if (redirectLocation) {
148
182
  this.templates?.push({
@@ -152,30 +186,34 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
152
186
  });
153
187
  }
154
188
  }
155
- visitDeleteButtonFormComponentDefinition(item) {
156
- this.acceptFormComponentDefinition(item);
189
+ async visitDeleteButtonFormComponentDefinition(item) {
190
+ await this.acceptFormComponentDefinition(item);
157
191
  }
158
192
  /* Tab Nav Button */
159
- visitTabNavButtonFieldComponentDefinition(_item) { }
160
- visitTabNavButtonFormComponentDefinition(item) {
161
- this.acceptFormComponentDefinition(item);
193
+ async visitTabNavButtonFieldComponentDefinition(_item) { }
194
+ async visitTabNavButtonFormComponentDefinition(item) {
195
+ await this.acceptFormComponentDefinition(item);
162
196
  }
163
197
  /* Text Area */
164
- visitTextAreaFieldComponentDefinition(_item) { }
165
- visitTextAreaFieldModelDefinition(_item) { }
166
- visitTextAreaFormComponentDefinition(item) {
167
- this.acceptFormComponentDefinition(item);
198
+ async visitTextAreaFieldComponentDefinition(_item) { }
199
+ async visitTextAreaFieldModelDefinition(item) {
200
+ await this.extractValidators(item.config?.validators);
201
+ }
202
+ async visitTextAreaFormComponentDefinition(item) {
203
+ await this.acceptFormComponentDefinition(item);
168
204
  }
169
205
  /* Default Layout */
170
- visitDefaultFieldLayoutDefinition(_item) { }
206
+ async visitDefaultFieldLayoutDefinition(_item) { }
171
207
  /* Checkbox Input */
172
- visitCheckboxInputFieldComponentDefinition(_item) { }
173
- visitCheckboxInputFieldModelDefinition(_item) { }
174
- visitCheckboxInputFormComponentDefinition(item) {
175
- this.acceptFormComponentDefinition(item);
208
+ async visitCheckboxInputFieldComponentDefinition(_item) { }
209
+ async visitCheckboxInputFieldModelDefinition(item) {
210
+ await this.extractValidators(item.config?.validators);
211
+ }
212
+ async visitCheckboxInputFormComponentDefinition(item) {
213
+ await this.acceptFormComponentDefinition(item);
176
214
  }
177
215
  /* Checkbox Tree */
178
- visitCheckboxTreeFieldComponentDefinition(item) {
216
+ async visitCheckboxTreeFieldComponentDefinition(item) {
179
217
  const labelTemplate = (item.config?.labelTemplate ?? '').trim();
180
218
  if (labelTemplate) {
181
219
  this.templates?.push({
@@ -185,24 +223,30 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
185
223
  });
186
224
  }
187
225
  }
188
- visitCheckboxTreeFieldModelDefinition(_item) { }
189
- visitCheckboxTreeFormComponentDefinition(item) {
190
- this.acceptFormComponentDefinition(item);
226
+ async visitCheckboxTreeFieldModelDefinition(item) {
227
+ await this.extractValidators(item.config?.validators);
228
+ }
229
+ async visitCheckboxTreeFormComponentDefinition(item) {
230
+ await this.acceptFormComponentDefinition(item);
191
231
  }
192
232
  /* Record Selector */
193
- visitRecordSelectorFieldComponentDefinition(_item) { }
194
- visitRecordSelectorFieldModelDefinition(_item) { }
195
- visitRecordSelectorFormComponentDefinition(item) {
196
- this.acceptFormComponentDefinition(item);
233
+ async visitRecordSelectorFieldComponentDefinition(_item) { }
234
+ async visitRecordSelectorFieldModelDefinition(item) {
235
+ await this.extractValidators(item.config?.validators);
236
+ }
237
+ async visitRecordSelectorFormComponentDefinition(item) {
238
+ await this.acceptFormComponentDefinition(item);
197
239
  }
198
240
  /* Dropdown Input */
199
- visitDropdownInputFieldComponentDefinition(_item) { }
200
- visitDropdownInputFieldModelDefinition(_item) { }
201
- visitDropdownInputFormComponentDefinition(item) {
202
- this.acceptFormComponentDefinition(item);
241
+ async visitDropdownInputFieldComponentDefinition(_item) { }
242
+ async visitDropdownInputFieldModelDefinition(item) {
243
+ await this.extractValidators(item.config?.validators);
244
+ }
245
+ async visitDropdownInputFormComponentDefinition(item) {
246
+ await this.acceptFormComponentDefinition(item);
203
247
  }
204
248
  /* Typeahead Input */
205
- visitTypeaheadInputFieldComponentDefinition(item) {
249
+ async visitTypeaheadInputFieldComponentDefinition(item) {
206
250
  const labelTemplate = (item.config?.labelTemplate ?? '').trim();
207
251
  if (labelTemplate) {
208
252
  this.templates?.push({
@@ -212,29 +256,37 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
212
256
  });
213
257
  }
214
258
  }
215
- visitTypeaheadInputFieldModelDefinition(_item) { }
216
- visitTypeaheadInputFormComponentDefinition(item) {
217
- this.acceptFormComponentDefinition(item);
259
+ async visitTypeaheadInputFieldModelDefinition(item) {
260
+ await this.extractValidators(item.config?.validators);
261
+ }
262
+ async visitTypeaheadInputFormComponentDefinition(item) {
263
+ await this.acceptFormComponentDefinition(item);
218
264
  }
219
265
  /* Rich Text Editor */
220
- visitRichTextEditorFieldComponentDefinition(_item) { }
221
- visitRichTextEditorFieldModelDefinition(_item) { }
222
- visitRichTextEditorFormComponentDefinition(item) {
223
- this.acceptFormComponentDefinition(item);
266
+ async visitRichTextEditorFieldComponentDefinition(_item) { }
267
+ async visitRichTextEditorFieldModelDefinition(item) {
268
+ await this.extractValidators(item.config?.validators);
269
+ }
270
+ async visitRichTextEditorFormComponentDefinition(item) {
271
+ await this.acceptFormComponentDefinition(item);
224
272
  }
225
273
  /* Map */
226
- visitMapFieldComponentDefinition(_item) { }
227
- visitMapFieldModelDefinition(_item) { }
228
- visitMapFormComponentDefinition(item) {
229
- this.acceptFormComponentDefinition(item);
274
+ async visitMapFieldComponentDefinition(_item) { }
275
+ async visitMapFieldModelDefinition(item) {
276
+ await this.extractValidators(item.config?.validators);
277
+ }
278
+ async visitMapFormComponentDefinition(item) {
279
+ await this.acceptFormComponentDefinition(item);
230
280
  }
231
281
  /* File Upload */
232
- visitFileUploadFieldComponentDefinition(_item) { }
233
- visitFileUploadFieldModelDefinition(_item) { }
234
- visitFileUploadFormComponentDefinition(item) {
235
- this.acceptFormComponentDefinition(item);
282
+ async visitFileUploadFieldComponentDefinition(_item) { }
283
+ async visitFileUploadFieldModelDefinition(item) {
284
+ await this.extractValidators(item.config?.validators);
285
+ }
286
+ async visitFileUploadFormComponentDefinition(item) {
287
+ await this.acceptFormComponentDefinition(item);
236
288
  }
237
- visitPDFListFieldComponentDefinition(item) {
289
+ async visitPDFListFieldComponentDefinition(item) {
238
290
  const fileNameTemplate = (item.config?.fileNameTemplate ?? '').trim();
239
291
  if (fileNameTemplate) {
240
292
  this.templates?.push({
@@ -244,59 +296,76 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
244
296
  });
245
297
  }
246
298
  }
247
- visitPDFListFieldModelDefinition(_item) { }
248
- visitPDFListFormComponentDefinition(item) {
249
- this.acceptFormComponentDefinition(item);
299
+ async visitPDFListFieldModelDefinition(item) {
300
+ await this.extractValidators(item.config?.validators);
250
301
  }
251
- visitRecordMetadataRetrieverFieldComponentDefinition(_item) { }
252
- visitRecordMetadataRetrieverFormComponentDefinition(item) {
253
- this.acceptFormComponentDefinition(item);
302
+ async visitPDFListFormComponentDefinition(item) {
303
+ await this.acceptFormComponentDefinition(item);
304
+ }
305
+ async visitRecordMetadataRetrieverFieldComponentDefinition(_item) { }
306
+ async visitRecordMetadataRetrieverFormComponentDefinition(item) {
307
+ await this.acceptFormComponentDefinition(item);
254
308
  }
255
309
  /* Data Location */
256
- visitDataLocationFieldComponentDefinition(_item) { }
257
- visitDataLocationFieldModelDefinition(_item) { }
258
- visitDataLocationFormComponentDefinition(item) {
259
- this.acceptFormComponentDefinition(item);
310
+ async visitDataLocationFieldComponentDefinition(_item) { }
311
+ async visitDataLocationFieldModelDefinition(item) {
312
+ await this.extractValidators(item.config?.validators);
313
+ }
314
+ async visitDataLocationFormComponentDefinition(item) {
315
+ await this.acceptFormComponentDefinition(item);
260
316
  }
261
317
  // The refresh trigger has no template-bearing fields of its own.
262
- visitPublishDataLocationRefreshFieldComponentDefinition(_item) { }
263
- visitPublishDataLocationRefreshFormComponentDefinition(item) {
264
- this.acceptFormComponentDefinition(item);
318
+ async visitPublishDataLocationRefreshFieldComponentDefinition(_item) { }
319
+ async visitPublishDataLocationRefreshFormComponentDefinition(item) {
320
+ await this.acceptFormComponentDefinition(item);
321
+ }
322
+ async visitPublishDataLocationSelectorFieldComponentDefinition(item) {
323
+ for (const [index, componentDefinition] of (item.config?.headerActions ?? []).entries()) {
324
+ await this.formPathHelper.acceptFormPath(componentDefinition, {
325
+ formConfig: ['config', 'headerActions', index.toString()],
326
+ });
327
+ }
265
328
  }
266
- visitPublishDataLocationSelectorFieldComponentDefinition(_item) { }
267
- visitPublishDataLocationSelectorFieldModelDefinition(_item) { }
268
- visitPublishDataLocationSelectorFormComponentDefinition(item) {
269
- this.acceptFormComponentDefinition(item);
329
+ async visitPublishDataLocationSelectorFieldModelDefinition(item) {
330
+ await this.extractValidators(item.config?.validators);
331
+ }
332
+ async visitPublishDataLocationSelectorFormComponentDefinition(item) {
333
+ await this.acceptFormComponentDefinition(item);
270
334
  }
271
335
  /* Radio Input */
272
- visitRadioInputFieldComponentDefinition(_item) { }
273
- visitRadioInputFieldModelDefinition(_item) { }
274
- visitRadioInputFormComponentDefinition(item) {
275
- this.acceptFormComponentDefinition(item);
336
+ async visitRadioInputFieldComponentDefinition(_item) { }
337
+ async visitRadioInputFieldModelDefinition(item) {
338
+ await this.extractValidators(item.config?.validators);
339
+ }
340
+ async visitRadioInputFormComponentDefinition(item) {
341
+ await this.acceptFormComponentDefinition(item);
276
342
  }
277
343
  /* Date Input */
278
- visitDateInputFieldComponentDefinition(_item) { }
279
- visitDateInputFieldModelDefinition(_item) { }
280
- visitDateInputFormComponentDefinition(item) {
281
- this.acceptFormComponentDefinition(item);
344
+ async visitDateInputFieldComponentDefinition(_item) { }
345
+ async visitDateInputFieldModelDefinition(item) {
346
+ await this.extractValidators(item.config?.validators);
347
+ }
348
+ async visitDateInputFormComponentDefinition(item) {
349
+ await this.acceptFormComponentDefinition(item);
282
350
  }
283
351
  /* Question Tree */
284
- visitQuestionTreeFieldComponentDefinition(item) {
285
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
286
- this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForQuestionTreeFieldComponentDefinition(componentDefinition, index));
287
- });
352
+ async visitQuestionTreeFieldComponentDefinition(item) {
353
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
354
+ await this.formPathHelper.acceptFormPath(componentDefinition, this.formPathHelper.lineagePathsForQuestionTreeFieldComponentDefinition(componentDefinition, index));
355
+ }
356
+ }
357
+ async visitQuestionTreeFieldModelDefinition(item) {
358
+ await this.extractValidators(item.config?.validators);
288
359
  }
289
- visitQuestionTreeFieldModelDefinition(_item) { }
290
- visitQuestionTreeFormComponentDefinition(item) {
291
- this.acceptFormComponentDefinition(item);
360
+ async visitQuestionTreeFormComponentDefinition(item) {
361
+ await this.acceptFormComponentDefinition(item);
292
362
  }
293
363
  /* Shared */
294
- acceptFormComponentDefinition(item) {
295
- this.extractExpressions(item.expressions);
296
- this.formPathHelper.acceptFormComponentDefinition(item);
364
+ async acceptFormComponentDefinition(item) {
365
+ await this.extractExpressions(item.expressions);
366
+ await this.formPathHelper.acceptFormComponentDefinition(item);
297
367
  }
298
- extractExpressions(expressions) {
299
- const extracted = [];
368
+ async extractExpressions(expressions) {
300
369
  (expressions ?? []).forEach((expression, index) => {
301
370
  for (const prop of ['template', 'condition']) {
302
371
  const config = expression.config;
@@ -312,13 +381,9 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
312
381
  value: value,
313
382
  kind: 'jsonata',
314
383
  });
315
- extracted.push(`${index}-${expression.name}`);
316
384
  }
317
385
  }
318
386
  });
319
- if (extracted.length > 0) {
320
- this.logger.debug(`${this.logName}: Extracted ${extracted.length} expressions ${extracted.join(', ')}.`);
321
- }
322
387
  }
323
388
  /**
324
389
  * Extract form-level behaviour templates for server-side compilation.
@@ -334,7 +399,7 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
334
399
  * - action templates cover `valueTemplate` and JSONata `fieldPath`
335
400
  * - custom processors/actions are out of scope
336
401
  */
337
- extractBehaviours(behaviours) {
402
+ async extractBehaviours(behaviours) {
338
403
  (behaviours ?? []).forEach((behaviour, behaviourIndex) => {
339
404
  const conditionKind = behaviour.conditionKind ?? 'jsonpointer';
340
405
  if (behaviour.condition && conditionKind !== 'jsonpointer') {
@@ -392,6 +457,30 @@ class TemplateFormConfigVisitor extends sails_ng_common_1.FormConfigVisitor {
392
457
  });
393
458
  });
394
459
  }
460
+ async extractValidators(validators) {
461
+ (validators ?? []).forEach((validator, index) => {
462
+ if (validator.class === "jsonata-expression") {
463
+ const value = validator.config?.expression?.toString() ?? "";
464
+ if (value) {
465
+ const parentKey = this.normalizeValidatorTemplateParentKey(this.formPathHelper.formPath.formConfig ?? []);
466
+ const key = parentKey.length > 0
467
+ ? [...parentKey, 'config', 'validators', index.toString(), 'config', 'expression']
468
+ : ['validators', index.toString(), 'config', 'expression'];
469
+ this.templates?.push({
470
+ key,
471
+ value: value,
472
+ kind: 'jsonata',
473
+ });
474
+ }
475
+ }
476
+ });
477
+ }
478
+ normalizeValidatorTemplateParentKey(path) {
479
+ if (path[0] === 'formConfig') {
480
+ return path.slice(1);
481
+ }
482
+ return path;
483
+ }
395
484
  }
396
485
  exports.TemplateFormConfigVisitor = TemplateFormConfigVisitor;
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUudmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aXNpdG9yL3RlbXBsYXRlLnZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQXFFO0FBdUpyRSxzRUFBa0U7QUFHbEU7Ozs7OztHQU1HO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxtQ0FBaUI7SUFDM0MsT0FBTyxHQUFHLDJCQUEyQixDQUFDO0lBRWpELGNBQWMsQ0FBaUI7SUFFL0IsU0FBUyxDQUF5QjtJQUUxQyxZQUFZLE1BQWU7UUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGdDQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQW9DO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBdUI7UUFDckMsTUFBTSxVQUFVLEdBQUksSUFBd0UsQ0FBQyxVQUFVLENBQUM7UUFDeEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDeEUsaUJBQWlCO1lBQ2pC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
486
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUudmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aXNpdG9yL3RlbXBsYXRlLnZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQTBGO0FBK0oxRixzRUFBa0U7QUFHbEU7Ozs7OztHQU1HO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxtQ0FBaUI7SUFDM0MsT0FBTyxHQUFHLDJCQUEyQixDQUFDO0lBRWpELGNBQWMsQ0FBaUI7SUFFL0IsU0FBUyxDQUF5QjtJQUUxQyxZQUFZLE1BQWU7UUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGdDQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFvQztRQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXBCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXVCO1FBQzNDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJ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