@itwin/presentation-common 4.0.0-dev.52 → 4.0.0-dev.54

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 (521) hide show
  1. package/lib/cjs/assets/locales/en/Presentation.json +14 -14
  2. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  3. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  4. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  5. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  6. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  7. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  8. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  9. package/lib/cjs/presentation-common/Diagnostics.d.ts.map +1 -1
  10. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  11. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  12. package/lib/cjs/presentation-common/EC.d.ts +350 -350
  13. package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
  14. package/lib/cjs/presentation-common/EC.js +290 -290
  15. package/lib/cjs/presentation-common/EC.js.map +1 -1
  16. package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
  17. package/lib/cjs/presentation-common/ElementProperties.d.ts.map +1 -1
  18. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  19. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  20. package/lib/cjs/presentation-common/Error.d.ts +47 -47
  21. package/lib/cjs/presentation-common/Error.js +64 -64
  22. package/lib/cjs/presentation-common/Error.js.map +1 -1
  23. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  24. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  25. package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
  26. package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
  27. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  28. package/lib/cjs/presentation-common/KeySet.d.ts.map +1 -1
  29. package/lib/cjs/presentation-common/KeySet.js +428 -428
  30. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  31. package/lib/cjs/presentation-common/LabelDefinition.d.ts +93 -93
  32. package/lib/cjs/presentation-common/LabelDefinition.d.ts.map +1 -1
  33. package/lib/cjs/presentation-common/LabelDefinition.js +78 -78
  34. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  35. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  36. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  37. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  38. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +40 -40
  39. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  40. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  41. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +273 -273
  42. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  43. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  44. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  45. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +186 -186
  46. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  47. package/lib/cjs/presentation-common/PresentationRpcInterface.js +108 -104
  48. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  49. package/lib/cjs/presentation-common/PropertyFormatter.d.ts +30 -30
  50. package/lib/cjs/presentation-common/PropertyFormatter.js +198 -198
  51. package/lib/cjs/presentation-common/PropertyFormatter.js.map +1 -1
  52. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  53. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  54. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  55. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -82
  56. package/lib/cjs/presentation-common/RpcRequestsHandler.js +166 -166
  57. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  58. package/lib/cjs/presentation-common/RulesetVariables.d.ts +171 -171
  59. package/lib/cjs/presentation-common/RulesetVariables.d.ts.map +1 -1
  60. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  61. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  62. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  63. package/lib/cjs/presentation-common/RulesetsFactory.d.ts.map +1 -1
  64. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  65. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  66. package/lib/cjs/presentation-common/Update.d.ts +213 -213
  67. package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
  68. package/lib/cjs/presentation-common/Update.js +226 -226
  69. package/lib/cjs/presentation-common/Update.js.map +1 -1
  70. package/lib/cjs/presentation-common/Utils.d.ts +62 -62
  71. package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
  72. package/lib/cjs/presentation-common/Utils.js +43 -43
  73. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  74. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  75. package/lib/cjs/presentation-common/content/Category.js +48 -48
  76. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  77. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  78. package/lib/cjs/presentation-common/content/Content.js +56 -56
  79. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  80. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +271 -271
  81. package/lib/cjs/presentation-common/content/ContentTraverser.js +437 -437
  82. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  83. package/lib/cjs/presentation-common/content/Descriptor.d.ts +328 -328
  84. package/lib/cjs/presentation-common/content/Descriptor.js +191 -191
  85. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  86. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  87. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  88. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  89. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  90. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  91. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  92. package/lib/cjs/presentation-common/content/Fields.d.ts +298 -298
  93. package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
  94. package/lib/cjs/presentation-common/content/Fields.js +393 -393
  95. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  96. package/lib/cjs/presentation-common/content/Item.d.ts +85 -85
  97. package/lib/cjs/presentation-common/content/Item.js +84 -84
  98. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  99. package/lib/cjs/presentation-common/content/Property.d.ts +57 -57
  100. package/lib/cjs/presentation-common/content/Property.d.ts.map +1 -1
  101. package/lib/cjs/presentation-common/content/Property.js +40 -40
  102. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  103. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  104. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  105. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  106. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  107. package/lib/cjs/presentation-common/content/TypeDescription.d.ts.map +1 -1
  108. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  109. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  110. package/lib/cjs/presentation-common/content/Value.d.ts +189 -189
  111. package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
  112. package/lib/cjs/presentation-common/content/Value.js +273 -273
  113. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  114. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  115. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +31 -31
  116. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  117. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +246 -246
  118. package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
  119. package/lib/cjs/presentation-common/hierarchy/Key.js +121 -121
  120. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  121. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +154 -154
  122. package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
  123. package/lib/cjs/presentation-common/hierarchy/Node.js +106 -106
  124. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  125. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  126. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +122 -122
  127. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  128. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  129. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  130. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  131. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  132. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  133. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  134. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  135. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  136. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  137. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  138. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  139. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  140. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  141. package/lib/cjs/presentation-common/rules/Rule.d.ts +76 -76
  142. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  143. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  144. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +65 -65
  145. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  146. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  147. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  148. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  149. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  150. package/lib/cjs/presentation-common/rules/Variables.d.ts +58 -58
  151. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  152. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  153. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  154. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
  155. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  156. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  157. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  158. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  159. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  160. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  161. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  162. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  163. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  164. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  165. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  166. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  167. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  168. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  169. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  170. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  171. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  172. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  173. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  174. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  175. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  176. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  177. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  178. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  179. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  180. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  181. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  182. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  183. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  184. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  185. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  186. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  187. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  188. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  189. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  190. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  191. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  192. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  193. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  194. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  195. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  196. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  197. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  198. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  199. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  200. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  201. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  202. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  203. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  204. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  205. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  206. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  207. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  208. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  209. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  210. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  211. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  212. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  213. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  214. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  215. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  216. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  217. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  218. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  219. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  220. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  221. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  222. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  223. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  224. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  225. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  226. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  227. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +21 -21
  228. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  229. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  230. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  231. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  232. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  233. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  234. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  235. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  236. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  237. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  238. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  239. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  240. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  241. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  242. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  243. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  244. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  245. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  246. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  247. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  248. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  249. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  250. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  251. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  252. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  253. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  254. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +38 -38
  255. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  256. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  257. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  258. package/lib/cjs/presentation-common.d.ts +113 -113
  259. package/lib/cjs/presentation-common.js +133 -129
  260. package/lib/cjs/presentation-common.js.map +1 -1
  261. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  262. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  263. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  264. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  265. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  266. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  267. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  268. package/lib/esm/presentation-common/Diagnostics.d.ts.map +1 -1
  269. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  270. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  271. package/lib/esm/presentation-common/EC.d.ts +350 -350
  272. package/lib/esm/presentation-common/EC.d.ts.map +1 -1
  273. package/lib/esm/presentation-common/EC.js +287 -287
  274. package/lib/esm/presentation-common/EC.js.map +1 -1
  275. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  276. package/lib/esm/presentation-common/ElementProperties.d.ts.map +1 -1
  277. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  278. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  279. package/lib/esm/presentation-common/Error.d.ts +47 -47
  280. package/lib/esm/presentation-common/Error.js +60 -60
  281. package/lib/esm/presentation-common/Error.js.map +1 -1
  282. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  283. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  284. package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
  285. package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
  286. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  287. package/lib/esm/presentation-common/KeySet.d.ts.map +1 -1
  288. package/lib/esm/presentation-common/KeySet.js +424 -424
  289. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  290. package/lib/esm/presentation-common/LabelDefinition.d.ts +93 -93
  291. package/lib/esm/presentation-common/LabelDefinition.d.ts.map +1 -1
  292. package/lib/esm/presentation-common/LabelDefinition.js +75 -75
  293. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  294. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  295. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  296. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  297. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +40 -40
  298. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  299. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  300. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +273 -273
  301. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  302. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  303. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  304. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +186 -186
  305. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  306. package/lib/esm/presentation-common/PresentationRpcInterface.js +105 -100
  307. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  308. package/lib/esm/presentation-common/PropertyFormatter.d.ts +30 -30
  309. package/lib/esm/presentation-common/PropertyFormatter.js +193 -193
  310. package/lib/esm/presentation-common/PropertyFormatter.js.map +1 -1
  311. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  312. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  313. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  314. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -82
  315. package/lib/esm/presentation-common/RpcRequestsHandler.js +162 -162
  316. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  317. package/lib/esm/presentation-common/RulesetVariables.d.ts +171 -171
  318. package/lib/esm/presentation-common/RulesetVariables.d.ts.map +1 -1
  319. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  320. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  321. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  322. package/lib/esm/presentation-common/RulesetsFactory.d.ts.map +1 -1
  323. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  324. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  325. package/lib/esm/presentation-common/Update.d.ts +213 -213
  326. package/lib/esm/presentation-common/Update.d.ts.map +1 -1
  327. package/lib/esm/presentation-common/Update.js +223 -223
  328. package/lib/esm/presentation-common/Update.js.map +1 -1
  329. package/lib/esm/presentation-common/Utils.d.ts +62 -62
  330. package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
  331. package/lib/esm/presentation-common/Utils.js +39 -39
  332. package/lib/esm/presentation-common/Utils.js.map +1 -1
  333. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  334. package/lib/esm/presentation-common/content/Category.js +45 -45
  335. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  336. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  337. package/lib/esm/presentation-common/content/Content.js +52 -52
  338. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  339. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +271 -271
  340. package/lib/esm/presentation-common/content/ContentTraverser.js +427 -427
  341. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  342. package/lib/esm/presentation-common/content/Descriptor.d.ts +328 -328
  343. package/lib/esm/presentation-common/content/Descriptor.js +187 -187
  344. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  345. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  346. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  347. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  348. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  349. package/lib/esm/presentation-common/content/Editor.js +8 -8
  350. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  351. package/lib/esm/presentation-common/content/Fields.d.ts +298 -298
  352. package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
  353. package/lib/esm/presentation-common/content/Fields.js +386 -386
  354. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  355. package/lib/esm/presentation-common/content/Item.d.ts +85 -85
  356. package/lib/esm/presentation-common/content/Item.js +80 -80
  357. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  358. package/lib/esm/presentation-common/content/Property.d.ts +57 -57
  359. package/lib/esm/presentation-common/content/Property.d.ts.map +1 -1
  360. package/lib/esm/presentation-common/content/Property.js +37 -37
  361. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  362. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  363. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  364. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  365. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  366. package/lib/esm/presentation-common/content/TypeDescription.d.ts.map +1 -1
  367. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  368. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  369. package/lib/esm/presentation-common/content/Value.d.ts +189 -189
  370. package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
  371. package/lib/esm/presentation-common/content/Value.js +270 -270
  372. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  373. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  374. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +28 -28
  375. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  376. package/lib/esm/presentation-common/hierarchy/Key.d.ts +246 -246
  377. package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
  378. package/lib/esm/presentation-common/hierarchy/Key.js +118 -118
  379. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  380. package/lib/esm/presentation-common/hierarchy/Node.d.ts +154 -154
  381. package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
  382. package/lib/esm/presentation-common/hierarchy/Node.js +103 -103
  383. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  384. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  385. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +119 -119
  386. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  387. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  388. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  389. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  390. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  391. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  392. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  393. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  394. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  395. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  396. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  397. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  398. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  399. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  400. package/lib/esm/presentation-common/rules/Rule.d.ts +76 -76
  401. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  402. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  403. package/lib/esm/presentation-common/rules/Ruleset.d.ts +65 -65
  404. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  405. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  406. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  407. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  408. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  409. package/lib/esm/presentation-common/rules/Variables.d.ts +58 -58
  410. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  411. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  412. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  413. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  414. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  415. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  416. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  417. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  418. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  419. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  420. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  421. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  422. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  423. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  424. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  425. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  426. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  427. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  428. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  429. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  430. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  431. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  432. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  433. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  434. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  435. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  436. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  437. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  438. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  439. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  440. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  441. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  442. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  443. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  444. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  445. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  446. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  447. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  448. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  449. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  450. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  451. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  452. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  453. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  454. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  455. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  456. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  457. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  458. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  459. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  460. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  461. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  462. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  463. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  464. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  465. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  466. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  467. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  468. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  469. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  470. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  471. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  472. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  473. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  474. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  475. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  476. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  477. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  478. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  479. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  480. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  481. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  482. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  483. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  484. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  485. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  486. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +18 -18
  487. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  488. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  489. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  490. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  491. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  492. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  493. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  494. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  495. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  496. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  497. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  498. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  499. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  500. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  501. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  502. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  503. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  504. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  505. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  506. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  507. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  508. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  509. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  510. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  511. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  512. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  513. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +38 -38
  514. package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  515. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  516. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  517. package/lib/esm/presentation-common.d.ts +113 -113
  518. package/lib/esm/presentation-common.js +117 -117
  519. package/lib/esm/presentation-common.js.map +1 -1
  520. package/lib/public/locales/en/Presentation.json +14 -14
  521. package/package.json +12 -12
@@ -1,83 +1,83 @@
1
- /** @packageDocumentation
2
- * @module RPC
3
- */
4
- import { IModelRpcProps } from "@itwin/core-common";
5
- import { DescriptorJSON, DescriptorOverrides } from "./content/Descriptor";
6
- import { ItemJSON } from "./content/Item";
7
- import { DisplayValueGroupJSON } from "./content/Value";
8
- import { ClientDiagnosticsAttribute } from "./Diagnostics";
9
- import { InstanceKey } from "./EC";
10
- import { ElementProperties } from "./ElementProperties";
11
- import { NodeKey } from "./hierarchy/Key";
12
- import { NodeJSON } from "./hierarchy/Node";
13
- import { NodePathElementJSON } from "./hierarchy/NodePathElement";
14
- import { KeySetJSON } from "./KeySet";
15
- import { LabelDefinition } from "./LabelDefinition";
16
- import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions, Paged, RequestOptions, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions } from "./PresentationManagerOptions";
17
- import { ContentSourcesRpcResult, PresentationRpcRequestOptions, PresentationRpcResponse } from "./PresentationRpcInterface";
18
- import { RulesetVariableJSON } from "./RulesetVariables";
19
- import { SelectionScope } from "./selection/SelectionScope";
20
- import { PagedResponse } from "./Utils";
21
- /**
22
- * Configuration parameters for [[RpcRequestsHandler]].
23
- *
24
- * @internal
25
- */
26
- export interface RpcRequestsHandlerProps {
27
- /**
28
- * Optional ID used to identify client that requests data. If not specified,
29
- * the handler creates a unique GUID as a client id.
30
- * @internal
31
- */
32
- clientId?: string;
33
- /** @internal */
34
- timeout?: number;
35
- }
36
- /**
37
- * RPC requests handler that wraps [[PresentationRpcInterface]] and
38
- * adds handling for cases when backend needs to be synced with client
39
- * state.
40
- *
41
- * @internal
42
- */
43
- export declare class RpcRequestsHandler {
44
- /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */
45
- readonly timeout: number;
46
- /** ID that identifies this handler as a client */
47
- readonly clientId: string;
48
- constructor(props?: RpcRequestsHandlerProps);
49
- private get rpcClient();
50
- private requestWithTimeout;
51
- /**
52
- * Send the request to backend.
53
- *
54
- * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
55
- * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
56
- * is thrown with the details from the response.
57
- */
58
- request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>, options: TOptions, ...additionalOptions: TArg[]): Promise<TResult>;
59
- getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
60
- getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>>;
61
- getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
62
- getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
63
- getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
64
- getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult>;
65
- getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
66
- getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
67
- getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<{
68
- descriptor: DescriptorJSON;
69
- contentSet: PagedResponse<ItemJSON>;
70
- } | undefined>;
71
- getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<PagedResponse<ItemJSON>>;
72
- getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>>;
73
- getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined>;
74
- getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{
75
- total: number;
76
- items: KeySetJSON;
77
- }>;
78
- getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition>;
79
- getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>>;
80
- getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]>;
81
- computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON>;
82
- }
1
+ /** @packageDocumentation
2
+ * @module RPC
3
+ */
4
+ import { IModelRpcProps } from "@itwin/core-common";
5
+ import { DescriptorJSON, DescriptorOverrides } from "./content/Descriptor";
6
+ import { ItemJSON } from "./content/Item";
7
+ import { DisplayValueGroupJSON } from "./content/Value";
8
+ import { ClientDiagnosticsAttribute } from "./Diagnostics";
9
+ import { InstanceKey } from "./EC";
10
+ import { ElementProperties } from "./ElementProperties";
11
+ import { NodeKey } from "./hierarchy/Key";
12
+ import { NodeJSON } from "./hierarchy/Node";
13
+ import { NodePathElementJSON } from "./hierarchy/NodePathElement";
14
+ import { KeySetJSON } from "./KeySet";
15
+ import { LabelDefinition } from "./LabelDefinition";
16
+ import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions, Paged, RequestOptions, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions } from "./PresentationManagerOptions";
17
+ import { ContentSourcesRpcResult, PresentationRpcRequestOptions, PresentationRpcResponse } from "./PresentationRpcInterface";
18
+ import { RulesetVariableJSON } from "./RulesetVariables";
19
+ import { SelectionScope } from "./selection/SelectionScope";
20
+ import { PagedResponse } from "./Utils";
21
+ /**
22
+ * Configuration parameters for [[RpcRequestsHandler]].
23
+ *
24
+ * @internal
25
+ */
26
+ export interface RpcRequestsHandlerProps {
27
+ /**
28
+ * Optional ID used to identify client that requests data. If not specified,
29
+ * the handler creates a unique GUID as a client id.
30
+ * @internal
31
+ */
32
+ clientId?: string;
33
+ /** @internal */
34
+ timeout?: number;
35
+ }
36
+ /**
37
+ * RPC requests handler that wraps [[PresentationRpcInterface]] and
38
+ * adds handling for cases when backend needs to be synced with client
39
+ * state.
40
+ *
41
+ * @internal
42
+ */
43
+ export declare class RpcRequestsHandler {
44
+ /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */
45
+ readonly timeout: number;
46
+ /** ID that identifies this handler as a client */
47
+ readonly clientId: string;
48
+ constructor(props?: RpcRequestsHandlerProps);
49
+ private get rpcClient();
50
+ private requestWithTimeout;
51
+ /**
52
+ * Send the request to backend.
53
+ *
54
+ * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
55
+ * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
56
+ * is thrown with the details from the response.
57
+ */
58
+ request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>, options: TOptions, ...additionalOptions: TArg[]): Promise<TResult>;
59
+ getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
60
+ getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>>;
61
+ getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
62
+ getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
63
+ getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
64
+ getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult>;
65
+ getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
66
+ getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
67
+ getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<{
68
+ descriptor: DescriptorJSON;
69
+ contentSet: PagedResponse<ItemJSON>;
70
+ } | undefined>;
71
+ getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<PagedResponse<ItemJSON>>;
72
+ getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>>;
73
+ getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined>;
74
+ getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{
75
+ total: number;
76
+ items: KeySetJSON;
77
+ }>;
78
+ getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition>;
79
+ getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>>;
80
+ getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]>;
81
+ computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON>;
82
+ }
83
83
  //# sourceMappingURL=RpcRequestsHandler.d.ts.map
@@ -1,163 +1,163 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module RPC
7
- */
8
- import { BeDuration, BeTimePoint, Guid, Logger } from "@itwin/core-bentley";
9
- import { RpcManager } from "@itwin/core-common";
10
- import { PresentationCommonLoggerCategory } from "./CommonLoggerCategory";
11
- import { PresentationError, PresentationStatus } from "./Error";
12
- import { PresentationRpcInterface, } from "./PresentationRpcInterface";
13
- /**
14
- * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing
15
- * a timeout error.
16
- */
17
- const DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes
18
- /**
19
- * RPC requests handler that wraps [[PresentationRpcInterface]] and
20
- * adds handling for cases when backend needs to be synced with client
21
- * state.
22
- *
23
- * @internal
24
- */
25
- export class RpcRequestsHandler {
26
- constructor(props) {
27
- this.clientId = props?.clientId ?? Guid.createValue();
28
- this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;
29
- }
30
- // eslint-disable-next-line @typescript-eslint/naming-convention
31
- get rpcClient() { return RpcManager.getClientForInterface(PresentationRpcInterface); }
32
- async requestWithTimeout(func, diagnosticsHandler) {
33
- const start = BeTimePoint.now();
34
- const timeout = BeDuration.fromMilliseconds(this.timeout);
35
- let diagnostics;
36
- while (start.plus(timeout).isInFuture) {
37
- try {
38
- const response = await func();
39
- diagnostics = response.diagnostics;
40
- switch (response.statusCode) {
41
- case PresentationStatus.Success: return response.result;
42
- case PresentationStatus.BackendTimeout: break;
43
- default: throw new PresentationError(response.statusCode, response.errorMessage);
44
- }
45
- }
46
- finally {
47
- diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
48
- }
49
- }
50
- throw new PresentationError(PresentationStatus.BackendTimeout);
51
- }
52
- /**
53
- * Send the request to backend.
54
- *
55
- * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
56
- * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
57
- * is thrown with the details from the response.
58
- */
59
- async request(func, options, ...additionalOptions) {
60
- const { imodel, diagnostics, ...optionsNoIModel } = options;
61
- const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};
62
- if (isOptionsWithRuleset(optionsNoIModel)) {
63
- optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);
64
- }
65
- const rpcOptions = {
66
- ...optionsNoIModel,
67
- clientId: this.clientId,
68
- };
69
- if (diagnostics) {
70
- rpcOptions.diagnostics = diagnosticsOptions;
71
- }
72
- const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);
73
- return this.requestWithTimeout(doRequest, diagnosticsHandler);
74
- }
75
- async getNodesCount(options) {
76
- return this.request(this.rpcClient.getNodesCount.bind(this.rpcClient), options);
77
- }
78
- // eslint-disable-next-line deprecation/deprecation
79
- async getPagedNodes(options) {
80
- // eslint-disable-next-line deprecation/deprecation
81
- return this.request(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);
82
- }
83
- async getNodesDescriptor(options) {
84
- const response = await this.request(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);
85
- if (typeof response === "string")
86
- return JSON.parse(response);
87
- return response;
88
- }
89
- // eslint-disable-next-line deprecation/deprecation
90
- async getNodePaths(options) {
91
- // eslint-disable-next-line deprecation/deprecation
92
- return this.request(this.rpcClient.getNodePaths.bind(this.rpcClient), options);
93
- }
94
- // eslint-disable-next-line deprecation/deprecation
95
- async getFilteredNodePaths(options) {
96
- // eslint-disable-next-line deprecation/deprecation
97
- return this.request(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);
98
- }
99
- async getContentSources(options) {
100
- return this.request(this.rpcClient.getContentSources.bind(this.rpcClient), options);
101
- }
102
- async getContentDescriptor(options) {
103
- return this.request(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);
104
- }
105
- async getContentSetSize(options) {
106
- return this.request(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);
107
- }
108
- async getPagedContent(options) {
109
- return this.request(this.rpcClient.getPagedContent.bind(this.rpcClient), options);
110
- }
111
- async getPagedContentSet(options) {
112
- return this.request(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);
113
- }
114
- // eslint-disable-next-line deprecation/deprecation
115
- async getPagedDistinctValues(options) {
116
- // eslint-disable-next-line deprecation/deprecation
117
- return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
118
- }
119
- async getElementProperties(options) {
120
- return this.request(this.rpcClient.getElementProperties.bind(this.rpcClient), options);
121
- }
122
- async getContentInstanceKeys(options) {
123
- return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
124
- }
125
- async getDisplayLabelDefinition(options) {
126
- return this.request(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);
127
- }
128
- async getPagedDisplayLabelDefinitions(options) {
129
- return this.request(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);
130
- }
131
- async getSelectionScopes(options) {
132
- return this.request(this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);
133
- }
134
- async computeSelection(options) {
135
- return this.request(
136
- // eslint-disable-next-line deprecation/deprecation
137
- this.rpcClient.computeSelection.bind(this.rpcClient), options);
138
- }
139
- }
140
- function isOptionsWithRuleset(options) {
141
- return (typeof options.rulesetOrId === "object");
142
- }
143
- const RULESET_SUPPORTED_PROPERTIES_OBJ = {
144
- id: true,
145
- rules: true,
146
- version: true,
147
- requiredSchemas: true,
148
- supplementationInfo: true,
149
- vars: true,
150
- };
151
- function cleanupRuleset(ruleset) {
152
- const cleanedUpRuleset = { ...ruleset };
153
- for (const propertyKey of Object.keys(cleanedUpRuleset)) {
154
- if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {
155
- if (propertyKey === "$schema")
156
- delete cleanedUpRuleset[propertyKey];
157
- else
158
- Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);
159
- }
160
- }
161
- return cleanedUpRuleset;
162
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module RPC
7
+ */
8
+ import { BeDuration, BeTimePoint, Guid, Logger } from "@itwin/core-bentley";
9
+ import { RpcManager } from "@itwin/core-common";
10
+ import { PresentationCommonLoggerCategory } from "./CommonLoggerCategory";
11
+ import { PresentationError, PresentationStatus } from "./Error";
12
+ import { PresentationRpcInterface, } from "./PresentationRpcInterface";
13
+ /**
14
+ * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing
15
+ * a timeout error.
16
+ */
17
+ const DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes
18
+ /**
19
+ * RPC requests handler that wraps [[PresentationRpcInterface]] and
20
+ * adds handling for cases when backend needs to be synced with client
21
+ * state.
22
+ *
23
+ * @internal
24
+ */
25
+ export class RpcRequestsHandler {
26
+ constructor(props) {
27
+ this.clientId = props?.clientId ?? Guid.createValue();
28
+ this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/naming-convention
31
+ get rpcClient() { return RpcManager.getClientForInterface(PresentationRpcInterface); }
32
+ async requestWithTimeout(func, diagnosticsHandler) {
33
+ const start = BeTimePoint.now();
34
+ const timeout = BeDuration.fromMilliseconds(this.timeout);
35
+ let diagnostics;
36
+ while (start.plus(timeout).isInFuture) {
37
+ try {
38
+ const response = await func();
39
+ diagnostics = response.diagnostics;
40
+ switch (response.statusCode) {
41
+ case PresentationStatus.Success: return response.result;
42
+ case PresentationStatus.BackendTimeout: break;
43
+ default: throw new PresentationError(response.statusCode, response.errorMessage);
44
+ }
45
+ }
46
+ finally {
47
+ diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
48
+ }
49
+ }
50
+ throw new PresentationError(PresentationStatus.BackendTimeout);
51
+ }
52
+ /**
53
+ * Send the request to backend.
54
+ *
55
+ * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
56
+ * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
57
+ * is thrown with the details from the response.
58
+ */
59
+ async request(func, options, ...additionalOptions) {
60
+ const { imodel, diagnostics, ...optionsNoIModel } = options;
61
+ const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};
62
+ if (isOptionsWithRuleset(optionsNoIModel)) {
63
+ optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);
64
+ }
65
+ const rpcOptions = {
66
+ ...optionsNoIModel,
67
+ clientId: this.clientId,
68
+ };
69
+ if (diagnostics) {
70
+ rpcOptions.diagnostics = diagnosticsOptions;
71
+ }
72
+ const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);
73
+ return this.requestWithTimeout(doRequest, diagnosticsHandler);
74
+ }
75
+ async getNodesCount(options) {
76
+ return this.request(this.rpcClient.getNodesCount.bind(this.rpcClient), options);
77
+ }
78
+ // eslint-disable-next-line deprecation/deprecation
79
+ async getPagedNodes(options) {
80
+ // eslint-disable-next-line deprecation/deprecation
81
+ return this.request(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);
82
+ }
83
+ async getNodesDescriptor(options) {
84
+ const response = await this.request(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);
85
+ if (typeof response === "string")
86
+ return JSON.parse(response);
87
+ return response;
88
+ }
89
+ // eslint-disable-next-line deprecation/deprecation
90
+ async getNodePaths(options) {
91
+ // eslint-disable-next-line deprecation/deprecation
92
+ return this.request(this.rpcClient.getNodePaths.bind(this.rpcClient), options);
93
+ }
94
+ // eslint-disable-next-line deprecation/deprecation
95
+ async getFilteredNodePaths(options) {
96
+ // eslint-disable-next-line deprecation/deprecation
97
+ return this.request(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);
98
+ }
99
+ async getContentSources(options) {
100
+ return this.request(this.rpcClient.getContentSources.bind(this.rpcClient), options);
101
+ }
102
+ async getContentDescriptor(options) {
103
+ return this.request(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);
104
+ }
105
+ async getContentSetSize(options) {
106
+ return this.request(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);
107
+ }
108
+ async getPagedContent(options) {
109
+ return this.request(this.rpcClient.getPagedContent.bind(this.rpcClient), options);
110
+ }
111
+ async getPagedContentSet(options) {
112
+ return this.request(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);
113
+ }
114
+ // eslint-disable-next-line deprecation/deprecation
115
+ async getPagedDistinctValues(options) {
116
+ // eslint-disable-next-line deprecation/deprecation
117
+ return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
118
+ }
119
+ async getElementProperties(options) {
120
+ return this.request(this.rpcClient.getElementProperties.bind(this.rpcClient), options);
121
+ }
122
+ async getContentInstanceKeys(options) {
123
+ return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
124
+ }
125
+ async getDisplayLabelDefinition(options) {
126
+ return this.request(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);
127
+ }
128
+ async getPagedDisplayLabelDefinitions(options) {
129
+ return this.request(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);
130
+ }
131
+ async getSelectionScopes(options) {
132
+ return this.request(this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);
133
+ }
134
+ async computeSelection(options) {
135
+ return this.request(
136
+ // eslint-disable-next-line deprecation/deprecation
137
+ this.rpcClient.computeSelection.bind(this.rpcClient), options);
138
+ }
139
+ }
140
+ function isOptionsWithRuleset(options) {
141
+ return (typeof options.rulesetOrId === "object");
142
+ }
143
+ const RULESET_SUPPORTED_PROPERTIES_OBJ = {
144
+ id: true,
145
+ rules: true,
146
+ version: true,
147
+ requiredSchemas: true,
148
+ supplementationInfo: true,
149
+ vars: true,
150
+ };
151
+ function cleanupRuleset(ruleset) {
152
+ const cleanedUpRuleset = { ...ruleset };
153
+ for (const propertyKey of Object.keys(cleanedUpRuleset)) {
154
+ if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {
155
+ if (propertyKey === "$schema")
156
+ delete cleanedUpRuleset[propertyKey];
157
+ else
158
+ Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);
159
+ }
160
+ }
161
+ return cleanedUpRuleset;
162
+ }
163
163
  //# sourceMappingURL=RpcRequestsHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRequestsHandler.js","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module RPC\r\n */\r\n\r\nimport { BeDuration, BeTimePoint, Guid, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcManager } from \"@itwin/core-common\";\r\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory\";\r\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsAttribute, ClientDiagnosticsHandler } from \"./Diagnostics\";\r\nimport { InstanceKey } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationError, PresentationStatus } from \"./Error\";\r\nimport { NodeKey } from \"./hierarchy/Key\";\r\nimport { NodeJSON } from \"./hierarchy/Node\";\r\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\r\nimport { KeySetJSON } from \"./KeySet\";\r\nimport { LabelDefinition } from \"./LabelDefinition\";\r\nimport {\r\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\r\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions,\r\n Paged, RequestOptions, RequestOptionsWithRuleset, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport {\r\n ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse,\r\n} from \"./PresentationRpcInterface\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing\r\n * a timeout error.\r\n */\r\nconst DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes\r\n\r\n/**\r\n * Configuration parameters for [[RpcRequestsHandler]].\r\n *\r\n * @internal\r\n */\r\nexport interface RpcRequestsHandlerProps {\r\n /**\r\n * Optional ID used to identify client that requests data. If not specified,\r\n * the handler creates a unique GUID as a client id.\r\n * @internal\r\n */\r\n clientId?: string;\r\n\r\n /** @internal */\r\n timeout?: number;\r\n}\r\n\r\n/**\r\n * RPC requests handler that wraps [[PresentationRpcInterface]] and\r\n * adds handling for cases when backend needs to be synced with client\r\n * state.\r\n *\r\n * @internal\r\n */\r\nexport class RpcRequestsHandler {\r\n /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */\r\n public readonly timeout: number;\r\n\r\n /** ID that identifies this handler as a client */\r\n public readonly clientId: string;\r\n\r\n public constructor(props?: RpcRequestsHandlerProps) {\r\n this.clientId = props?.clientId ?? Guid.createValue();\r\n this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private get rpcClient(): PresentationRpcInterface { return RpcManager.getClientForInterface(PresentationRpcInterface); }\r\n\r\n private async requestWithTimeout<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler): Promise<TResult> {\r\n const start = BeTimePoint.now();\r\n const timeout = BeDuration.fromMilliseconds(this.timeout);\r\n let diagnostics: ClientDiagnostics | undefined;\r\n while (start.plus(timeout).isInFuture) {\r\n try {\r\n const response = await func();\r\n diagnostics = response.diagnostics;\r\n switch (response.statusCode) {\r\n case PresentationStatus.Success: return response.result!;\r\n case PresentationStatus.BackendTimeout: break;\r\n default: throw new PresentationError(response.statusCode, response.errorMessage);\r\n }\r\n } finally {\r\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\r\n }\r\n }\r\n throw new PresentationError(PresentationStatus.BackendTimeout);\r\n }\r\n\r\n /**\r\n * Send the request to backend.\r\n *\r\n * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get\r\n * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]\r\n * is thrown with the details from the response.\r\n */\r\n public async request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(\r\n func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>,\r\n options: TOptions,\r\n ...additionalOptions: TArg[]\r\n ): Promise<TResult> {\r\n const { imodel, diagnostics, ...optionsNoIModel } = options;\r\n const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};\r\n if (isOptionsWithRuleset(optionsNoIModel)) {\r\n optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);\r\n }\r\n const rpcOptions: PresentationRpcRequestOptions<TOptions> = {\r\n ...optionsNoIModel,\r\n clientId: this.clientId,\r\n };\r\n if (diagnostics) {\r\n rpcOptions.diagnostics = diagnosticsOptions;\r\n }\r\n const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\r\n return this.requestWithTimeout(doRequest, diagnosticsHandler);\r\n }\r\n\r\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\r\n return this.request<number, typeof options>(\r\n this.rpcClient.getNodesCount.bind(this.rpcClient), options);\r\n }\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<PagedResponse<NodeJSON>, typeof options>(\r\n this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\r\n const response = await this.request<string | DescriptorJSON | undefined, typeof options>(\r\n this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);\r\n if (typeof response === \"string\")\r\n return JSON.parse(response);\r\n return response;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<NodePathElementJSON[], typeof options>(\r\n this.rpcClient.getNodePaths.bind(this.rpcClient), options);\r\n }\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<NodePathElementJSON[], typeof options>(\r\n this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult> {\r\n return this.request<ContentSourcesRpcResult, typeof options>(\r\n this.rpcClient.getContentSources.bind(this.rpcClient), options);\r\n }\r\n public async getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\r\n return this.request<DescriptorJSON | undefined, typeof options>(\r\n this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\r\n }\r\n public async getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\r\n return this.request<number, typeof options>(\r\n this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\r\n return this.request<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\r\n this.rpcClient.getPagedContent.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\r\n return this.request<PagedResponse<ItemJSON>, typeof options>(\r\n this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<PagedResponse<DisplayValueGroupJSON>, typeof options>(\r\n this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined> {\r\n return this.request<ElementProperties | undefined, typeof options>(\r\n this.rpcClient.getElementProperties.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{ total: number, items: KeySetJSON }> {\r\n return this.request<{ total: number, items: KeySetJSON }, typeof options>(\r\n this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition> {\r\n return this.request<LabelDefinition, typeof options>(\r\n this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\r\n }\r\n public async getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>> {\r\n return this.request<PagedResponse<LabelDefinition>, typeof options>(\r\n this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]> {\r\n return this.request<SelectionScope[], typeof options>(\r\n this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);\r\n }\r\n public async computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON> {\r\n return this.request<KeySetJSON, typeof options>(\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.rpcClient.computeSelection.bind(this.rpcClient), options);\r\n }\r\n}\r\n\r\nfunction isOptionsWithRuleset(options: Object): options is { rulesetOrId: Ruleset } {\r\n return (typeof (options as RequestOptionsWithRuleset<any, any>).rulesetOrId === \"object\");\r\n}\r\n\r\ntype RulesetWithRequiredProperties = {\r\n [key in keyof Ruleset]-?: true;\r\n};\r\n\r\nconst RULESET_SUPPORTED_PROPERTIES_OBJ: RulesetWithRequiredProperties = {\r\n id: true,\r\n rules: true,\r\n version: true,\r\n requiredSchemas: true,\r\n supplementationInfo: true,\r\n vars: true,\r\n};\r\n\r\nfunction cleanupRuleset(ruleset: Ruleset): Ruleset {\r\n const cleanedUpRuleset: Ruleset = { ...ruleset };\r\n\r\n for (const propertyKey of Object.keys(cleanedUpRuleset)) {\r\n if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {\r\n if (propertyKey === \"$schema\")\r\n delete (cleanedUpRuleset as any)[propertyKey];\r\n else\r\n Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);\r\n }\r\n }\r\n\r\n return cleanedUpRuleset;\r\n}\r\n"]}
1
+ {"version":3,"file":"RpcRequestsHandler.js","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RPC\n */\n\nimport { BeDuration, BeTimePoint, Guid, Logger } from \"@itwin/core-bentley\";\nimport { IModelRpcProps, RpcManager } from \"@itwin/core-common\";\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory\";\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor\";\nimport { ItemJSON } from \"./content/Item\";\nimport { DisplayValueGroupJSON } from \"./content/Value\";\nimport { ClientDiagnostics, ClientDiagnosticsAttribute, ClientDiagnosticsHandler } from \"./Diagnostics\";\nimport { InstanceKey } from \"./EC\";\nimport { ElementProperties } from \"./ElementProperties\";\nimport { PresentationError, PresentationStatus } from \"./Error\";\nimport { NodeKey } from \"./hierarchy/Key\";\nimport { NodeJSON } from \"./hierarchy/Node\";\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\nimport { KeySetJSON } from \"./KeySet\";\nimport { LabelDefinition } from \"./LabelDefinition\";\nimport {\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions,\n Paged, RequestOptions, RequestOptionsWithRuleset, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\n} from \"./PresentationManagerOptions\";\nimport {\n ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse,\n} from \"./PresentationRpcInterface\";\nimport { Ruleset } from \"./rules/Ruleset\";\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\nimport { SelectionScope } from \"./selection/SelectionScope\";\nimport { PagedResponse } from \"./Utils\";\n\n/**\n * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing\n * a timeout error.\n */\nconst DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes\n\n/**\n * Configuration parameters for [[RpcRequestsHandler]].\n *\n * @internal\n */\nexport interface RpcRequestsHandlerProps {\n /**\n * Optional ID used to identify client that requests data. If not specified,\n * the handler creates a unique GUID as a client id.\n * @internal\n */\n clientId?: string;\n\n /** @internal */\n timeout?: number;\n}\n\n/**\n * RPC requests handler that wraps [[PresentationRpcInterface]] and\n * adds handling for cases when backend needs to be synced with client\n * state.\n *\n * @internal\n */\nexport class RpcRequestsHandler {\n /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */\n public readonly timeout: number;\n\n /** ID that identifies this handler as a client */\n public readonly clientId: string;\n\n public constructor(props?: RpcRequestsHandlerProps) {\n this.clientId = props?.clientId ?? Guid.createValue();\n this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private get rpcClient(): PresentationRpcInterface { return RpcManager.getClientForInterface(PresentationRpcInterface); }\n\n private async requestWithTimeout<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler): Promise<TResult> {\n const start = BeTimePoint.now();\n const timeout = BeDuration.fromMilliseconds(this.timeout);\n let diagnostics: ClientDiagnostics | undefined;\n while (start.plus(timeout).isInFuture) {\n try {\n const response = await func();\n diagnostics = response.diagnostics;\n switch (response.statusCode) {\n case PresentationStatus.Success: return response.result!;\n case PresentationStatus.BackendTimeout: break;\n default: throw new PresentationError(response.statusCode, response.errorMessage);\n }\n } finally {\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\n }\n }\n throw new PresentationError(PresentationStatus.BackendTimeout);\n }\n\n /**\n * Send the request to backend.\n *\n * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get\n * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]\n * is thrown with the details from the response.\n */\n public async request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(\n func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>,\n options: TOptions,\n ...additionalOptions: TArg[]\n ): Promise<TResult> {\n const { imodel, diagnostics, ...optionsNoIModel } = options;\n const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};\n if (isOptionsWithRuleset(optionsNoIModel)) {\n optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);\n }\n const rpcOptions: PresentationRpcRequestOptions<TOptions> = {\n ...optionsNoIModel,\n clientId: this.clientId,\n };\n if (diagnostics) {\n rpcOptions.diagnostics = diagnosticsOptions;\n }\n const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\n return this.requestWithTimeout(doRequest, diagnosticsHandler);\n }\n\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\n return this.request<number, typeof options>(\n this.rpcClient.getNodesCount.bind(this.rpcClient), options);\n }\n // eslint-disable-next-line deprecation/deprecation\n public async getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<PagedResponse<NodeJSON>, typeof options>(\n this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\n }\n\n public async getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\n const response = await this.request<string | DescriptorJSON | undefined, typeof options>(\n this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);\n if (typeof response === \"string\")\n return JSON.parse(response);\n return response;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n public async getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<NodePathElementJSON[], typeof options>(\n this.rpcClient.getNodePaths.bind(this.rpcClient), options);\n }\n // eslint-disable-next-line deprecation/deprecation\n public async getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<NodePathElementJSON[], typeof options>(\n this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\n }\n\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult> {\n return this.request<ContentSourcesRpcResult, typeof options>(\n this.rpcClient.getContentSources.bind(this.rpcClient), options);\n }\n public async getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\n return this.request<DescriptorJSON | undefined, typeof options>(\n this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\n }\n public async getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\n return this.request<number, typeof options>(\n this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\n }\n public async getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\n return this.request<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\n this.rpcClient.getPagedContent.bind(this.rpcClient), options);\n }\n public async getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\n return this.request<PagedResponse<ItemJSON>, typeof options>(\n this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n public async getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<PagedResponse<DisplayValueGroupJSON>, typeof options>(\n this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\n }\n\n public async getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined> {\n return this.request<ElementProperties | undefined, typeof options>(\n this.rpcClient.getElementProperties.bind(this.rpcClient), options);\n }\n\n public async getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{ total: number, items: KeySetJSON }> {\n return this.request<{ total: number, items: KeySetJSON }, typeof options>(\n this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\n }\n\n public async getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition> {\n return this.request<LabelDefinition, typeof options>(\n this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\n }\n public async getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>> {\n return this.request<PagedResponse<LabelDefinition>, typeof options>(\n this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\n }\n\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]> {\n return this.request<SelectionScope[], typeof options>(\n this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);\n }\n public async computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON> {\n return this.request<KeySetJSON, typeof options>(\n // eslint-disable-next-line deprecation/deprecation\n this.rpcClient.computeSelection.bind(this.rpcClient), options);\n }\n}\n\nfunction isOptionsWithRuleset(options: Object): options is { rulesetOrId: Ruleset } {\n return (typeof (options as RequestOptionsWithRuleset<any, any>).rulesetOrId === \"object\");\n}\n\ntype RulesetWithRequiredProperties = {\n [key in keyof Ruleset]-?: true;\n};\n\nconst RULESET_SUPPORTED_PROPERTIES_OBJ: RulesetWithRequiredProperties = {\n id: true,\n rules: true,\n version: true,\n requiredSchemas: true,\n supplementationInfo: true,\n vars: true,\n};\n\nfunction cleanupRuleset(ruleset: Ruleset): Ruleset {\n const cleanedUpRuleset: Ruleset = { ...ruleset };\n\n for (const propertyKey of Object.keys(cleanedUpRuleset)) {\n if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {\n if (propertyKey === \"$schema\")\n delete (cleanedUpRuleset as any)[propertyKey];\n else\n Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);\n }\n }\n\n return cleanedUpRuleset;\n}\n"]}