@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
@@ -1 +1 @@
1
- {"version":3,"file":"appInfo.js","sourceRoot":"","sources":["../../src/app/appInfo.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"appInfo.js","sourceRoot":"","sources":["../../src/app/appInfo.ts"],"names":[],"mappings":"","sourcesContent":["export interface AppInfo {\n appId: string\n version: string\n platform?: 'android' | 'ios'\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"","sourcesContent":["export type { AppInfo } from './appInfo'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"authGroup.js","sourceRoot":"","sources":["../../src/auth/authGroup.ts"],"names":[],"mappings":";;;AAAA,6CAA+D;AAE/D,IAAY,aASX;AATD,WAAY,aAAa;IACvB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;IAC3B,8CAA6B,CAAA;IAC7B,gDAA+B,CAAA;IAC/B,4CAA2B,CAAA;IAC3B,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;AAC7B,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AAUY,QAAA,gBAAgB,GAAG;IAC9B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,aAAa;IAC3B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,YAAY;IAC1B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,YAAY;IAC1B,aAAa,CAAC,UAAU;IACxB,aAAa,CAAC,WAAW;CAC1B,CAAA;AAEY,QAAA,gBAAgB,GAAG;IAC9B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,YAAY;IAC1B,aAAa,CAAC,UAAU;IACxB,aAAa,CAAC,YAAY;IAC1B,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,WAAW;CAC1B,CAAA;AAEY,QAAA,kBAAkB,GAAc,EAAE,IAAI,EAAE,aAAa,CAAC,WAAW,EAAE,CAAA;AAEnE,QAAA,sBAAsB,GAA6C;IAC9E,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAU,CAAC;IACtD,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;QAC7B,uBAAU,CAAC,eAAe;QAC1B,uBAAU,CAAC,YAAY;QACvB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,YAAY;QACvB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,aAAa;QACxB,uBAAU,CAAC,aAAa;QACxB,uBAAU,CAAC,QAAQ;QACnB,uBAAU,CAAC,UAAU;KACtB;IACD,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;QAC3B,uBAAU,CAAC,eAAe;QAC1B,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,YAAY;QACvB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,aAAa;QACxB,uBAAU,CAAC,aAAa;QACxB,uBAAU,CAAC,QAAQ;QACnB,uBAAU,CAAC,UAAU;KACtB;IACD,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;QAC5B,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,YAAY;QACvB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,aAAa;QACxB,uBAAU,CAAC,aAAa;KACzB;IACD,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;QAC3B,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,YAAY;QACvB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,aAAa;QACxB,uBAAU,CAAC,aAAa;KACzB;IACD,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;QAC5B,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,YAAY;QACvB,uBAAU,CAAC,UAAU;QACrB,uBAAU,CAAC,aAAa;KACzB;IACD,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,uBAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,YAAY,EAAE,uBAAU,CAAC,UAAU,CAAC;IACnG,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,uBAAU,CAAC,UAAU,CAAC;CACrD,CAAA;AAEY,QAAA,mBAAmB,GAAqB;IACnD;QACE,IAAI,EAAE,aAAa,CAAC,WAAW;QAC/B,WAAW,EAAE,8BAAsB,CAAC,aAAa,CAAC,WAAW,CAAC;QAC9D,WAAW,EAAE;YACX,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;SAC5B;KACF;IACD;QACE,IAAI,EAAE,aAAa,CAAC,YAAY;QAChC,WAAW,EAAE,8BAAsB,CAAC,aAAa,CAAC,YAAY,CAAC;QAC/D,WAAW,EAAE;YACX,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;SAC5B;KACF;IACD;QACE,IAAI,EAAE,aAAa,CAAC,WAAW;QAC/B,WAAW,EAAE,8BAAsB,CAAC,aAAa,CAAC,WAAW,CAAC;QAC9D,WAAW,EAAE;YACX,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;SAC5B;KACF;IACD;QACE,IAAI,EAAE,aAAa,CAAC,YAAY;QAChC,WAAW,EAAE,8BAAsB,CAAC,aAAa,CAAC,YAAY,CAAC;QAC/D,WAAW,EAAE;YACX,CAAC,EAAE,iCAAoB,CAAC,GAAG;YAC3B,CAAC,EAAE,iCAAoB,CAAC,GAAG;SAC5B;KACF;IACD;QACE,IAAI,EAAE,aAAa,CAAC,UAAU;QAC9B,WAAW,EAAE,8BAAsB,CAAC,aAAa,CAAC,UAAU,CAAC;QAC7D,WAAW,EAAE;YACX,CAAC,EAAE,iCAAoB,CAAC,GAAG;SAC5B;KACF;IACD;QACE,IAAI,EAAE,aAAa,CAAC,WAAW;QAC/B,WAAW,EAAE,8BAAsB,CAAC,aAAa,CAAC,WAAW,CAAC;QAC9D,WAAW,EAAE;YACX,CAAC,EAAE,iCAAoB,CAAC,GAAG;SAC5B;KACF;CACF,CAAA"}
1
+ {"version":3,"file":"authGroup.js","sourceRoot":"","sources":["../../src/auth/authGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Permission, RecordStepPermission } from './permission'\n\nexport enum AuthGroupName {\n systemAdmin = 'systemAdmin',\n surveyAdmin = 'surveyAdmin',\n surveyEditor = 'surveyEditor',\n surveyManager = 'surveyManager',\n surveyGuest = 'surveyGuest',\n dataEditor = 'dataEditor',\n dataCleanser = 'dataCleanser',\n dataAnalyst = 'dataAnalyst',\n}\n\nexport interface AuthGroup {\n name: AuthGroupName\n surveyUuid?: string\n permissions?: Array<Permission>\n recordSteps?: { [key: number]: RecordStepPermission }\n uuid?: string\n}\n\nexport const sortedGroupNames = [\n AuthGroupName.systemAdmin,\n AuthGroupName.surveyManager,\n AuthGroupName.surveyAdmin,\n AuthGroupName.surveyEditor,\n AuthGroupName.dataAnalyst,\n AuthGroupName.dataCleanser,\n AuthGroupName.dataEditor,\n AuthGroupName.surveyGuest,\n]\n\nexport const surveyGroupNames = [\n AuthGroupName.surveyAdmin,\n AuthGroupName.surveyEditor,\n AuthGroupName.dataEditor,\n AuthGroupName.dataCleanser,\n AuthGroupName.dataAnalyst,\n AuthGroupName.surveyGuest,\n]\n\nexport const SYSTEM_ADMIN_GROUP: AuthGroup = { name: AuthGroupName.systemAdmin }\n\nexport const permissionsByGroupName: { [key in AuthGroupName]: Permission[] } = {\n [AuthGroupName.systemAdmin]: Object.values(Permission),\n [AuthGroupName.surveyManager]: [\n Permission.permissionsEdit,\n Permission.surveyCreate,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyAdmin]: [\n Permission.permissionsEdit,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyEditor]: [\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataAnalyst]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataCleanser]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n ],\n [AuthGroupName.dataEditor]: [Permission.recordView, Permission.recordCreate, Permission.recordEdit],\n [AuthGroupName.surveyGuest]: [Permission.recordView],\n}\n\nexport const DEFAULT_AUTH_GROUPS: Array<AuthGroup> = [\n {\n name: AuthGroupName.surveyAdmin,\n permissions: permissionsByGroupName[AuthGroupName.surveyAdmin],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.surveyEditor,\n permissions: permissionsByGroupName[AuthGroupName.surveyEditor],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataAnalyst,\n permissions: permissionsByGroupName[AuthGroupName.dataAnalyst],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataCleanser,\n permissions: permissionsByGroupName[AuthGroupName.dataCleanser],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataEditor,\n permissions: permissionsByGroupName[AuthGroupName.dataEditor],\n recordSteps: {\n 1: RecordStepPermission.own,\n },\n },\n {\n name: AuthGroupName.surveyGuest,\n permissions: permissionsByGroupName[AuthGroupName.surveyGuest],\n recordSteps: {\n 3: RecordStepPermission.all,\n },\n },\n]\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"authGroups.js","sourceRoot":"","sources":["../../src/auth/authGroups.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,2CAAqH;AAGrH,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,yBAAa,CAAC,WAAW,CAAA;AAEtG,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,yBAAa,CAAC,aAAa,CAAA;AAE1G,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AAEjH,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAsB,EAAE,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,CAAA;AAEzF,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAuD,EAAE,CACpG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAA;AAExB,MAAM,kBAAkB,GACtB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAqB,EAAwB,EAAE;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAEvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAe,EAAE,CAC/D,+BAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE,EAAE,UAAU,IAAG,CAAC,CAAA;AAElF,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,EAAE,WAAC,OAAA,MAAA,kCAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAA;AAErF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IACzC,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;IAChC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,OAAO,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,aAAa;IACb,aAAa;IACb,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;CACX,CAAA"}
1
+ {"version":3,"file":"authGroups.js","sourceRoot":"","sources":["../../src/auth/authGroups.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,2CAAqH;AAGrH,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,yBAAa,CAAC,WAAW,CAAA;AAEtG,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,yBAAa,CAAC,aAAa,CAAA;AAE1G,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AAEjH,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAsB,EAAE,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,CAAA;AAEzF,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAuD,EAAE,CACpG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAA;AAExB,MAAM,kBAAkB,GACtB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAqB,EAAwB,EAAE;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAEvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAe,EAAE,CAC/D,+BAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE,EAAE,UAAU,IAAG,CAAC,CAAA;AAElF,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,EAAE,WAAC,OAAA,MAAA,kCAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAA;AAErF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IACzC,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;IAChC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,OAAO,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,aAAa;IACb,aAAa;IACb,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;CACX,CAAA","sourcesContent":["import { UUIDs } from '../utils'\nimport { AuthGroup, AuthGroupName, DEFAULT_AUTH_GROUPS, permissionsByGroupName, sortedGroupNames } from './authGroup'\nimport { RecordStepPermission } from './permission'\n\nconst isSystemAdmin = (authGroup: AuthGroup): boolean => authGroup?.name === AuthGroupName.systemAdmin\n\nconst isSurveyManager = (authGroup: AuthGroup): boolean => authGroup?.name === AuthGroupName.surveyManager\n\nconst isSurveyGroup = (authGroup: AuthGroup): boolean => !isSystemAdmin(authGroup) && !isSurveyManager(authGroup)\n\nconst getSurveyUuid = (authGroup: AuthGroup): string | undefined => authGroup?.surveyUuid\n\nconst getRecordSteps = (authGroup?: AuthGroup): { [key: string]: RecordStepPermission } | undefined =>\n authGroup?.recordSteps\n\nconst getRecordEditLevel =\n (step: string) =>\n (authGroup?: AuthGroup): RecordStepPermission => {\n const steps = getRecordSteps(authGroup)\n if (!steps) throw new Error('No steps')\n\n return steps[step]\n }\n\nconst getDefaultAuthGroups = (surveyUuid: string): AuthGroup[] =>\n DEFAULT_AUTH_GROUPS.map((group) => ({ ...group, uuid: UUIDs.v4(), surveyUuid }))\n\nconst getPermissions = (group: AuthGroup) => permissionsByGroupName[group.name] ?? []\n\nconst sortGroups = (groups: AuthGroup[]) => {\n const sortedGroups = [...groups]\n sortedGroups.sort((group1, group2) => {\n const sortOrder1 = sortedGroupNames.indexOf(group1.name)\n const sortOrder2 = sortedGroupNames.indexOf(group2.name)\n return sortOrder1 - sortOrder2\n })\n return sortedGroups\n}\n\nexport const AuthGroups = {\n isSystemAdmin,\n isSurveyGroup,\n isSurveyManager,\n getSurveyUuid,\n getRecordSteps,\n getRecordEditLevel,\n getDefaultAuthGroups,\n getPermissions,\n sortGroups,\n}\n"]}
@@ -7,6 +7,9 @@ const authGroup_1 = require("./authGroup");
7
7
  const authGroups_1 = require("./authGroups");
8
8
  const permission_1 = require("./permission");
9
9
  const users_1 = require("./users");
10
+ // ======
11
+ // ====== Survey
12
+ // ======
10
13
  const _getSurveyUserGroup = (user, surveyInfo, includeSystemAdmin = true) => surveyInfo ? users_1.Users.getAuthGroupBySurveyUuid(surveyInfo.uuid, includeSystemAdmin)(user) : undefined;
11
14
  const _hasAuthGroupForSurvey = ({ user, surveyInfo }) => Boolean(_getSurveyUserGroup(user, surveyInfo));
12
15
  const _hasSurveyPermission = (permission) => (user, surveyInfo) => {
@@ -27,6 +30,7 @@ const _hasPermissionInSomeGroup = (permission) => (user) => {
27
30
  const groups = users_1.Users.getAuthGroups(user);
28
31
  return groups.some((group) => authGroups_1.AuthGroups.getPermissions(group).includes(permission));
29
32
  };
33
+ // CREATE
30
34
  const canCreateSurvey = _hasPermissionInSomeGroup(permission_1.Permission.surveyCreate);
31
35
  const canCreateTemplate = (user) => users_1.Users.isSystemAdmin(user);
32
36
  const getMaxSurveysUserCanCreate = (user) => {
@@ -36,16 +40,23 @@ const getMaxSurveysUserCanCreate = (user) => {
36
40
  return users_1.Users.getMaxSurveys(user);
37
41
  return 0;
38
42
  };
43
+ // READ
39
44
  const canViewSurvey = (user, surveyInfo) => users_1.Users.isSystemAdmin(user) || _hasAuthGroupForSurvey({ user, surveyInfo });
40
45
  const canExportSurvey = _hasSurveyPermission(permission_1.Permission.recordAnalyse);
41
46
  const canExportSurveysList = (user) => users_1.Users.isSystemAdmin(user);
42
47
  const canViewTemplates = (user) => users_1.Users.isSystemAdmin(user);
48
+ // UPDATE
43
49
  const canEditSurvey = _hasSurveyPermission(permission_1.Permission.surveyEdit);
44
50
  const canEditSurveyConfig = (user) => users_1.Users.isSystemAdmin(user);
45
51
  const canEditSurveyOwner = (user) => users_1.Users.isSystemAdmin(user);
46
52
  const canEditTemplates = (user) => users_1.Users.isSystemAdmin(user);
47
53
  const canRefreshAllSurveyRdbs = (user) => users_1.Users.isSystemAdmin(user);
54
+ // ======
55
+ // ====== Record
56
+ // ======
57
+ // CREATE
48
58
  exports.canCreateRecord = _hasSurveyPermission(permission_1.Permission.recordCreate);
59
+ // READ
49
60
  exports.canViewRecord = _hasSurveyPermission(permission_1.Permission.recordView);
50
61
  exports.canExportAllRecords = _hasSurveyPermission(permission_1.Permission.recordCleanse);
51
62
  const canViewNotOwnedRecords = (user, surveyInfo) => {
@@ -66,22 +77,31 @@ const canViewNotOwnedRecords = (user, surveyInfo) => {
66
77
  };
67
78
  exports.canViewNotOwnedRecords = canViewNotOwnedRecords;
68
79
  exports.canExportRecordsList = _hasSurveyPermission(permission_1.Permission.surveyEdit);
80
+ // UPDATE
69
81
  const canEditRecord = (user, record, allowAnalysisStepEdit = false) => {
70
82
  var _a;
71
83
  if (!user ||
72
84
  !record ||
85
+ // records in analysis cannot be edited
73
86
  (!allowAnalysisStepEdit && record_1.Records.isInAnalysisStep(record))) {
74
87
  return false;
75
88
  }
89
+ // system admin does not have an auth group associated to the survey, but he can always edit records;
76
90
  if (users_1.Users.isSystemAdmin(user)) {
77
91
  return true;
78
92
  }
79
93
  const { surveyUuid, ownerUuid } = record;
94
+ // if user doesn't have an auth group associated to the survey, he cannot edit records
80
95
  const userAuthGroup = users_1.Users.getAuthGroupBySurveyUuid(surveyUuid)(user);
81
96
  if (!userAuthGroup)
82
97
  return false;
98
+ // groups without the record edit permission (e.g. survey guests) cannot edit records,
99
+ // even when their record steps permission allows it (record steps permissions are used also to view records)
83
100
  if (!authGroups_1.AuthGroups.getPermissions(userAuthGroup).includes(permission_1.Permission.recordEdit))
84
101
  return false;
102
+ // Level = 'all' or 'own'. If 'own', user can only edit records assigned to him
103
+ // If 'all', he can edit all survey's records
104
+ // permission checks must not throw: a group without record steps cannot edit records
85
105
  const level = (_a = authGroups_1.AuthGroups.getRecordSteps(userAuthGroup)) === null || _a === void 0 ? void 0 : _a[record_1.Records.getStep(record)];
86
106
  return level === permission_1.RecordStepPermission.all || (level === permission_1.RecordStepPermission.own && ownerUuid === user.uuid);
87
107
  };
@@ -96,9 +116,20 @@ const canExportRecords = _hasSurveyPermission(permission_1.Permission.recordView
96
116
  const canImportRecords = (user, surveyInfo) => (surveyInfo === null || surveyInfo === void 0 ? void 0 : surveyInfo.published) && _hasSurveyPermission(permission_1.Permission.recordCreate)(user, surveyInfo);
97
117
  const canAnalyzeRecords = _hasSurveyPermission(permission_1.Permission.recordAnalyse);
98
118
  const canUpdateRecordsStep = canAnalyzeRecords;
119
+ // ======
120
+ // ====== Explorer
121
+ // ======
99
122
  const canUseExplorer = canCleanseRecords;
123
+ // ======
124
+ // ====== Map
125
+ // ======
100
126
  const canUseMap = canAnalyzeRecords;
127
+ // ======
128
+ // ====== Users
129
+ // ======
130
+ // CREATE
101
131
  const canInviteUsers = _hasSurveyPermission(permission_1.Permission.userInvite);
132
+ // READ
102
133
  const canViewSurveyUsers = _hasSurveyPermission(permission_1.Permission.userInvite);
103
134
  const _usersBelongToSameSurvey = ({ user, userToView }) => users_1.Users.getAuthGroups(user).some((authGroupUser) => authGroups_1.AuthGroups.isSurveyGroup(authGroupUser) &&
104
135
  users_1.Users.getAuthGroups(userToView).some((authGroupUserToView) => authGroups_1.AuthGroups.isSurveyGroup(authGroupUserToView) &&
@@ -107,8 +138,10 @@ const canViewUser = (user, _surveyInfo, userToView) => users_1.Users.isSystemAdm
107
138
  const canViewOtherUsersEmail = ({ user, surveyInfo }) => users_1.Users.isSystemAdmin(user) || canInviteUsers(user, surveyInfo);
108
139
  const canViewOtherUsersNameInSameSurvey = (user, surveyInfo) => _hasSurveyPermission(permission_1.Permission.recordView)(user, surveyInfo);
109
140
  const canViewAllUsers = (user) => users_1.Users.isSystemAdmin(user);
141
+ // EDIT
110
142
  const _hasUserEditAccess = (user, surveyInfo, userToUpdate) => users_1.Users.isSystemAdmin(user) ||
111
143
  (_hasSurveyPermission(permission_1.Permission.userEdit)(user, surveyInfo) &&
144
+ // user to update has an auth group in the same survey
112
145
  _hasAuthGroupForSurvey({ user: userToUpdate, surveyInfo }));
113
146
  const canCreateUsers = (user) => users_1.Users.isSystemAdmin(user);
114
147
  const canEditUser = (user, surveyInfo, userToUpdate) => users_1.Users.hasAccepted(userToUpdate) &&
@@ -120,12 +153,15 @@ const canRemoveUser = (user, surveyInfo, userToRemove) => !users_1.Users.isEqual
120
153
  _hasUserEditAccess(user, surveyInfo, userToRemove);
121
154
  const canEditUserSurveyManager = (user) => users_1.Users.isSystemAdmin(user);
122
155
  const canEditUserMaxSurveys = (user) => users_1.Users.isSystemAdmin(user);
156
+ // USER ACCESS REQUESTS
123
157
  const canViewUsersAccessRequests = (user) => users_1.Users.isSystemAdmin(user);
124
158
  const canEditUsersAccessRequests = (user) => users_1.Users.isSystemAdmin(user);
159
+ // INVITE
125
160
  const getUserGroupsCanAssign = ({ user, surveyInfo = null, editingLoggedUser = false, showOnlySurveyGroups = false, }) => {
126
161
  const groups = [];
127
162
  let surveyGroups = [];
128
163
  if (editingLoggedUser && !surveyInfo) {
164
+ // This can happen for system administrators when they don't have an active survey
129
165
  surveyGroups = [];
130
166
  }
131
167
  else if (surveyInfo) {
@@ -137,15 +173,18 @@ const getUserGroupsCanAssign = ({ user, surveyInfo = null, editingLoggedUser = f
137
173
  surveyGroups = adminGroup ? [adminGroup] : [];
138
174
  }
139
175
  }
176
+ // do not allow surveyEditor group selection (remove surveyEditor group completely?)
140
177
  surveyGroups = surveyGroups.filter((group) => group.name !== authGroup_1.AuthGroupName.surveyEditor);
141
178
  groups.push(...surveyGroups);
142
179
  if (!showOnlySurveyGroups && (users_1.Users.isSystemAdmin(user) || users_1.Users.isSurveyManager(user))) {
180
+ // Add SystemAdmin or SurveyManager group if current user is a SystemAdmin or SurveyManager himself
143
181
  const userNonSurveyGroups = users_1.Users.getAuthGroups(user).filter((group) => !authGroups_1.AuthGroups.isSurveyGroup(group));
144
182
  groups.push(...userNonSurveyGroups);
145
183
  }
146
184
  return authGroups_1.AuthGroups.sortGroups(groups);
147
185
  };
148
186
  exports.Authorizer = {
187
+ // Survey
149
188
  canCreateSurvey,
150
189
  canCreateTemplate,
151
190
  getMaxSurveysUserCanCreate,
@@ -158,6 +197,7 @@ exports.Authorizer = {
158
197
  canEditSurveyOwner,
159
198
  canEditTemplates,
160
199
  canRefreshAllSurveyRdbs,
200
+ // Record
161
201
  canCreateRecord: exports.canCreateRecord,
162
202
  canViewRecord: exports.canViewRecord,
163
203
  canExportAllRecords: exports.canExportAllRecords,
@@ -173,8 +213,11 @@ exports.Authorizer = {
173
213
  canImportRecords,
174
214
  canAnalyzeRecords,
175
215
  canUpdateRecordsStep,
216
+ // Explorer
176
217
  canUseExplorer,
218
+ // Map
177
219
  canUseMap,
220
+ // Users
178
221
  canInviteUsers,
179
222
  canViewSurveyUsers,
180
223
  canViewUser,
@@ -188,8 +231,10 @@ exports.Authorizer = {
188
231
  canRemoveUser,
189
232
  canEditUserSurveyManager,
190
233
  canEditUserMaxSurveys,
234
+ // User Access Requests
191
235
  canViewUsersAccessRequests,
192
236
  canEditUsersAccessRequests,
237
+ // Invite
193
238
  getUserGroupsCanAssign,
194
239
  };
195
240
  //# sourceMappingURL=authorizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authorizer.js","sourceRoot":"","sources":["../../src/auth/authorizer.ts"],"names":[],"mappings":";;;AAAA,sCAA2C;AAC3C,sCAA2C;AAC3C,2CAAsD;AACtD,6CAAyC;AACzC,6CAA+D;AAE/D,mCAA+B;AAM/B,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,kBAAkB,GAAG,IAAI,EAAyB,EAAE,CAC/G,UAAU,CAAC,CAAC,CAAC,aAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAEpG,MAAM,sBAAsB,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAsC,EAAW,EAAE,CACnG,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;AAEhD,MAAM,oBAAoB,GACxB,CAAC,UAAsB,EAAE,EAAE,CAC3B,CAAC,IAAU,EAAE,UAAkB,EAAW,EAAE;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAEvB,IAAI,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IAE7B,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACvD,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAE5B,OAAO,uBAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAClE,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAC7B,CAAC,UAAsB,EAAE,EAAE,CAC3B,CAAC,IAAU,EAAW,EAAE;IACtB,IAAI,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1C,MAAM,MAAM,GAAG,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA;AAGH,MAAM,eAAe,GAAG,yBAAyB,CAAC,uBAAU,CAAC,YAAY,CAAC,CAAA;AAC1E,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5E,MAAM,0BAA0B,GAAG,CAAC,IAAU,EAAU,EAAE;IACxD,IAAI,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAA;IAChD,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAGD,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAW,EAAE,CAChE,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AAC3E,MAAM,eAAe,GAAG,oBAAoB,CAAC,uBAAU,CAAC,aAAa,CAAC,CAAA;AACtE,MAAM,oBAAoB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC/E,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAE3E,MAAM,aAAa,GAAG,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;AACjE,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC9E,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC7E,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC3E,MAAM,uBAAuB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAOrE,QAAA,eAAe,GAAG,oBAAoB,CAAC,uBAAU,CAAC,YAAY,CAAC,CAAA;AAG/D,QAAA,aAAa,GAAG,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;AAC3D,QAAA,mBAAmB,GAAG,oBAAoB,CAAC,uBAAU,CAAC,aAAa,CAAC,CAAA;AAC1E,MAAM,sBAAsB,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAW,EAAE;IAChF,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAEjE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IACvC,MAAM,oBAAoB,GAAG,aAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7E,MAAM,SAAS,GAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI,CAAA;IAE5C,IAAI,SAAS,KAAK,yBAAa,CAAC,UAAU,EAAE,CAAC;QAC3C,OAAO,gBAAO,CAAC,sCAAsC,CAAC,UAAU,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,SAAS,KAAK,yBAAa,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,gBAAO,CAAC,uCAAuC,CAAC,UAAU,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,IAAA,2BAAmB,EAAC,IAAI,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IAEtD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAhBY,QAAA,sBAAsB,0BAgBlC;AACY,QAAA,oBAAoB,GAAG,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;AAGxE,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,MAAc,EAAE,qBAAqB,GAAG,KAAK,EAAW,EAAE;;IAClG,IACE,CAAC,IAAI;QACL,CAAC,MAAM;QAEP,CAAC,CAAC,qBAAqB,IAAI,gBAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAC5D,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAExC,MAAM,aAAa,GAAG,aAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAA;IACtE,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAA;IAIhC,IAAI,CAAC,uBAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,uBAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAK3F,MAAM,KAAK,GAAG,MAAA,uBAAU,CAAC,cAAc,CAAC,aAAa,CAAC,0CAAG,gBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACjF,OAAO,KAAK,KAAK,iCAAoB,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,iCAAoB,CAAC,GAAG,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9G,CAAC,CAAA;AA3BY,QAAA,aAAa,iBA2BzB;AAED,MAAM,oBAAoB,GAAG,CAAC,IAAU,EAAE,MAAc,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAE9F,MAAM,eAAe,GAAG,qBAAa,CAAA;AAErC,MAAM,eAAe,GAAG,oBAAoB,CAAA;AAE5C,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AAEjD,MAAM,mBAAmB,GAAG,oBAAoB,CAAA;AAEhD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,uBAAU,CAAC,aAAa,CAAC,CAAA;AAExE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;AAEpE,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,EAAE,CAC1D,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,KAAI,oBAAoB,CAAC,uBAAU,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AAE1F,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,uBAAU,CAAC,aAAa,CAAC,CAAA;AAExE,MAAM,oBAAoB,GAAG,iBAAiB,CAAA;AAM9C,MAAM,cAAc,GAAG,iBAAiB,CAAA;AAMxC,MAAM,SAAS,GAAG,iBAAiB,CAAA;AAOnC,MAAM,cAAc,GAAG,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;AAGlE,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;AAEtE,MAAM,wBAAwB,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAoC,EAAE,EAAE,CAC1F,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAC5B,CAAC,aAAa,EAAE,EAAE,CAChB,uBAAU,CAAC,aAAa,CAAC,aAAa,CAAC;IACvC,aAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAClC,CAAC,mBAAmB,EAAE,EAAE,CACtB,uBAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAC7C,uBAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,uBAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAC5F,CACJ,CAAA;AAEH,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,WAAmB,EAAE,UAAgB,EAAE,EAAE,CACxE,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,aAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AAEhH,MAAM,sBAAsB,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAsC,EAAE,EAAE,CAC1F,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AAE/D,MAAM,iCAAiC,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAW,EAAE,CACpF,oBAAoB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AAE/D,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAGjE,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,YAAkB,EAAW,EAAE,CACzF,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IACzB,CAAC,oBAAoB,CAAC,uBAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC;QAE1D,sBAAsB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;AAE/D,MAAM,cAAc,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAEzE,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,YAAkB,EAAW,EAAE,CAClF,aAAK,CAAC,WAAW,CAAC,YAAY,CAAC;IAC/B,CAAC,aAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;AAE3F,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAE3E,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,YAAkB,EAAW,EAAE,CACvF,CAAC,aAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;AAE1F,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,UAAkB,EAAE,YAAkB,EAAW,EAAE,CACpF,CAAC,aAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;IAClC,CAAC,aAAK,CAAC,aAAa,CAAC,YAAY,CAAC;IAClC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;AAEpD,MAAM,wBAAwB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC1E,MAAM,qBAAqB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAGvE,MAAM,0BAA0B,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AACrF,MAAM,0BAA0B,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAGrF,MAAM,sBAAsB,GAAG,CAAC,EAC9B,IAAI,EACJ,UAAU,GAAG,IAAI,EACjB,iBAAiB,GAAG,KAAK,EACzB,oBAAoB,GAAG,KAAK,GAM7B,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,IAAI,YAAY,GAAgB,EAAE,CAAA;IAClC,IAAI,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,YAAY,GAAG,EAAE,CAAA;IACnB,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,YAAY,GAAG,gBAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,gBAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;YACxD,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC/C,CAAC;IACH,CAAC;IAGD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,yBAAa,CAAC,YAAY,CAAC,CAAA;IAExF,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;IAE5B,IAAI,CAAC,oBAAoB,IAAI,CAAC,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,aAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAExF,MAAM,mBAAmB,GAAG,aAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,uBAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACzG,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,uBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACtC,CAAC,CAAA;AAEY,QAAA,UAAU,GAAG;IAExB,eAAe;IACf,iBAAiB;IACjB,0BAA0B;IAC1B,aAAa;IACb,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,gBAAgB;IAChB,uBAAuB;IAEvB,eAAe,EAAf,uBAAe;IACf,aAAa,EAAb,qBAAa;IACb,mBAAmB,EAAnB,2BAAmB;IACnB,sBAAsB,EAAtB,8BAAsB;IACtB,oBAAoB,EAApB,4BAAoB;IACpB,aAAa,EAAb,qBAAa;IACb,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IAEpB,cAAc;IAEd,SAAS;IAET,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,sBAAsB;IACtB,iCAAiC;IACjC,eAAe;IACf,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,wBAAwB;IACxB,qBAAqB;IAErB,0BAA0B;IAC1B,0BAA0B;IAE1B,sBAAsB;CACvB,CAAA"}
1
+ {"version":3,"file":"authorizer.js","sourceRoot":"","sources":["../../src/auth/authorizer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Record, Records } from '../record'\nimport { Survey, Surveys } from '../survey'\nimport { AuthGroup, AuthGroupName } from './authGroup'\nimport { AuthGroups } from './authGroups'\nimport { Permission, RecordStepPermission } from './permission'\nimport { User } from './user'\nimport { Users } from './users'\n\n// ======\n// ====== Survey\n// ======\n\nconst _getSurveyUserGroup = (user: User, surveyInfo: Survey, includeSystemAdmin = true): AuthGroup | undefined =>\n surveyInfo ? Users.getAuthGroupBySurveyUuid(surveyInfo.uuid, includeSystemAdmin)(user) : undefined\n\nconst _hasAuthGroupForSurvey = ({ user, surveyInfo }: { user: User; surveyInfo: Survey }): boolean =>\n Boolean(_getSurveyUserGroup(user, surveyInfo))\n\nconst _hasSurveyPermission =\n (permission: Permission) =>\n (user: User, surveyInfo: Survey): boolean => {\n if (!user) return false\n\n if (Users.isSystemAdmin(user)) return true\n\n if (!surveyInfo) return false\n\n const authGroup = _getSurveyUserGroup(user, surveyInfo)\n if (!authGroup) return false\n\n return AuthGroups.getPermissions(authGroup).includes(permission)\n }\n\nconst _hasPermissionInSomeGroup =\n (permission: Permission) =>\n (user: User): boolean => {\n if (Users.isSystemAdmin(user)) return true\n const groups = Users.getAuthGroups(user)\n return groups.some((group) => AuthGroups.getPermissions(group).includes(permission))\n }\n\n// CREATE\nconst canCreateSurvey = _hasPermissionInSomeGroup(Permission.surveyCreate)\nconst canCreateTemplate = (user: User): boolean => Users.isSystemAdmin(user)\nconst getMaxSurveysUserCanCreate = (user: User): number => {\n if (Users.isSystemAdmin(user)) return Number.NaN\n if (canCreateSurvey(user)) return Users.getMaxSurveys(user)\n return 0\n}\n\n// READ\nconst canViewSurvey = (user: User, surveyInfo: Survey): boolean =>\n Users.isSystemAdmin(user) || _hasAuthGroupForSurvey({ user, surveyInfo })\nconst canExportSurvey = _hasSurveyPermission(Permission.recordAnalyse)\nconst canExportSurveysList = (user: User): boolean => Users.isSystemAdmin(user)\nconst canViewTemplates = (user: User): boolean => Users.isSystemAdmin(user)\n// UPDATE\nconst canEditSurvey = _hasSurveyPermission(Permission.surveyEdit)\nconst canEditSurveyConfig = (user: User): boolean => Users.isSystemAdmin(user)\nconst canEditSurveyOwner = (user: User): boolean => Users.isSystemAdmin(user)\nconst canEditTemplates = (user: User): boolean => Users.isSystemAdmin(user)\nconst canRefreshAllSurveyRdbs = (user: User): boolean => Users.isSystemAdmin(user)\n\n// ======\n// ====== Record\n// ======\n\n// CREATE\nexport const canCreateRecord = _hasSurveyPermission(Permission.recordCreate)\n\n// READ\nexport const canViewRecord = _hasSurveyPermission(Permission.recordView)\nexport const canExportAllRecords = _hasSurveyPermission(Permission.recordCleanse)\nexport const canViewNotOwnedRecords = (user: User, surveyInfo: Survey): boolean => {\n if (!surveyInfo || !canViewSurvey(user, surveyInfo)) return false\n\n const { uuid: surveyUuid } = surveyInfo\n const groupInCurrentSurvey = Users.getAuthGroupBySurveyUuid(surveyUuid)(user)\n const groupName = groupInCurrentSurvey?.name\n\n if (groupName === AuthGroupName.dataEditor) {\n return Surveys.isDataEditorViewNotOwnedRecordsAllowed(surveyInfo)\n }\n if (groupName === AuthGroupName.dataAnalyst) {\n return Surveys.isDataAnalystViewNotOwnedRecordsAllowed(surveyInfo)\n }\n if (canExportAllRecords(user, surveyInfo)) return true\n\n return false\n}\nexport const canExportRecordsList = _hasSurveyPermission(Permission.surveyEdit)\n\n// UPDATE\nexport const canEditRecord = (user: User, record: Record, allowAnalysisStepEdit = false): boolean => {\n if (\n !user ||\n !record ||\n // records in analysis cannot be edited\n (!allowAnalysisStepEdit && Records.isInAnalysisStep(record))\n ) {\n return false\n }\n // system admin does not have an auth group associated to the survey, but he can always edit records;\n if (Users.isSystemAdmin(user)) {\n return true\n }\n const { surveyUuid, ownerUuid } = record\n // if user doesn't have an auth group associated to the survey, he cannot edit records\n const userAuthGroup = Users.getAuthGroupBySurveyUuid(surveyUuid)(user)\n if (!userAuthGroup) return false\n\n // groups without the record edit permission (e.g. survey guests) cannot edit records,\n // even when their record steps permission allows it (record steps permissions are used also to view records)\n if (!AuthGroups.getPermissions(userAuthGroup).includes(Permission.recordEdit)) return false\n\n // Level = 'all' or 'own'. If 'own', user can only edit records assigned to him\n // If 'all', he can edit all survey's records\n // permission checks must not throw: a group without record steps cannot edit records\n const level = AuthGroups.getRecordSteps(userAuthGroup)?.[Records.getStep(record)]\n return level === RecordStepPermission.all || (level === RecordStepPermission.own && ownerUuid === user.uuid)\n}\n\nconst canChangeRecordProps = (user: User, record: Record) => canEditRecord(user, record, true)\n\nconst canDeleteRecord = canEditRecord\n\nconst canDemoteRecord = canChangeRecordProps\n\nconst canChangeRecordOwner = canChangeRecordProps\n\nconst canChangeRecordStep = canChangeRecordProps\n\nconst canCleanseRecords = _hasSurveyPermission(Permission.recordCleanse)\n\nconst canExportRecords = _hasSurveyPermission(Permission.recordView)\n\nconst canImportRecords = (user: User, surveyInfo: Survey) =>\n surveyInfo?.published && _hasSurveyPermission(Permission.recordCreate)(user, surveyInfo)\n\nconst canAnalyzeRecords = _hasSurveyPermission(Permission.recordAnalyse)\n\nconst canUpdateRecordsStep = canAnalyzeRecords\n\n// ======\n// ====== Explorer\n// ======\n\nconst canUseExplorer = canCleanseRecords\n\n// ======\n// ====== Map\n// ======\n\nconst canUseMap = canAnalyzeRecords\n\n// ======\n// ====== Users\n// ======\n\n// CREATE\nconst canInviteUsers = _hasSurveyPermission(Permission.userInvite)\n\n// READ\nconst canViewSurveyUsers = _hasSurveyPermission(Permission.userInvite)\n\nconst _usersBelongToSameSurvey = ({ user, userToView }: { user: User; userToView: User }) =>\n Users.getAuthGroups(user).some(\n (authGroupUser) =>\n AuthGroups.isSurveyGroup(authGroupUser) &&\n Users.getAuthGroups(userToView).some(\n (authGroupUserToView) =>\n AuthGroups.isSurveyGroup(authGroupUserToView) &&\n AuthGroups.getSurveyUuid(authGroupUserToView) === AuthGroups.getSurveyUuid(authGroupUser)\n )\n )\n\nconst canViewUser = (user: User, _surveyInfo: Survey, userToView: User) =>\n Users.isSystemAdmin(user) || Users.isEqual(userToView)(user) || _usersBelongToSameSurvey({ user, userToView })\n\nconst canViewOtherUsersEmail = ({ user, surveyInfo }: { user: User; surveyInfo: Survey }) =>\n Users.isSystemAdmin(user) || canInviteUsers(user, surveyInfo)\n\nconst canViewOtherUsersNameInSameSurvey = (user: User, surveyInfo: Survey): boolean =>\n _hasSurveyPermission(Permission.recordView)(user, surveyInfo)\n\nconst canViewAllUsers = (user: User) => Users.isSystemAdmin(user)\n\n// EDIT\nconst _hasUserEditAccess = (user: User, surveyInfo: Survey, userToUpdate: User): boolean =>\n Users.isSystemAdmin(user) ||\n (_hasSurveyPermission(Permission.userEdit)(user, surveyInfo) &&\n // user to update has an auth group in the same survey\n _hasAuthGroupForSurvey({ user: userToUpdate, surveyInfo }))\n\nconst canCreateUsers = (user: User): boolean => Users.isSystemAdmin(user)\n\nconst canEditUser = (user: User, surveyInfo: Survey, userToUpdate: User): boolean =>\n Users.hasAccepted(userToUpdate) &&\n (Users.isEqual(user)(userToUpdate) || _hasUserEditAccess(user, surveyInfo, userToUpdate))\n\nconst canEditUserEmail = (user: User): boolean => Users.isSystemAdmin(user)\n\nconst canEditUserGroup = (user: User, surveyInfo: Survey, userToUpdate: User): boolean =>\n !Users.isEqual(user)(userToUpdate) && _hasUserEditAccess(user, surveyInfo, userToUpdate)\n\nconst canRemoveUser = (user: User, surveyInfo: Survey, userToRemove: User): boolean =>\n !Users.isEqual(user)(userToRemove) &&\n !Users.isSystemAdmin(userToRemove) &&\n _hasUserEditAccess(user, surveyInfo, userToRemove)\n\nconst canEditUserSurveyManager = (user: User) => Users.isSystemAdmin(user)\nconst canEditUserMaxSurveys = (user: User) => Users.isSystemAdmin(user)\n\n// USER ACCESS REQUESTS\nconst canViewUsersAccessRequests = (user: User): boolean => Users.isSystemAdmin(user)\nconst canEditUsersAccessRequests = (user: User): boolean => Users.isSystemAdmin(user)\n\n// INVITE\nconst getUserGroupsCanAssign = ({\n user,\n surveyInfo = null,\n editingLoggedUser = false,\n showOnlySurveyGroups = false,\n}: {\n user: User\n surveyInfo?: Survey | null\n editingLoggedUser?: boolean\n showOnlySurveyGroups?: boolean\n}) => {\n const groups = []\n\n let surveyGroups: AuthGroup[] = []\n if (editingLoggedUser && !surveyInfo) {\n // This can happen for system administrators when they don't have an active survey\n surveyGroups = []\n } else if (surveyInfo) {\n if (surveyInfo.published) {\n surveyGroups = Surveys.getAuthGroups(surveyInfo)\n } else {\n const adminGroup = Surveys.getAuthGroupAdmin(surveyInfo)\n surveyGroups = adminGroup ? [adminGroup] : []\n }\n }\n\n // do not allow surveyEditor group selection (remove surveyEditor group completely?)\n surveyGroups = surveyGroups.filter((group) => group.name !== AuthGroupName.surveyEditor)\n\n groups.push(...surveyGroups)\n\n if (!showOnlySurveyGroups && (Users.isSystemAdmin(user) || Users.isSurveyManager(user))) {\n // Add SystemAdmin or SurveyManager group if current user is a SystemAdmin or SurveyManager himself\n const userNonSurveyGroups = Users.getAuthGroups(user).filter((group) => !AuthGroups.isSurveyGroup(group))\n groups.push(...userNonSurveyGroups)\n }\n return AuthGroups.sortGroups(groups)\n}\n\nexport const Authorizer = {\n // Survey\n canCreateSurvey,\n canCreateTemplate,\n getMaxSurveysUserCanCreate,\n canViewSurvey,\n canExportSurvey,\n canExportSurveysList,\n canViewTemplates,\n canEditSurvey,\n canEditSurveyConfig,\n canEditSurveyOwner,\n canEditTemplates,\n canRefreshAllSurveyRdbs,\n // Record\n canCreateRecord,\n canViewRecord,\n canExportAllRecords,\n canViewNotOwnedRecords,\n canExportRecordsList,\n canEditRecord,\n canDeleteRecord,\n canDemoteRecord,\n canChangeRecordOwner,\n canChangeRecordStep,\n canCleanseRecords,\n canExportRecords,\n canImportRecords,\n canAnalyzeRecords,\n canUpdateRecordsStep,\n // Explorer\n canUseExplorer,\n // Map\n canUseMap,\n // Users\n canInviteUsers,\n canViewSurveyUsers,\n canViewUser,\n canViewOtherUsersEmail,\n canViewOtherUsersNameInSameSurvey,\n canViewAllUsers,\n canCreateUsers,\n canEditUser,\n canEditUserEmail,\n canEditUserGroup,\n canRemoveUser,\n canEditUserSurveyManager,\n canEditUserMaxSurveys,\n // User Access Requests\n canViewUsersAccessRequests,\n canEditUsersAccessRequests,\n // Invite\n getUserGroupsCanAssign,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/auth/factory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAChC,iCAAoD;AAUvC,QAAA,WAAW,GAAqC;IAC3D,cAAc,EAAE,CAAC,MAAyB,EAAQ,EAAE;QAClD,MAAM,YAAY,GAAG;YACnB,iBAAiB,EAAE,KAAK;YACxB,MAAM,EAAE,iBAAU,CAAC,OAAO;SAC3B,CAAA;QAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,mCACzD,YAAY,GACZ,MAAM,CACV,CAAA;QAED,OAAO;YACL,KAAK;YACL,iBAAiB;YACjB,IAAI;YACJ,KAAK,EAAE;gBACL,KAAK;gBACL,KAAK;aACN;YACD,MAAM;YACN,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/auth/factory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAChC,iCAAoD;AAUvC,QAAA,WAAW,GAAqC;IAC3D,cAAc,EAAE,CAAC,MAAyB,EAAQ,EAAE;QAClD,MAAM,YAAY,GAAG;YACnB,iBAAiB,EAAE,KAAK;YACxB,MAAM,EAAE,iBAAU,CAAC,OAAO;SAC3B,CAAA;QAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,mCACzD,YAAY,GACZ,MAAM,CACV,CAAA;QAED,OAAO;YACL,KAAK;YACL,iBAAiB;YACjB,IAAI;YACJ,KAAK,EAAE;gBACL,KAAK;gBACL,KAAK;aACN;YACD,MAAM;YACN,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Dictionary, Factory } from '../common'\nimport { UUIDs } from '../utils'\nimport { User, UserStatus, UserTitle } from './user'\n\nexport type UserFactoryParams = {\n email: string\n name: string\n status?: UserStatus\n title?: UserTitle\n extra?: Dictionary<any>\n}\n\nexport const UserFactory: Factory<User, UserFactoryParams> = {\n createInstance: (params: UserFactoryParams): User => {\n const defaultProps = {\n hasProfilePicture: false,\n status: UserStatus.INVITED,\n }\n\n const { email, name, hasProfilePicture, status, title, extra } = {\n ...defaultProps,\n ...params,\n }\n\n return {\n email,\n hasProfilePicture,\n name,\n props: {\n title,\n extra,\n },\n status,\n uuid: UUIDs.v4(),\n }\n },\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AAEnB,yCAA2C;AAAlC,0GAAA,aAAa,OAAA;AAwBtB,+BAA8C;AAArC,kGAAA,UAAU,OAAA;AAAE,iGAAA,SAAS,OAAA;AAC9B,qCAAuC;AAA9B,sGAAA,WAAW,OAAA;AAEpB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AAInB,iCAA+B;AAAtB,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AAEnB,yCAA2C;AAAlC,0GAAA,aAAa,OAAA;AAwBtB,+BAA8C;AAArC,kGAAA,UAAU,OAAA;AAAE,iGAAA,SAAS,OAAA;AAC9B,qCAAuC;AAA9B,sGAAA,WAAW,OAAA;AAEpB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AAInB,iCAA+B;AAAtB,8FAAA,KAAK,OAAA","sourcesContent":["export { Authorizer } from './authorizer'\n\nexport { AuthGroupName } from './authGroup'\nexport type { AuthGroup } from './authGroup'\n\nexport type {\n User,\n UserAuthGroup,\n UserAuthGroupProps,\n UserInvitation,\n UserPrefs,\n UserProps,\n UserPrefSurveys,\n} from './user'\nexport type {\n AuthToken,\n UserAuthTokenPayload,\n UserAuthRefreshToken,\n UserAuthRefreshTokenPayload,\n UserAuthRefreshTokenProps,\n UserTokenPayload,\n DownloadAuthTokenPayload,\n} from './userAuth'\nexport type { UserService } from './userService'\nexport type { UserAuthTokenService } from './userAuthTokenService'\n\nexport { UserStatus, UserTitle } from './user'\nexport { UserFactory } from './factory'\n\nexport { Permission } from './permission'\n\nexport type { UserGroupQualifier, UserGroupProps, UserGroup } from './userGroup'\n\nexport { Users } from './users'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/auth/permission.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAWX;AAXD,WAAY,UAAU;IACpB,2CAA6B,CAAA;IAC7B,uCAAyB,CAAA;IACzB,2CAA6B,CAAA;IAC7B,uCAAyB,CAAA;IACzB,uCAAyB,CAAA;IACzB,6CAA+B,CAAA;IAC/B,6CAA+B,CAAA;IAC/B,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;AACrC,CAAC,EAXW,UAAU,0BAAV,UAAU,QAWrB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,mCAAW,CAAA;IACX,mCAAW,CAAA;AACb,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/auth/permission.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAWX;AAXD,WAAY,UAAU;IACpB,2CAA6B,CAAA;IAC7B,uCAAyB,CAAA;IACzB,2CAA6B,CAAA;IAC7B,uCAAyB,CAAA;IACzB,uCAAyB,CAAA;IACzB,6CAA+B,CAAA;IAC/B,6CAA+B,CAAA;IAC/B,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;AACrC,CAAC,EAXW,UAAU,0BAAV,UAAU,QAWrB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,mCAAW,CAAA;IACX,mCAAW,CAAA;AACb,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B","sourcesContent":["export enum Permission {\n surveyCreate = 'surveyCreate',\n surveyEdit = 'surveyEdit',\n recordCreate = 'recordCreate',\n recordEdit = 'recordEdit',\n recordView = 'recordView',\n recordCleanse = 'recordCleanse',\n recordAnalyse = 'recordAnalyse',\n userEdit = 'userEdit',\n userInvite = 'userInvite',\n permissionsEdit = 'permissionsEdit',\n}\n\nexport enum RecordStepPermission {\n all = 'all',\n own = 'own',\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/auth/user.ts"],"names":[],"mappings":";;;AAGA,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,6DAA+C,CAAA;AACjD,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,sBAAS,CAAA;IACT,sBAAS,CAAA;IACT,8CAAiC,CAAA;AACnC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/auth/user.ts"],"names":[],"mappings":";;;AAGA,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,6DAA+C,CAAA;AACjD,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,sBAAS,CAAA;IACT,sBAAS,CAAA;IACT,8CAAiC,CAAA;AACnC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB","sourcesContent":["import { ArenaObject, Dictionary } from '../common'\nimport { AuthGroup } from './authGroup'\n\nexport enum UserStatus {\n INVITED = 'INVITED',\n ACCEPTED = 'ACCEPTED',\n FORCE_CHANGE_PASSWORD = 'FORCE_CHANGE_PASSWORD',\n}\n\nexport enum UserTitle {\n mr = 'mr',\n ms = 'ms',\n preferNotToSay = 'preferNotToSay',\n}\n\nexport interface UserPrefSurveys {\n [surveyId: number]: { cycle: number }\n current?: number\n}\n\nexport interface UserPrefs {\n surveys?: UserPrefSurveys\n}\n\nexport interface UserProps {\n extra?: Dictionary<any>\n // private props (visible only to the user itself)\n mapApiKeyByProvider?: Dictionary<string>\n // restricted props (editable only by system admins)\n maxSurveys?: number\n title?: UserTitle\n}\n\nexport interface UserInvitation {\n expired: boolean\n}\n\nexport interface UserAuthGroupProps {\n extra: Dictionary<any>\n}\n\nexport interface UserAuthGroup extends AuthGroup {\n props?: UserAuthGroupProps\n}\n\nexport interface User extends ArenaObject<UserProps> {\n authGroups?: UserAuthGroup[]\n email: string\n hasProfilePicture: boolean\n name: string\n prefs?: UserPrefs\n status: UserStatus\n password?: string\n invitation?: UserInvitation\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"userAuth.js","sourceRoot":"","sources":["../../src/auth/userAuth.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"userAuth.js","sourceRoot":"","sources":["../../src/auth/userAuth.ts"],"names":[],"mappings":"","sourcesContent":["import { AppInfo } from '../app'\n\nexport type AuthToken = {\n token: string\n dateCreated: Date\n expiresAt: Date\n}\n\nexport type UserAuthRefreshTokenProps = {\n appInfo?: AppInfo\n ipAddress?: string\n userAgent?: string\n}\n\nexport type UserAuthRefreshToken = AuthToken & {\n uuid: string\n userUuid: string\n props: UserAuthRefreshTokenProps\n revoked?: boolean\n}\n\nexport type UserTokenPayload = {\n userUuid: string\n}\n\nexport type UserAuthTokenPayload = UserTokenPayload & {\n uuid?: string\n}\n\nexport type UserAuthRefreshTokenPayload = UserTokenPayload & {\n uuid: string\n}\n\nexport type DownloadAuthTokenPayload = UserTokenPayload & {\n fileName: string\n}\n"]}
@@ -1,6 +1,14 @@
1
1
  import { ArenaService } from '../common';
2
2
  import { UserAuthRefreshToken, UserAuthRefreshTokenProps, AuthToken, UserTokenPayload } from './userAuth';
3
3
  export interface UserAuthTokenService extends ArenaService {
4
+ /**
5
+ * Create new auth and refresh tokens for the specified user.
6
+ * @param options
7
+ * @param options.userUuid The UUID of the user for whom the tokens are being created.
8
+ * @param options.props Additional properties for the refresh token.
9
+ * @param dbClient Optional database client for transaction management.
10
+ * @returns An object containing the created AuthToken and UserAuthRefreshToken.
11
+ */
4
12
  createUserAuthTokens(options: {
5
13
  userUuid: string;
6
14
  props: UserAuthRefreshTokenProps;
@@ -8,11 +16,26 @@ export interface UserAuthTokenService extends ArenaService {
8
16
  authToken: AuthToken;
9
17
  refreshToken: UserAuthRefreshToken;
10
18
  }>;
19
+ /**
20
+ * Create a one-time download auth token for the specified user and file name.
21
+ * @param options
22
+ * @param options.userUuid The UUID of the user for whom the token is being created.
23
+ * @param options.fileName The name of the file to be downloaded.
24
+ * @returns An AuthToken object containing the token string, creation date, and expiration date.
25
+ */
11
26
  createDownloadAuthToken(options: {
12
27
  userUuid: string;
13
28
  fileName: string;
14
29
  }): AuthToken;
15
30
  getByUuid(tokenUuid: string): Promise<UserAuthRefreshToken | null>;
31
+ /**
32
+ * Rotate (refresh) the auth and refresh tokens using the provided refresh token.
33
+ * @param options
34
+ * @param options.refreshToken The current refresh token used to obtain new tokens.
35
+ * @param options.refreshTokenProps Additional properties for the new refresh token.
36
+ * @param dbClient Optional database client for transaction management.
37
+ * @returns An object containing the new AuthToken and UserAuthRefreshToken, or null if the refresh token is invalid.
38
+ */
16
39
  rotateTokens(options: {
17
40
  refreshToken: string;
18
41
  refreshTokenProps: UserAuthRefreshTokenProps;
@@ -27,5 +50,10 @@ export interface UserAuthTokenService extends ArenaService {
27
50
  userUuid: string;
28
51
  }): Promise<void>;
29
52
  deleteExpired(): Promise<number>;
53
+ /**
54
+ * Verify the provided auth token and return its payload.
55
+ * @param token The auth token string to verify.
56
+ * @returns The payload of the verified token.
57
+ */
30
58
  verifyAuthToken<P extends UserTokenPayload>(token: string): P;
31
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"userAuthTokenService.js","sourceRoot":"","sources":["../../src/auth/userAuthTokenService.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"userAuthTokenService.js","sourceRoot":"","sources":["../../src/auth/userAuthTokenService.ts"],"names":[],"mappings":"","sourcesContent":["import { ArenaService } from '../common'\nimport { UserAuthRefreshToken, UserAuthRefreshTokenProps, AuthToken, UserTokenPayload } from './userAuth'\n\nexport interface UserAuthTokenService extends ArenaService {\n // ==== CREATE\n /**\n * Create new auth and refresh tokens for the specified user.\n * @param options\n * @param options.userUuid The UUID of the user for whom the tokens are being created.\n * @param options.props Additional properties for the refresh token.\n * @param dbClient Optional database client for transaction management.\n * @returns An object containing the created AuthToken and UserAuthRefreshToken.\n */\n createUserAuthTokens(\n options: { userUuid: string; props: UserAuthRefreshTokenProps },\n dbClient?: any\n ): Promise<{ authToken: AuthToken; refreshToken: UserAuthRefreshToken }>\n\n /**\n * Create a one-time download auth token for the specified user and file name.\n * @param options\n * @param options.userUuid The UUID of the user for whom the token is being created.\n * @param options.fileName The name of the file to be downloaded.\n * @returns An AuthToken object containing the token string, creation date, and expiration date.\n */\n createDownloadAuthToken(options: { userUuid: string; fileName: string }): AuthToken\n\n // ==== READ\n getByUuid(tokenUuid: string): Promise<UserAuthRefreshToken | null>\n\n // ==== UPDATE\n /**\n * Rotate (refresh) the auth and refresh tokens using the provided refresh token.\n * @param options\n * @param options.refreshToken The current refresh token used to obtain new tokens.\n * @param options.refreshTokenProps Additional properties for the new refresh token.\n * @param dbClient Optional database client for transaction management.\n * @returns An object containing the new AuthToken and UserAuthRefreshToken, or null if the refresh token is invalid.\n */\n rotateTokens(\n options: { refreshToken: string; refreshTokenProps: UserAuthRefreshTokenProps },\n dbClient?: any\n ): Promise<{\n authToken: AuthToken\n refreshToken: UserAuthRefreshToken\n } | null>\n\n revoke(options: { tokenUuid: string }): Promise<void>\n revokeAll(options: { userUuid: string }): Promise<void>\n\n // ==== DELETE\n deleteExpired(): Promise<number>\n\n // ==== UTIL\n /**\n * Verify the provided auth token and return its payload.\n * @param token The auth token string to verify.\n * @returns The payload of the verified token.\n */\n verifyAuthToken<P extends UserTokenPayload>(token: string): P\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"userGroup.js","sourceRoot":"","sources":["../../src/auth/userGroup.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"userGroup.js","sourceRoot":"","sources":["../../src/auth/userGroup.ts"],"names":[],"mappings":"","sourcesContent":["export type UserGroupQualifier = {\n name: string\n value: string\n}\n\nexport type UserGroupProps = {\n name?: string\n qualifiers?: UserGroupQualifier[]\n}\n\nexport type UserGroup = {\n uuid: string\n surveyUuid?: string\n props: UserGroupProps\n dateCreated?: string\n dateModified?: string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"userService.js","sourceRoot":"","sources":["../../src/auth/userService.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"userService.js","sourceRoot":"","sources":["../../src/auth/userService.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../auth'\nimport { ArenaService } from '../common'\n\nexport interface UserService extends ArenaService {\n // ==== CREATE\n create(options: {\n user: User\n surveyId: number\n surveyCycleKey: string\n userToInviteParam: string\n urlServer: string\n repeatInvitation?: boolean\n }): Promise<User>\n\n // ==== READ\n count(options: { user: User; surveyId: number }): Promise<number>\n\n get(options: { userUuid: string } | { email: string; password?: string }): Promise<User | null>\n getMany(options: { surveyId: number; limit?: number; offset?: number; user: User }): Promise<Array<User>>\n getProfilePicture(options: { userUuid: string }): Promise<string>\n\n // ==== UPDATE\n update(options: { user: User; surveyId: number; userToUpdate: User; filePath?: string }): Promise<User>\n updateUserPrefs(options: { userToUpdate: User }): Promise<User>\n\n // ==== DELETE\n delete(options: { surveyId: number; user: User; userUuid: string }): Promise<void>\n}\n"]}
@@ -25,6 +25,7 @@ const getCombinedExtraProps = (surveyUuid) => (user) => {
25
25
  const userSurveyAuthGroup = user ? exports.Users.getAuthGroupBySurveyUuid(surveyUuid)(user) : null;
26
26
  const userAuthGroupExtraProps = (_b = (_a = userSurveyAuthGroup === null || userSurveyAuthGroup === void 0 ? void 0 : userSurveyAuthGroup.props) === null || _a === void 0 ? void 0 : _a.extra) !== null && _b !== void 0 ? _b : {};
27
27
  const userExtraProps = (_c = user === null || user === void 0 ? void 0 : user.props.extra) !== null && _c !== void 0 ? _c : {};
28
+ // user auth group extra props overwrite user extra props
28
29
  return Object.assign(Object.assign({}, userExtraProps), userAuthGroupExtraProps);
29
30
  };
30
31
  const getMaxSurveys = (user) => { var _a, _b; return (_b = (_a = user.props) === null || _a === void 0 ? void 0 : _a.maxSurveys) !== null && _b !== void 0 ? _b : defaultMaxSurveys; };
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/auth/users.ts"],"names":[],"mappings":";;;AAEA,6CAAyC;AACzC,iCAAwD;AAExD,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,MAAM,WAAW,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,iBAAU,CAAC,QAAQ,CAAA;AAEjF,MAAM,aAAa,GAAG,CAAC,IAAU,EAAmB,EAAE,WAAC,OAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,mCAAI,EAAE,CAAA,EAAA,CAAA;AAE7E,MAAM,aAAa,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAU,CAAC,aAAa,CAAC,CAAA;AAEjG,MAAM,eAAe,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAU,CAAC,eAAe,CAAC,CAAA;AAErG,MAAM,wBAAwB,GAC5B,CAAC,UAAmB,EAAE,kBAAkB,GAAG,IAAI,EAAE,EAAE,CACnD,CAAC,IAAU,EAA6B,EAAE;IACxC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,OAAO,kBAAkB,IAAI,aAAa,CAAC,IAAI,CAAC;QAC9C,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,aAAa,CAAC;QAC3C,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAA;AACzE,CAAC,CAAA;AAEH,MAAM,kBAAkB,GAAG,CAAC,SAAwB,EAAE,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,qBAAqB,GACzB,CAAC,UAAkB,EAAE,EAAE,CACvB,CAAC,IAAU,EAAmB,EAAE;;IAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC,aAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1F,MAAM,uBAAuB,GAAG,MAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,0CAAE,KAAK,mCAAI,EAAE,CAAA;IACvE,MAAM,cAAc,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAA;IAE9C,uCAAY,cAAc,GAAK,uBAAuB,EAAE;AAC1D,CAAC,CAAA;AAEH,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,mCAAI,iBAAiB,CAAA,EAAA,CAAA;AAEjF,MAAM,OAAO,GACX,CAAC,aAAmB,EAAE,EAAE,CACxB,CAAC,IAAU,EAAW,EAAE,CACtB,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjF,QAAA,KAAK,GAAG;IACnB,WAAW;IACX,aAAa;IACb,aAAa;IACb,eAAe;IACf,wBAAwB;IACxB,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,OAAO;CACR,CAAA"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/auth/users.ts"],"names":[],"mappings":";;;AAEA,6CAAyC;AACzC,iCAAwD;AAExD,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,MAAM,WAAW,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,iBAAU,CAAC,QAAQ,CAAA;AAEjF,MAAM,aAAa,GAAG,CAAC,IAAU,EAAmB,EAAE,WAAC,OAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,mCAAI,EAAE,CAAA,EAAA,CAAA;AAE7E,MAAM,aAAa,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAU,CAAC,aAAa,CAAC,CAAA;AAEjG,MAAM,eAAe,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAU,CAAC,eAAe,CAAC,CAAA;AAErG,MAAM,wBAAwB,GAC5B,CAAC,UAAmB,EAAE,kBAAkB,GAAG,IAAI,EAAE,EAAE,CACnD,CAAC,IAAU,EAA6B,EAAE;IACxC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,OAAO,kBAAkB,IAAI,aAAa,CAAC,IAAI,CAAC;QAC9C,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,aAAa,CAAC;QAC3C,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAA;AACzE,CAAC,CAAA;AAEH,MAAM,kBAAkB,GAAG,CAAC,SAAwB,EAAE,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,qBAAqB,GACzB,CAAC,UAAkB,EAAE,EAAE,CACvB,CAAC,IAAU,EAAmB,EAAE;;IAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC,aAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1F,MAAM,uBAAuB,GAAG,MAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,0CAAE,KAAK,mCAAI,EAAE,CAAA;IACvE,MAAM,cAAc,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAA;IAC9C,yDAAyD;IACzD,uCAAY,cAAc,GAAK,uBAAuB,EAAE;AAC1D,CAAC,CAAA;AAEH,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,mCAAI,iBAAiB,CAAA,EAAA,CAAA;AAEjF,MAAM,OAAO,GACX,CAAC,aAAmB,EAAE,EAAE,CACxB,CAAC,IAAU,EAAW,EAAE,CACtB,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AAEjF,QAAA,KAAK,GAAG;IACnB,WAAW;IACX,aAAa;IACb,aAAa;IACb,eAAe;IACf,wBAAwB;IACxB,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,OAAO;CACR,CAAA","sourcesContent":["import { Dictionary } from '../common'\nimport { AuthGroupName } from './authGroup'\nimport { AuthGroups } from './authGroups'\nimport { User, UserAuthGroup, UserStatus } from './user'\n\nconst defaultMaxSurveys = 5\n\nconst hasAccepted = (user: User): boolean => user?.status === UserStatus.ACCEPTED\n\nconst getAuthGroups = (user: User): UserAuthGroup[] => user?.authGroups ?? []\n\nconst isSystemAdmin = (user: User): boolean => getAuthGroups(user).some(AuthGroups.isSystemAdmin)\n\nconst isSurveyManager = (user: User): boolean => getAuthGroups(user).some(AuthGroups.isSurveyManager)\n\nconst getAuthGroupBySurveyUuid =\n (surveyUuid?: string, includeSystemAdmin = true) =>\n (user: User): UserAuthGroup | undefined => {\n const authGroups = getAuthGroups(user)\n if (!authGroups) return undefined\n return includeSystemAdmin && isSystemAdmin(user)\n ? authGroups.find(AuthGroups.isSystemAdmin)\n : authGroups.find((authGroup) => authGroup.surveyUuid === surveyUuid)\n }\n\nconst getAuthGroupByName = (groupName: AuthGroupName) => (user: User) => {\n const authGroups = getAuthGroups(user)\n return authGroups.find((group) => group.name === groupName)\n}\n\nconst getCombinedExtraProps =\n (surveyUuid: string) =>\n (user: User): Dictionary<any> => {\n const userSurveyAuthGroup = user ? Users.getAuthGroupBySurveyUuid(surveyUuid)(user) : null\n const userAuthGroupExtraProps = userSurveyAuthGroup?.props?.extra ?? {}\n const userExtraProps = user?.props.extra ?? {}\n // user auth group extra props overwrite user extra props\n return { ...userExtraProps, ...userAuthGroupExtraProps }\n }\n\nconst getMaxSurveys = (user: User) => user.props?.maxSurveys ?? defaultMaxSurveys\n\nconst isEqual =\n (userToCompare: User) =>\n (user: User): boolean =>\n user && userToCompare ? user === userToCompare || user.uuid === userToCompare.uuid : false\n\nexport const Users = {\n hasAccepted,\n getAuthGroups,\n isSystemAdmin,\n isSurveyManager,\n getAuthGroupBySurveyUuid,\n getAuthGroupByName,\n getCombinedExtraProps,\n getMaxSurveys,\n isEqual,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/category/categories.ts"],"names":[],"mappings":";;;AAGA,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAA6B,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAA;AAEvG,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAY,EAAE,WAAC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,gBAAgB,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE5G,MAAM,qBAAqB,GACzB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,QAAkB,EAA4B,EAAE,WAC/C,OAAA,MAAA,gBAAgB,CAAC,QAAQ,CAAC,0CAAG,IAAI,CAAC,CAAA,EAAA,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;CACtB,CAAA"}
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/category/categories.ts"],"names":[],"mappings":";;;AAGA,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAA6B,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAA;AAEvG,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAY,EAAE,WAAC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,gBAAgB,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE5G,MAAM,qBAAqB,GACzB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,QAAkB,EAA4B,EAAE,WAC/C,OAAA,MAAA,gBAAgB,CAAC,QAAQ,CAAC,0CAAG,IAAI,CAAC,CAAA,EAAA,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;CACtB,CAAA","sourcesContent":["import { ExtraPropDef, ExtraPropDefs } from '../extraProp'\nimport { Category } from './category'\n\nconst getExtraPropDefs = (category: Category): ExtraPropDefs | undefined => category.props.itemExtraDef\n\nconst getExtraPropDefNames = (category: Category): string[] => Object.keys(getExtraPropDefs(category) ?? {})\n\nconst getExtraPropDefByName =\n (name: string) =>\n (category: Category): ExtraPropDef | undefined =>\n getExtraPropDefs(category)?.[name]\n\nexport const Categories = {\n getExtraPropDefs,\n getExtraPropDefNames,\n getExtraPropDefByName,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/category/category.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/category/category.ts"],"names":[],"mappings":"","sourcesContent":["import { ArenaObject, Dictionary } from '../common'\nimport { ExtraPropDefs } from '../extraProp'\nimport { CategoryLevel } from './level'\n\nexport interface CategoryProps {\n itemExtraDef?: ExtraPropDefs\n name?: string\n}\n\nexport interface Category extends ArenaObject<CategoryProps> {\n id?: number\n levels: Dictionary<CategoryLevel>\n published?: boolean\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"categoryImportSummary.js","sourceRoot":"","sources":["../../src/category/categoryImportSummary.ts"],"names":[],"mappings":";;;AAGA,IAAY,wBAKX;AALD,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,uDAA2B,CAAA;IAC3B,2CAAe,CAAA;IACf,2CAAe,CAAA;AACjB,CAAC,EALW,wBAAwB,wCAAxB,wBAAwB,QAKnC"}
1
+ {"version":3,"file":"categoryImportSummary.js","sourceRoot":"","sources":["../../src/category/categoryImportSummary.ts"],"names":[],"mappings":";;;AAGA,IAAY,wBAKX;AALD,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,uDAA2B,CAAA;IAC3B,2CAAe,CAAA;IACf,2CAAe,CAAA;AACjB,CAAC,EALW,wBAAwB,wCAAxB,wBAAwB,QAKnC","sourcesContent":["import { ExtraPropDataType } from '../extraProp'\nimport { LanguageCode } from '../language'\n\nexport enum CategoryImportColumnType {\n code = 'code',\n description = 'description',\n extra = 'extra',\n label = 'label',\n}\n\nexport interface CategoryImportSummaryColumn {\n dataType: ExtraPropDataType\n lang: LanguageCode\n levelIndex: number\n levelName: string\n name: string\n type: CategoryImportColumnType\n}\n\nexport interface CategoryImportSummary {\n columns: { [key: string]: CategoryImportSummaryColumn }\n filePath: string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"categoryItemGenerator.js","sourceRoot":"","sources":["../../src/category/categoryItemGenerator.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,4CAAsD;AAEtD,qEAAoE;AACpE,oCAAgC;AAEhC,MAAM,YAAY,GAAG,CAAC,MAAgD,EAAuB,EAAE;IAC7F,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAA,kCAAiB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,MAAM,aAAa,GAAG,uBAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAE3D,MAAM,IAAI,GAAiB;QACzB,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;KACvB,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,mCAAuB,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEY,QAAA,qBAAqB,GAAG;IACnC,YAAY;CACb,CAAA"}
1
+ {"version":3,"file":"categoryItemGenerator.js","sourceRoot":"","sources":["../../src/category/categoryItemGenerator.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,4CAAsD;AAEtD,qEAAoE;AACpE,oCAAgC;AAEhC,MAAM,YAAY,GAAG,CAAC,MAAgD,EAAuB,EAAE;IAC7F,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAA,kCAAiB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,MAAM,aAAa,GAAG,uBAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAE3D,MAAM,IAAI,GAAiB;QACzB,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;KACvB,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,mCAAuB,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEY,QAAA,qBAAqB,GAAG;IACnC,YAAY;CACb,CAAA","sourcesContent":["import { Categories } from './categories'\nimport { CategoryItem } from './item'\nimport { ExtraPropsDataGenerator } from '../extraProp'\nimport { Survey } from '../survey'\nimport { getCategoryByUuid } from '../survey/surveys/surveysGetters'\nimport { UUIDs } from '../utils'\n\nconst generateItem = (params: { survey: Survey; categoryUuid: string }): CategoryItem | null => {\n const { survey, categoryUuid } = params\n const category = categoryUuid ? getCategoryByUuid({ survey, categoryUuid }) : null\n if (!category) return null\n const extraPropDefs = Categories.getExtraPropDefs(category)\n\n const item: CategoryItem = {\n uuid: UUIDs.v4(),\n props: { code: 'ABC' },\n }\n if (extraPropDefs) {\n item.props.extra = ExtraPropsDataGenerator.generateData({ extraPropDefs })\n }\n return item\n}\n\nexport const CategoryItemGenerator = {\n generateItem,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"categoryItems.js","sourceRoot":"","sources":["../../src/category/categoryItems.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,CAAC,IAAkB,EAAU,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAA,EAAA,CAAA;AAErE,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAU,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,mCAAI,MAAM,CAAC,GAAG,CAAA,EAAA,CAAA;AAE/E,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,IAAkB,EAAE,aAAuB,EAAU,EAAE;;IAC3F,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAG,IAAI,CAAC,mCAAI,EAAE,CAAA;IAC7C,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAkB,EAAE,IAAkB,EAAU,EAAE;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,gBAAgB;CACjB,CAAA"}
1
+ {"version":3,"file":"categoryItems.js","sourceRoot":"","sources":["../../src/category/categoryItems.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,CAAC,IAAkB,EAAU,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAA,EAAA,CAAA;AAErE,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAU,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,mCAAI,MAAM,CAAC,GAAG,CAAA,EAAA,CAAA;AAE/E,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,IAAkB,EAAE,aAAuB,EAAU,EAAE;;IAC3F,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAG,IAAI,CAAC,mCAAI,EAAE,CAAA;IAC7C,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAkB,EAAE,IAAkB,EAAU,EAAE;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,gBAAgB;CACjB,CAAA","sourcesContent":["import { LanguageCode } from '../language'\nimport { CategoryItem } from './item'\n\nconst getCode = (item: CategoryItem): string => item.props.code ?? ''\n\nconst getIndex = (item: CategoryItem): number => item.props.index ?? Number.NaN\n\nconst getLabel = (item: CategoryItem, lang: LanguageCode, defaultToCode?: boolean): string => {\n const label = item.props.labels?.[lang] ?? ''\n return !label && defaultToCode ? getCode(item) : label\n}\n\nconst getLabelWithCode = (item: CategoryItem, lang: LanguageCode): string => {\n const code = getCode(item)\n const label = getLabel(item, lang)\n return label ? `${label} (${code})` : code\n}\n\nexport const CategoryItems = {\n getCode,\n getIndex,\n getLabel,\n getLabelWithCode,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/category/factory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAWnB,QAAA,eAAe,GAA6C;IACvE,cAAc,EAAE,CAAC,MAA8B,EAAY,EAAE;QAC3D,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mCAC7B,YAAY,GACZ,MAAM,CACV,CAAA;QAED,MAAM,QAAQ,GAAG;YACf,MAAM;YACN,KAAK;YACL,SAAS;YACT,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;QACD,uCACK,QAAQ,KACX,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI;gBAChB,CAAC,EAAE,4BAAoB,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;aAC9G,IACF;IACH,CAAC;CACF,CAAA;AAQY,QAAA,oBAAoB,GAAuD;IACtF,cAAc,EAAE,CAAC,MAAmC,EAAiB,EAAE;QACrE,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,CAAC;SACT,CAAA;QAED,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,mCAC/B,YAAY,GACZ,MAAM,CACV,CAAA;QAED,OAAO;YACL,YAAY;YACZ,KAAK;YACL,KAAK;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA;AAQY,QAAA,mBAAmB,GAAqD;IACnF,cAAc,EAAE,CAAC,MAAkC,EAAgB,EAAE;QACnE,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,mCACjC,YAAY,GACZ,MAAM,CACV,CAAA;QAED,OAAO;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;YAChB,SAAS;YACT,UAAU;YACV,KAAK;SACN,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/category/factory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAWnB,QAAA,eAAe,GAA6C;IACvE,cAAc,EAAE,CAAC,MAA8B,EAAY,EAAE;QAC3D,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mCAC7B,YAAY,GACZ,MAAM,CACV,CAAA;QAED,MAAM,QAAQ,GAAG;YACf,MAAM;YACN,KAAK;YACL,SAAS;YACT,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;QACD,uCACK,QAAQ,KACX,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI;gBAChB,CAAC,EAAE,4BAAoB,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;aAC9G,IACF;IACH,CAAC;CACF,CAAA;AAQY,QAAA,oBAAoB,GAAuD;IACtF,cAAc,EAAE,CAAC,MAAmC,EAAiB,EAAE;QACrE,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,CAAC;SACT,CAAA;QAED,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,mCAC/B,YAAY,GACZ,MAAM,CACV,CAAA;QAED,OAAO;YACL,YAAY;YACZ,KAAK;YACL,KAAK;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA;AAQY,QAAA,mBAAmB,GAAqD;IACnF,cAAc,EAAE,CAAC,MAAkC,EAAgB,EAAE;QACnE,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,mCACjC,YAAY,GACZ,MAAM,CACV,CAAA;QAED,OAAO;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;YAChB,SAAS;YACT,UAAU;YACV,KAAK;SACN,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Dictionary, Factory } from '../common'\nimport { UUIDs } from '../utils'\nimport { Category, CategoryProps } from './category'\nimport { CategoryItem, CategoryItemProps } from './item'\nimport { CategoryLevel, CategoryLevelProps } from './level'\n\nexport type CategoryFactoryParams = {\n props?: CategoryProps\n levels?: Dictionary<CategoryLevel>\n published?: boolean\n}\n\nexport const CategoryFactory: Factory<Category, CategoryFactoryParams> = {\n createInstance: (params?: CategoryFactoryParams): Category => {\n const defaultProps = {\n props: {},\n }\n\n const { published, props, levels } = {\n ...defaultProps,\n ...params,\n }\n\n const category = {\n levels,\n props,\n published,\n uuid: UUIDs.v4(),\n }\n return {\n ...category,\n levels: levels ?? {\n 0: CategoryLevelFactory.createInstance({ categoryUuid: category.uuid, index: 0, props: { name: 'level_1' } }),\n },\n }\n },\n}\n\nexport type CategoryLevelFactoryParams = {\n index?: number\n props?: CategoryLevelProps\n categoryUuid: string\n}\n\nexport const CategoryLevelFactory: Factory<CategoryLevel, CategoryLevelFactoryParams> = {\n createInstance: (params?: CategoryLevelFactoryParams): CategoryLevel => {\n const defaultProps = {\n props: {},\n index: 0,\n }\n\n const { index, categoryUuid, props } = {\n ...defaultProps,\n ...params,\n }\n\n return {\n categoryUuid,\n index,\n props,\n uuid: UUIDs.v4(),\n }\n },\n}\n\nexport type CategoryItemFactoryParams = {\n levelUuid: string\n parentUuid?: string\n props?: CategoryItemProps\n}\n\nexport const CategoryItemFactory: Factory<CategoryItem, CategoryItemFactoryParams> = {\n createInstance: (params?: CategoryItemFactoryParams): CategoryItem => {\n const defaultProps = {\n props: {},\n }\n\n const { levelUuid, parentUuid, props } = {\n ...defaultProps,\n ...params,\n }\n\n return {\n uuid: UUIDs.v4(),\n levelUuid,\n parentUuid,\n props,\n }\n },\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/category/index.ts"],"names":[],"mappings":";;;AACA,qCAAsF;AAA7E,0GAAA,eAAe,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAYnE,iEAAkE;AAAzD,iIAAA,wBAAwB,OAAA;AAEjC,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/category/index.ts"],"names":[],"mappings":";;;AACA,qCAAsF;AAA7E,0GAAA,eAAe,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAYnE,iEAAkE;AAAzD,iIAAA,wBAAwB,OAAA;AAEjC,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA","sourcesContent":["export type { Category, CategoryProps } from './category'\nexport { CategoryFactory, CategoryLevelFactory, CategoryItemFactory } from './factory'\n\nexport type { CategoryItem, CategoryItemProps } from './item'\n\nexport type { CategoryLevel, CategoryLevelProps } from './level'\n\nexport type { CategoryImportSummary, CategoryImportSummaryColumn } from './categoryImportSummary'\n\nexport type { CategoryService } from './service'\nexport type { CategoryItemService } from './itemService'\nexport type { CategoryLevelService } from './levelService'\n\nexport { CategoryImportColumnType } from './categoryImportSummary'\n\nexport { Categories } from './categories'\nexport { CategoryItems } from './categoryItems'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../src/category/item.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../src/category/item.ts"],"names":[],"mappings":"","sourcesContent":["import { ArenaObject, Dictionary } from '../common'\nimport { Labels } from '../language'\n\nexport interface CategoryItemProps {\n code?: string\n extra?: Dictionary<any>\n index?: number\n labels?: Labels\n}\n\nexport interface CategoryItem extends ArenaObject<CategoryItemProps> {\n draft?: boolean\n id?: number\n levelUuid?: string\n parentUuid?: string\n published?: boolean\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"itemService.js","sourceRoot":"","sources":["../../src/category/itemService.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"itemService.js","sourceRoot":"","sources":["../../src/category/itemService.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../auth'\nimport { ArenaService } from '../common'\nimport { Category } from './category'\nimport { CategoryItem, CategoryItemProps } from './item'\n\nexport interface CategoryItemService extends ArenaService {\n // ==== CREATE\n create(options: {\n categoryUuid: string\n item: CategoryItem\n surveyId: number\n user: User\n }): Promise<{ item: CategoryItem; category: Category }>\n\n // ==== READ\n get(options: { validate?: boolean; draft?: boolean; categoryUuid: string; surveyId: number }): Promise<CategoryItem>\n\n getMany(options: {\n categoryUuid: string\n draft?: boolean\n parentUuid?: string\n surveyId: number\n }): Promise<Array<CategoryItem>>\n\n // ==== UPDATE\n update(options: {\n categoryUuid: string\n itemUuid: string\n surveyId: number\n user: User\n props: CategoryItemProps\n }): Promise<{ item: CategoryItem; category: Category }>\n\n // ==== DELETE\n delete(options: { itemUuid: string; categoryUuid: string; surveyId: number; user: User }): Promise<Category>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/category/level.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/category/level.ts"],"names":[],"mappings":"","sourcesContent":["import { ArenaObject } from '../common'\n\nexport interface CategoryLevelProps {\n name?: string\n}\n\nexport interface CategoryLevel extends ArenaObject<CategoryLevelProps> {\n categoryUuid?: string\n id?: number\n index?: number\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"levelService.js","sourceRoot":"","sources":["../../src/category/levelService.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"levelService.js","sourceRoot":"","sources":["../../src/category/levelService.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../auth'\nimport { ArenaService } from '../common'\nimport { Category } from './category'\nimport { CategoryLevel, CategoryLevelProps } from './level'\n\nexport interface CategoryLevelService extends ArenaService {\n // ==== CREATE\n create(options: { level: any; surveyId: number; user: User }): Promise<{ level: CategoryLevel; category: Category }>\n\n // ==== READ\n get(options: { validate?: boolean; draft?: boolean; categoryUuid: string; surveyId: number }): Promise<CategoryLevel>\n\n getMany(options: {\n draft?: boolean\n validate?: boolean\n limit?: number\n offset?: number\n search?: string\n surveyId: number\n }): Promise<Array<CategoryLevel>>\n\n // ==== UPDATE\n update(options: {\n categoryUuid: string\n levelUuid: string\n surveyId: number\n user: User\n props: CategoryLevelProps\n }): Promise<{ level: CategoryLevel; category: Category }>\n\n // ==== DELETE\n delete(options: { levelUuid: string; categoryUuid: string; surveyId: number; user: User }): Promise<Category>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/category/service.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/category/service.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../auth'\nimport { ArenaService } from '../common'\nimport { JobSerialized } from '../job'\nimport { Category, CategoryProps } from './category'\nimport { CategoryImportSummary } from './categoryImportSummary'\n\nexport interface CategoryService extends ArenaService {\n // ==== CREATE\n create(options: { surveyId: number; category: Category; user: User }): Promise<Category>\n\n createImportSummary(filePath: string): Promise<CategoryImportSummary>\n\n createImportCategory(options: {\n categoryUuid: string\n summary: CategoryImportSummary\n surveyId: number\n user: User\n }): Promise<JobSerialized<any>>\n\n // ==== READ\n count(options: { draft?: boolean; user: User }): Promise<number>\n\n get(options: { validate?: boolean; draft?: boolean; categoryUuid: string; surveyId: number }): Promise<Category>\n\n getMany(options: {\n draft?: boolean\n validate?: boolean\n limit?: number\n offset?: number\n search?: string\n surveyId: number\n }): Promise<Array<Category>>\n\n // ==== UPDATE\n update(options: {\n categoryUuid: string\n surveyId: number\n system?: boolean\n user: User\n props: CategoryProps\n }): Promise<Category>\n\n // ==== DELETE\n delete(options: { categoryUuid: string; surveyId: number; user: User }): Promise<void>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":";;;AAIA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":";;;AAIA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B","sourcesContent":["import { ArenaObject } from '../common'\nimport { Labels } from '../language'\nimport { Validation } from '../validation'\n\nexport enum ChainStatusExec {\n error = 'error',\n running = 'running',\n success = 'success',\n}\n\nexport interface ChainProps {\n descriptions?: Labels\n labels?: Labels\n}\n\nexport interface Chain extends ArenaObject<ChainProps> {\n dateCreated?: string\n dateExecuted?: string\n dateModified?: string\n scriptCommon?: string\n statusExec?: string\n validation: Validation\n temporary?: boolean\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chainFactory.js","sourceRoot":"","sources":["../../src/chain/chainFactory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAEhC,8CAAiD;AAEpC,QAAA,YAAY,GAA+B;IACtD,cAAc,CAAC,MAAmB;QAChC,OAAO;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;YAChB,KAAK,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE;YACnB,UAAU,EAAE,8BAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;SACjD,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"chainFactory.js","sourceRoot":"","sources":["../../src/chain/chainFactory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAEhC,8CAAiD;AAEpC,QAAA,YAAY,GAA+B;IACtD,cAAc,CAAC,MAAmB;QAChC,OAAO;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;YAChB,KAAK,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE;YACnB,UAAU,EAAE,8BAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;SACjD,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Factory } from '../common'\nimport { UUIDs } from '../utils'\nimport { Chain, ChainProps } from './chain'\nimport { ValidationFactory } from '../validation'\n\nexport const ChainFactory: Factory<Chain, ChainProps> = {\n createInstance(params?: ChainProps): Chain {\n return {\n uuid: UUIDs.v4(),\n props: params ?? {},\n validation: ValidationFactory.createInstance({}),\n }\n },\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chainNodeDef.js","sourceRoot":"","sources":["../../src/chain/chainNodeDef.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"chainNodeDef.js","sourceRoot":"","sources":["../../src/chain/chainNodeDef.ts"],"names":[],"mappings":"","sourcesContent":["import { ArenaObject } from '../common'\n\nexport interface ChainNodeDefProps {\n active: boolean\n}\n\nexport interface ChainNodeDef extends ArenaObject<ChainNodeDefProps> {\n chainUuid: string\n index: number\n nodeDefUuid: string\n script?: string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chainNodeDefAggregate.js","sourceRoot":"","sources":["../../src/chain/chainNodeDefAggregate.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"chainNodeDefAggregate.js","sourceRoot":"","sources":["../../src/chain/chainNodeDefAggregate.ts"],"names":[],"mappings":"","sourcesContent":["import { ArenaObject } from '../common'\nimport { Labels } from '../language'\n\nexport interface ChainNodeDefAggregateProps {\n alias: Labels\n}\n\nexport interface ChainNodeDefAggregate extends ArenaObject<ChainNodeDefAggregateProps> {\n chainUuid: string\n nodeDefUuid: string\n formula: string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chainNodeDefFactory.js","sourceRoot":"","sources":["../../src/chain/chainNodeDefFactory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAQnB,QAAA,mBAAmB,GAAoD;IAClF,cAAc,CAAC,MAAgC;QAC7C,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;QAEzC,OAAO;YACL,SAAS;YACT,KAAK,EAAE,CAAC;YACR,WAAW;YACX,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACvB,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"chainNodeDefFactory.js","sourceRoot":"","sources":["../../src/chain/chainNodeDefFactory.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAQnB,QAAA,mBAAmB,GAAoD;IAClF,cAAc,CAAC,MAAgC;QAC7C,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;QAEzC,OAAO;YACL,SAAS;YACT,KAAK,EAAE,CAAC;YACR,WAAW;YACX,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACvB,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Factory } from '../common'\nimport { UUIDs } from '../utils'\nimport { ChainNodeDef } from './chainNodeDef'\n\ntype ChainNodeDefCreateParams = {\n chainUuid: string\n nodeDefUuid: string\n}\n\nexport const ChainNodeDefFactory: Factory<ChainNodeDef, ChainNodeDefCreateParams> = {\n createInstance(params: ChainNodeDefCreateParams): ChainNodeDef {\n const { chainUuid, nodeDefUuid } = params\n\n return {\n chainUuid,\n index: 0,\n nodeDefUuid,\n props: { active: true },\n uuid: UUIDs.v4(),\n }\n },\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chainNodeDefService.js","sourceRoot":"","sources":["../../src/chain/chainNodeDefService.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"chainNodeDefService.js","sourceRoot":"","sources":["../../src/chain/chainNodeDefService.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../auth'\nimport { ArenaService } from '../common'\nimport { ChainNodeDef } from './chainNodeDef'\n\nexport interface ChainNodeDefService extends ArenaService {\n // ==== READ\n count(options: { chainUuid: string; surveyId: number }): Promise<{ [entityDefUuid: string]: number }>\n\n getMany(options: { chainUuid: string; entityDefUuid: string; surveyId: number }): Promise<Array<ChainNodeDef>>\n\n // ==== UPDATE\n update(options: { chainNodeDef: ChainNodeDef; surveyId: number; user: User }): Promise<ChainNodeDef>\n\n updateIndexes(options: { surveyId: number }): Promise<void>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chainService.js","sourceRoot":"","sources":["../../src/chain/chainService.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"chainService.js","sourceRoot":"","sources":["../../src/chain/chainService.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../auth'\nimport { ArenaService } from '../common'\nimport { Chain } from './chain'\n\nexport interface ChainService extends ArenaService {\n // ==== CREATE\n create(options: { chain: Chain; surveyId: number; user: User }): Promise<Chain>\n\n // ==== READ\n count(options: { cycle: string; surveyId: number }): Promise<number>\n\n getMany(options: { cycle: string; limit?: number; offset?: number; surveyId: number }): Promise<Array<Chain>>\n\n get(options: { chainUuid: string; surveyId: number }): Promise<Chain>\n\n // ==== UPDATE\n update(options: { chain: Chain; surveyId: number; user: User }): Promise<Chain>\n\n // ==== DELETE\n delete(options: { chainUuid: string; surveyId: number; user: User }): Promise<Chain>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chain/index.ts"],"names":[],"mappings":";;;AACA,iCAAyC;AAAhC,wGAAA,eAAe,OAAA;AACxB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AAIrB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chain/index.ts"],"names":[],"mappings":";;;AACA,iCAAyC;AAAhC,wGAAA,eAAe,OAAA;AACxB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AAIrB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA","sourcesContent":["export type { Chain, ChainProps } from './chain'\nexport { ChainStatusExec } from './chain'\nexport { ChainFactory } from './chainFactory'\nexport type { ChainService } from './chainService'\n\nexport type { ChainNodeDef, ChainNodeDefProps } from './chainNodeDef'\nexport { ChainNodeDefFactory } from './chainNodeDefFactory'\nexport type { ChainNodeDefService } from './chainNodeDefService'\n\nexport type { ChainNodeDefAggregate, ChainNodeDefAggregateProps } from './chainNodeDefAggregate'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["../../src/common/Dictionary.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Dictionary.js","sourceRoot":"","sources":["../../src/common/Dictionary.ts"],"names":[],"mappings":"","sourcesContent":["export interface Dictionary<T> {\n [key: string]: T\n}\n"]}