@openforis/arena-core 2.3.31 → 2.3.34

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 (837) hide show
  1. package/dist/app/appInfo.js.map +1 -1
  2. package/dist/app/index.js.map +1 -1
  3. package/dist/auth/authGroup.js.map +1 -1
  4. package/dist/auth/authGroups.js.map +1 -1
  5. package/dist/auth/authorizer.js +45 -0
  6. package/dist/auth/authorizer.js.map +1 -1
  7. package/dist/auth/factory.js.map +1 -1
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/auth/permission.js.map +1 -1
  10. package/dist/auth/user.js.map +1 -1
  11. package/dist/auth/userAuth.js.map +1 -1
  12. package/dist/auth/userAuthTokenService.d.ts +28 -0
  13. package/dist/auth/userAuthTokenService.js.map +1 -1
  14. package/dist/auth/userGroup.js.map +1 -1
  15. package/dist/auth/userService.js.map +1 -1
  16. package/dist/auth/users.js +1 -0
  17. package/dist/auth/users.js.map +1 -1
  18. package/dist/category/categories.js.map +1 -1
  19. package/dist/category/category.js.map +1 -1
  20. package/dist/category/categoryImportSummary.js.map +1 -1
  21. package/dist/category/categoryItemGenerator.js.map +1 -1
  22. package/dist/category/categoryItems.js.map +1 -1
  23. package/dist/category/factory.js.map +1 -1
  24. package/dist/category/index.js.map +1 -1
  25. package/dist/category/item.js.map +1 -1
  26. package/dist/category/itemService.js.map +1 -1
  27. package/dist/category/level.js.map +1 -1
  28. package/dist/category/levelService.js.map +1 -1
  29. package/dist/category/service.js.map +1 -1
  30. package/dist/chain/chain.js.map +1 -1
  31. package/dist/chain/chainFactory.js.map +1 -1
  32. package/dist/chain/chainNodeDef.js.map +1 -1
  33. package/dist/chain/chainNodeDefAggregate.js.map +1 -1
  34. package/dist/chain/chainNodeDefFactory.js.map +1 -1
  35. package/dist/chain/chainNodeDefService.js.map +1 -1
  36. package/dist/chain/chainService.js.map +1 -1
  37. package/dist/chain/index.js.map +1 -1
  38. package/dist/common/Dictionary.js.map +1 -1
  39. package/dist/common/factory.js.map +1 -1
  40. package/dist/common/i18n.js.map +1 -1
  41. package/dist/common/index.js.map +1 -1
  42. package/dist/dataExport/ArenaExportInfo.js.map +1 -1
  43. package/dist/dataExport/ArenaExportInfoFactory.js.map +1 -1
  44. package/dist/dataExport/FlatDataExportModel.js +3 -3
  45. package/dist/dataExport/FlatDataExportModel.js.map +1 -1
  46. package/dist/dataExport/FlatDataExportOptions.js.map +1 -1
  47. package/dist/dataExport/FlatDataFiles.js.map +1 -1
  48. package/dist/dataExport/UniqueFileNamesGenerator.d.ts +23 -0
  49. package/dist/dataExport/UniqueFileNamesGenerator.js +26 -1
  50. package/dist/dataExport/UniqueFileNamesGenerator.js.map +1 -1
  51. package/dist/dataExport/index.js.map +1 -1
  52. package/dist/dataQuery/dataQuery.js.map +1 -1
  53. package/dist/dataQuery/dataQuerySummaries.js +3 -0
  54. package/dist/dataQuery/dataQuerySummaries.js.map +1 -1
  55. package/dist/dataQuery/index.js.map +1 -1
  56. package/dist/error/SystemError.js +1 -0
  57. package/dist/error/SystemError.js.map +1 -1
  58. package/dist/error/index.js.map +1 -1
  59. package/dist/esm/app/appInfo.js.map +1 -1
  60. package/dist/esm/app/index.js.map +1 -1
  61. package/dist/esm/auth/authGroup.js.map +1 -1
  62. package/dist/esm/auth/authGroups.js.map +1 -1
  63. package/dist/esm/auth/authorizer.js +45 -0
  64. package/dist/esm/auth/authorizer.js.map +1 -1
  65. package/dist/esm/auth/factory.js.map +1 -1
  66. package/dist/esm/auth/index.js.map +1 -1
  67. package/dist/esm/auth/permission.js.map +1 -1
  68. package/dist/esm/auth/user.js.map +1 -1
  69. package/dist/esm/auth/userAuth.js.map +1 -1
  70. package/dist/esm/auth/userAuthTokenService.js.map +1 -1
  71. package/dist/esm/auth/userGroup.js.map +1 -1
  72. package/dist/esm/auth/userService.js.map +1 -1
  73. package/dist/esm/auth/users.js +1 -0
  74. package/dist/esm/auth/users.js.map +1 -1
  75. package/dist/esm/category/categories.js.map +1 -1
  76. package/dist/esm/category/category.js.map +1 -1
  77. package/dist/esm/category/categoryImportSummary.js.map +1 -1
  78. package/dist/esm/category/categoryItemGenerator.js.map +1 -1
  79. package/dist/esm/category/categoryItems.js.map +1 -1
  80. package/dist/esm/category/factory.js.map +1 -1
  81. package/dist/esm/category/index.js.map +1 -1
  82. package/dist/esm/category/item.js.map +1 -1
  83. package/dist/esm/category/itemService.js.map +1 -1
  84. package/dist/esm/category/level.js.map +1 -1
  85. package/dist/esm/category/levelService.js.map +1 -1
  86. package/dist/esm/category/service.js.map +1 -1
  87. package/dist/esm/chain/chain.js.map +1 -1
  88. package/dist/esm/chain/chainFactory.js.map +1 -1
  89. package/dist/esm/chain/chainNodeDef.js.map +1 -1
  90. package/dist/esm/chain/chainNodeDefAggregate.js.map +1 -1
  91. package/dist/esm/chain/chainNodeDefFactory.js.map +1 -1
  92. package/dist/esm/chain/chainNodeDefService.js.map +1 -1
  93. package/dist/esm/chain/chainService.js.map +1 -1
  94. package/dist/esm/chain/index.js.map +1 -1
  95. package/dist/esm/common/Dictionary.js.map +1 -1
  96. package/dist/esm/common/factory.js.map +1 -1
  97. package/dist/esm/common/i18n.js.map +1 -1
  98. package/dist/esm/common/index.js.map +1 -1
  99. package/dist/esm/dataExport/ArenaExportInfo.js.map +1 -1
  100. package/dist/esm/dataExport/ArenaExportInfoFactory.js.map +1 -1
  101. package/dist/esm/dataExport/FlatDataExportModel.js +3 -3
  102. package/dist/esm/dataExport/FlatDataExportModel.js.map +1 -1
  103. package/dist/esm/dataExport/FlatDataExportOptions.js.map +1 -1
  104. package/dist/esm/dataExport/FlatDataFiles.js.map +1 -1
  105. package/dist/esm/dataExport/UniqueFileNamesGenerator.js +26 -1
  106. package/dist/esm/dataExport/UniqueFileNamesGenerator.js.map +1 -1
  107. package/dist/esm/dataExport/index.js.map +1 -1
  108. package/dist/esm/dataQuery/dataQuery.js.map +1 -1
  109. package/dist/esm/dataQuery/dataQuerySummaries.js +3 -0
  110. package/dist/esm/dataQuery/dataQuerySummaries.js.map +1 -1
  111. package/dist/esm/dataQuery/index.js.map +1 -1
  112. package/dist/esm/error/SystemError.js +1 -0
  113. package/dist/esm/error/SystemError.js.map +1 -1
  114. package/dist/esm/error/index.js.map +1 -1
  115. package/dist/esm/expression/context.js.map +1 -1
  116. package/dist/esm/expression/evaluator.js.map +1 -1
  117. package/dist/esm/expression/function.js.map +1 -1
  118. package/dist/esm/expression/index.js.map +1 -1
  119. package/dist/esm/expression/javascript/evaluator.js +3 -0
  120. package/dist/esm/expression/javascript/evaluator.js.map +1 -1
  121. package/dist/esm/expression/javascript/functionsDefault.js.map +1 -1
  122. package/dist/esm/expression/javascript/global.js.map +1 -1
  123. package/dist/esm/expression/javascript/node/array.js.map +1 -1
  124. package/dist/esm/expression/javascript/node/binary.js +23 -0
  125. package/dist/esm/expression/javascript/node/binary.js.map +1 -1
  126. package/dist/esm/expression/javascript/node/call.js +12 -0
  127. package/dist/esm/expression/javascript/node/call.js.map +1 -1
  128. package/dist/esm/expression/javascript/node/compound.js.map +1 -1
  129. package/dist/esm/expression/javascript/node/conditional.js.map +1 -1
  130. package/dist/esm/expression/javascript/node/identifier.js +7 -0
  131. package/dist/esm/expression/javascript/node/identifier.js.map +1 -1
  132. package/dist/esm/expression/javascript/node/literal.js.map +1 -1
  133. package/dist/esm/expression/javascript/node/member.js +5 -1
  134. package/dist/esm/expression/javascript/node/member.js.map +1 -1
  135. package/dist/esm/expression/javascript/node/sequence.js.map +1 -1
  136. package/dist/esm/expression/javascript/node/this.js.map +1 -1
  137. package/dist/esm/expression/javascript/node/unary.js +8 -0
  138. package/dist/esm/expression/javascript/node/unary.js.map +1 -1
  139. package/dist/esm/expression/javascript/parser/jsep.js +6 -2
  140. package/dist/esm/expression/javascript/parser/jsep.js.map +1 -1
  141. package/dist/esm/expression/javascript/parser/parser.js.map +1 -1
  142. package/dist/esm/expression/node.js.map +1 -1
  143. package/dist/esm/expression/parser.js.map +1 -1
  144. package/dist/esm/expression/variable.js.map +1 -1
  145. package/dist/esm/extraProp/extraProp.js.map +1 -1
  146. package/dist/esm/extraProp/extraProps.js.map +1 -1
  147. package/dist/esm/extraProp/extraPropsDataGenerator.js.map +1 -1
  148. package/dist/esm/extraProp/index.js.map +1 -1
  149. package/dist/esm/geo/index.js.map +1 -1
  150. package/dist/esm/geo/point.js.map +1 -1
  151. package/dist/esm/geo/pointFactory.js.map +1 -1
  152. package/dist/esm/geo/points/bearing.js +11 -0
  153. package/dist/esm/geo/points/bearing.js.map +1 -1
  154. package/dist/esm/geo/points/distance.js +9 -0
  155. package/dist/esm/geo/points/distance.js.map +1 -1
  156. package/dist/esm/geo/points/equals.js.map +1 -1
  157. package/dist/esm/geo/points/getSrs.js.map +1 -1
  158. package/dist/esm/geo/points/index.js.map +1 -1
  159. package/dist/esm/geo/points/isFilled.js.map +1 -1
  160. package/dist/esm/geo/points/isValid.js +1 -1
  161. package/dist/esm/geo/points/isValid.js.map +1 -1
  162. package/dist/esm/geo/points/parse.js +9 -0
  163. package/dist/esm/geo/points/parse.js.map +1 -1
  164. package/dist/esm/geo/points/pointAtDistance.js +10 -0
  165. package/dist/esm/geo/points/pointAtDistance.js.map +1 -1
  166. package/dist/esm/geo/points/toLatLong.js.map +1 -1
  167. package/dist/esm/geo/points/toString.js.map +1 -1
  168. package/dist/esm/geo/points/transform.js +12 -0
  169. package/dist/esm/geo/points/transform.js.map +1 -1
  170. package/dist/esm/index.js.map +1 -1
  171. package/dist/esm/job/JobBase.js +138 -18
  172. package/dist/esm/job/JobBase.js.map +1 -1
  173. package/dist/esm/job/index.js.map +1 -1
  174. package/dist/esm/job/job.js.map +1 -1
  175. package/dist/esm/job/jobContext.js.map +1 -1
  176. package/dist/esm/job/jobEvent.js.map +1 -1
  177. package/dist/esm/job/jobSerialized.js.map +1 -1
  178. package/dist/esm/job/status.js.map +1 -1
  179. package/dist/esm/language/index.js.map +1 -1
  180. package/dist/esm/language/labels.js.map +1 -1
  181. package/dist/esm/language/languageCode.js.map +1 -1
  182. package/dist/esm/language/languages.js.map +1 -1
  183. package/dist/esm/logger/index.js.map +1 -1
  184. package/dist/esm/logger/logger.js.map +1 -1
  185. package/dist/esm/message/index.js.map +1 -1
  186. package/dist/esm/message/message.js.map +1 -1
  187. package/dist/esm/message/messages.js +1 -0
  188. package/dist/esm/message/messages.js.map +1 -1
  189. package/dist/esm/node/factory.js.map +1 -1
  190. package/dist/esm/node/index.js.map +1 -1
  191. package/dist/esm/node/node.js.map +1 -1
  192. package/dist/esm/node/nodePointer.js.map +1 -1
  193. package/dist/esm/node/nodeValue/code.js.map +1 -1
  194. package/dist/esm/node/nodeValue/coordinate.js.map +1 -1
  195. package/dist/esm/node/nodeValue/file.js.map +1 -1
  196. package/dist/esm/node/nodeValue/index.js.map +1 -1
  197. package/dist/esm/node/nodeValue/nodeValueComposite.js.map +1 -1
  198. package/dist/esm/node/nodeValue/taxon.js.map +1 -1
  199. package/dist/esm/node/nodeValueFormatter.js +2 -0
  200. package/dist/esm/node/nodeValueFormatter.js.map +1 -1
  201. package/dist/esm/node/nodeValueProps.js.map +1 -1
  202. package/dist/esm/node/nodeValues.js +20 -0
  203. package/dist/esm/node/nodeValues.js.map +1 -1
  204. package/dist/esm/node/nodes.js +7 -0
  205. package/dist/esm/node/nodes.js.map +1 -1
  206. package/dist/esm/node/service.js.map +1 -1
  207. package/dist/esm/nodeDef/factory.js.map +1 -1
  208. package/dist/esm/nodeDef/index.js.map +1 -1
  209. package/dist/esm/nodeDef/nodeDef.js +1 -0
  210. package/dist/esm/nodeDef/nodeDef.js.map +1 -1
  211. package/dist/esm/nodeDef/nodeDefs.js +18 -0
  212. package/dist/esm/nodeDef/nodeDefs.js.map +1 -1
  213. package/dist/esm/nodeDef/service.js.map +1 -1
  214. package/dist/esm/nodeDef/types/boolean.js.map +1 -1
  215. package/dist/esm/nodeDef/types/code.js.map +1 -1
  216. package/dist/esm/nodeDef/types/coordinate.js.map +1 -1
  217. package/dist/esm/nodeDef/types/date.js.map +1 -1
  218. package/dist/esm/nodeDef/types/decimal.js.map +1 -1
  219. package/dist/esm/nodeDef/types/entity.js.map +1 -1
  220. package/dist/esm/nodeDef/types/file.js.map +1 -1
  221. package/dist/esm/nodeDef/types/formHeader.js.map +1 -1
  222. package/dist/esm/nodeDef/types/integer.js.map +1 -1
  223. package/dist/esm/nodeDef/types/taxon.js.map +1 -1
  224. package/dist/esm/nodeDef/types/text.js.map +1 -1
  225. package/dist/esm/nodeDef/types/time.js.map +1 -1
  226. package/dist/esm/nodeDefExpressionEvaluator/categoryItemProvider.js.map +1 -1
  227. package/dist/esm/nodeDefExpressionEvaluator/context.js.map +1 -1
  228. package/dist/esm/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
  229. package/dist/esm/nodeDefExpressionEvaluator/functions.js +8 -1
  230. package/dist/esm/nodeDefExpressionEvaluator/functions.js.map +1 -1
  231. package/dist/esm/nodeDefExpressionEvaluator/index.js.map +1 -1
  232. package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js +28 -0
  233. package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
  234. package/dist/esm/nodeDefExpressionEvaluator/node/member.js +15 -0
  235. package/dist/esm/nodeDefExpressionEvaluator/node/member.js.map +1 -1
  236. package/dist/esm/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js +3 -0
  237. package/dist/esm/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js.map +1 -1
  238. package/dist/esm/nodeDefExpressionEvaluator/node/thisEvaluator.js.map +1 -1
  239. package/dist/esm/nodeDefExpressionEvaluator/taxonProvider.js.map +1 -1
  240. package/dist/esm/nodeDefExpressionEvaluator/validator.js.map +1 -1
  241. package/dist/esm/record/_records/recordCompletion.js +14 -0
  242. package/dist/esm/record/_records/recordCompletion.js.map +1 -1
  243. package/dist/esm/record/_records/recordGetters.js +19 -2
  244. package/dist/esm/record/_records/recordGetters.js.map +1 -1
  245. package/dist/esm/record/_records/recordNodesIndexReader.js.map +1 -1
  246. package/dist/esm/record/_records/recordNodesIndexUpdater.js +17 -0
  247. package/dist/esm/record/_records/recordNodesIndexUpdater.js.map +1 -1
  248. package/dist/esm/record/_records/recordPagesValidation.js +45 -0
  249. package/dist/esm/record/_records/recordPagesValidation.js.map +1 -1
  250. package/dist/esm/record/_records/recordUpdateOptions.js.map +1 -1
  251. package/dist/esm/record/_records/recordUpdater.js +2 -0
  252. package/dist/esm/record/_records/recordUpdater.js.map +1 -1
  253. package/dist/esm/record/_records/recordUtils.js.map +1 -1
  254. package/dist/esm/record/factory.js.map +1 -1
  255. package/dist/esm/record/index.js.map +1 -1
  256. package/dist/esm/record/nodePointers.js.map +1 -1
  257. package/dist/esm/record/record.js.map +1 -1
  258. package/dist/esm/record/recordCloner.js +10 -1
  259. package/dist/esm/record/recordCloner.js.map +1 -1
  260. package/dist/esm/record/recordExpressionEvaluator/context.js.map +1 -1
  261. package/dist/esm/record/recordExpressionEvaluator/functions.js.map +1 -1
  262. package/dist/esm/record/recordExpressionEvaluator/index.js.map +1 -1
  263. package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js +14 -0
  264. package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
  265. package/dist/esm/record/recordExpressionEvaluator/node/identifier/index.js.map +1 -1
  266. package/dist/esm/record/recordExpressionEvaluator/node/identifier/nodesFinder.js +6 -0
  267. package/dist/esm/record/recordExpressionEvaluator/node/identifier/nodesFinder.js.map +1 -1
  268. package/dist/esm/record/recordExpressionEvaluator/node/thisEvaluator.js.map +1 -1
  269. package/dist/esm/record/recordExpressionEvaluator/nodeValueExtractor.js.map +1 -1
  270. package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
  271. package/dist/esm/record/recordFixer.js +16 -0
  272. package/dist/esm/record/recordFixer.js.map +1 -1
  273. package/dist/esm/record/recordNodesUpdater/index.js.map +1 -1
  274. package/dist/esm/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js +6 -0
  275. package/dist/esm/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js.map +1 -1
  276. package/dist/esm/record/recordNodesUpdater/recordExpressionEvaluationContext.js.map +1 -1
  277. package/dist/esm/record/recordNodesUpdater/recordExpressionValueConverter.js +5 -0
  278. package/dist/esm/record/recordNodesUpdater/recordExpressionValueConverter.js.map +1 -1
  279. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js +20 -2
  280. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
  281. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js +2 -1
  282. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
  283. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js +13 -1
  284. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
  285. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js +9 -1
  286. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
  287. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js +17 -1
  288. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
  289. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEditableUpdater.js.map +1 -1
  290. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js +5 -1
  291. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
  292. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js +4 -2
  293. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
  294. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js +8 -3
  295. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
  296. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsUpdateParams.js.map +1 -1
  297. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsVisibleUpdater.js.map +1 -1
  298. package/dist/esm/record/recordNodesUpdater/recordNodesCreator.js +10 -5
  299. package/dist/esm/record/recordNodesUpdater/recordNodesCreator.js.map +1 -1
  300. package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js +7 -0
  301. package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
  302. package/dist/esm/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js +2 -0
  303. package/dist/esm/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
  304. package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js +16 -2
  305. package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
  306. package/dist/esm/record/recordNodesUpdater/recordUpdateResult.js +8 -0
  307. package/dist/esm/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
  308. package/dist/esm/record/recordPrettyPrinter.js.map +1 -1
  309. package/dist/esm/record/recordStep.js.map +1 -1
  310. package/dist/esm/record/recordUpdater.js +1 -0
  311. package/dist/esm/record/recordUpdater.js.map +1 -1
  312. package/dist/esm/record/recordValidations.js.map +1 -1
  313. package/dist/esm/record/recordValidator/attributeKeyValidator.js +3 -0
  314. package/dist/esm/record/recordValidator/attributeKeyValidator.js.map +1 -1
  315. package/dist/esm/record/recordValidator/attributeTypeValidator.js +3 -0
  316. package/dist/esm/record/recordValidator/attributeTypeValidator.js.map +1 -1
  317. package/dist/esm/record/recordValidator/attributeUniqueValidator.js +2 -0
  318. package/dist/esm/record/recordValidator/attributeUniqueValidator.js.map +1 -1
  319. package/dist/esm/record/recordValidator/attributeValidator.js +12 -1
  320. package/dist/esm/record/recordValidator/attributeValidator.js.map +1 -1
  321. package/dist/esm/record/recordValidator/countVaildator.js +5 -0
  322. package/dist/esm/record/recordValidator/countVaildator.js.map +1 -1
  323. package/dist/esm/record/recordValidator/index.js.map +1 -1
  324. package/dist/esm/record/recordValidator/recordValidator.js +3 -0
  325. package/dist/esm/record/recordValidator/recordValidator.js.map +1 -1
  326. package/dist/esm/record/records.js +3 -0
  327. package/dist/esm/record/records.js.map +1 -1
  328. package/dist/esm/record/service.js.map +1 -1
  329. package/dist/esm/registry/index.js.map +1 -1
  330. package/dist/esm/registry/serviceRegistry.js.map +1 -1
  331. package/dist/esm/registry/serviceType.js.map +1 -1
  332. package/dist/esm/srs/factory.js.map +1 -1
  333. package/dist/esm/srs/index.js.map +1 -1
  334. package/dist/esm/srs/srs.js.map +1 -1
  335. package/dist/esm/survey/factory.js +1 -0
  336. package/dist/esm/survey/factory.js.map +1 -1
  337. package/dist/esm/survey/index.js.map +1 -1
  338. package/dist/esm/survey/nodeDefsFixer.js +1 -0
  339. package/dist/esm/survey/nodeDefsFixer.js.map +1 -1
  340. package/dist/esm/survey/refData/factory.js.map +1 -1
  341. package/dist/esm/survey/refData/index.js.map +1 -1
  342. package/dist/esm/survey/refData/refData.js.map +1 -1
  343. package/dist/esm/survey/service.js.map +1 -1
  344. package/dist/esm/survey/survey.js.map +1 -1
  345. package/dist/esm/survey/surveyDocImageFactory.js.map +1 -1
  346. package/dist/esm/survey/surveyDocImages.js.map +1 -1
  347. package/dist/esm/survey/surveyFileFactory.js.map +1 -1
  348. package/dist/esm/survey/surveys/_nodeDefs/nodeDefsIndex.js +8 -0
  349. package/dist/esm/survey/surveys/_nodeDefs/nodeDefsIndex.js.map +1 -1
  350. package/dist/esm/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
  351. package/dist/esm/survey/surveys/dependencies.js +11 -2
  352. package/dist/esm/survey/surveys/dependencies.js.map +1 -1
  353. package/dist/esm/survey/surveys/index.js +6 -0
  354. package/dist/esm/survey/surveys/index.js.map +1 -1
  355. package/dist/esm/survey/surveys/nodeDefs.js +12 -0
  356. package/dist/esm/survey/surveys/nodeDefs.js.map +1 -1
  357. package/dist/esm/survey/surveys/refsData.js.map +1 -1
  358. package/dist/esm/survey/surveys/surveyGettersSecurity.js.map +1 -1
  359. package/dist/esm/survey/surveys/surveysGetters.js +3 -1
  360. package/dist/esm/survey/surveys/surveysGetters.js.map +1 -1
  361. package/dist/esm/survey/surveys/surveysUtils.js.map +1 -1
  362. package/dist/esm/taxonomy/factory.js.map +1 -1
  363. package/dist/esm/taxonomy/index.js.map +1 -1
  364. package/dist/esm/taxonomy/service.js.map +1 -1
  365. package/dist/esm/taxonomy/taxa.js.map +1 -1
  366. package/dist/esm/taxonomy/taxon.js.map +1 -1
  367. package/dist/esm/taxonomy/taxonGenerator.js.map +1 -1
  368. package/dist/esm/taxonomy/taxonService.js.map +1 -1
  369. package/dist/esm/taxonomy/taxonVernacularName.js.map +1 -1
  370. package/dist/esm/taxonomy/taxonomies.js.map +1 -1
  371. package/dist/esm/taxonomy/taxonomy.js.map +1 -1
  372. package/dist/esm/tests/builder/recordBuilder/attributeBuilder.js +2 -0
  373. package/dist/esm/tests/builder/recordBuilder/attributeBuilder.js.map +1 -1
  374. package/dist/esm/tests/builder/recordBuilder/entityBuilder.js.map +1 -1
  375. package/dist/esm/tests/builder/recordBuilder/index.js.map +1 -1
  376. package/dist/esm/tests/builder/recordBuilder/nodeBuilder.js.map +1 -1
  377. package/dist/esm/tests/builder/recordBuilder/recordBuilder.js.map +1 -1
  378. package/dist/esm/tests/builder/surveyBuilder/categoryBuilder.js.map +1 -1
  379. package/dist/esm/tests/builder/surveyBuilder/categoryItemBuilder.js.map +1 -1
  380. package/dist/esm/tests/builder/surveyBuilder/index.js.map +1 -1
  381. package/dist/esm/tests/builder/surveyBuilder/nodeDefAttributeBuilder.js.map +1 -1
  382. package/dist/esm/tests/builder/surveyBuilder/nodeDefBuilder.js.map +1 -1
  383. package/dist/esm/tests/builder/surveyBuilder/nodeDefCodeBuilder.js.map +1 -1
  384. package/dist/esm/tests/builder/surveyBuilder/nodeDefEntityBuilder.js.map +1 -1
  385. package/dist/esm/tests/builder/surveyBuilder/nodeDefTaxonBuilder.js.map +1 -1
  386. package/dist/esm/tests/builder/surveyBuilder/surveyBuilder.js.map +1 -1
  387. package/dist/esm/tests/builder/surveyBuilder/taxonBuilder.js.map +1 -1
  388. package/dist/esm/tests/builder/surveyBuilder/taxonomyBuilder.js.map +1 -1
  389. package/dist/esm/utils/_objects/assoc.js.map +1 -1
  390. package/dist/esm/utils/_objects/assocPath.js +1 -0
  391. package/dist/esm/utils/_objects/assocPath.js.map +1 -1
  392. package/dist/esm/utils/_objects/camelize.js +9 -0
  393. package/dist/esm/utils/_objects/camelize.js.map +1 -1
  394. package/dist/esm/utils/_objects/deepMerge.js +10 -0
  395. package/dist/esm/utils/_objects/deepMerge.js.map +1 -1
  396. package/dist/esm/utils/_objects/deleteEmptyProps.js.map +1 -1
  397. package/dist/esm/utils/_objects/difference.js.map +1 -1
  398. package/dist/esm/utils/_objects/dissoc.js.map +1 -1
  399. package/dist/esm/utils/_objects/dissocPath.js +1 -0
  400. package/dist/esm/utils/_objects/dissocPath.js.map +1 -1
  401. package/dist/esm/utils/_objects/dissocPathIfEmpty.js.map +1 -1
  402. package/dist/esm/utils/_objects/fromPairs.js.map +1 -1
  403. package/dist/esm/utils/_objects/index.js.map +1 -1
  404. package/dist/esm/utils/_objects/isEmpty.js +8 -0
  405. package/dist/esm/utils/_objects/isEmpty.js.map +1 -1
  406. package/dist/esm/utils/_objects/isEqual.js.map +1 -1
  407. package/dist/esm/utils/_objects/isNil.js +6 -0
  408. package/dist/esm/utils/_objects/isNil.js.map +1 -1
  409. package/dist/esm/utils/_objects/isNotEmpty.js +6 -0
  410. package/dist/esm/utils/_objects/isNotEmpty.js.map +1 -1
  411. package/dist/esm/utils/_objects/parse.js +8 -0
  412. package/dist/esm/utils/_objects/parse.js.map +1 -1
  413. package/dist/esm/utils/_objects/path.js +7 -0
  414. package/dist/esm/utils/_objects/path.js.map +1 -1
  415. package/dist/esm/utils/_objects/propertyOf.js.map +1 -1
  416. package/dist/esm/utils/_objects/setInPath.js.map +1 -1
  417. package/dist/esm/utils/_objects/stringify.js +9 -0
  418. package/dist/esm/utils/_objects/stringify.js.map +1 -1
  419. package/dist/esm/utils/_objects/toPairs.js.map +1 -1
  420. package/dist/esm/utils/arrays.js.map +1 -1
  421. package/dist/esm/utils/dates.js +66 -15
  422. package/dist/esm/utils/dates.js.map +1 -1
  423. package/dist/esm/utils/fileNames.js.map +1 -1
  424. package/dist/esm/utils/fileProcessor.js +5 -1
  425. package/dist/esm/utils/fileProcessor.js.map +1 -1
  426. package/dist/esm/utils/index.js.map +1 -1
  427. package/dist/esm/utils/numbers.js +21 -0
  428. package/dist/esm/utils/numbers.js.map +1 -1
  429. package/dist/esm/utils/promises.js +15 -1
  430. package/dist/esm/utils/promises.js.map +1 -1
  431. package/dist/esm/utils/queue.js +9 -0
  432. package/dist/esm/utils/queue.js.map +1 -1
  433. package/dist/esm/utils/retryProcessor.js +5 -1
  434. package/dist/esm/utils/retryProcessor.js.map +1 -1
  435. package/dist/esm/utils/strings.js.map +1 -1
  436. package/dist/esm/utils/uuids.js.map +1 -1
  437. package/dist/esm/utils/versions.js +4 -0
  438. package/dist/esm/utils/versions.js.map +1 -1
  439. package/dist/esm/validation/factory.js.map +1 -1
  440. package/dist/esm/validation/fieldValidator.js.map +1 -1
  441. package/dist/esm/validation/fieldValidators/email.js +3 -0
  442. package/dist/esm/validation/fieldValidators/email.js.map +1 -1
  443. package/dist/esm/validation/fieldValidators/index.js.map +1 -1
  444. package/dist/esm/validation/fieldValidators/name.js +4 -0
  445. package/dist/esm/validation/fieldValidators/name.js.map +1 -1
  446. package/dist/esm/validation/fieldValidators/notKeyword.js.map +1 -1
  447. package/dist/esm/validation/fieldValidators/numeric.js.map +1 -1
  448. package/dist/esm/validation/fieldValidators/numericPositive.js.map +1 -1
  449. package/dist/esm/validation/fieldValidators/required.js.map +1 -1
  450. package/dist/esm/validation/index.js.map +1 -1
  451. package/dist/esm/validation/validation.js.map +1 -1
  452. package/dist/esm/validation/validationResults.js +1 -1
  453. package/dist/esm/validation/validationResults.js.map +1 -1
  454. package/dist/esm/validation/validations.js +17 -1
  455. package/dist/esm/validation/validations.js.map +1 -1
  456. package/dist/esm/validation/validator.js.map +1 -1
  457. package/dist/esm/validation/validatorErrorKeys.js.map +1 -1
  458. package/dist/expression/context.d.ts +6 -0
  459. package/dist/expression/context.js.map +1 -1
  460. package/dist/expression/evaluator.js.map +1 -1
  461. package/dist/expression/function.d.ts +13 -0
  462. package/dist/expression/function.js.map +1 -1
  463. package/dist/expression/index.js.map +1 -1
  464. package/dist/expression/javascript/evaluator.js +3 -0
  465. package/dist/expression/javascript/evaluator.js.map +1 -1
  466. package/dist/expression/javascript/functionsDefault.js.map +1 -1
  467. package/dist/expression/javascript/global.js.map +1 -1
  468. package/dist/expression/javascript/node/array.js.map +1 -1
  469. package/dist/expression/javascript/node/binary.js +23 -0
  470. package/dist/expression/javascript/node/binary.js.map +1 -1
  471. package/dist/expression/javascript/node/call.js +12 -0
  472. package/dist/expression/javascript/node/call.js.map +1 -1
  473. package/dist/expression/javascript/node/compound.js.map +1 -1
  474. package/dist/expression/javascript/node/conditional.js.map +1 -1
  475. package/dist/expression/javascript/node/identifier.d.ts +7 -0
  476. package/dist/expression/javascript/node/identifier.js +7 -0
  477. package/dist/expression/javascript/node/identifier.js.map +1 -1
  478. package/dist/expression/javascript/node/literal.js.map +1 -1
  479. package/dist/expression/javascript/node/member.js +5 -1
  480. package/dist/expression/javascript/node/member.js.map +1 -1
  481. package/dist/expression/javascript/node/sequence.js.map +1 -1
  482. package/dist/expression/javascript/node/this.js.map +1 -1
  483. package/dist/expression/javascript/node/unary.js +8 -0
  484. package/dist/expression/javascript/node/unary.js.map +1 -1
  485. package/dist/expression/javascript/parser/jsep.js +6 -2
  486. package/dist/expression/javascript/parser/jsep.js.map +1 -1
  487. package/dist/expression/javascript/parser/parser.js.map +1 -1
  488. package/dist/expression/node.js.map +1 -1
  489. package/dist/expression/parser.js.map +1 -1
  490. package/dist/expression/variable.js.map +1 -1
  491. package/dist/extraProp/extraProp.js.map +1 -1
  492. package/dist/extraProp/extraProps.js.map +1 -1
  493. package/dist/extraProp/extraPropsDataGenerator.js.map +1 -1
  494. package/dist/extraProp/index.js.map +1 -1
  495. package/dist/geo/index.js.map +1 -1
  496. package/dist/geo/point.js.map +1 -1
  497. package/dist/geo/pointFactory.js.map +1 -1
  498. package/dist/geo/points/bearing.d.ts +9 -0
  499. package/dist/geo/points/bearing.js +11 -0
  500. package/dist/geo/points/bearing.js.map +1 -1
  501. package/dist/geo/points/distance.d.ts +8 -0
  502. package/dist/geo/points/distance.js +9 -0
  503. package/dist/geo/points/distance.js.map +1 -1
  504. package/dist/geo/points/equals.js.map +1 -1
  505. package/dist/geo/points/getSrs.js.map +1 -1
  506. package/dist/geo/points/index.js.map +1 -1
  507. package/dist/geo/points/isFilled.js.map +1 -1
  508. package/dist/geo/points/isValid.js +1 -1
  509. package/dist/geo/points/isValid.js.map +1 -1
  510. package/dist/geo/points/parse.d.ts +9 -0
  511. package/dist/geo/points/parse.js +9 -0
  512. package/dist/geo/points/parse.js.map +1 -1
  513. package/dist/geo/points/pointAtDistance.d.ts +9 -0
  514. package/dist/geo/points/pointAtDistance.js +10 -0
  515. package/dist/geo/points/pointAtDistance.js.map +1 -1
  516. package/dist/geo/points/toLatLong.js.map +1 -1
  517. package/dist/geo/points/toString.js.map +1 -1
  518. package/dist/geo/points/transform.d.ts +8 -0
  519. package/dist/geo/points/transform.js +12 -0
  520. package/dist/geo/points/transform.js.map +1 -1
  521. package/dist/index.js.map +1 -1
  522. package/dist/job/JobBase.d.ts +86 -0
  523. package/dist/job/JobBase.js +138 -18
  524. package/dist/job/JobBase.js.map +1 -1
  525. package/dist/job/index.js.map +1 -1
  526. package/dist/job/job.d.ts +20 -0
  527. package/dist/job/job.js.map +1 -1
  528. package/dist/job/jobContext.js.map +1 -1
  529. package/dist/job/jobEvent.js.map +1 -1
  530. package/dist/job/jobSerialized.d.ts +3 -0
  531. package/dist/job/jobSerialized.js.map +1 -1
  532. package/dist/job/status.js.map +1 -1
  533. package/dist/language/index.js.map +1 -1
  534. package/dist/language/labels.js.map +1 -1
  535. package/dist/language/languageCode.js.map +1 -1
  536. package/dist/language/languages.js.map +1 -1
  537. package/dist/logger/index.js.map +1 -1
  538. package/dist/logger/logger.js.map +1 -1
  539. package/dist/message/index.js.map +1 -1
  540. package/dist/message/message.d.ts +3 -0
  541. package/dist/message/message.js.map +1 -1
  542. package/dist/message/messages.js +1 -0
  543. package/dist/message/messages.js.map +1 -1
  544. package/dist/node/factory.js.map +1 -1
  545. package/dist/node/index.js.map +1 -1
  546. package/dist/node/node.d.ts +38 -0
  547. package/dist/node/node.js.map +1 -1
  548. package/dist/node/nodePointer.js.map +1 -1
  549. package/dist/node/nodeValue/code.js.map +1 -1
  550. package/dist/node/nodeValue/coordinate.js.map +1 -1
  551. package/dist/node/nodeValue/file.js.map +1 -1
  552. package/dist/node/nodeValue/index.js.map +1 -1
  553. package/dist/node/nodeValue/nodeValueComposite.js.map +1 -1
  554. package/dist/node/nodeValue/taxon.js.map +1 -1
  555. package/dist/node/nodeValueFormatter.js +2 -0
  556. package/dist/node/nodeValueFormatter.js.map +1 -1
  557. package/dist/node/nodeValueProps.js.map +1 -1
  558. package/dist/node/nodeValues.d.ts +4 -0
  559. package/dist/node/nodeValues.js +20 -0
  560. package/dist/node/nodeValues.js.map +1 -1
  561. package/dist/node/nodes.js +7 -0
  562. package/dist/node/nodes.js.map +1 -1
  563. package/dist/node/service.js.map +1 -1
  564. package/dist/nodeDef/factory.js.map +1 -1
  565. package/dist/nodeDef/index.js.map +1 -1
  566. package/dist/nodeDef/nodeDef.js +1 -0
  567. package/dist/nodeDef/nodeDef.js.map +1 -1
  568. package/dist/nodeDef/nodeDefs.js +18 -0
  569. package/dist/nodeDef/nodeDefs.js.map +1 -1
  570. package/dist/nodeDef/service.js.map +1 -1
  571. package/dist/nodeDef/types/boolean.js.map +1 -1
  572. package/dist/nodeDef/types/code.js.map +1 -1
  573. package/dist/nodeDef/types/coordinate.js.map +1 -1
  574. package/dist/nodeDef/types/date.js.map +1 -1
  575. package/dist/nodeDef/types/decimal.js.map +1 -1
  576. package/dist/nodeDef/types/entity.d.ts +1 -0
  577. package/dist/nodeDef/types/entity.js.map +1 -1
  578. package/dist/nodeDef/types/file.js.map +1 -1
  579. package/dist/nodeDef/types/formHeader.js.map +1 -1
  580. package/dist/nodeDef/types/integer.js.map +1 -1
  581. package/dist/nodeDef/types/taxon.js.map +1 -1
  582. package/dist/nodeDef/types/text.js.map +1 -1
  583. package/dist/nodeDef/types/time.js.map +1 -1
  584. package/dist/nodeDefExpressionEvaluator/categoryItemProvider.js.map +1 -1
  585. package/dist/nodeDefExpressionEvaluator/context.d.ts +3 -0
  586. package/dist/nodeDefExpressionEvaluator/context.js.map +1 -1
  587. package/dist/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
  588. package/dist/nodeDefExpressionEvaluator/functions.js +8 -1
  589. package/dist/nodeDefExpressionEvaluator/functions.js.map +1 -1
  590. package/dist/nodeDefExpressionEvaluator/index.js.map +1 -1
  591. package/dist/nodeDefExpressionEvaluator/node/identifier.d.ts +14 -0
  592. package/dist/nodeDefExpressionEvaluator/node/identifier.js +28 -0
  593. package/dist/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
  594. package/dist/nodeDefExpressionEvaluator/node/member.js +15 -0
  595. package/dist/nodeDefExpressionEvaluator/node/member.js.map +1 -1
  596. package/dist/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js +3 -0
  597. package/dist/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js.map +1 -1
  598. package/dist/nodeDefExpressionEvaluator/node/thisEvaluator.js.map +1 -1
  599. package/dist/nodeDefExpressionEvaluator/taxonProvider.js.map +1 -1
  600. package/dist/nodeDefExpressionEvaluator/validator.js.map +1 -1
  601. package/dist/record/_records/recordCompletion.d.ts +12 -0
  602. package/dist/record/_records/recordCompletion.js +14 -0
  603. package/dist/record/_records/recordCompletion.js.map +1 -1
  604. package/dist/record/_records/recordGetters.d.ts +3 -0
  605. package/dist/record/_records/recordGetters.js +19 -2
  606. package/dist/record/_records/recordGetters.js.map +1 -1
  607. package/dist/record/_records/recordNodesIndexReader.js.map +1 -1
  608. package/dist/record/_records/recordNodesIndexUpdater.js +17 -0
  609. package/dist/record/_records/recordNodesIndexUpdater.js.map +1 -1
  610. package/dist/record/_records/recordPagesValidation.d.ts +39 -0
  611. package/dist/record/_records/recordPagesValidation.js +45 -0
  612. package/dist/record/_records/recordPagesValidation.js.map +1 -1
  613. package/dist/record/_records/recordUpdateOptions.js.map +1 -1
  614. package/dist/record/_records/recordUpdater.js +2 -0
  615. package/dist/record/_records/recordUpdater.js.map +1 -1
  616. package/dist/record/_records/recordUtils.js.map +1 -1
  617. package/dist/record/factory.js.map +1 -1
  618. package/dist/record/index.js.map +1 -1
  619. package/dist/record/nodePointers.js.map +1 -1
  620. package/dist/record/record.d.ts +12 -0
  621. package/dist/record/record.js.map +1 -1
  622. package/dist/record/recordCloner.js +10 -1
  623. package/dist/record/recordCloner.js.map +1 -1
  624. package/dist/record/recordExpressionEvaluator/context.js.map +1 -1
  625. package/dist/record/recordExpressionEvaluator/functions.js.map +1 -1
  626. package/dist/record/recordExpressionEvaluator/index.js.map +1 -1
  627. package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js +14 -0
  628. package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
  629. package/dist/record/recordExpressionEvaluator/node/identifier/index.js.map +1 -1
  630. package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.js +6 -0
  631. package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.js.map +1 -1
  632. package/dist/record/recordExpressionEvaluator/node/thisEvaluator.js.map +1 -1
  633. package/dist/record/recordExpressionEvaluator/nodeValueExtractor.js.map +1 -1
  634. package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
  635. package/dist/record/recordFixer.js +16 -0
  636. package/dist/record/recordFixer.js.map +1 -1
  637. package/dist/record/recordNodesUpdater/index.js.map +1 -1
  638. package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.d.ts +6 -0
  639. package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js +6 -0
  640. package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js.map +1 -1
  641. package/dist/record/recordNodesUpdater/recordExpressionEvaluationContext.js.map +1 -1
  642. package/dist/record/recordNodesUpdater/recordExpressionValueConverter.js +5 -0
  643. package/dist/record/recordNodesUpdater/recordExpressionValueConverter.js.map +1 -1
  644. package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js +20 -2
  645. package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
  646. package/dist/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js +2 -1
  647. package/dist/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
  648. package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js +13 -1
  649. package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
  650. package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js +9 -1
  651. package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
  652. package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js +17 -1
  653. package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
  654. package/dist/record/recordNodesUpdater/recordNodeDependentsEditableUpdater.js.map +1 -1
  655. package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js +5 -1
  656. package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
  657. package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js +4 -2
  658. package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
  659. package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js +8 -3
  660. package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
  661. package/dist/record/recordNodesUpdater/recordNodeDependentsUpdateParams.js.map +1 -1
  662. package/dist/record/recordNodesUpdater/recordNodeDependentsVisibleUpdater.js.map +1 -1
  663. package/dist/record/recordNodesUpdater/recordNodesCreator.js +10 -5
  664. package/dist/record/recordNodesUpdater/recordNodesCreator.js.map +1 -1
  665. package/dist/record/recordNodesUpdater/recordNodesDeleter.js +7 -0
  666. package/dist/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
  667. package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js +2 -0
  668. package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
  669. package/dist/record/recordNodesUpdater/recordNodesUpdater.js +16 -2
  670. package/dist/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
  671. package/dist/record/recordNodesUpdater/recordUpdateResult.d.ts +8 -0
  672. package/dist/record/recordNodesUpdater/recordUpdateResult.js +8 -0
  673. package/dist/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
  674. package/dist/record/recordPrettyPrinter.js.map +1 -1
  675. package/dist/record/recordStep.js.map +1 -1
  676. package/dist/record/recordUpdater.js +1 -0
  677. package/dist/record/recordUpdater.js.map +1 -1
  678. package/dist/record/recordValidations.js.map +1 -1
  679. package/dist/record/recordValidator/attributeKeyValidator.d.ts +4 -0
  680. package/dist/record/recordValidator/attributeKeyValidator.js +3 -0
  681. package/dist/record/recordValidator/attributeKeyValidator.js.map +1 -1
  682. package/dist/record/recordValidator/attributeTypeValidator.js +3 -0
  683. package/dist/record/recordValidator/attributeTypeValidator.js.map +1 -1
  684. package/dist/record/recordValidator/attributeUniqueValidator.js +2 -0
  685. package/dist/record/recordValidator/attributeUniqueValidator.js.map +1 -1
  686. package/dist/record/recordValidator/attributeValidator.js +12 -1
  687. package/dist/record/recordValidator/attributeValidator.js.map +1 -1
  688. package/dist/record/recordValidator/countVaildator.js +5 -0
  689. package/dist/record/recordValidator/countVaildator.js.map +1 -1
  690. package/dist/record/recordValidator/index.js.map +1 -1
  691. package/dist/record/recordValidator/recordValidator.js +3 -0
  692. package/dist/record/recordValidator/recordValidator.js.map +1 -1
  693. package/dist/record/records.js +3 -0
  694. package/dist/record/records.js.map +1 -1
  695. package/dist/record/service.js.map +1 -1
  696. package/dist/registry/index.js.map +1 -1
  697. package/dist/registry/serviceRegistry.js.map +1 -1
  698. package/dist/registry/serviceType.js.map +1 -1
  699. package/dist/srs/factory.js.map +1 -1
  700. package/dist/srs/index.js.map +1 -1
  701. package/dist/srs/srs.js.map +1 -1
  702. package/dist/survey/factory.js +1 -0
  703. package/dist/survey/factory.js.map +1 -1
  704. package/dist/survey/index.js.map +1 -1
  705. package/dist/survey/nodeDefsFixer.js +1 -0
  706. package/dist/survey/nodeDefsFixer.js.map +1 -1
  707. package/dist/survey/refData/factory.js.map +1 -1
  708. package/dist/survey/refData/index.js.map +1 -1
  709. package/dist/survey/refData/refData.d.ts +15 -0
  710. package/dist/survey/refData/refData.js.map +1 -1
  711. package/dist/survey/service.js.map +1 -1
  712. package/dist/survey/survey.d.ts +9 -0
  713. package/dist/survey/survey.js.map +1 -1
  714. package/dist/survey/surveyDocImageFactory.js.map +1 -1
  715. package/dist/survey/surveyDocImages.js.map +1 -1
  716. package/dist/survey/surveyFileFactory.js.map +1 -1
  717. package/dist/survey/surveys/_nodeDefs/nodeDefsIndex.js +8 -0
  718. package/dist/survey/surveys/_nodeDefs/nodeDefsIndex.js.map +1 -1
  719. package/dist/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
  720. package/dist/survey/surveys/dependencies.js +11 -2
  721. package/dist/survey/surveys/dependencies.js.map +1 -1
  722. package/dist/survey/surveys/index.js +6 -0
  723. package/dist/survey/surveys/index.js.map +1 -1
  724. package/dist/survey/surveys/nodeDefs.js +12 -0
  725. package/dist/survey/surveys/nodeDefs.js.map +1 -1
  726. package/dist/survey/surveys/refsData.js.map +1 -1
  727. package/dist/survey/surveys/surveyGettersSecurity.js.map +1 -1
  728. package/dist/survey/surveys/surveysGetters.js +3 -1
  729. package/dist/survey/surveys/surveysGetters.js.map +1 -1
  730. package/dist/survey/surveys/surveysUtils.js.map +1 -1
  731. package/dist/taxonomy/factory.js.map +1 -1
  732. package/dist/taxonomy/index.js.map +1 -1
  733. package/dist/taxonomy/service.js.map +1 -1
  734. package/dist/taxonomy/taxa.js.map +1 -1
  735. package/dist/taxonomy/taxon.js.map +1 -1
  736. package/dist/taxonomy/taxonGenerator.js.map +1 -1
  737. package/dist/taxonomy/taxonService.js.map +1 -1
  738. package/dist/taxonomy/taxonVernacularName.js.map +1 -1
  739. package/dist/taxonomy/taxonomies.js.map +1 -1
  740. package/dist/taxonomy/taxonomy.js.map +1 -1
  741. package/dist/tests/builder/recordBuilder/attributeBuilder.js +2 -0
  742. package/dist/tests/builder/recordBuilder/attributeBuilder.js.map +1 -1
  743. package/dist/tests/builder/recordBuilder/entityBuilder.js.map +1 -1
  744. package/dist/tests/builder/recordBuilder/index.js.map +1 -1
  745. package/dist/tests/builder/recordBuilder/nodeBuilder.js.map +1 -1
  746. package/dist/tests/builder/recordBuilder/recordBuilder.js.map +1 -1
  747. package/dist/tests/builder/surveyBuilder/categoryBuilder.js.map +1 -1
  748. package/dist/tests/builder/surveyBuilder/categoryItemBuilder.js.map +1 -1
  749. package/dist/tests/builder/surveyBuilder/index.js.map +1 -1
  750. package/dist/tests/builder/surveyBuilder/nodeDefAttributeBuilder.js.map +1 -1
  751. package/dist/tests/builder/surveyBuilder/nodeDefBuilder.js.map +1 -1
  752. package/dist/tests/builder/surveyBuilder/nodeDefCodeBuilder.js.map +1 -1
  753. package/dist/tests/builder/surveyBuilder/nodeDefEntityBuilder.js.map +1 -1
  754. package/dist/tests/builder/surveyBuilder/nodeDefTaxonBuilder.js.map +1 -1
  755. package/dist/tests/builder/surveyBuilder/surveyBuilder.js.map +1 -1
  756. package/dist/tests/builder/surveyBuilder/taxonBuilder.js.map +1 -1
  757. package/dist/tests/builder/surveyBuilder/taxonomyBuilder.js.map +1 -1
  758. package/dist/utils/_objects/assoc.js.map +1 -1
  759. package/dist/utils/_objects/assocPath.js +1 -0
  760. package/dist/utils/_objects/assocPath.js.map +1 -1
  761. package/dist/utils/_objects/camelize.d.ts +9 -0
  762. package/dist/utils/_objects/camelize.js +9 -0
  763. package/dist/utils/_objects/camelize.js.map +1 -1
  764. package/dist/utils/_objects/deepMerge.d.ts +5 -0
  765. package/dist/utils/_objects/deepMerge.js +10 -0
  766. package/dist/utils/_objects/deepMerge.js.map +1 -1
  767. package/dist/utils/_objects/deleteEmptyProps.js.map +1 -1
  768. package/dist/utils/_objects/difference.js.map +1 -1
  769. package/dist/utils/_objects/dissoc.js.map +1 -1
  770. package/dist/utils/_objects/dissocPath.js +1 -0
  771. package/dist/utils/_objects/dissocPath.js.map +1 -1
  772. package/dist/utils/_objects/dissocPathIfEmpty.js.map +1 -1
  773. package/dist/utils/_objects/fromPairs.js.map +1 -1
  774. package/dist/utils/_objects/index.js.map +1 -1
  775. package/dist/utils/_objects/isEmpty.d.ts +6 -0
  776. package/dist/utils/_objects/isEmpty.js +8 -0
  777. package/dist/utils/_objects/isEmpty.js.map +1 -1
  778. package/dist/utils/_objects/isEqual.js.map +1 -1
  779. package/dist/utils/_objects/isNil.d.ts +6 -0
  780. package/dist/utils/_objects/isNil.js +6 -0
  781. package/dist/utils/_objects/isNil.js.map +1 -1
  782. package/dist/utils/_objects/isNotEmpty.d.ts +6 -0
  783. package/dist/utils/_objects/isNotEmpty.js +6 -0
  784. package/dist/utils/_objects/isNotEmpty.js.map +1 -1
  785. package/dist/utils/_objects/parse.d.ts +8 -0
  786. package/dist/utils/_objects/parse.js +8 -0
  787. package/dist/utils/_objects/parse.js.map +1 -1
  788. package/dist/utils/_objects/path.d.ts +6 -0
  789. package/dist/utils/_objects/path.js +7 -0
  790. package/dist/utils/_objects/path.js.map +1 -1
  791. package/dist/utils/_objects/propertyOf.js.map +1 -1
  792. package/dist/utils/_objects/setInPath.js.map +1 -1
  793. package/dist/utils/_objects/stringify.d.ts +9 -0
  794. package/dist/utils/_objects/stringify.js +9 -0
  795. package/dist/utils/_objects/stringify.js.map +1 -1
  796. package/dist/utils/_objects/toPairs.js.map +1 -1
  797. package/dist/utils/arrays.js.map +1 -1
  798. package/dist/utils/dates.d.ts +1 -1
  799. package/dist/utils/dates.js +66 -15
  800. package/dist/utils/dates.js.map +1 -1
  801. package/dist/utils/fileNames.js.map +1 -1
  802. package/dist/utils/fileProcessor.js +5 -1
  803. package/dist/utils/fileProcessor.js.map +1 -1
  804. package/dist/utils/index.js.map +1 -1
  805. package/dist/utils/numbers.js +21 -0
  806. package/dist/utils/numbers.js.map +1 -1
  807. package/dist/utils/promises.js +15 -1
  808. package/dist/utils/promises.js.map +1 -1
  809. package/dist/utils/queue.d.ts +7 -0
  810. package/dist/utils/queue.js +9 -0
  811. package/dist/utils/queue.js.map +1 -1
  812. package/dist/utils/retryProcessor.js +5 -1
  813. package/dist/utils/retryProcessor.js.map +1 -1
  814. package/dist/utils/strings.js.map +1 -1
  815. package/dist/utils/uuids.js.map +1 -1
  816. package/dist/utils/versions.js +4 -0
  817. package/dist/utils/versions.js.map +1 -1
  818. package/dist/validation/factory.js.map +1 -1
  819. package/dist/validation/fieldValidator.js.map +1 -1
  820. package/dist/validation/fieldValidators/email.js +3 -0
  821. package/dist/validation/fieldValidators/email.js.map +1 -1
  822. package/dist/validation/fieldValidators/index.js.map +1 -1
  823. package/dist/validation/fieldValidators/name.js +4 -0
  824. package/dist/validation/fieldValidators/name.js.map +1 -1
  825. package/dist/validation/fieldValidators/notKeyword.js.map +1 -1
  826. package/dist/validation/fieldValidators/numeric.js.map +1 -1
  827. package/dist/validation/fieldValidators/numericPositive.js.map +1 -1
  828. package/dist/validation/fieldValidators/required.js.map +1 -1
  829. package/dist/validation/index.js.map +1 -1
  830. package/dist/validation/validation.js.map +1 -1
  831. package/dist/validation/validationResults.js +1 -1
  832. package/dist/validation/validationResults.js.map +1 -1
  833. package/dist/validation/validations.js +17 -1
  834. package/dist/validation/validations.js.map +1 -1
  835. package/dist/validation/validator.js.map +1 -1
  836. package/dist/validation/validatorErrorKeys.js.map +1 -1
  837. package/package.json +7 -10
@@ -101,6 +101,7 @@ const getParentCodeAttribute = (params) => (record) => {
101
101
  return undefined;
102
102
  };
103
103
  exports.getParentCodeAttribute = getParentCodeAttribute;
104
+ // ancestors
104
105
  const visitAncestorsAndSelf = (node, visitor, stopIfFn) => (record) => {
105
106
  let currentNode = node;
106
107
  while (currentNode) {
@@ -132,6 +133,9 @@ const getAncestor = (params) => {
132
133
  return ancestor;
133
134
  };
134
135
  exports.getAncestor = getAncestor;
136
+ /**
137
+ * Returns the list of ancestors from the given node to the root entity
138
+ */
135
139
  const getAncestorsAndSelf = (params) => {
136
140
  const { record, node } = params;
137
141
  const ancestors = [];
@@ -141,12 +145,15 @@ const getAncestorsAndSelf = (params) => {
141
145
  return ancestors;
142
146
  };
143
147
  exports.getAncestorsAndSelf = getAncestorsAndSelf;
148
+ // descendants
144
149
  const getDescendantsOrSelf = (params) => {
145
150
  const { record, node, nodeDefDescendant } = params;
146
151
  if (nodeDefDescendant.uuid === node.nodeDefUuid)
147
152
  return [node];
148
153
  const nodeDefDescendantFullHierarchy = [...nodeDefDescendant.meta.h, nodeDefDescendant.uuid];
154
+ // 1. get the descendant node defs uuids starting from node nodeDefUuid (not inclusive) down to the specified nodeDefDescendant uuid
149
155
  const descendantNodeDefUuids = nodeDefDescendantFullHierarchy.slice(nodeDefDescendantFullHierarchy.indexOf(node.nodeDefUuid) + 1);
156
+ // 2. for every level in the hierarchy, find the children having the nodeDefUuid equal to the current one
150
157
  let currentAncestors = [node];
151
158
  let currentDescendants = [];
152
159
  for (const currentDescendantDefUuid of descendantNodeDefUuids) {
@@ -156,7 +163,7 @@ const getDescendantsOrSelf = (params) => {
156
163
  currentAncestors = currentDescendants;
157
164
  currentDescendants = [];
158
165
  }
159
- return currentAncestors;
166
+ return currentAncestors; // currentAncestors is equal to the currentDescendants of the last level
160
167
  };
161
168
  exports.getDescendantsOrSelf = getDescendantsOrSelf;
162
169
  const getDescendant = (params) => {
@@ -177,6 +184,7 @@ const visitDescendantsAndSelf = (params) => {
177
184
  while (!queue.isEmpty()) {
178
185
  const visitedNode = queue.dequeue();
179
186
  if (visitor(visitedNode)) {
187
+ // stop if visitor returns true
180
188
  return;
181
189
  }
182
190
  const children = (0, exports.getChildren)(visitedNode)(record);
@@ -189,9 +197,11 @@ const visitDescendantsAndSelf = (params) => {
189
197
  while (stack.length > 0) {
190
198
  const visitedNode = stack.pop();
191
199
  if (visitor(visitedNode)) {
200
+ // stop if visitor returns true
192
201
  return;
193
202
  }
194
203
  const children = (0, exports.getChildren)(visitedNode)(record);
204
+ // add children to stack in reverse order
195
205
  for (let index = children.length - 1; index >= 0; index--) {
196
206
  const child = children[index];
197
207
  stack.push(child);
@@ -218,12 +228,17 @@ const findDescendantOrSelf = (node, predicate) => (record) => {
218
228
  exports.findDescendantOrSelf = findDescendantOrSelf;
219
229
  const getClosestAncestorNode = (params) => {
220
230
  const { record, node, nodeDef, dependentDef } = params;
231
+ // 1a if dependent def is the same as node def, potentially all nodes with
232
+ // nodeDefUuid === dependentDef.uuid in record could be dependent of nodeDef;
233
+ // consider the root node as the closest ancestor node
221
234
  if (nodeDef.uuid === dependentDef.uuid) {
222
235
  return (0, exports.getRoot)(record);
223
236
  }
237
+ // 1 find common ancestor def
224
238
  const commonAncestorDefUuid = utils_1.Arrays.last(utils_1.Arrays.intersection(nodeDef.meta.h, dependentDef.meta.h));
225
239
  if (!commonAncestorDefUuid)
226
240
  return undefined;
241
+ // 2 get ancestor node with common parent def
227
242
  return (0, exports.getAncestor)({ record, node, ancestorDefUuid: commonAncestorDefUuid });
228
243
  };
229
244
  const getEntityKeyNodesByDefUuid = (params) => {
@@ -274,7 +289,7 @@ const getNodeIndex = (params) => {
274
289
  const { record, node } = params;
275
290
  const parentEntity = (0, exports.getParent)(node)(record);
276
291
  if (!parentEntity)
277
- return 0;
292
+ return 0; // root entity
278
293
  const siblings = (0, exports.getChildren)(parentEntity, node.nodeDefUuid)(record);
279
294
  return siblings.indexOf(node);
280
295
  };
@@ -354,12 +369,14 @@ const getDependentNodePointers = (params) => {
354
369
  }
355
370
  };
356
371
  for (const dependentDef of dependentDefs) {
372
+ // 1 find common ancestor node
357
373
  const commonAncestorNode = getClosestAncestorNode({ record, node, nodeDef, dependentDef });
358
374
  if (!commonAncestorNode)
359
375
  continue;
360
376
  const nodeDefDependentParent = survey_1.Surveys.getNodeDefParent({ survey, nodeDef: dependentDef });
361
377
  if (!nodeDefDependentParent)
362
378
  throw new error_1.SystemError('record.nodes.dependents.dependencyOnRootFound');
379
+ // 2 find descendant nodes of common parent node with nodeDefUuid = dependentDef uuid
363
380
  const dependentContextNodes = (0, exports.getDescendantsOrSelf)({
364
381
  record,
365
382
  node: commonAncestorNode,
@@ -1 +1 @@
1
- {"version":3,"file":"recordGetters.js","sourceRoot":"","sources":["../../../src/record/_records/recordGetters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordGetters.js","sourceRoot":"","sources":["../../../src/record/_records/recordGetters.ts"],"names":[],"mappings":"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","sourcesContent":["import { Dictionary, TraverseMethod } from '../../common'\nimport { SystemError } from '../../error'\nimport { Node, NodePointer, Nodes, NodesMap } from '../../node'\nimport { NodeValues } from '../../node/nodeValues'\nimport { NodeDef, NodeDefCode, NodeDefCodeProps, NodeDefProps, NodeDefs, NodeDefType } from '../../nodeDef'\nimport { defaultCycle, Surveys } from '../../survey'\nimport { Survey, SurveyDependencyType } from '../../survey/survey'\nimport { Arrays, Queue } from '../../utils'\nimport { Record, RECORD_STEP_DEFAULT } from '../record'\nimport { RecordStepAnalysisCode } from '../recordStep'\nimport { RecordNodesIndexReader } from './recordNodesIndexReader'\n\nexport const getCycle = (record: Record): string => record.cycle ?? defaultCycle\n\nexport const getNodes = (record: Record): Dictionary<Node> => record.nodes ?? {}\n\nexport const getNodesArray = (record: Record): Node[] => Object.values(getNodes(record))\n\nexport const getNodeByUuid =\n (uuid: string) =>\n (record: Record): Node | undefined =>\n record.nodes?.[uuid]\n\nexport const getNodesByUuids =\n (uuids: string[]) =>\n (record: Record): Node[] =>\n uuids.map((uuid: string) => getNodeByUuid(uuid)(record)) as Node[]\n\nexport const getRoot = (record: Record): Node | undefined => {\n const rootUuid = record._nodesIndex ? RecordNodesIndexReader.getNodeRootUuid(record._nodesIndex) : null\n if (rootUuid) {\n return getNodeByUuid(rootUuid)(record)\n }\n return getNodesArray(record).find((node) => !node.parentUuid)\n}\n\nexport const getChildren =\n (parentNode: Node, childDefUuid?: string) =>\n (record: Record): Node[] => {\n if (record._nodesIndex) {\n const childrenUuids = childDefUuid\n ? RecordNodesIndexReader.getNodeUuidsByParentAndChildDef({\n parentNodeUuid: parentNode.uuid,\n childDefUuid,\n })(record._nodesIndex)\n : RecordNodesIndexReader.getNodeUuidsByParent(parentNode.uuid)(record._nodesIndex)\n return getNodesByUuids(childrenUuids)(record)\n }\n return getNodesArray(record).filter(\n (node) => node.parentUuid === parentNode.uuid && (!childDefUuid || node.nodeDefUuid == childDefUuid)\n )\n }\n\nexport const getChild =\n (parentNode: Node, childDefUuid: string) =>\n (record: Record): Node => {\n const children = getChildren(parentNode, childDefUuid)(record)\n const errorParams = { childDefUuid, parentNodeUuid: parentNode.uuid, recordUuid: record.uuid }\n if (children.length === 1) {\n return children[0]\n }\n if (children.length > 1) {\n throw new SystemError('systemError.record.multipleNodesFound', errorParams)\n }\n throw new SystemError('systemError.record.childNotFound', errorParams)\n }\n\nexport const getParent =\n (node: Node) =>\n (record: Record): Node | undefined =>\n node.parentUuid ? getNodeByUuid(node.parentUuid)(record) : undefined\n\nexport const getNodesByDefUuid =\n (nodeDefUuid: string) =>\n (record: Record): Node[] => {\n if (record._nodesIndex) {\n const nodeUuids = RecordNodesIndexReader.getNodeUuidsByDef(nodeDefUuid)(record._nodesIndex)\n return getNodesByUuids(nodeUuids)(record)\n }\n return getNodesArray(record).filter((node) => node.nodeDefUuid === nodeDefUuid)\n }\n\nconst isNodeFlagTrue =\n (isChildFlagTrue: (parent: Node, nodeDefUuid: string) => boolean) =>\n (params: { record: Record; node: Node }): boolean => {\n const { record, node } = params\n const ancestorsAndSelf = getAncestorsAndSelf({ record, node })\n for (let i = 0; i < ancestorsAndSelf.length - 1; i++) {\n const child = ancestorsAndSelf[i]\n const parent = ancestorsAndSelf[i + 1]\n if (!isChildFlagTrue(parent, child.nodeDefUuid)) return false\n }\n return true\n }\n\nexport const isNodeApplicable = isNodeFlagTrue((parent, nodeDefUuid) => Nodes.isChildApplicable(parent, nodeDefUuid))\nexport const isNodeEditable = isNodeFlagTrue((parent, nodeDefUuid) => Nodes.isChildEditable(parent, nodeDefUuid))\nexport const isNodeVisible = isNodeFlagTrue((parent, nodeDefUuid) => Nodes.isChildVisible(parent, nodeDefUuid))\n\nexport const getDependentCodeAttributes =\n (node: Node) =>\n (record: Record): Node[] => {\n if (record._nodesIndex) {\n const nodeUuids = RecordNodesIndexReader.getNodeCodeDependentUuids(node.uuid)(record._nodesIndex)\n return getNodesByUuids(nodeUuids)(record)\n }\n throw new SystemError('record.nodesIndexNotInitialized')\n }\n\nexport const getParentCodeAttribute =\n (params: { parentNode: Node; nodeDef: NodeDefCode }) =>\n (record: Record): Node | undefined => {\n const { parentNode, nodeDef } = params\n\n const parentCodeDefUuid = NodeDefs.getParentCodeDefUuid(nodeDef)\n if (!parentCodeDefUuid) return undefined\n\n const ancestors = getAncestorsAndSelf({ record, node: parentNode })\n for (const ancestor of ancestors) {\n const children = getChildren(ancestor, parentCodeDefUuid)(record)\n if (children.length === 1) {\n return children[0]\n }\n }\n return undefined\n }\n\n// ancestors\nexport const visitAncestorsAndSelf =\n (node: Node, visitor: (node: Node) => void, stopIfFn?: () => boolean) =>\n (record: Record): void => {\n let currentNode: Node | undefined = node\n while (currentNode) {\n visitor(currentNode)\n if (stopIfFn?.()) break\n currentNode = getParent(currentNode)(record)\n }\n }\n\nexport const findAncestor =\n (node: Node, predicate: (node: Node) => boolean) =>\n (record: Record): Node | undefined => {\n let result: Node | undefined = undefined\n visitAncestorsAndSelf(\n node,\n (visitedNode) => {\n if (predicate(visitedNode)) {\n result = visitedNode\n }\n },\n () => !!result\n )(record)\n return result\n }\n\nexport const getAncestor = (params: { record: Record; node: Node; ancestorDefUuid: string }): Node | undefined => {\n const { record, node, ancestorDefUuid } = params\n if (node.nodeDefUuid === ancestorDefUuid) return node\n\n let ancestor = getParent(node)(record)\n while (ancestor && ancestor.nodeDefUuid !== ancestorDefUuid) {\n ancestor = getParent(ancestor)(record)\n }\n return ancestor\n}\n\n/**\n * Returns the list of ancestors from the given node to the root entity\n */\nexport const getAncestorsAndSelf = (params: { record: Record; node: Node }): Array<Node> => {\n const { record, node } = params\n const ancestors: Array<Node> = []\n visitAncestorsAndSelf(node, (currentNode) => {\n ancestors.push(currentNode)\n })(record)\n return ancestors\n}\n\n// descendants\n\nexport const getDescendantsOrSelf = (params: {\n record: Record\n node: Node\n nodeDefDescendant: NodeDef<any>\n}): Node[] => {\n const { record, node, nodeDefDescendant } = params\n\n if (nodeDefDescendant.uuid === node.nodeDefUuid) return [node]\n\n const nodeDefDescendantFullHierarchy = [...nodeDefDescendant.meta.h, nodeDefDescendant.uuid]\n\n // 1. get the descendant node defs uuids starting from node nodeDefUuid (not inclusive) down to the specified nodeDefDescendant uuid\n const descendantNodeDefUuids = nodeDefDescendantFullHierarchy.slice(\n nodeDefDescendantFullHierarchy.indexOf(node.nodeDefUuid) + 1\n )\n // 2. for every level in the hierarchy, find the children having the nodeDefUuid equal to the current one\n let currentAncestors = [node]\n let currentDescendants: Node[] = []\n for (const currentDescendantDefUuid of descendantNodeDefUuids) {\n for (const currentAncestor of currentAncestors) {\n currentDescendants.push(...getChildren(currentAncestor, currentDescendantDefUuid)(record))\n }\n currentAncestors = currentDescendants\n currentDescendants = []\n }\n return currentAncestors // currentAncestors is equal to the currentDescendants of the last level\n}\n\nexport const getDescendant = (params: { record: Record; node: Node; nodeDefDescendant: NodeDef<any> }): Node => {\n const { record, node, nodeDefDescendant } = params\n\n return getDescendantsOrSelf({ record, node, nodeDefDescendant })[0]\n}\n\nexport const isDescendantOf = (params: { node: Node; ancestor: Node }): boolean => {\n const { node, ancestor } = params\n return Nodes.getHierarchy(node).includes(ancestor.uuid)\n}\n\nexport const visitDescendantsAndSelf = (params: {\n record: Record\n node: Node\n visitor: (node: Node) => boolean | void\n traverseMethod?: TraverseMethod\n}): void => {\n const { record, node, visitor, traverseMethod = TraverseMethod.bfs } = params\n\n if (traverseMethod === TraverseMethod.bfs) {\n const queue = new Queue()\n\n queue.enqueue(node)\n\n while (!queue.isEmpty()) {\n const visitedNode = queue.dequeue()\n\n if (visitor(visitedNode)) {\n // stop if visitor returns true\n return\n }\n\n const children = getChildren(visitedNode)(record)\n queue.enqueueItems(children)\n }\n } else {\n const stack = []\n\n stack.push(node)\n\n while (stack.length > 0) {\n const visitedNode = stack.pop() as Node\n\n if (visitor(visitedNode)) {\n // stop if visitor returns true\n return\n }\n\n const children = getChildren(visitedNode)(record)\n\n // add children to stack in reverse order\n for (let index = children.length - 1; index >= 0; index--) {\n const child = children[index]\n stack.push(child)\n }\n }\n }\n}\n\nexport const findDescendantOrSelf =\n (node: Node, predicate: (node: Node) => boolean) =>\n (record: Record): Node | undefined => {\n let found = undefined\n\n visitDescendantsAndSelf({\n record,\n node,\n visitor: (currentNode) => {\n if (predicate(currentNode)) {\n found = currentNode\n return true\n }\n return false\n },\n })\n return found\n }\n\nconst getClosestAncestorNode = (params: {\n record: Record\n node: Node\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n dependentDef: NodeDef<NodeDefType, NodeDefProps>\n}): Node | undefined => {\n const { record, node, nodeDef, dependentDef } = params\n\n // 1a if dependent def is the same as node def, potentially all nodes with\n // nodeDefUuid === dependentDef.uuid in record could be dependent of nodeDef;\n // consider the root node as the closest ancestor node\n if (nodeDef.uuid === dependentDef.uuid) {\n return getRoot(record)\n }\n // 1 find common ancestor def\n const commonAncestorDefUuid = Arrays.last(Arrays.intersection(nodeDef.meta.h, dependentDef.meta.h))\n if (!commonAncestorDefUuid) return undefined\n\n // 2 get ancestor node with common parent def\n return getAncestor({ record, node, ancestorDefUuid: commonAncestorDefUuid })\n}\n\ntype EntityKeyNodesGetterParams = {\n survey: Survey\n cycle?: string\n record: Record\n entity: Node\n keyDefs?: NodeDef<NodeDefType, NodeDefProps>[]\n}\n\nexport const getEntityKeyNodesByDefUuid = (params: EntityKeyNodesGetterParams): NodesMap => {\n const { survey, cycle, record, entity, keyDefs } = params\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: entity.nodeDefUuid })\n const nodeDefKeys = keyDefs ?? Surveys.getNodeDefKeys({ survey, cycle, nodeDef })\n return nodeDefKeys.reduce((acc: NodesMap, nodeDefKey) => {\n const nodeKey = getDescendant({ record, node: entity, nodeDefDescendant: nodeDefKey })\n acc[nodeDefKey.uuid] = nodeKey\n return acc\n }, {})\n}\n\nexport const getEntityKeyNodes = (params: EntityKeyNodesGetterParams): Node[] =>\n Object.values(getEntityKeyNodesByDefUuid(params))\n\nexport const getEntityKeyValuesByDefUuid = (params: EntityKeyNodesGetterParams): Dictionary<any> => {\n const keyNodesByDefUuid = getEntityKeyNodesByDefUuid(params)\n return Object.entries(keyNodesByDefUuid).reduce((acc: Dictionary<any>, [uuid, keyNode]) => {\n acc[uuid] = keyNode?.value\n return acc\n }, {})\n}\n\nexport const getEntityKeyValues = (params: EntityKeyNodesGetterParams): any[] =>\n Object.values(getEntityKeyValuesByDefUuid(params))\n\nexport const getEntitySiblings = (params: { record: Record; entity: Node; includeSelf?: boolean }) => {\n const { record, entity, includeSelf = false } = params\n const parentEntity = getParent(entity)(record)\n if (!parentEntity) return []\n const siblingEntities = getChildren(parentEntity, entity.nodeDefUuid)(record)\n return includeSelf ? siblingEntities : siblingEntities.filter((sibling) => !Nodes.areEqual(sibling, entity))\n}\n\nexport const getAttributeSiblings = (params: {\n record: Record\n node: Node\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}) => {\n const { record, node, nodeDef } = params\n const parentEntity = getParent(node)(record)\n if (!parentEntity) return []\n const siblingParentEntities = getEntitySiblings({ record, entity: parentEntity })\n return siblingParentEntities.reduce((siblingsAcc: Node[], siblingEntity) => {\n siblingsAcc.push(...getChildren(siblingEntity, nodeDef.uuid)(record))\n return siblingsAcc\n }, [])\n}\n\nexport const getNodeIndex = (params: { record: Record; node: Node }) => {\n const { record, node } = params\n const parentEntity = getParent(node)(record)\n if (!parentEntity) return 0 // root entity\n const siblings = getChildren(parentEntity, node.nodeDefUuid)(record)\n return siblings.indexOf(node)\n}\n\nexport const findEntityByKeyValues = (params: {\n survey: Survey\n cycle: string\n record: Record\n parentEntity: Node\n entityDefUuid: string\n keyValuesByDefUuid: Dictionary<any>\n}): Node | undefined => {\n const { survey, cycle, record, parentEntity, entityDefUuid, keyValuesByDefUuid } = params\n const entityDef = Surveys.getNodeDefByUuid({ survey, uuid: entityDefUuid })\n const siblingEntities = getChildren(parentEntity, entityDefUuid)(record)\n if (NodeDefs.isSingle(entityDef)) {\n return siblingEntities[0]\n }\n const keyDefs = Surveys.getNodeDefKeys({ survey, cycle, nodeDef: entityDef })\n\n return siblingEntities.find((siblingEntity) => {\n const siblingEntityKeyValuesByDefUuid = getEntityKeyValuesByDefUuid({\n survey,\n record,\n entity: siblingEntity,\n keyDefs,\n })\n return keyDefs.every((keyDef) => {\n const keyValue = siblingEntityKeyValuesByDefUuid[keyDef.uuid]\n const keyValueSearch = keyValuesByDefUuid[keyDef.uuid]\n return NodeValues.isValueEqual({\n survey,\n nodeDef: keyDef,\n value: keyValue,\n valueSearch: keyValueSearch,\n })\n })\n })\n}\n\nexport const findEntityWithSameKeysInAnotherRecord = (params: {\n survey: Survey\n cycle: string\n entityUuid: string\n record: Record\n recordOther: Record\n}): Node | undefined => {\n const { survey, cycle, entityUuid, record, recordOther } = params\n const entity = getNodeByUuid(entityUuid)(record)\n if (!entity) return undefined\n\n let otherRecordCurrentParentEntity = getRoot(recordOther)\n if (!otherRecordCurrentParentEntity) return undefined\n\n const entityAncestorsAndSelf = getAncestorsAndSelf({\n record,\n node: entity,\n })\n const ancestorDefUuidsAndKeys = entityAncestorsAndSelf.map((ancestor) => ({\n entityDefUuid: ancestor.nodeDefUuid,\n keyValuesByDefUuid: getEntityKeyValuesByDefUuid({\n survey,\n record,\n entity: ancestor,\n }),\n }))\n\n const ancestorDefUuidsAndKeysToVisit = [...ancestorDefUuidsAndKeys].reverse()\n\n for (let index = 1; otherRecordCurrentParentEntity && index < ancestorDefUuidsAndKeysToVisit.length; index++) {\n const { entityDefUuid, keyValuesByDefUuid } = ancestorDefUuidsAndKeysToVisit[index]\n otherRecordCurrentParentEntity = findEntityByKeyValues({\n survey,\n cycle,\n record: recordOther,\n parentEntity: otherRecordCurrentParentEntity,\n entityDefUuid,\n keyValuesByDefUuid,\n })\n }\n return otherRecordCurrentParentEntity\n}\n\nexport const getDependentNodePointers = (params: {\n survey: Survey\n record: Record\n node: Node\n dependencyType: SurveyDependencyType\n includeSelf?: boolean\n filterFn?: (nodePointer: NodePointer) => boolean\n}) => {\n const { survey, record, node, dependencyType, includeSelf = false, filterFn = null } = params\n const nodeDefUuid = node.nodeDefUuid\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: nodeDefUuid })\n const dependentDefs = Surveys.getNodeDefDependents({ survey, nodeDefUuid, dependencyType })\n const nodePointers: Array<NodePointer> = []\n\n const addToNodePointers = (nodePointer: NodePointer): void => {\n if (filterFn === null || filterFn(nodePointer)) {\n nodePointers.push(nodePointer)\n }\n }\n\n for (const dependentDef of dependentDefs) {\n // 1 find common ancestor node\n const commonAncestorNode = getClosestAncestorNode({ record, node, nodeDef, dependentDef })\n if (!commonAncestorNode) continue\n\n const nodeDefDependentParent = Surveys.getNodeDefParent({ survey, nodeDef: dependentDef })\n if (!nodeDefDependentParent) throw new SystemError('record.nodes.dependents.dependencyOnRootFound')\n\n // 2 find descendant nodes of common parent node with nodeDefUuid = dependentDef uuid\n const dependentContextNodes = getDescendantsOrSelf({\n record,\n node: commonAncestorNode,\n nodeDefDescendant: nodeDefDependentParent,\n })\n\n for (const dependentContextNode of dependentContextNodes) {\n addToNodePointers({\n nodeCtx: dependentContextNode,\n nodeDef: dependentDef,\n })\n }\n }\n if (includeSelf) {\n const parentNode = getParent(node)(record)\n if (parentNode) {\n addToNodePointers({\n nodeCtx: parentNode,\n nodeDef,\n })\n }\n }\n\n return nodePointers\n}\n\nexport const getAncestorCodePath = (params: {\n survey: Survey\n record: Record\n parentNode: Node\n nodeDef: NodeDef<NodeDefType.code, NodeDefCodeProps>\n}): string[] => {\n const { record, parentNode, nodeDef, survey } = params\n\n const getCodeAttributeItemCode = (codeAttribute: Node | undefined): string => {\n const codeItemUuid = codeAttribute ? NodeValues.getItemUuid(codeAttribute) : undefined\n if (!codeItemUuid) return ''\n const item = Surveys.getCategoryItemByUuid({ survey, itemUuid: codeItemUuid })\n return item?.props.code ?? ''\n }\n\n const codePaths = []\n let currentParentCodeAttribute = getParentCodeAttribute({ parentNode, nodeDef })(record)\n\n while (currentParentCodeAttribute) {\n const ancestorItemCode = getCodeAttributeItemCode(currentParentCodeAttribute)\n codePaths.unshift(ancestorItemCode)\n const ancestorCodeDef = Surveys.getNodeDefByUuid({\n survey,\n uuid: currentParentCodeAttribute.nodeDefUuid,\n }) as NodeDefCode\n currentParentCodeAttribute = getParentCodeAttribute({ parentNode, nodeDef: ancestorCodeDef })(record)\n }\n return codePaths\n}\n\nexport const getCategoryItemUuid = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType.code, NodeDefCodeProps>\n record: Record\n parentNode: Node\n code: string\n}): string | undefined => {\n const { survey, nodeDef, record, parentNode, code } = params\n const categoryUuid = nodeDef.props.categoryUuid\n\n const codePaths = [...getAncestorCodePath({ survey, record, parentNode, nodeDef }), code]\n\n const item = Surveys.getCategoryItemByCodePaths({ survey, categoryUuid, codePaths })\n\n return item?.uuid\n}\n\nexport const isNodeFilledByUser =\n (node: Node) =>\n (record: Record): boolean =>\n !!findDescendantOrSelf(node, (visitedNode) => Nodes.hasUserInputValue(visitedNode))(record)\n\nexport const isNodeEmpty =\n (node: Node) =>\n (record: Record): boolean =>\n !isNodeFilledByUser(node)(record)\n\nexport const isEmpty = (record: Record): boolean => {\n const rootNode = getRoot(record)\n return rootNode ? isNodeEmpty(rootNode)(record) : true\n}\n\nexport const getStep = (record: Record): string => record.step ?? RECORD_STEP_DEFAULT\n\nexport const isInAnalysisStep = (record: Record): boolean => getStep(record) === RecordStepAnalysisCode\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"recordNodesIndexReader.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexReader.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAsB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAA;AAE3F,MAAM,iBAAiB,GACrB,CAAC,WAAmB,EAAE,EAAE,CACxB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAG,WAAW,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAEtD,MAAM,+BAA+B,GACnC,CAAC,MAAwD,EAAE,EAAE,CAC7D,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,0CAAG,YAAY,CAAC,mCAAI,EAAE,CAAC,CAAA;AAC5F,CAAC,CAAA;AAEH,MAAM,oBAAoB,GACxB,CAAC,cAAsB,EAAE,EAAE,CAC3B,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,2BAA2B,GAAG,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,mCAAI,EAAE,CAAA;IAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;AAC1G,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAC7B,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAG,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE9C,QAAA,sBAAsB,GAAG;IACpC,eAAe;IACf,iBAAiB;IACjB,+BAA+B;IAC/B,oBAAoB;IACpB,yBAAyB;CAC1B,CAAA"}
1
+ {"version":3,"file":"recordNodesIndexReader.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexReader.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAsB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAA;AAE3F,MAAM,iBAAiB,GACrB,CAAC,WAAmB,EAAE,EAAE,CACxB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAG,WAAW,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAEtD,MAAM,+BAA+B,GACnC,CAAC,MAAwD,EAAE,EAAE,CAC7D,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,0CAAG,YAAY,CAAC,mCAAI,EAAE,CAAC,CAAA;AAC5F,CAAC,CAAA;AAEH,MAAM,oBAAoB,GACxB,CAAC,cAAsB,EAAE,EAAE,CAC3B,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,2BAA2B,GAAG,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,mCAAI,EAAE,CAAA;IAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;AAC1G,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAC7B,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAG,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE9C,QAAA,sBAAsB,GAAG;IACpC,eAAe;IACf,iBAAiB;IACjB,+BAA+B;IAC/B,oBAAoB;IACpB,yBAAyB;CAC1B,CAAA","sourcesContent":["import { RecordNodesIndex } from '../record'\n\nconst getNodeRootUuid = (index: RecordNodesIndex): string | undefined => index.nodeRootUuid\n\nconst getNodeUuidsByDef =\n (nodeDefUuid: string) =>\n (index: RecordNodesIndex): string[] =>\n Object.keys(index.nodesByDef?.[nodeDefUuid] ?? {})\n\nconst getNodeUuidsByParentAndChildDef =\n (params: { parentNodeUuid: string; childDefUuid: string }) =>\n (index: RecordNodesIndex): string[] => {\n const { parentNodeUuid, childDefUuid } = params\n return Object.keys(index.nodesByParentAndChildDef?.[parentNodeUuid]?.[childDefUuid] ?? {})\n }\n\nconst getNodeUuidsByParent =\n (parentNodeUuid: string) =>\n (index: RecordNodesIndex): string[] => {\n const nodesPresenceByChildDefUuid = index.nodesByParentAndChildDef?.[parentNodeUuid] ?? {}\n return Object.values(nodesPresenceByChildDefUuid).flatMap((nodesPresence) => Object.keys(nodesPresence))\n }\n\nconst getNodeCodeDependentUuids =\n (nodeUuid: string) =>\n (index: RecordNodesIndex): string[] =>\n Object.keys(index.nodeCodeDependents?.[nodeUuid] ?? {})\n\nexport const RecordNodesIndexReader = {\n getNodeRootUuid,\n getNodeUuidsByDef,\n getNodeUuidsByParentAndChildDef,\n getNodeUuidsByParent,\n getNodeCodeDependentUuids,\n}\n"]}
@@ -15,6 +15,7 @@ const sortNodesByIdOrCreationDate = (nodeA, nodeB) => {
15
15
  return -1;
16
16
  if (!nodeB.parentUuid)
17
17
  return 1;
18
+ // read the hierarchy length directly: Nodes.getHierarchy copies the array on every comparison
18
19
  const hierarchyDepthA = (_c = (_b = (_a = nodeA.meta) === null || _a === void 0 ? void 0 : _a.h) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
19
20
  const hierarchyDepthB = (_f = (_e = (_d = nodeB.meta) === null || _d === void 0 ? void 0 : _d.h) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0;
20
21
  const depthDiff = hierarchyDepthA - hierarchyDepthB;
@@ -26,6 +27,11 @@ const sortNodesByIdOrCreationDate = (nodeA, nodeB) => {
26
27
  return nodeA.dateCreated.localeCompare(nodeB.dateCreated);
27
28
  return 0;
28
29
  };
30
+ /**
31
+ * Mutable copy of a nodes index, used to apply many changes to it at once.
32
+ * When sideEffect is false, every object along a modified path is copied only the first time it is modified
33
+ * (copy on write): applying N changes costs one copy of each touched object instead of N copies.
34
+ */
29
35
  class NodesIndexDraft {
30
36
  constructor(index, sideEffect) {
31
37
  this.copiedObjects = new Set();
@@ -58,6 +64,9 @@ class NodesIndexDraft {
58
64
  }
59
65
  current[path.at(-1)] = value;
60
66
  }
67
+ /**
68
+ * Deletes the value at the specified path, then removes the objects along the path left empty.
69
+ */
61
70
  delete(path) {
62
71
  const containers = [this.index];
63
72
  let current = this.index;
@@ -78,12 +87,16 @@ class NodesIndexDraft {
78
87
  var _a, _b;
79
88
  const { uuid: nodeUuid, nodeDefUuid, parentUuid } = node;
80
89
  if (parentUuid) {
90
+ // nodes by parent and child def uuid
81
91
  this.set([keys.nodesByParentAndChildDef, parentUuid, nodeDefUuid, nodeUuid], true);
82
92
  }
83
93
  else {
94
+ // root entity index
84
95
  this.index.nodeRootUuid = nodeUuid;
85
96
  }
97
+ // nodes by def uuid
86
98
  this.set([keys.nodesByDef, nodeDefUuid, nodeUuid], true);
99
+ // code dependents
87
100
  for (const ancestorCodeAttributeUuid of (_b = (_a = node.meta) === null || _a === void 0 ? void 0 : _a.hCode) !== null && _b !== void 0 ? _b : []) {
88
101
  this.set([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid], true);
89
102
  }
@@ -97,6 +110,7 @@ class NodesIndexDraft {
97
110
  delete this.index.nodeRootUuid;
98
111
  }
99
112
  this.delete([keys.nodesByDef, nodeDefUuid, nodeUuid]);
113
+ // code dependents
100
114
  for (const ancestorCodeAttributeUuid of node_1.Nodes.getHierarchyCode(node)) {
101
115
  this.delete([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid]);
102
116
  }
@@ -130,6 +144,9 @@ const _isSameHierarchyCode = (nodeA, nodeB) => {
130
144
  const hCodeB = (_d = (_c = nodeB.meta) === null || _c === void 0 ? void 0 : _c.hCode) !== null && _d !== void 0 ? _d : [];
131
145
  return hCodeA.length === hCodeB.length && hCodeA.every((uuid, index) => uuid === hCodeB[index]);
132
146
  };
147
+ /**
148
+ * Returns true if the index entries of the specified node would not change when the node replaces the previous version of it.
149
+ */
133
150
  const isNodeIndexUnchanged = (params) => {
134
151
  var _a, _b, _c, _d, _e;
135
152
  const { index, node, nodePrev } = params;
@@ -1 +1 @@
1
- {"version":3,"file":"recordNodesIndexUpdater.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexUpdater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recordNodesIndexUpdater.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexUpdater.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, Nodes } from '../../node'\nimport { Objects } from '../../utils'\nimport { Record, RecordNodesIndex } from '../record'\n\nconst keys = {\n nodeRootUuid: 'nodeRootUuid',\n nodesByParentAndChildDef: 'nodesByParentAndChildDef',\n nodesByDef: 'nodesByDef',\n nodeCodeDependents: 'nodeCodeDependents',\n}\n\nconst sortNodesByIdOrCreationDate = (nodeA: Node, nodeB: Node): number => {\n if (!nodeA.parentUuid) return -1\n if (!nodeB.parentUuid) return 1\n // read the hierarchy length directly: Nodes.getHierarchy copies the array on every comparison\n const hierarchyDepthA = nodeA.meta?.h?.length ?? 0\n const hierarchyDepthB = nodeB.meta?.h?.length ?? 0\n const depthDiff = hierarchyDepthA - hierarchyDepthB\n if (depthDiff !== 0) return depthDiff\n if (nodeA.id && nodeB.id) return nodeA.id - nodeB.id\n if (nodeA.dateCreated && nodeB.dateCreated) return nodeA.dateCreated.localeCompare(nodeB.dateCreated)\n return 0\n}\n\n/**\n * Mutable copy of a nodes index, used to apply many changes to it at once.\n * When sideEffect is false, every object along a modified path is copied only the first time it is modified\n * (copy on write): applying N changes costs one copy of each touched object instead of N copies.\n */\nclass NodesIndexDraft {\n readonly index: RecordNodesIndex\n private readonly sideEffect: boolean\n private readonly copiedObjects = new Set<object>()\n\n constructor(index: RecordNodesIndex, sideEffect: boolean) {\n this.sideEffect = sideEffect\n this.index = sideEffect ? index : this.markCopied({ ...index })\n }\n\n private markCopied<T extends object>(obj: T): T {\n this.copiedObjects.add(obj)\n return obj\n }\n\n private getWritableChild(parent: any, key: string, createIfMissing: boolean): any {\n const child = parent[key]\n if (child === undefined || child === null) {\n if (!createIfMissing) return undefined\n const childCreated = this.markCopied({})\n parent[key] = childCreated\n return childCreated\n }\n if (this.sideEffect || this.copiedObjects.has(child)) return child\n const childCopy = this.markCopied({ ...child })\n parent[key] = childCopy\n return childCopy\n }\n\n set(path: string[], value: any): void {\n let current: any = this.index\n for (let i = 0; i < path.length - 1; i++) {\n current = this.getWritableChild(current, path[i], true)\n }\n current[path.at(-1)!] = value\n }\n\n /**\n * Deletes the value at the specified path, then removes the objects along the path left empty.\n */\n delete(path: string[]): void {\n const containers: any[] = [this.index]\n let current: any = this.index\n for (let i = 0; i < path.length - 1; i++) {\n if (current[path[i]] === undefined) return\n current = this.getWritableChild(current, path[i], false)\n containers.push(current)\n }\n delete current[path.at(-1)!]\n for (let i = path.length - 2; i >= 0; i--) {\n if (!Objects.isEmpty(containers[i + 1])) break\n delete containers[i][path[i]]\n }\n }\n\n addNode(node: Node): void {\n const { uuid: nodeUuid, nodeDefUuid, parentUuid } = node\n if (parentUuid) {\n // nodes by parent and child def uuid\n this.set([keys.nodesByParentAndChildDef, parentUuid, nodeDefUuid, nodeUuid], true)\n } else {\n // root entity index\n this.index.nodeRootUuid = nodeUuid\n }\n // nodes by def uuid\n this.set([keys.nodesByDef, nodeDefUuid, nodeUuid], true)\n // code dependents\n for (const ancestorCodeAttributeUuid of node.meta?.hCode ?? []) {\n this.set([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid], true)\n }\n }\n\n removeNode(node: Node): void {\n const { uuid: nodeUuid, parentUuid, nodeDefUuid } = node\n if (parentUuid) {\n this.delete([keys.nodesByParentAndChildDef, parentUuid, nodeDefUuid, nodeUuid])\n } else {\n delete this.index.nodeRootUuid\n }\n this.delete([keys.nodesByDef, nodeDefUuid, nodeUuid])\n // code dependents\n for (const ancestorCodeAttributeUuid of Nodes.getHierarchyCode(node)) {\n this.delete([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid])\n }\n this.delete([keys.nodeCodeDependents, nodeUuid])\n }\n}\n\nconst addNodes =\n (nodes: { [key: string]: Node }, sideEffect = false, sortNodes = false) =>\n (index: RecordNodesIndex): RecordNodesIndex => {\n const draft = new NodesIndexDraft(index, sideEffect)\n const nodesArray = Object.values(nodes)\n if (sortNodes) {\n nodesArray.sort(sortNodesByIdOrCreationDate)\n }\n for (const node of nodesArray) {\n draft.addNode(node)\n }\n return draft.index\n }\n\nconst addNode =\n (node: Node) =>\n (index: RecordNodesIndex): RecordNodesIndex =>\n addNodes({ [node.uuid]: node })(index)\n\nconst initializeIndex = (record: Record): RecordNodesIndex => addNodes(record.nodes ?? {}, true, true)({})\n\nconst removeNodes =\n (nodes: Node[], sideEffect = false) =>\n (index: RecordNodesIndex): RecordNodesIndex => {\n const draft = new NodesIndexDraft(index, sideEffect)\n for (const node of nodes) {\n draft.removeNode(node)\n }\n return draft.index\n }\n\nconst removeNode =\n (node: Node, sideEffect = false) =>\n (index: RecordNodesIndex): RecordNodesIndex =>\n removeNodes([node], sideEffect)(index)\n\nconst _isSameHierarchyCode = (nodeA: Node, nodeB: Node): boolean => {\n const hCodeA = nodeA.meta?.hCode ?? []\n const hCodeB = nodeB.meta?.hCode ?? []\n return hCodeA.length === hCodeB.length && hCodeA.every((uuid, index) => uuid === hCodeB[index])\n}\n\n/**\n * Returns true if the index entries of the specified node would not change when the node replaces the previous version of it.\n */\nconst isNodeIndexUnchanged = (params: { index: RecordNodesIndex; node: Node; nodePrev?: Node }): boolean => {\n const { index, node, nodePrev } = params\n if (!nodePrev) return false\n const { uuid, parentUuid, nodeDefUuid } = node\n if (parentUuid !== nodePrev.parentUuid || nodeDefUuid !== nodePrev.nodeDefUuid) return false\n if (!_isSameHierarchyCode(node, nodePrev)) return false\n if (!index.nodesByDef?.[nodeDefUuid]?.[uuid]) return false\n return parentUuid\n ? !!index.nodesByParentAndChildDef?.[parentUuid]?.[nodeDefUuid]?.[uuid]\n : index.nodeRootUuid === uuid\n}\n\nexport const RecordNodesIndexUpdater = {\n addNode,\n addNodes,\n initializeIndex,\n isNodeIndexUnchanged,\n removeNode,\n removeNodes,\n}\n"]}
@@ -16,55 +16,94 @@ export type PagesValidationProgress = {
16
16
  validCount: number;
17
17
  totalCount: number;
18
18
  };
19
+ /**
20
+ * Whether a node belongs under a page entity (itself or any descendant of that page).
21
+ */
19
22
  export declare const nodeBelongsToPage: (params: {
20
23
  node: Node;
21
24
  pageNodeDefUuid: string;
22
25
  record: Record;
23
26
  }) => boolean;
27
+ /**
28
+ * Whether a node belongs to this page only — not to a nested descendant page entity.
29
+ * When descendantPageUuids is empty, all nodes under the page hierarchy are included.
30
+ */
24
31
  export declare const nodeBelongsToOwnPage: (params: {
25
32
  node: Node;
26
33
  pageNodeDefUuid: string;
27
34
  descendantPageUuids: string[];
28
35
  record: Record;
29
36
  }) => boolean;
37
+ /**
38
+ * Child page-entity defs displayed in their own page under the given entity.
39
+ */
30
40
  export declare const getNodeDefChildrenInOwnPage: (params: {
31
41
  survey: Survey;
32
42
  nodeDef: NodeDefEntity;
33
43
  cycle: string;
34
44
  }) => NodeDefEntity[];
45
+ /**
46
+ * Collects all page-entity node defs in the survey cycle (root + nested own-pages).
47
+ */
35
48
  export declare const getPageNodeDefs: (params: {
36
49
  survey: Survey;
37
50
  cycle: string;
38
51
  }) => NodeDefEntity[];
52
+ /**
53
+ * Collects descendant page node def UUIDs under a page (not including the page itself).
54
+ */
39
55
  export declare const getDescendantPageNodeDefUuids: (params: {
40
56
  survey: Survey;
41
57
  cycle: string;
42
58
  pageNodeDef: NodeDefEntity;
43
59
  }) => string[];
60
+ /**
61
+ * Aggregates error/warning flags for a page.
62
+ * When descendantPageUuids is non-empty, nested page entities are excluded (own-page scope).
63
+ * When scopeEntityUuid is set, only validations for nodes under that entity instance are included.
64
+ */
44
65
  export declare const getPageValidationStatus: (params: {
45
66
  pageNodeDefUuid: string;
46
67
  descendantPageUuids?: string[];
47
68
  record: Record;
48
69
  scopeEntityUuid?: string;
49
70
  }) => PageValidationStatus;
71
+ /**
72
+ * Validation and completion status for one entity instance and its descendant pages.
73
+ * Returns null when the node is missing or is not an entity.
74
+ */
50
75
  export declare const getEntitySubtreeStatus: (params: {
51
76
  survey: Survey;
52
77
  record: Record;
53
78
  entityUuid: string;
54
79
  cycle?: string;
55
80
  }) => EntitySubtreeStatus | null;
81
+ /**
82
+ * Aggregates subtree status across instances of a multiple page entity.
83
+ * When `scopeEntityUuid` is set, only instances under that ancestor entity are included
84
+ * (needed for nested multiples, e.g. Tree under the currently selected Plot).
85
+ * Empty instance lists return a non-complete status with no validation flags.
86
+ */
56
87
  export declare const getMultiplePageEntitiesStatus: (params: {
57
88
  survey: Survey;
58
89
  record: Record;
59
90
  pageNodeDefUuid: string;
60
91
  cycle?: string;
92
+ /** When set, only instances under this ancestor entity are aggregated. */
61
93
  scopeEntityUuid?: string;
62
94
  }) => EntitySubtreeStatus;
95
+ /**
96
+ * Whether the page has validation errors on its own fields (excluding nested page entities).
97
+ */
63
98
  export declare const pageHasOwnErrors: (params: {
64
99
  pageNodeDefUuid: string;
65
100
  descendantPageUuids: string[];
66
101
  record: Record;
67
102
  }) => boolean;
103
+ /**
104
+ * Progress of pages without own-field validation errors over all survey pages.
105
+ * Warnings do not reduce the score (matches Arena sidebar red-icon signal).
106
+ */
68
107
  export declare const getRecordPagesValidationProgress: (params: {
69
108
  survey: Survey;
70
109
  record: Record;
@@ -8,6 +8,9 @@ const validation_1 = require("../../validation");
8
8
  const recordValidations_1 = require("../recordValidations");
9
9
  const recordCompletion_1 = require("./recordCompletion");
10
10
  const recordGetters_1 = require("./recordGetters");
11
+ /**
12
+ * Whether a node belongs under a page entity (itself or any descendant of that page).
13
+ */
11
14
  const nodeBelongsToPage = (params) => {
12
15
  const { node, pageNodeDefUuid, record } = params;
13
16
  if (node.nodeDefUuid === pageNodeDefUuid)
@@ -18,6 +21,10 @@ const nodeBelongsToPage = (params) => {
18
21
  });
19
22
  };
20
23
  exports.nodeBelongsToPage = nodeBelongsToPage;
24
+ /**
25
+ * Whether a node belongs to this page only — not to a nested descendant page entity.
26
+ * When descendantPageUuids is empty, all nodes under the page hierarchy are included.
27
+ */
21
28
  const nodeBelongsToOwnPage = (params) => {
22
29
  const { node, pageNodeDefUuid, descendantPageUuids, record } = params;
23
30
  if (!(0, exports.nodeBelongsToPage)({ node, pageNodeDefUuid, record }))
@@ -27,6 +34,9 @@ const nodeBelongsToOwnPage = (params) => {
27
34
  return !descendantPageUuids.some((descendantUuid) => (0, exports.nodeBelongsToPage)({ node, pageNodeDefUuid: descendantUuid, record }));
28
35
  };
29
36
  exports.nodeBelongsToOwnPage = nodeBelongsToOwnPage;
37
+ /**
38
+ * Child page-entity defs displayed in their own page under the given entity.
39
+ */
30
40
  const getNodeDefChildrenInOwnPage = (params) => {
31
41
  const { survey, nodeDef, cycle } = params;
32
42
  return survey_1.Surveys.getNodeDefChildren({ survey, nodeDef, includeAnalysis: true }).filter((child) => {
@@ -36,6 +46,9 @@ const getNodeDefChildrenInOwnPage = (params) => {
36
46
  });
37
47
  };
38
48
  exports.getNodeDefChildrenInOwnPage = getNodeDefChildrenInOwnPage;
49
+ /**
50
+ * Collects all page-entity node defs in the survey cycle (root + nested own-pages).
51
+ */
39
52
  const getPageNodeDefs = (params) => {
40
53
  const { survey, cycle } = params;
41
54
  const root = survey_1.Surveys.getNodeDefRoot({ survey });
@@ -53,6 +66,9 @@ const getPageNodeDefs = (params) => {
53
66
  return pages;
54
67
  };
55
68
  exports.getPageNodeDefs = getPageNodeDefs;
69
+ /**
70
+ * Collects descendant page node def UUIDs under a page (not including the page itself).
71
+ */
56
72
  const getDescendantPageNodeDefUuids = (params) => {
57
73
  const { survey, cycle, pageNodeDef } = params;
58
74
  const uuids = [];
@@ -98,12 +114,19 @@ const getOwnPageFieldValidationFlags = (params) => {
98
114
  hasWarnings: validation_1.Validations.hasWarnings(nodeValidation),
99
115
  };
100
116
  };
117
+ /**
118
+ * Children-count validations (file min count, inline multiple min/max, etc.) are keyed as
119
+ * `childrenCount_{parentUuid}_{childDefUuid}`, not as node UUIDs.
120
+ * Include them when the parent is on this page, but skip counts that refer to descendant
121
+ * page entities (missing sub-page instances should not paint the parent page red).
122
+ */
101
123
  const getOwnPageChildrenCountValidationFlags = (params) => {
102
124
  const { childrenCountKey, pageNodeDefUuid, descendantPageUuids, scopeEntityUuid, record, recordValidation } = params;
103
125
  const parentUuid = recordValidations_1.RecordValidations.extractValidationChildrenCountKeyParentUuid(childrenCountKey);
104
126
  const childDefUuid = recordValidations_1.RecordValidations.extractValidationChildrenCountKeyNodeDefUuid(childrenCountKey);
105
127
  if (!parentUuid || !childDefUuid)
106
128
  return null;
129
+ // Sub-page entity min/max counts belong to navigation of nested pages, not this page's fields.
107
130
  if (descendantPageUuids.includes(childDefUuid))
108
131
  return null;
109
132
  const parentNode = (0, recordGetters_1.getNodeByUuid)(parentUuid)(record);
@@ -120,6 +143,11 @@ const getOwnPageChildrenCountValidationFlags = (params) => {
120
143
  hasWarnings: validation_1.Validations.hasWarnings(fieldValidation),
121
144
  };
122
145
  };
146
+ /**
147
+ * Aggregates error/warning flags for a page.
148
+ * When descendantPageUuids is non-empty, nested page entities are excluded (own-page scope).
149
+ * When scopeEntityUuid is set, only validations for nodes under that entity instance are included.
150
+ */
123
151
  const getPageValidationStatus = (params) => {
124
152
  const { pageNodeDefUuid, descendantPageUuids = [], record, scopeEntityUuid } = params;
125
153
  const recordValidation = validation_1.Validations.getValidation(record);
@@ -151,6 +179,10 @@ const aggregatePageValidationStatuses = (statuses) => ({
151
179
  hasErrors: statuses.some((status) => status.hasErrors),
152
180
  hasWarnings: statuses.some((status) => status.hasWarnings),
153
181
  });
182
+ /**
183
+ * Validation and completion status for one entity instance and its descendant pages.
184
+ * Returns null when the node is missing or is not an entity.
185
+ */
154
186
  const getEntitySubtreeStatus = (params) => {
155
187
  var _a;
156
188
  const { survey, record, entityUuid } = params;
@@ -180,6 +212,12 @@ const getEntitySubtreeStatus = (params) => {
180
212
  return { hasErrors, hasWarnings, isComplete };
181
213
  };
182
214
  exports.getEntitySubtreeStatus = getEntitySubtreeStatus;
215
+ /**
216
+ * Aggregates subtree status across instances of a multiple page entity.
217
+ * When `scopeEntityUuid` is set, only instances under that ancestor entity are included
218
+ * (needed for nested multiples, e.g. Tree under the currently selected Plot).
219
+ * Empty instance lists return a non-complete status with no validation flags.
220
+ */
183
221
  const getMultiplePageEntitiesStatus = (params) => {
184
222
  const { survey, record, pageNodeDefUuid, scopeEntityUuid } = params;
185
223
  const instances = (0, recordGetters_1.getNodesByDefUuid)(pageNodeDefUuid)(record).filter((instance) => scopeEntityUuid ? nodeIsUnderEntity({ node: instance, entityUuid: scopeEntityUuid }) : true);
@@ -196,8 +234,15 @@ const getMultiplePageEntitiesStatus = (params) => {
196
234
  };
197
235
  };
198
236
  exports.getMultiplePageEntitiesStatus = getMultiplePageEntitiesStatus;
237
+ /**
238
+ * Whether the page has validation errors on its own fields (excluding nested page entities).
239
+ */
199
240
  const pageHasOwnErrors = (params) => (0, exports.getPageValidationStatus)(params).hasErrors;
200
241
  exports.pageHasOwnErrors = pageHasOwnErrors;
242
+ /**
243
+ * Progress of pages without own-field validation errors over all survey pages.
244
+ * Warnings do not reduce the score (matches Arena sidebar red-icon signal).
245
+ */
201
246
  const getRecordPagesValidationProgress = (params) => {
202
247
  var _a;
203
248
  const { survey, record } = params;