@researchdatabox/redbox-core 5.0.4-beta.12498 → 5.0.4

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 (609) hide show
  1. package/dist/CoreController.d.ts +3 -7
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +3 -85
  4. package/dist/DatastreamService.d.ts +2 -4
  5. package/dist/DatastreamService.d.ts.map +1 -1
  6. package/dist/HarvestRunService.d.ts +3 -4
  7. package/dist/HarvestRunService.d.ts.map +1 -1
  8. package/dist/HarvestRunService.js +1 -1
  9. package/dist/QueueService.d.ts +1 -1
  10. package/dist/QueueService.d.ts.map +1 -1
  11. package/dist/RecordWriteOptions.d.ts +21 -0
  12. package/dist/RecordWriteOptions.d.ts.map +1 -0
  13. package/dist/RecordWriteOptions.js +17 -0
  14. package/dist/RecordsService.d.ts +14 -105
  15. package/dist/RecordsService.d.ts.map +1 -1
  16. package/dist/RecordsService.js +1 -44
  17. package/dist/SearchService.d.ts +1 -2
  18. package/dist/SearchService.d.ts.map +1 -1
  19. package/dist/StorageService.d.ts +20 -48
  20. package/dist/StorageService.d.ts.map +1 -1
  21. package/dist/StorageService.js +1 -19
  22. package/dist/StorageServiceResponse.d.ts +1 -22
  23. package/dist/StorageServiceResponse.d.ts.map +1 -1
  24. package/dist/StorageServiceResponse.js +4 -22
  25. package/dist/api-routes/groups/branding.d.ts +0 -8
  26. package/dist/api-routes/groups/branding.d.ts.map +1 -1
  27. package/dist/api-routes/groups/branding.js +11 -86
  28. package/dist/api-routes/groups/dashboard-config.d.ts +9 -12
  29. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -1
  30. package/dist/api-routes/groups/dashboard-config.js +73 -136
  31. package/dist/api-routes/groups/forms.d.ts.map +1 -1
  32. package/dist/api-routes/groups/forms.js +2 -10
  33. package/dist/api-routes/groups/records.d.ts +0 -1
  34. package/dist/api-routes/groups/records.d.ts.map +1 -1
  35. package/dist/api-routes/groups/records.js +26 -141
  36. package/dist/api-routes/index.d.ts +0 -3
  37. package/dist/api-routes/index.d.ts.map +1 -1
  38. package/dist/api-routes/index.js +1 -4
  39. package/dist/api-routes/openapi.d.ts.map +1 -1
  40. package/dist/api-routes/openapi.js +5 -7
  41. package/dist/api-routes/request-extraction.d.ts.map +1 -1
  42. package/dist/api-routes/request-extraction.js +8 -10
  43. package/dist/api-routes/route-factory.d.ts.map +1 -1
  44. package/dist/api-routes/route-factory.js +1 -2
  45. package/dist/api-routes/route-registry.d.ts.map +1 -1
  46. package/dist/api-routes/route-registry.js +1 -3
  47. package/dist/api-routes/schemas/common.d.ts +0 -36
  48. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  49. package/dist/api-routes/schemas/common.js +5 -95
  50. package/dist/api-routes/schemas/responses.d.ts +1 -1424
  51. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  52. package/dist/api-routes/schemas/responses.js +60 -382
  53. package/dist/api-routes/types.d.ts +0 -1
  54. package/dist/api-routes/types.d.ts.map +1 -1
  55. package/dist/api-routes/validation.d.ts +1 -5
  56. package/dist/api-routes/validation.d.ts.map +1 -1
  57. package/dist/api-routes/validation.js +15 -14
  58. package/dist/bootstrap.d.ts +1 -3
  59. package/dist/bootstrap.d.ts.map +1 -1
  60. package/dist/bootstrap.js +41 -58
  61. package/dist/config/agendaQueue.config.d.ts +0 -3
  62. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  63. package/dist/config/agendaQueue.config.js +11 -29
  64. package/dist/config/branding.config.d.ts +0 -13
  65. package/dist/config/branding.config.d.ts.map +1 -1
  66. package/dist/config/branding.config.js +2 -34
  67. package/dist/config/brandingConfigurationDefaults.config.d.ts +0 -4
  68. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  69. package/dist/config/brandingConfigurationDefaults.config.js +3 -42
  70. package/dist/config/datapubs.config.d.ts +72 -0
  71. package/dist/config/datapubs.config.d.ts.map +1 -0
  72. package/dist/config/datapubs.config.js +74 -0
  73. package/dist/config/i18n.config.d.ts +4 -0
  74. package/dist/config/i18n.config.d.ts.map +1 -1
  75. package/dist/config/i18n.config.js +1 -1
  76. package/dist/config/index.d.ts +4 -12
  77. package/dist/config/index.d.ts.map +1 -1
  78. package/dist/config/index.js +4 -7
  79. package/dist/config/policies.config.d.ts.map +1 -1
  80. package/dist/config/policies.config.js +23 -37
  81. package/dist/config/raid.config.d.ts +4 -7
  82. package/dist/config/raid.config.d.ts.map +1 -1
  83. package/dist/config/raid.config.js +35 -21
  84. package/dist/config/record.config.d.ts +0 -3
  85. package/dist/config/record.config.d.ts.map +1 -1
  86. package/dist/config/record.config.js +35 -37
  87. package/dist/config/recordtype.config.d.ts +9 -32
  88. package/dist/config/recordtype.config.d.ts.map +1 -1
  89. package/dist/config/recordtype.config.js +7 -4
  90. package/dist/config/routes.config.d.ts.map +1 -1
  91. package/dist/config/routes.config.js +53 -135
  92. package/dist/config/workflow.config.d.ts +0 -6
  93. package/dist/config/workflow.config.d.ts.map +1 -1
  94. package/dist/config/workflow.config.js +1 -1
  95. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  96. package/dist/configmodels/AdminSidebarConfig.js +2 -4
  97. package/dist/configmodels/ConfigModels.d.ts +1 -1
  98. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  99. package/dist/configmodels/ConfigModels.js +9 -26
  100. package/dist/configmodels/FigsharePublishing.d.ts +103 -0
  101. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
  102. package/dist/configmodels/FigsharePublishing.js +36 -2
  103. package/dist/controllers/AppConfigController.d.ts.map +1 -1
  104. package/dist/controllers/AppConfigController.js +1 -4
  105. package/dist/controllers/BrandingAppController.d.ts +7 -29
  106. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  107. package/dist/controllers/BrandingAppController.js +69 -265
  108. package/dist/controllers/BrandingController.d.ts +1 -24
  109. package/dist/controllers/BrandingController.d.ts.map +1 -1
  110. package/dist/controllers/BrandingController.js +43 -173
  111. package/dist/controllers/DashboardConfigController.d.ts +2 -6
  112. package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
  113. package/dist/controllers/DashboardConfigController.js +4 -18
  114. package/dist/controllers/DynamicAssetController.d.ts +5 -7
  115. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  116. package/dist/controllers/DynamicAssetController.js +12 -21
  117. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  118. package/dist/controllers/RecordAuditController.js +24 -6
  119. package/dist/controllers/RecordController.d.ts +4 -45
  120. package/dist/controllers/RecordController.d.ts.map +1 -1
  121. package/dist/controllers/RecordController.js +345 -778
  122. package/dist/controllers/index.d.ts.map +1 -1
  123. package/dist/controllers/index.js +1 -4
  124. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  125. package/dist/controllers/webservice/AdminController.js +3 -4
  126. package/dist/controllers/webservice/BrandingController.d.ts +1 -26
  127. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  128. package/dist/controllers/webservice/BrandingController.js +116 -292
  129. package/dist/controllers/webservice/DashboardConfigController.d.ts +17 -25
  130. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
  131. package/dist/controllers/webservice/DashboardConfigController.js +205 -90
  132. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  133. package/dist/controllers/webservice/FormManagementController.js +3 -37
  134. package/dist/controllers/webservice/RecordController.d.ts +1 -15
  135. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  136. package/dist/controllers/webservice/RecordController.js +267 -647
  137. package/dist/controllers/webservice/RecordTypeController.d.ts +1 -6
  138. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  139. package/dist/controllers/webservice/RecordTypeController.js +3 -21
  140. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  141. package/dist/controllers/webservice/SearchController.js +3 -7
  142. package/dist/hooks/defineRedboxHook.d.ts +0 -3
  143. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  144. package/dist/hooks/defineRedboxHook.js +1 -4
  145. package/dist/index.d.ts +25 -50
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +4 -90
  148. package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
  149. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  150. package/dist/loader/bootstrapShimRuntime.js +12 -20
  151. package/dist/loader/index.d.ts +0 -9
  152. package/dist/loader/index.d.ts.map +1 -1
  153. package/dist/loader/index.js +4 -93
  154. package/dist/model/BuildResponse.d.ts +11 -25
  155. package/dist/model/BuildResponse.d.ts.map +1 -1
  156. package/dist/model/BuildResponse.js +3 -4
  157. package/dist/model/DashboardTypeResponseModel.d.ts +0 -6
  158. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  159. package/dist/model/DashboardTypeResponseModel.js +1 -7
  160. package/dist/model/DashboardViewResponseModel.d.ts +1 -5
  161. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
  162. package/dist/model/DashboardViewResponseModel.js +3 -6
  163. package/dist/model/RBValidationError.d.ts +0 -17
  164. package/dist/model/RBValidationError.d.ts.map +1 -1
  165. package/dist/model/RBValidationError.js +1 -37
  166. package/dist/model/RecordTypeResponseModel.d.ts +4 -12
  167. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  168. package/dist/model/RecordTypeResponseModel.js +2 -11
  169. package/dist/model/index.d.ts +1 -5
  170. package/dist/model/index.d.ts.map +1 -1
  171. package/dist/model/index.js +2 -5
  172. package/dist/model/storage/BrandingModel.d.ts +0 -7
  173. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  174. package/dist/model/storage/BrandingModel.js +1 -7
  175. package/dist/model/storage/DeletedRecordModel.d.ts +0 -35
  176. package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
  177. package/dist/model/storage/DeletedRecordModel.js +1 -62
  178. package/dist/model/storage/FigshareSyncModel.d.ts +126 -0
  179. package/dist/model/storage/FigshareSyncModel.d.ts.map +1 -0
  180. package/dist/model/storage/FigshareSyncModel.js +3 -0
  181. package/dist/model/storage/IntegrationAuditModel.d.ts +2 -16
  182. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  183. package/dist/model/storage/IntegrationAuditModel.js +1 -15
  184. package/dist/model/storage/RecordAuditModel.d.ts +4 -11
  185. package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
  186. package/dist/model/storage/RecordAuditModel.js +30 -8
  187. package/dist/model/storage/RecordModel.d.ts +3 -6
  188. package/dist/model/storage/RecordModel.d.ts.map +1 -1
  189. package/dist/model/storage/RecordTypeModel.d.ts +0 -6
  190. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  191. package/dist/model/storage/RecordTypeModel.js +1 -4
  192. package/dist/model/storage/index.d.ts +10 -12
  193. package/dist/model/storage/index.d.ts.map +1 -1
  194. package/dist/model/storage/index.js +2 -24
  195. package/dist/policies/checkAuth.d.ts +6 -2
  196. package/dist/policies/checkAuth.d.ts.map +1 -1
  197. package/dist/policies/checkAuth.js +9 -32
  198. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  199. package/dist/policies/contentSecurityPolicy.js +2 -85
  200. package/dist/policies/index.d.ts +2 -3
  201. package/dist/policies/index.d.ts.map +1 -1
  202. package/dist/policies/index.js +2 -4
  203. package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
  204. package/dist/policies/validateApiContractRequest.js +11 -49
  205. package/dist/services/AgendaQueueService.d.ts +1 -1
  206. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  207. package/dist/services/AgendaQueueService.js +7 -4
  208. package/dist/services/AppConfigService.d.ts +0 -6
  209. package/dist/services/AppConfigService.d.ts.map +1 -1
  210. package/dist/services/AppConfigService.js +1 -23
  211. package/dist/services/AttachmentMetadataService.d.ts +0 -58
  212. package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
  213. package/dist/services/AttachmentMetadataService.js +8 -643
  214. package/dist/services/BrandingLogoService.d.ts +1 -6
  215. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  216. package/dist/services/BrandingLogoService.js +9 -77
  217. package/dist/services/BrandingService.d.ts +9 -171
  218. package/dist/services/BrandingService.d.ts.map +1 -1
  219. package/dist/services/BrandingService.js +68 -572
  220. package/dist/services/BrandingThemeCssService.d.ts +1 -17
  221. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  222. package/dist/services/BrandingThemeCssService.js +9 -71
  223. package/dist/services/DashboardConfigService.d.ts +54 -214
  224. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  225. package/dist/services/DashboardConfigService.js +261 -829
  226. package/dist/services/DashboardTypesService.d.ts +4 -15
  227. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  228. package/dist/services/DashboardTypesService.js +139 -72
  229. package/dist/services/DoiService.d.ts +1 -1
  230. package/dist/services/DoiService.d.ts.map +1 -1
  231. package/dist/services/DoiService.js +45 -71
  232. package/dist/services/FigshareService.d.ts +15 -10
  233. package/dist/services/FigshareService.d.ts.map +1 -1
  234. package/dist/services/FigshareService.js +82 -583
  235. package/dist/services/FormRecordConsistencyService.d.ts +23 -8
  236. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  237. package/dist/services/FormRecordConsistencyService.js +70 -54
  238. package/dist/services/FormsService.d.ts +2 -91
  239. package/dist/services/FormsService.d.ts.map +1 -1
  240. package/dist/services/FormsService.js +64 -324
  241. package/dist/services/HarvestRunService.d.ts +3 -6
  242. package/dist/services/HarvestRunService.d.ts.map +1 -1
  243. package/dist/services/HarvestRunService.js +97 -161
  244. package/dist/services/I18nEntriesService.d.ts +2 -1
  245. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  246. package/dist/services/I18nEntriesService.js +45 -30
  247. package/dist/services/OniService.d.ts +62 -19
  248. package/dist/services/OniService.d.ts.map +1 -1
  249. package/dist/services/OniService.js +691 -223
  250. package/dist/services/RDMPService.d.ts +1 -1
  251. package/dist/services/RDMPService.d.ts.map +1 -1
  252. package/dist/services/RDMPService.js +5 -5
  253. package/dist/services/RaidService.d.ts +61 -19
  254. package/dist/services/RaidService.d.ts.map +1 -1
  255. package/dist/services/RaidService.js +530 -191
  256. package/dist/services/RecordTypesService.d.ts +0 -29
  257. package/dist/services/RecordTypesService.d.ts.map +1 -1
  258. package/dist/services/RecordTypesService.js +11 -106
  259. package/dist/services/RecordsService.d.ts +26 -313
  260. package/dist/services/RecordsService.d.ts.map +1 -1
  261. package/dist/services/RecordsService.js +763 -5089
  262. package/dist/services/SolrSearchService.d.ts +1 -1
  263. package/dist/services/SolrSearchService.d.ts.map +1 -1
  264. package/dist/services/SolrSearchService.js +12 -42
  265. package/dist/services/StandardDatastreamService.d.ts +5 -4
  266. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  267. package/dist/services/StandardDatastreamService.js +61 -106
  268. package/dist/services/TriggerService.d.ts.map +1 -1
  269. package/dist/services/TriggerService.js +30 -54
  270. package/dist/services/UsersService.d.ts +1 -2
  271. package/dist/services/UsersService.d.ts.map +1 -1
  272. package/dist/services/UsersService.js +283 -364
  273. package/dist/services/VocabularyService.d.ts +0 -2
  274. package/dist/services/VocabularyService.d.ts.map +1 -1
  275. package/dist/services/VocabularyService.js +2 -61
  276. package/dist/services/WorkflowStepsService.d.ts +0 -11
  277. package/dist/services/WorkflowStepsService.d.ts.map +1 -1
  278. package/dist/services/WorkflowStepsService.js +3 -32
  279. package/dist/services/WorkspaceService.d.ts +2 -2
  280. package/dist/services/WorkspaceService.d.ts.map +1 -1
  281. package/dist/services/WorkspaceService.js +5 -5
  282. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  283. package/dist/services/doi-v2/bindings.js +20 -3
  284. package/dist/services/doi-v2/config.d.ts +0 -1
  285. package/dist/services/doi-v2/config.d.ts.map +1 -1
  286. package/dist/services/doi-v2/config.js +5 -13
  287. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  288. package/dist/services/doi-v2/runtime.js +54 -14
  289. package/dist/services/figshare-v2/admin.d.ts +16 -0
  290. package/dist/services/figshare-v2/admin.d.ts.map +1 -0
  291. package/dist/services/figshare-v2/admin.js +283 -0
  292. package/dist/services/figshare-v2/assets.d.ts +20 -1
  293. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  294. package/dist/services/figshare-v2/assets.js +16 -1
  295. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  296. package/dist/services/figshare-v2/bindings.js +20 -3
  297. package/dist/services/figshare-v2/config.d.ts +8 -2
  298. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  299. package/dist/services/figshare-v2/config.js +31 -3
  300. package/dist/services/figshare-v2/execution.d.ts +25 -0
  301. package/dist/services/figshare-v2/execution.d.ts.map +1 -0
  302. package/dist/services/figshare-v2/execution.js +49 -0
  303. package/dist/services/figshare-v2/http.d.ts +6 -1
  304. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  305. package/dist/services/figshare-v2/http.js +69 -12
  306. package/dist/services/figshare-v2/identity.d.ts +12 -0
  307. package/dist/services/figshare-v2/identity.d.ts.map +1 -0
  308. package/dist/services/figshare-v2/identity.js +78 -0
  309. package/dist/services/figshare-v2/managed-assets.d.ts +9 -0
  310. package/dist/services/figshare-v2/managed-assets.d.ts.map +1 -0
  311. package/dist/services/figshare-v2/managed-assets.js +229 -0
  312. package/dist/services/figshare-v2/plan.d.ts.map +1 -1
  313. package/dist/services/figshare-v2/plan.js +2 -9
  314. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  315. package/dist/services/figshare-v2/runtime.js +58 -11
  316. package/dist/services/figshare-v2/source-intent.d.ts +9 -0
  317. package/dist/services/figshare-v2/source-intent.d.ts.map +1 -0
  318. package/dist/services/figshare-v2/source-intent.js +93 -0
  319. package/dist/services/figshare-v2/status.d.ts +4 -0
  320. package/dist/services/figshare-v2/status.d.ts.map +1 -0
  321. package/dist/services/figshare-v2/status.js +29 -0
  322. package/dist/services/figshare-v2/sync-store.d.ts +27 -0
  323. package/dist/services/figshare-v2/sync-store.d.ts.map +1 -0
  324. package/dist/services/figshare-v2/sync-store.js +139 -0
  325. package/dist/services/figshare-v2/types.d.ts +3 -0
  326. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  327. package/dist/services/figshare-v2/types.js +1 -1
  328. package/dist/services/figshare-v2/worker.d.ts +16 -0
  329. package/dist/services/figshare-v2/worker.d.ts.map +1 -0
  330. package/dist/services/figshare-v2/worker.js +572 -0
  331. package/dist/services/index.d.ts +0 -9
  332. package/dist/services/index.d.ts.map +1 -1
  333. package/dist/services/index.js +3 -45
  334. package/dist/utilities/TranslationHtml.d.ts +3 -0
  335. package/dist/utilities/TranslationHtml.d.ts.map +1 -0
  336. package/dist/utilities/TranslationHtml.js +46 -0
  337. package/dist/visitor/client.visitor.d.ts +0 -6
  338. package/dist/visitor/client.visitor.d.ts.map +1 -1
  339. package/dist/visitor/client.visitor.js +14 -59
  340. package/dist/visitor/construct.visitor.d.ts +1 -27
  341. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  342. package/dist/visitor/construct.visitor.js +177 -265
  343. package/dist/visitor/context-variables.visitor.d.ts +1 -3
  344. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  345. package/dist/visitor/context-variables.visitor.js +1 -15
  346. package/dist/visitor/data-value.visitor.d.ts +0 -6
  347. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  348. package/dist/visitor/data-value.visitor.js +1 -10
  349. package/dist/visitor/json-type-def.visitor.d.ts +0 -6
  350. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  351. package/dist/visitor/json-type-def.visitor.js +1 -10
  352. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +0 -11
  353. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  354. package/dist/visitor/migrate-config-v4-v5.visitor.js +133 -228
  355. package/dist/visitor/template.visitor.d.ts +2 -17
  356. package/dist/visitor/template.visitor.d.ts.map +1 -1
  357. package/dist/visitor/template.visitor.js +22 -60
  358. package/dist/visitor/validator.visitor.d.ts +7 -49
  359. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  360. package/dist/visitor/validator.visitor.js +178 -275
  361. package/dist/waterline-models/AttachmentMetadata.d.ts +0 -22
  362. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
  363. package/dist/waterline-models/AttachmentMetadata.js +3 -147
  364. package/dist/waterline-models/BrandingConfig.d.ts +0 -7
  365. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  366. package/dist/waterline-models/BrandingConfig.js +1 -16
  367. package/dist/waterline-models/BrandingConfigHistory.d.ts +2 -11
  368. package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
  369. package/dist/waterline-models/BrandingConfigHistory.js +1 -21
  370. package/dist/waterline-models/FigshareSync.d.ts +41 -0
  371. package/dist/waterline-models/FigshareSync.d.ts.map +1 -0
  372. package/dist/waterline-models/FigshareSync.js +168 -0
  373. package/dist/waterline-models/RecordType.d.ts +0 -9
  374. package/dist/waterline-models/RecordType.d.ts.map +1 -1
  375. package/dist/waterline-models/RecordType.js +1 -16
  376. package/dist/waterline-models/User.d.ts.map +1 -1
  377. package/dist/waterline-models/User.js +15 -10
  378. package/dist/waterline-models/index.d.ts +2 -2
  379. package/dist/waterline-models/index.d.ts.map +1 -1
  380. package/dist/waterline-models/index.js +4 -4
  381. package/package.json +46 -59
  382. package/dist/AttachmentStagingIdentity.d.ts +0 -3
  383. package/dist/AttachmentStagingIdentity.d.ts.map +0 -1
  384. package/dist/AttachmentStagingIdentity.js +0 -10
  385. package/dist/RecordConcurrencyObservability.d.ts +0 -51
  386. package/dist/RecordConcurrencyObservability.d.ts.map +0 -1
  387. package/dist/RecordConcurrencyObservability.js +0 -136
  388. package/dist/RecordEntityTag.d.ts +0 -31
  389. package/dist/RecordEntityTag.d.ts.map +0 -1
  390. package/dist/RecordEntityTag.js +0 -101
  391. package/dist/RecordFormFingerprint.d.ts +0 -7
  392. package/dist/RecordFormFingerprint.d.ts.map +0 -1
  393. package/dist/RecordFormFingerprint.js +0 -106
  394. package/dist/RecordHttpConcurrency.d.ts +0 -60
  395. package/dist/RecordHttpConcurrency.d.ts.map +0 -1
  396. package/dist/RecordHttpConcurrency.js +0 -181
  397. package/dist/RecordSaveResponse.d.ts +0 -219
  398. package/dist/RecordSaveResponse.d.ts.map +0 -1
  399. package/dist/RecordSaveResponse.js +0 -639
  400. package/dist/RecordStorageConcurrency.d.ts +0 -48
  401. package/dist/RecordStorageConcurrency.d.ts.map +0 -1
  402. package/dist/RecordStorageConcurrency.js +0 -103
  403. package/dist/RecordWriteClassification.d.ts +0 -12
  404. package/dist/RecordWriteClassification.d.ts.map +0 -1
  405. package/dist/RecordWriteClassification.js +0 -70
  406. package/dist/action-execution/audit.d.ts +0 -41
  407. package/dist/action-execution/audit.d.ts.map +0 -1
  408. package/dist/action-execution/audit.js +0 -122
  409. package/dist/action-execution/executor.d.ts +0 -24
  410. package/dist/action-execution/executor.d.ts.map +0 -1
  411. package/dist/action-execution/executor.js +0 -435
  412. package/dist/action-execution/failure.d.ts +0 -49
  413. package/dist/action-execution/failure.d.ts.map +0 -1
  414. package/dist/action-execution/failure.js +0 -129
  415. package/dist/action-execution/index.d.ts +0 -7
  416. package/dist/action-execution/index.d.ts.map +0 -1
  417. package/dist/action-execution/index.js +0 -23
  418. package/dist/action-execution/legacy-result.d.ts +0 -21
  419. package/dist/action-execution/legacy-result.d.ts.map +0 -1
  420. package/dist/action-execution/legacy-result.js +0 -70
  421. package/dist/action-execution/policy.d.ts +0 -12
  422. package/dist/action-execution/policy.d.ts.map +0 -1
  423. package/dist/action-execution/policy.js +0 -138
  424. package/dist/action-execution/types.d.ts +0 -121
  425. package/dist/action-execution/types.d.ts.map +0 -1
  426. package/dist/action-execution/types.js +0 -22
  427. package/dist/api-routes/groups/record-schemas.d.ts +0 -5
  428. package/dist/api-routes/groups/record-schemas.d.ts.map +0 -1
  429. package/dist/api-routes/groups/record-schemas.js +0 -181
  430. package/dist/api-routes/record-schema-openapi.d.ts +0 -26
  431. package/dist/api-routes/record-schema-openapi.d.ts.map +0 -1
  432. package/dist/api-routes/record-schema-openapi.js +0 -38
  433. package/dist/api-routes/record-schema-response.d.ts +0 -40
  434. package/dist/api-routes/record-schema-response.d.ts.map +0 -1
  435. package/dist/api-routes/record-schema-response.js +0 -89
  436. package/dist/config/recordSchema.config.d.ts +0 -68
  437. package/dist/config/recordSchema.config.d.ts.map +0 -1
  438. package/dist/config/recordSchema.config.js +0 -173
  439. package/dist/config/recordValidation.config.d.ts +0 -19
  440. package/dist/config/recordValidation.config.d.ts.map +0 -1
  441. package/dist/config/recordValidation.config.js +0 -10
  442. package/dist/configmodels/DashboardFieldCatalogue.d.ts +0 -67
  443. package/dist/configmodels/DashboardFieldCatalogue.d.ts.map +0 -1
  444. package/dist/configmodels/DashboardFieldCatalogue.js +0 -174
  445. package/dist/configmodels/DashboardSettings.d.ts +0 -191
  446. package/dist/configmodels/DashboardSettings.d.ts.map +0 -1
  447. package/dist/configmodels/DashboardSettings.js +0 -705
  448. package/dist/configmodels/OniPublishing.d.ts +0 -205
  449. package/dist/configmodels/OniPublishing.d.ts.map +0 -1
  450. package/dist/configmodels/OniPublishing.js +0 -335
  451. package/dist/configmodels/RaidPublishing.d.ts +0 -97
  452. package/dist/configmodels/RaidPublishing.d.ts.map +0 -1
  453. package/dist/configmodels/RaidPublishing.js +0 -35
  454. package/dist/configmodels/WebAnalytics.d.ts +0 -55
  455. package/dist/configmodels/WebAnalytics.d.ts.map +0 -1
  456. package/dist/configmodels/WebAnalytics.js +0 -61
  457. package/dist/controllers/BrandingControllerSupport.d.ts +0 -20
  458. package/dist/controllers/BrandingControllerSupport.d.ts.map +0 -1
  459. package/dist/controllers/BrandingControllerSupport.js +0 -80
  460. package/dist/controllers/webservice/RecordSchemaController.d.ts +0 -32
  461. package/dist/controllers/webservice/RecordSchemaController.d.ts.map +0 -1
  462. package/dist/controllers/webservice/RecordSchemaController.js +0 -356
  463. package/dist/model/BrandingTypeface.d.ts +0 -70
  464. package/dist/model/BrandingTypeface.d.ts.map +0 -1
  465. package/dist/model/BrandingTypeface.js +0 -116
  466. package/dist/model/record-contract.d.ts +0 -42
  467. package/dist/model/record-contract.d.ts.map +0 -1
  468. package/dist/model/record-contract.js +0 -3
  469. package/dist/model/storage/record-schema.d.ts +0 -115
  470. package/dist/model/storage/record-schema.d.ts.map +0 -1
  471. package/dist/model/storage/record-schema.js +0 -3
  472. package/dist/record-contract/ajv-error-mapper.d.ts +0 -34
  473. package/dist/record-contract/ajv-error-mapper.d.ts.map +0 -1
  474. package/dist/record-contract/ajv-error-mapper.js +0 -153
  475. package/dist/record-contract/canonical-json.d.ts +0 -20
  476. package/dist/record-contract/canonical-json.d.ts.map +0 -1
  477. package/dist/record-contract/canonical-json.js +0 -126
  478. package/dist/record-contract/codes.d.ts +0 -36
  479. package/dist/record-contract/codes.d.ts.map +0 -1
  480. package/dist/record-contract/codes.js +0 -38
  481. package/dist/record-contract/contributor-registry.d.ts +0 -76
  482. package/dist/record-contract/contributor-registry.d.ts.map +0 -1
  483. package/dist/record-contract/contributor-registry.js +0 -126
  484. package/dist/record-contract/core-contributors.d.ts +0 -44
  485. package/dist/record-contract/core-contributors.d.ts.map +0 -1
  486. package/dist/record-contract/core-contributors.js +0 -395
  487. package/dist/record-contract/deep-freeze.d.ts +0 -3
  488. package/dist/record-contract/deep-freeze.d.ts.map +0 -1
  489. package/dist/record-contract/deep-freeze.js +0 -23
  490. package/dist/record-contract/index.d.ts +0 -13
  491. package/dist/record-contract/index.d.ts.map +0 -1
  492. package/dist/record-contract/index.js +0 -29
  493. package/dist/record-contract/json-pointer.d.ts +0 -20
  494. package/dist/record-contract/json-pointer.d.ts.map +0 -1
  495. package/dist/record-contract/json-pointer.js +0 -70
  496. package/dist/record-contract/json-schema-renderer.d.ts +0 -51
  497. package/dist/record-contract/json-schema-renderer.d.ts.map +0 -1
  498. package/dist/record-contract/json-schema-renderer.js +0 -450
  499. package/dist/record-contract/record-contract-compiler.d.ts +0 -42
  500. package/dist/record-contract/record-contract-compiler.d.ts.map +0 -1
  501. package/dist/record-contract/record-contract-compiler.js +0 -775
  502. package/dist/record-contract/record-contract-context.d.ts +0 -91
  503. package/dist/record-contract/record-contract-context.d.ts.map +0 -1
  504. package/dist/record-contract/record-contract-context.js +0 -39
  505. package/dist/record-contract/record-json-schema-artifact.d.ts +0 -74
  506. package/dist/record-contract/record-json-schema-artifact.d.ts.map +0 -1
  507. package/dist/record-contract/record-json-schema-artifact.js +0 -309
  508. package/dist/record-contract/record-json-schema-etag.d.ts +0 -15
  509. package/dist/record-contract/record-json-schema-etag.d.ts.map +0 -1
  510. package/dist/record-contract/record-json-schema-etag.js +0 -41
  511. package/dist/record-contract/types.d.ts +0 -151
  512. package/dist/record-contract/types.d.ts.map +0 -1
  513. package/dist/record-contract/types.js +0 -6
  514. package/dist/services/BrandingTypefaceService.d.ts +0 -74
  515. package/dist/services/BrandingTypefaceService.d.ts.map +0 -1
  516. package/dist/services/BrandingTypefaceService.js +0 -359
  517. package/dist/services/BrandingWoff2Inspector.d.ts +0 -17
  518. package/dist/services/BrandingWoff2Inspector.d.ts.map +0 -1
  519. package/dist/services/BrandingWoff2Inspector.js +0 -402
  520. package/dist/services/DashboardLegacyConversion.d.ts +0 -82
  521. package/dist/services/DashboardLegacyConversion.d.ts.map +0 -1
  522. package/dist/services/DashboardLegacyConversion.js +0 -427
  523. package/dist/services/RecordSchemaService.d.ts +0 -440
  524. package/dist/services/RecordSchemaService.d.ts.map +0 -1
  525. package/dist/services/RecordSchemaService.js +0 -3061
  526. package/dist/services/RecordValidationService.d.ts +0 -340
  527. package/dist/services/RecordValidationService.d.ts.map +0 -1
  528. package/dist/services/RecordValidationService.js +0 -1898
  529. package/dist/services/form-record-access-user.d.ts +0 -3
  530. package/dist/services/form-record-access-user.d.ts.map +0 -1
  531. package/dist/services/form-record-access-user.js +0 -23
  532. package/dist/services/integration-v2/bindings.d.ts +0 -3
  533. package/dist/services/integration-v2/bindings.d.ts.map +0 -1
  534. package/dist/services/integration-v2/bindings.js +0 -91
  535. package/dist/services/integration-v2/runtime.d.ts +0 -3
  536. package/dist/services/integration-v2/runtime.d.ts.map +0 -1
  537. package/dist/services/integration-v2/runtime.js +0 -50
  538. package/dist/services/internal-record-schema-authorization.d.ts +0 -8
  539. package/dist/services/internal-record-schema-authorization.d.ts.map +0 -1
  540. package/dist/services/internal-record-schema-authorization.js +0 -16
  541. package/dist/services/oni-v2/audit.d.ts +0 -19
  542. package/dist/services/oni-v2/audit.d.ts.map +0 -1
  543. package/dist/services/oni-v2/audit.js +0 -50
  544. package/dist/services/oni-v2/bindings.d.ts +0 -7
  545. package/dist/services/oni-v2/bindings.d.ts.map +0 -1
  546. package/dist/services/oni-v2/bindings.js +0 -31
  547. package/dist/services/oni-v2/config.d.ts +0 -12
  548. package/dist/services/oni-v2/config.d.ts.map +0 -1
  549. package/dist/services/oni-v2/config.js +0 -134
  550. package/dist/services/oni-v2/context.d.ts +0 -3
  551. package/dist/services/oni-v2/context.d.ts.map +0 -1
  552. package/dist/services/oni-v2/context.js +0 -17
  553. package/dist/services/oni-v2/crate.d.ts +0 -17
  554. package/dist/services/oni-v2/crate.d.ts.map +0 -1
  555. package/dist/services/oni-v2/crate.js +0 -504
  556. package/dist/services/oni-v2/flydriveOcflStore.d.ts +0 -69
  557. package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +0 -1
  558. package/dist/services/oni-v2/flydriveOcflStore.js +0 -325
  559. package/dist/services/oni-v2/ingestion.d.ts +0 -37
  560. package/dist/services/oni-v2/ingestion.d.ts.map +0 -1
  561. package/dist/services/oni-v2/ingestion.js +0 -91
  562. package/dist/services/oni-v2/mapping.d.ts +0 -17
  563. package/dist/services/oni-v2/mapping.d.ts.map +0 -1
  564. package/dist/services/oni-v2/mapping.js +0 -137
  565. package/dist/services/oni-v2/repository.d.ts +0 -9
  566. package/dist/services/oni-v2/repository.d.ts.map +0 -1
  567. package/dist/services/oni-v2/repository.js +0 -180
  568. package/dist/services/oni-v2/runtime.d.ts +0 -23
  569. package/dist/services/oni-v2/runtime.d.ts.map +0 -1
  570. package/dist/services/oni-v2/runtime.js +0 -121
  571. package/dist/services/oni-v2/templating.d.ts +0 -11
  572. package/dist/services/oni-v2/templating.d.ts.map +0 -1
  573. package/dist/services/oni-v2/templating.js +0 -27
  574. package/dist/services/oni-v2/types.d.ts +0 -100
  575. package/dist/services/oni-v2/types.d.ts.map +0 -1
  576. package/dist/services/oni-v2/types.js +0 -3
  577. package/dist/services/raid-v2/audit.d.ts +0 -10
  578. package/dist/services/raid-v2/audit.d.ts.map +0 -1
  579. package/dist/services/raid-v2/audit.js +0 -29
  580. package/dist/services/raid-v2/errors.d.ts +0 -85
  581. package/dist/services/raid-v2/errors.d.ts.map +0 -1
  582. package/dist/services/raid-v2/errors.js +0 -36
  583. package/dist/services/raid-v2/http.d.ts +0 -4
  584. package/dist/services/raid-v2/http.d.ts.map +0 -1
  585. package/dist/services/raid-v2/http.js +0 -84
  586. package/dist/services/raid-v2/logger.d.ts +0 -8
  587. package/dist/services/raid-v2/logger.d.ts.map +0 -1
  588. package/dist/services/raid-v2/logger.js +0 -30
  589. package/dist/services/raid-v2/mapping.d.ts +0 -9
  590. package/dist/services/raid-v2/mapping.d.ts.map +0 -1
  591. package/dist/services/raid-v2/mapping.js +0 -168
  592. package/dist/services/raid-v2/runtime.d.ts +0 -5
  593. package/dist/services/raid-v2/runtime.d.ts.map +0 -1
  594. package/dist/services/raid-v2/runtime.js +0 -135
  595. package/dist/services/raid-v2/tags.d.ts +0 -11
  596. package/dist/services/raid-v2/tags.d.ts.map +0 -1
  597. package/dist/services/raid-v2/tags.js +0 -12
  598. package/dist/services/raid-v2/types.d.ts +0 -66
  599. package/dist/services/raid-v2/types.d.ts.map +0 -1
  600. package/dist/services/raid-v2/types.js +0 -3
  601. package/dist/services/record-hooks/coordinator.d.ts +0 -64
  602. package/dist/services/record-hooks/coordinator.d.ts.map +0 -1
  603. package/dist/services/record-hooks/coordinator.js +0 -276
  604. package/dist/visitor/related-object-data-inline.visitor.d.ts +0 -31
  605. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +0 -1
  606. package/dist/visitor/related-object-data-inline.visitor.js +0 -96
  607. package/dist/waterline-models/DashboardConfiguration.d.ts +0 -29
  608. package/dist/waterline-models/DashboardConfiguration.d.ts.map +0 -1
  609. package/dist/waterline-models/DashboardConfiguration.js +0 -52
@@ -1,5 +1,5 @@
1
1
  import { Services as services } from '../CoreService';
2
- import { FormValidatorSummaryErrors, FormConfigFrame, TemplateCompileInput, FormModesConfig, ReusableFormDefinitions, RecordValueChange, RecordValuePath } from "@researchdatabox/sails-ng-common";
2
+ import { FormValidatorSummaryErrors, FormConfigFrame, TemplateCompileInput, FormModesConfig, ReusableFormDefinitions } from "@researchdatabox/sails-ng-common";
3
3
  export declare namespace Services {
4
4
  type BasicRedboxRecord = {
5
5
  redboxOid: string;
@@ -10,11 +10,31 @@ export declare namespace Services {
10
10
  * The path from the root of the item to the key in the original, which has a change.
11
11
  * Object property keys are strings, array indicies are integers.
12
12
  */
13
- type FormRecordConsistencyChangePath = RecordValuePath;
13
+ type FormRecordConsistencyChangePath = (string | number)[];
14
14
  /**
15
15
  * The properties of one change.
16
16
  */
17
- type FormRecordConsistencyChange = RecordValueChange;
17
+ interface FormRecordConsistencyChange {
18
+ /**
19
+ * The kind of change:
20
+ * - "add": an object property or array index that was not previously present
21
+ * - "delete": an object property or array index that was previously present has been removed
22
+ * - "change": an object property or array index that already existed has a value that has changed
23
+ */
24
+ kind: "add" | "delete" | "change";
25
+ /**
26
+ * The path from the root of the item to the key in the original.
27
+ */
28
+ path: FormRecordConsistencyChangePath;
29
+ /**
30
+ * The original value of the property or array index before the change.
31
+ */
32
+ original: unknown;
33
+ /**
34
+ * The new value of the property or array index after the change.
35
+ */
36
+ changed: unknown;
37
+ }
18
38
  /**
19
39
  * A service for verifying that form config and one or two associated Records are consistent.
20
40
  *
@@ -60,11 +80,6 @@ export declare namespace Services {
60
80
  * @return The merged record.
61
81
  */
62
82
  mergeRecordClientFormConfig(original: BasicRedboxRecord, changed: BasicRedboxRecord, clientFormConfig: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<BasicRedboxRecord>;
63
- /**
64
- * Project authoritative metadata to the fields in an already filtered client form.
65
- * This intentionally uses an empty original so server-only metadata is not retained.
66
- */
67
- projectMetadataClientFormConfig(metadata: Record<string, unknown>, clientFormConfig: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<Record<string, unknown>>;
68
83
  /**
69
84
  * Merge the original and changed records, using the client form config to know which changes to include.
70
85
  * @param original The existing original record.
@@ -1 +1 @@
1
- {"version":3,"file":"FormRecordConsistencyService.d.ts","sourceRoot":"","sources":["../../src/services/FormRecordConsistencyService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormRecordConsistencyService.d.ts","sourceRoot":"","sources":["../../src/services/FormRecordConsistencyService.ts"],"names":[],"mappings":"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"}
@@ -37,13 +37,6 @@ const construct_visitor_1 = require("../visitor/construct.visitor");
37
37
  const client_visitor_1 = require("../visitor/client.visitor");
38
38
  const vocab_inline_visitor_1 = require("../visitor/vocab-inline.visitor");
39
39
  const context_variables_visitor_1 = require("../visitor/context-variables.visitor");
40
- const isPermittedChangesSchemaObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
41
- const requirePermittedChangesSchemaObject = (value) => {
42
- if (!isPermittedChangesSchemaObject(value)) {
43
- throw new Error(`Invalid permittedChanges object, schema definitions must be objects: ${JSON.stringify(value)}`);
44
- }
45
- return value;
46
- };
47
40
  var Services;
48
41
  (function (Services) {
49
42
  /**
@@ -121,20 +114,6 @@ var Services;
121
114
  metadata: this.mergeRecordMetadataPermitted(originalMetadata, changedMetadata, permittedChanges, changes),
122
115
  };
123
116
  }
124
- /**
125
- * Project authoritative metadata to the fields in an already filtered client form.
126
- * This intentionally uses an empty original so server-only metadata is not retained.
127
- */
128
- async projectMetadataClientFormConfig(metadata, clientFormConfig, formMode, reusableFormDefs) {
129
- const projected = await this.mergeRecordClientFormConfig({
130
- redboxOid: '',
131
- metadata: {},
132
- }, {
133
- redboxOid: '',
134
- metadata,
135
- }, clientFormConfig, formMode, reusableFormDefs);
136
- return projected.metadata;
137
- }
138
117
  /**
139
118
  * Merge the original and changed records, using the client form config to know which changes to include.
140
119
  * @param original The existing original record.
@@ -160,17 +139,11 @@ var Services;
160
139
  const originalRecord = original;
161
140
  const changedRecord = changed;
162
141
  const permittedChangesObj = permittedChanges;
163
- if (permittedChangesObj?.type === 'object') {
164
- return changedRecord;
165
- }
166
142
  // if (!('properties' in permittedChangesObj)) {
167
143
  // throw new Error(`Permitted changes must have an object, a 'properties' property, at the top level ${JSON.stringify(permittedChanges)}`)
168
144
  // }
169
- const permittedChangesProps = (('properties' in permittedChangesObj || 'optionalProperties' in permittedChangesObj)
170
- ? {
171
- ...(permittedChangesObj['properties'] ?? {}),
172
- ...(permittedChangesObj['optionalProperties'] ?? {}),
173
- }
145
+ const permittedChangesProps = (('properties' in permittedChangesObj)
146
+ ? permittedChangesObj['properties']
174
147
  : permittedChangesObj);
175
148
  // create a new record instance
176
149
  const result = {
@@ -182,6 +155,7 @@ var Services;
182
155
  // pre-calculate aspects of the original item
183
156
  const isKeyInOriginal = key in originalRecord;
184
157
  const originalValue = isKeyInOriginal ? originalRecord[key] : undefined;
158
+ const originalValueType = (0, sails_ng_common_1.guessType)(originalValue);
185
159
  // pre-calculate aspects of the changed item
186
160
  const isKeyInChanged = key in changedRecord;
187
161
  const changedValue = isKeyInChanged ? changedRecord[key] : undefined;
@@ -189,22 +163,10 @@ var Services;
189
163
  // pre-calculate aspects of the permitted changes
190
164
  const isKeyInPermittedChange = key in permittedChangesProps;
191
165
  const permittedChangesValue = permittedChangesProps?.[key];
192
- const permittedChangesValueObj = isKeyInPermittedChange
193
- ? requirePermittedChangesSchemaObject(permittedChangesValue)
194
- : undefined;
195
- const isPermittedChangeObject = isKeyInPermittedChange && !!permittedChangesValueObj
196
- && ('properties' in permittedChangesValueObj || 'optionalProperties' in permittedChangesValueObj);
197
- const isPermittedChangeArray = isKeyInPermittedChange && !!permittedChangesValueObj && 'elements' in permittedChangesValueObj;
198
- const isPermittedChangeType = isKeyInPermittedChange && !!permittedChangesValueObj && 'type' in permittedChangesValueObj;
199
- const isPermittedChangeEmpty = isKeyInPermittedChange && !!permittedChangesValueObj && Object.keys(permittedChangesValueObj).length === 0;
200
- const originalValueForMerge = isKeyInOriginal
201
- ? originalValue
202
- : isPermittedChangeArray
203
- ? []
204
- : isPermittedChangeObject
205
- ? {}
206
- : undefined;
207
- const originalValueForMergeType = (0, sails_ng_common_1.guessType)(originalValueForMerge);
166
+ const isPermittedChangeObject = isKeyInPermittedChange && !!permittedChangesValue && 'properties' in permittedChangesValue;
167
+ const isPermittedChangeArray = isKeyInPermittedChange && !!permittedChangesValue && 'elements' in permittedChangesValue;
168
+ const isPermittedChangeType = isKeyInPermittedChange && !!permittedChangesValue && 'type' in permittedChangesValue;
169
+ const isPermittedChangeEmpty = isKeyInPermittedChange && !!permittedChangesValue && Object.keys(permittedChangesValue).length === 0;
208
170
  // ensure the permitted changes item is valid
209
171
  const isPermittedChangeMatches = {
210
172
  isPermittedChangeObject: isPermittedChangeObject,
@@ -217,19 +179,17 @@ var Services;
217
179
  }
218
180
  // evaluate the combinations of original and changed values
219
181
  if (isPermittedChangeArray
182
+ && isKeyInOriginal
220
183
  && isKeyInChanged
221
- && originalValueForMergeType === "array"
184
+ && originalValueType === "array"
222
185
  && changedValueType === "array") {
223
186
  // The change is permitted and an array, original and changed have the key and both are arrays.
224
187
  // For an array, the merge logic is to replace the original array with the changed array.
225
188
  // The whole array is replaced because there is no current way to distinguish what from the original should be kept.
226
189
  // TODO: Consider how to replace each element in the array instead of the whole array.
227
190
  // Replacing the whole array prevents use of constraints in components in the array elements.
228
- const newPermittedChanges = requirePermittedChangesSchemaObject(permittedChangesValueObj?.['elements']);
191
+ const newPermittedChanges = permittedChangesValue['elements'];
229
192
  result[key] = changedValue.map((changedElement, index) => {
230
- if (newPermittedChanges.type === 'object' || Object.keys(newPermittedChanges).length === 0) {
231
- return changedElement;
232
- }
233
193
  // Evaluate the element in the array.
234
194
  const guessedType = (0, sails_ng_common_1.guessType)(changedElement);
235
195
  if (guessedType === "object") {
@@ -255,15 +215,16 @@ var Services;
255
215
  });
256
216
  }
257
217
  else if (isPermittedChangeObject
218
+ && isKeyInOriginal
258
219
  && isKeyInChanged
259
- && originalValueForMergeType === "object"
220
+ && originalValueType === "object"
260
221
  && changedValueType === "object") {
261
222
  // The change is permitted and an object, original and changed have the key and both are objects.
262
223
  // Evaluate the properties of the object.
263
224
  const newPermittedChanges = permittedChangesValue;
264
225
  const newPath = [...currentPath, key];
265
226
  const keyChanges = relevantChanges?.filter(i => (0, sails_ng_common_1.arrayStartsWithArray)(newPath, i?.path));
266
- result[key] = this.mergeRecordMetadataPermitted(originalValueForMerge, changedValue, newPermittedChanges, keyChanges, newPath);
227
+ result[key] = this.mergeRecordMetadataPermitted(originalValue, changedValue, newPermittedChanges, keyChanges, newPath);
267
228
  }
268
229
  else if (isKeyInPermittedChange && isKeyInChanged) {
269
230
  // The change is permitted and the key is in the changed.
@@ -318,7 +279,62 @@ var Services;
318
279
  * @param path The current path of the original.
319
280
  */
320
281
  compareRecords(original, changed, path) {
321
- return (0, sails_ng_common_1.diffRecordValues)(original, changed, path);
282
+ path = path ?? [];
283
+ const result = [];
284
+ const isOriginalArray = Array.isArray(original);
285
+ const isChangedArray = Array.isArray(changed);
286
+ const isOriginalObject = _.isPlainObject(original);
287
+ const isChangedObject = _.isPlainObject(changed);
288
+ if ((isOriginalArray && isChangedArray) || (isOriginalObject && isChangedObject)) {
289
+ const { entries: originalEntries, keys: originalKeys } = this.toKeysEntries(original);
290
+ const { entries: changedEntries, keys: changedKeys } = this.toKeysEntries(changed);
291
+ const originalRecord = original;
292
+ const changedRecord = changed;
293
+ // delete
294
+ for (const [key, value] of originalEntries) {
295
+ const newPath = [...path, key];
296
+ const isKeyInChanged = changedKeys.includes(key);
297
+ const changedValue = isKeyInChanged ? changedRecord[key] : undefined;
298
+ if (!isKeyInChanged) {
299
+ // delete key & value
300
+ result.push({
301
+ kind: "delete",
302
+ path: newPath,
303
+ original: value,
304
+ changed: changedValue
305
+ });
306
+ }
307
+ else if (isKeyInChanged && changedValue !== value) {
308
+ // change value in original
309
+ this.compareRecords(value, changedValue, newPath)
310
+ .forEach(i => result.push(i));
311
+ }
312
+ }
313
+ // add
314
+ for (const [key, value] of changedEntries) {
315
+ const newPath = [...path, key];
316
+ const isKeyInOriginal = originalKeys.includes(key);
317
+ const originalValue = isKeyInOriginal ? originalRecord[key] : undefined;
318
+ if (!isKeyInOriginal) {
319
+ // add key & value
320
+ result.push({
321
+ kind: "add",
322
+ path: newPath,
323
+ original: originalValue,
324
+ changed: value
325
+ });
326
+ }
327
+ }
328
+ }
329
+ else if (original !== changed) {
330
+ result.push({
331
+ kind: "change",
332
+ path: path,
333
+ original: original,
334
+ changed: changed
335
+ });
336
+ }
337
+ return result;
322
338
  }
323
339
  // TODO: implement this
324
340
  // /**
@@ -499,4 +515,4 @@ var Services;
499
515
  ], FormRecordConsistency);
500
516
  Services.FormRecordConsistency = FormRecordConsistency;
501
517
  })(Services || (exports.Services = Services = {}));
502
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVJlY29yZENvbnNpc3RlbmN5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9Gb3JtUmVjb3JkQ29uc2lzdGVuY3lTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7Ozs7Ozs7O0FBRTlELGdEQUFzRDtBQUN0RCxzR0FBeUY7QUFDekYsc0VBSzBDO0FBQzFDLCtCQUFvQztBQUNwQyxvRUFBMEU7QUFDMUUsc0VBQTJFO0FBQzNFLDRFQUFzRjtBQUN0RixrRUFBd0U7QUFDeEUsb0VBQTBFO0FBQzFFLDhEQUFvRTtBQUNwRSwwRUFBK0U7QUFDL0Usb0ZBQXlGO0FBRXpGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxLQUFjLEVBQW9DLEVBQUUsQ0FDeEYsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRXpFLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxLQUFjLEVBQTJCLEVBQUU7SUFDcEYsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUtG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
518
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVJlY29yZENvbnNpc3RlbmN5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9Gb3JtUmVjb3JkQ29uc2lzdGVuY3lTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7Ozs7Ozs7O0FBRTlELGdEQUFzRDtBQUN0RCxzR0FBeUY7QUFDekYsc0VBSTBDO0FBQzFDLCtCQUFvQztBQUNwQyxvRUFBMEU7QUFDMUUsc0VBQTJFO0FBQzNFLDRFQUFzRjtBQUN0RixrRUFBd0U7QUFDeEUsb0VBQTBFO0FBQzFFLDhEQUFvRTtBQUNwRSwwRUFBK0U7QUFDL0Usb0ZBQXlGO0FBS3pGLElBQWlCLFFBQVEsQ0FxbEJ4QjtBQXJsQkQsV0FBaUIsUUFBUTtJQTBDckI7Ozs7Ozs7Ozs7O09BV0c7SUFFSCxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFzQixTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFDNUQ7Ozs7Ozs7Ozs7O1dBV0c7UUFDSSxLQUFLLENBQUMsV0FBVyxDQUNwQixPQUEwQixFQUFFLFFBQXlCLEVBQUUsZ0JBQTBDO1lBRWpHLDBCQUEwQjtZQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWpFLHdDQUF3QztZQUN4QyxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQztZQUM3RSxNQUFNLFVBQVUsR0FBRyxRQUFRLEtBQUssTUFBTSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxxQkFBYyxFQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNqSCxNQUFNLFVBQVUsR0FBRyxVQUFVLEVBQUUsYUFBYSxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFFRCwrQkFBK0I7WUFDL0IsTUFBTSxTQUFTLEdBQXlCLFNBQVMsQ0FBQztZQUNsRCxNQUFNLGNBQWMsR0FBRyxRQUFRLEVBQUUsUUFBUSxDQUFDO1lBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFckksdUdBQXVHO1lBQ3ZHLE9BQU8sTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBd0MsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbkosQ0FBQztRQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztXQWlCRztRQUNJLEtBQUssQ0FBQywyQkFBMkIsQ0FDcEMsUUFBMkIsRUFDM0IsT0FBMEIsRUFDMUIsZ0JBQWlDLEVBQ2pDLFFBQXlCLEVBQ3pCLGdCQUEwQztZQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDM0csTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNsRCxNQUFNLGVBQWUsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2RCxPQUFPO2dCQUNILEdBQUcsUUFBUTtnQkFDWCxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsSUFBSSxFQUFFO2dCQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7YUFDNUcsQ0FBQTtRQUNMLENBQUM7UUFFRDs7Ozs7OztXQU9HO1FBQ0ksNEJBQTRCLENBQy9CLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixnQkFBbUQsRUFDbkQsT0FBc0MsRUFDdEMsV0FBNkM7WUFFN0MsaUNBQWlDO1lBQ2pDLFdBQVcsR0FBRyxXQUFXLElBQUksRUFBRSxDQUFDO1lBRWhDLGdFQUFnRTtZQUNoRSxNQUFNLGVBQWUsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN4QyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUEsc0NBQW9CLEVBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztZQUVILDJEQUEyRDtZQUMzRCxNQUFNLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUQsTUFBTSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFrQixZQUFZLENBQUMsQ0FBQztZQUN2RCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpDLDhDQUE4QztZQUM5Qyw2RUFBNkU7WUFDN0UsTUFBTSxjQUFjLEdBQUcsUUFBNEMsQ0FBQztZQUNwRSxNQUFNLGFBQWEsR0FBRyxPQUEyQyxDQUFDO1lBQ2xFLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQW9ELENBQUM7WUFDakYsZ0RBQWdEO1lBQ2hELDhJQUE4STtZQUM5SSxJQUFJO1lBQ0osTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsWUFBWSxJQUFJLG1CQUFtQixDQUFDO2dCQUNsRSxDQUFDLENBQUUsbUJBQW1CLENBQUMsWUFBWSxDQUFzQztnQkFDekUsQ0FBQyxDQUFDLG1CQUFtQixDQUFxQyxDQUFDO1lBRzdELCtCQUErQjtZQUMvQixNQUFNLE1BQU0sR0FBcUM7WUFDN0MsaUJBQWlCO1lBQ2pCLDZEQUE2RDthQUNoRSxDQUFDO1lBRUYsbUNBQW1DO1lBQ25DLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLDZDQUE2QztnQkFDN0MsTUFBTSxlQUFlLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBQztnQkFDOUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDJCQUFTLEVBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRW5ELDRDQUE0QztnQkFDNUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FBQztnQkFDNUMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDJCQUFTLEVBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRWpELGlEQUFpRDtnQkFDakQsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLElBQUkscUJBQXFCLENBQUM7Z0JBQzVELE1BQU0scUJBQXFCLEdBQUcscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQXdDLENBQUM7Z0JBQ2xHLE1BQU0sdUJBQXVCLEdBQUcsc0JBQXNCLElBQUksQ0FBQyxDQUFDLHFCQUFxQixJQUFJLFlBQVksSUFBSSxxQkFBcUIsQ0FBQztnQkFDM0gsTUFBTSxzQkFBc0IsR0FBRyxzQkFBc0IsSUFBSSxDQUFDLENBQUMscUJBQXFCLElBQUksVUFBVSxJQUFJLHFCQUFxQixDQUFDO2dCQUN4SCxNQUFNLHFCQUFxQixHQUFHLHNCQUFzQixJQUFJLENBQUMsQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLElBQUkscUJBQXFCLENBQUM7Z0JBQ25ILE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLElBQUksQ0FBQyxDQUFDLHFCQUFxQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUVwSSw2Q0FBNkM7Z0JBQzdDLE1BQU0sd0JBQXdCLEdBQUc7b0JBQzdCLHVCQUF1QixFQUFFLHVCQUF1QjtvQkFDaEQsc0JBQXNCLEVBQUUsc0JBQXNCO29CQUM5QyxxQkFBcUIsRUFBRSxxQkFBcUI7b0JBQzVDLHNCQUFzQixFQUFFLHNCQUFzQjtpQkFDakQsQ0FBQztnQkFDRixJQUFJLHNCQUFzQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3BILE1BQU0sSUFBSSxLQUFLLENBQUMsa0lBQWtJLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3TyxDQUFDO2dCQUVELDJEQUEyRDtnQkFDM0QsSUFDSSxzQkFBc0I7dUJBQ25CLGVBQWU7dUJBQ2YsY0FBYzt1QkFDZCxpQkFBaUIsS0FBSyxPQUFPO3VCQUM3QixnQkFBZ0IsS0FBSyxPQUFPLEVBQ2pDLENBQUM7b0JBQ0MsK0ZBQStGO29CQUMvRix5RkFBeUY7b0JBQ3pGLG9IQUFvSDtvQkFDcEgsc0ZBQXNGO29CQUN0RixtR0FBbUc7b0JBQ25HLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUE0QixDQUFDO29CQUN6RixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUksWUFBMEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO3dCQUNyRixxQ0FBcUM7d0JBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUEsMkJBQVMsRUFBQyxjQUFjLENBQUMsQ0FBQzt3QkFDOUMsSUFBSSxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7NEJBQzNCLG1EQUFtRDs0QkFDbkQsZ0ZBQWdGOzRCQUNoRix1RUFBdUU7NEJBQ3ZFLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQzs0QkFDM0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7NEJBQzdDLE1BQU0sVUFBVSxHQUFHLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFBLHNDQUFvQixFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFDeEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLEVBQUU7Z0NBQ3RELGVBQWUsRUFBRSxlQUFlO2dDQUNoQyxjQUFjLEVBQUUsY0FBYztnQ0FDOUIsbUJBQW1CLEVBQUUsbUJBQW1CO2dDQUN4QyxVQUFVLEVBQUUsVUFBVTtnQ0FDdEIsT0FBTyxFQUFFLE9BQU87NkJBQ25CLENBQUMsQ0FBQzs0QkFDSCxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLEVBQUUsY0FBd0IsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsT0FBMEMsQ0FBQyxDQUFDO3dCQUNySyxDQUFDOzZCQUFNLENBQUM7NEJBQ0osNEVBQTRFOzRCQUM1RSxPQUFPLGNBQWMsQ0FBQzt3QkFDMUIsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFUCxDQUFDO3FCQUFNLElBQ0gsdUJBQXVCO3VCQUNwQixlQUFlO3VCQUNmLGNBQWM7dUJBQ2QsaUJBQWlCLEtBQUssUUFBUTt1QkFDOUIsZ0JBQWdCLEtBQUssUUFBUSxFQUNsQyxDQUFDO29CQUNDLGlHQUFpRztvQkFDakcseUNBQXlDO29CQUN6QyxNQUFNLG1CQUFtQixHQUFHLHFCQUFnRCxDQUFDO29CQUM3RSxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUN0QyxNQUFNLFVBQVUsR0FBRyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSxzQ0FBb0IsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ3hGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBdUIsRUFBRSxZQUFzQixFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxPQUEwQyxDQUFDLENBQUM7Z0JBRWxMLENBQUM7cUJBQU0sSUFBSSxzQkFBc0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDbEQseURBQXlEO29CQUN6RCxxREFBcUQ7b0JBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7Z0JBRS9CLENBQUM7cUJBQU0sSUFBSSxlQUFlLElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN4RCx1REFBdUQ7b0JBQ3ZELDJCQUEyQjtvQkFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQztnQkFDaEMsQ0FBQztZQUNMLENBQUM7WUFFRDs7Ozs7Ozs7ZUFRRztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFFRDs7Ozs7V0FLRztRQUNJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FDM0MsSUFBcUIsRUFBRSxRQUF5QixFQUFFLGdCQUEwQztZQUU1RixNQUFNLFdBQVcsR0FBRyxJQUFJLDhDQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUM7WUFFdEYsTUFBTSxPQUFPLEdBQUcsSUFBSSwrQ0FBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDSSxLQUFLLENBQUMsd0JBQXdCLENBQ2pDLElBQXFCLEVBQUUsUUFBeUIsRUFBRSxnQkFBMEM7WUFFNUYsTUFBTSxXQUFXLEdBQUcsSUFBSSw4Q0FBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO1lBRXRGLE1BQU0sT0FBTyxHQUFHLElBQUksMERBQWtDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVEOzs7OztXQUtHO1FBQ0ksY0FBYyxDQUNqQixRQUFpQixFQUNqQixPQUFnQixFQUNoQixJQUFzQztZQUV0QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FBa0MsRUFBRSxDQUFDO1lBQ2pELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsZUFBZSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsTUFBTSxFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BGLE1BQU0sRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRixNQUFNLGNBQWMsR0FBRyxRQUE0QyxDQUFDO2dCQUNwRSxNQUFNLGFBQWEsR0FBRyxPQUEyQyxDQUFDO2dCQUVsRSxTQUFTO2dCQUNULEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDL0IsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDakQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFFckUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUNsQixxQkFBcUI7d0JBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ1IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsSUFBSSxFQUFFLE9BQU87NEJBQ2IsUUFBUSxFQUFFLEtBQUs7NEJBQ2YsT0FBTyxFQUFFLFlBQVk7eUJBQ3hCLENBQUMsQ0FBQztvQkFDUCxDQUFDO3lCQUFNLElBQUksY0FBYyxJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQzt3QkFDbEQsMkJBQTJCO3dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDOzZCQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxNQUFNO2dCQUNOLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDeEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDL0IsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkQsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDeEUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dCQUNuQixrQkFBa0I7d0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ1IsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsUUFBUSxFQUFFLGFBQWE7NEJBQ3ZCLE9BQU8sRUFBRSxLQUFLO3lCQUNqQixDQUFDLENBQUM7b0JBQ1AsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsSUFBSTtvQkFDVixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsT0FBTyxFQUFFLE9BQU87aUJBQ25CLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLE1BQU07UUFDTiwyRkFBMkY7UUFDM0YsS0FBSztRQUNMLDBDQUEwQztRQUMxQyxLQUFLO1FBQ0wsK0NBQStDO1FBQy9DLDZEQUE2RDtRQUM3RCxNQUFNO1FBQ04sMENBQTBDO1FBQzFDLCtEQUErRDtRQUMvRCw4Q0FBOEM7UUFDOUMsZ0NBQWdDO1FBQ2hDLGdHQUFnRztRQUNoRyxxRUFBcUU7UUFDckUsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxJQUFJO1FBRUosdUJBQXVCO1FBQ3ZCLE1BQU07UUFDTiwyRkFBMkY7UUFDM0YsS0FBSztRQUNMLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsTUFBTTtRQUNOLHlHQUF5RztRQUN6RyxTQUFTO1FBQ1Qsb0NBQW9DO1FBQ3BDLHVEQUF1RDtRQUN2RCw4SEFBOEg7UUFDOUgsK0JBQStCO1FBQy9CLHNDQUFzQztRQUN0QyxpR0FBaUc7UUFDakcsNkNBQTZDO1FBQzdDLGdFQUFnRTtRQUNoRSwwRUFBMEU7UUFDMUUsaUJBQWlCO1FBQ2pCLFNBQVM7UUFDVCwwQ0FBMEM7UUFDMUMsSUFBSTtRQUVKOzs7Ozs7V0FNRztRQUNJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FDMUMsTUFBeUIsRUFDekIsdUJBQWtDLEVBQ2xDLGdCQUEwQztZQUUxQyw2QkFBNkI7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWhELHVFQUF1RTtZQUN2RSxrREFBa0Q7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLFFBQVEsS0FBSyxNQUFNLENBQUM7WUFFdkMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQztZQUM1RSwrQkFBK0I7WUFDL0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLHFCQUFjLEVBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pILE1BQU0sVUFBVSxHQUFHLFVBQVUsRUFBRSxhQUFhLENBQUM7WUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUVELDhGQUE4RjtZQUM5RixNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUVqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLDhDQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQzFDLElBQUksRUFBRSxVQUFVO2dCQUNoQixRQUFRO2dCQUNSLGdCQUFnQjtnQkFDaEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLElBQUksRUFBRTthQUMvQixDQUFDLENBQUM7WUFFSCxNQUFNLE9BQU8sR0FBRyxJQUFJLDhDQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ25CLElBQUksRUFBRSxXQUFXO2dCQUNqQix1QkFBdUIsRUFBRSx1QkFBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDM0Qsb0JBQW9CO2FBQ3JCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRDs7OztXQUlHO1FBQ0ssOEJBQThCLENBQUMsSUFBcUI7WUFDeEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQXVDLENBQUM7WUFFdkUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFrQyxFQUFFLEVBQUU7Z0JBQzFELE1BQU0sS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUE0QyxDQUFDO2dCQUN0RSxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsTUFBNkMsQ0FBQztnQkFDekUsSUFBSSxXQUFXLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUM1RSxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLENBQUM7Z0JBRUQsTUFBTSxlQUFlLEdBQUksU0FBUyxFQUFFLFNBQWlELEVBQUUsTUFFMUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ25CLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDaEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkIsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNwQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzt3QkFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUErQixDQUFDLENBQUMsQ0FBQztvQkFDNUUsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFSCxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztvQkFDbkMsY0FBYyxDQUFDLGVBQTBDLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztZQUNMLENBQUMsQ0FBQztZQUVGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1lBQ3pELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUErQixDQUFDLENBQUMsQ0FBQztZQUMxRixDQUFDO1lBRUQsT0FBTyxNQUFvQyxDQUFDO1FBQ2hELENBQUM7UUFFRDs7Ozs7Ozs7O1dBU0c7UUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQzlCLElBQXFCLEVBQ3JCLFFBQXlCLEVBQ3pCLFNBQW9CLEVBQ3BCLGNBQStDLEVBQy9DLGdCQUEwQztZQUUxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLDhDQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLGVBQWUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNwSCxNQUFNLFlBQVksR0FBRyxJQUFJLG1EQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRSxNQUFNLFlBQVksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRTtnQkFDM0QsdUJBQXVCLEVBQUUsY0FBYyxLQUFLLElBQUksSUFBSSxjQUFjLEtBQUssU0FBUzthQUNqRixDQUFDLENBQUM7WUFDSCxNQUFNLHVCQUF1QixHQUFHLElBQUksNkRBQWlDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25GLE1BQU0sdUJBQXVCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFOUQsTUFBTSxhQUFhLEdBQUcsSUFBSSx3Q0FBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxhQUFhLENBQUMsS0FBSyxDQUFDO2dCQUMzQyxJQUFJLEVBQUUsZUFBZTtnQkFDckIsUUFBUTtnQkFDUixTQUFTO2dCQUNULGdCQUFnQjthQUNqQixDQUFDLENBQUM7WUFFSCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7WUFFaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSw0Q0FBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0QsT0FBTyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRDs7OztXQUlHO1FBQ0ssYUFBYSxDQUFDLElBQWE7WUFJL0IsTUFBTSxXQUFXLEdBQUcsSUFBQSwyQkFBUyxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLElBQUksV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQStCLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQzVELENBQUM7aUJBQU0sSUFBSSxXQUFXLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sT0FBTyxHQUFrQyxJQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzdHLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxFQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO1lBQ25DLENBQUM7UUFDTCxDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDSyxvQkFBb0IsQ0FBQyxJQUFlLEVBQUUsS0FBZ0I7WUFDMUQsT0FBTyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7UUFDM0YsQ0FBQztLQUNKLENBQUE7SUE3aEJZLHFCQUFxQjtRQURqQywyREFBdUI7T0FDWCxxQkFBcUIsQ0E2aEJqQztJQTdoQlksOEJBQXFCLHdCQTZoQmpDLENBQUE7QUFDTCxDQUFDLEVBcmxCZ0IsUUFBUSx3QkFBUixRQUFRLFFBcWxCeEIifQ==
@@ -1,10 +1,8 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Services as services } from '../CoreService';
3
3
  import { BrandingModel } from '../model/storage/BrandingModel';
4
- import { UserModel } from '../model/storage/UserModel';
5
4
  import { FormAttributes } from '../waterline-models/Form';
6
- import { FormConfigFrame, FormConfigOutline, FormModesConfig, ReusableFormDefinitions, ValidationOperationDiscovery } from '@researchdatabox/sails-ng-common';
7
- import type { RecordContractContext, RecordContractFormBuildResult } from '../record-contract/record-contract-context';
5
+ import { FormConfigFrame, FormConfigOutline, FormModesConfig, ReusableFormDefinitions } from "@researchdatabox/sails-ng-common";
8
6
  type WorkflowStepLike = {
9
7
  id: string;
10
8
  config: {
@@ -13,25 +11,11 @@ type WorkflowStepLike = {
13
11
  starting?: boolean;
14
12
  };
15
13
  type RecordLike = {
16
- redboxOid?: string;
17
14
  metaMetadata?: {
18
- brandId?: string;
19
15
  form?: string;
20
16
  type?: string;
21
17
  };
22
18
  metadata?: Record<string, unknown>;
23
- workflow?: {
24
- stage?: string;
25
- stageLabel?: string;
26
- };
27
- authorization?: {
28
- edit?: string[];
29
- view?: string[];
30
- editRoles?: string[];
31
- viewRoles?: string[];
32
- editPending?: string[];
33
- viewPending?: string[];
34
- };
35
19
  };
36
20
  type FormFieldLike = {
37
21
  definition?: {
@@ -41,42 +25,6 @@ type FormFieldLike = {
41
25
  needsEditAccess?: boolean;
42
26
  [key: string]: unknown;
43
27
  };
44
- export interface FormRecordAccessContext {
45
- readonly user: FormRecordAccessUser;
46
- readonly brand: BrandingModel;
47
- }
48
- /** Populated role facts available on an authenticated request user. */
49
- export interface FormRecordAccessRole {
50
- readonly id: string;
51
- readonly name: string;
52
- }
53
- /** Required Waterline user facts used by record and form access checks. */
54
- export interface FormRecordAccessUser extends Record<string, unknown> {
55
- readonly id: string;
56
- readonly username: string;
57
- readonly type: string;
58
- readonly name: string;
59
- readonly email: string;
60
- readonly roles: FormRecordAccessRole[];
61
- }
62
- export interface ValidationOperationDiscoveryOptions {
63
- readonly brand: BrandingModel;
64
- readonly form: FormAttributes;
65
- readonly recordType?: string;
66
- readonly record?: RecordLike | null;
67
- readonly user?: UserModel | Record<string, unknown> | null;
68
- readonly editable: boolean;
69
- readonly targetStep?: string;
70
- }
71
- /** Detached configured-form input for candidate-independent record-contract startup compilation. */
72
- export interface ConfiguredRecordContractFormCandidate {
73
- readonly name: string;
74
- readonly form: unknown;
75
- readonly reusableFormDefinitions: unknown;
76
- }
77
- export type PublicFormAttributes = FormAttributes & {
78
- validationOperations?: ValidationOperationDiscovery[];
79
- };
80
28
  export declare namespace Services {
81
29
  /**
82
30
  * Forms related functions...
@@ -89,41 +37,14 @@ export declare namespace Services {
89
37
  protected _exportedMethods: string[];
90
38
  bootstrap(workflowStep: WorkflowStepLike, brandingId: string): Promise<unknown>;
91
39
  private getFormConfigRegistry;
92
- /**
93
- * Snapshot every registered form without selecting a record, actor, workflow,
94
- * or operation. RecordSchemaService owns validation and compilation of these
95
- * detached candidates during its awaited startup phase.
96
- */
97
- listConfiguredRecordContractForms(): readonly ConfiguredRecordContractFormCandidate[];
98
40
  listForms: (brandingId?: string) => Observable<FormAttributes[]>;
99
41
  getFormByName: (formName: string, editMode: boolean, brandingId?: string) => Observable<FormAttributes | null>;
100
42
  getForm(branding: BrandingModel, formParam: string, editMode: boolean, recordType: string, currentRec: RecordLike): Promise<FormAttributes | null>;
101
- /**
102
- * Remove the server-owned operation policy and add only caller-filtered
103
- * discovery metadata. Nested form configuration is otherwise preserved for
104
- * compatibility with existing form clients.
105
- */
106
- toPublicForm(form: FormAttributes, validationOperations?: readonly ValidationOperationDiscovery[]): PublicFormAttributes;
107
- /**
108
- * Discover operations using the same form/type/stage policy resolver as a
109
- * save, after applying existing record-edit and workflow-transition access.
110
- * Missing services, actor data, or context fail safely to no operations.
111
- */
112
- discoverValidationOperations(options: ValidationOperationDiscoveryOptions): Promise<ValidationOperationDiscovery[]>;
113
43
  getFormByStartingWorkflowStep(branding: BrandingModel, recordType: string, _editMode: boolean): Observable<FormAttributes>;
114
44
  inferSchemaFromMetadata(record: RecordLike): Record<string, unknown>;
115
45
  generateFormFromSchema(branding: BrandingModel, recordType: string, record: RecordLike): Promise<FormConfigFrame | Record<string, unknown>>;
116
46
  filterFieldsHasEditAccess(fields: FormFieldLike[], hasEditAccess: boolean): void;
117
47
  flattenFields(fields: FormFieldLike[], fieldArr: FormFieldLike[]): void;
118
- /**
119
- * Build the translation lookup used to resolve form config default values.
120
- *
121
- * Returns undefined when the translation service is not available, so the form
122
- * config values are left as they are rather than failing to build the form.
123
- *
124
- * @param branding The branding name.
125
- */
126
- private buildFormConfigTranslator;
127
48
  /**
128
49
  * Convert a server-side form config to a client-side form config.
129
50
  *
@@ -133,17 +54,7 @@ export declare namespace Services {
133
54
  * @param recordMetadata The record metadata.
134
55
  * @param reusableFormDefs The reusable form definitions.
135
56
  */
136
- buildClientFormConfig(item: FormConfigFrame, formMode?: FormModesConfig, userRoles?: string[], recordMetadata?: Record<string, unknown> | null, reusableFormDefs?: ReusableFormDefinitions, branding?: string, contextVariablesMap?: Record<string, unknown>, recordAccessContext?: FormRecordAccessContext, preserveDefaultValues?: boolean): Promise<FormConfigOutline>;
137
- /**
138
- * Build the effective form used to compile a record contract.
139
- *
140
- * Create contracts deliberately use the form defaults rather than a synthetic
141
- * record candidate. This keeps candidate-dependent form branches available to
142
- * the contract compiler. Update contracts use the authoritative existing record.
143
- */
144
- buildContractFormConfig(context: RecordContractContext, recordAccessContext?: FormRecordAccessContext): Promise<RecordContractFormBuildResult>;
145
- /** Prune known display-only core leaves and structural shells emptied by that pruning. */
146
- private retainSubmittableContractComponents;
57
+ buildClientFormConfig(item: FormConfigFrame, formMode?: FormModesConfig, userRoles?: string[], recordMetadata?: Record<string, unknown> | null, reusableFormDefs?: ReusableFormDefinitions, branding?: string, contextVariablesMap?: Record<string, unknown>): Promise<FormConfigOutline>;
147
58
  private findComponentDefinitionByName;
148
59
  }
149
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FormsService.d.ts","sourceRoot":"","sources":["../../src/services/FormsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormsService.d.ts","sourceRoot":"","sources":["../../src/services/FormsService.ts"],"names":[],"mappings":"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"}