@itwin/presentation-common 4.0.0-dev.8 → 4.0.0-dev.81
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.
- package/CHANGELOG.md +51 -1
- package/Ruleset.schema.json +15 -0
- package/lib/cjs/assets/locales/en/Presentation.json +19 -0
- package/lib/cjs/assets/locales/en-PSEUDO/Presentation.json +19 -0
- package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
- package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
- package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
- package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
- package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
- package/lib/cjs/presentation-common/Diagnostics.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Diagnostics.js +72 -72
- package/lib/cjs/presentation-common/EC.d.ts +347 -350
- package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
- package/lib/cjs/presentation-common/EC.js +290 -290
- package/lib/cjs/presentation-common/EC.js.map +1 -1
- package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
- package/lib/cjs/presentation-common/ElementProperties.d.ts.map +1 -1
- package/lib/cjs/presentation-common/ElementProperties.js +9 -9
- package/lib/cjs/presentation-common/Error.d.ts +47 -45
- package/lib/cjs/presentation-common/Error.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Error.js +64 -62
- package/lib/cjs/presentation-common/Error.js.map +1 -1
- package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +93 -93
- package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
- package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
- package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
- package/lib/cjs/presentation-common/KeySet.d.ts.map +1 -1
- package/lib/cjs/presentation-common/KeySet.js +428 -428
- package/lib/cjs/presentation-common/KoqPropertyValueFormatter.d.ts +20 -0
- package/lib/cjs/presentation-common/KoqPropertyValueFormatter.d.ts.map +1 -0
- package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js +156 -0
- package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js.map +1 -0
- package/lib/cjs/presentation-common/LabelDefinition.d.ts +93 -87
- package/lib/cjs/presentation-common/LabelDefinition.d.ts.map +1 -1
- package/lib/cjs/presentation-common/LabelDefinition.js +78 -73
- package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
- package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
- package/lib/cjs/presentation-common/LocalizationHelper.d.ts.map +1 -1
- package/lib/cjs/presentation-common/LocalizationHelper.js +113 -110
- package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +27 -40
- package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
- package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +279 -261
- package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
- package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +186 -186
- package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationRpcInterface.js +108 -104
- package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
- package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
- package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -83
- package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
- package/lib/cjs/presentation-common/RpcRequestsHandler.js +166 -171
- package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
- package/lib/cjs/presentation-common/RulesetVariables.d.ts +171 -171
- package/lib/cjs/presentation-common/RulesetVariables.d.ts.map +1 -1
- package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
- package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
- package/lib/cjs/presentation-common/RulesetsFactory.d.ts.map +1 -1
- package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
- package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
- package/lib/cjs/presentation-common/Update.d.ts +150 -213
- package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Update.js +114 -226
- package/lib/cjs/presentation-common/Update.js.map +1 -1
- package/lib/cjs/presentation-common/Utils.d.ts +62 -62
- package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Utils.js +43 -43
- package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
- package/lib/cjs/presentation-common/content/Category.js +48 -48
- package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
- package/lib/cjs/presentation-common/content/Content.js +56 -56
- package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +271 -271
- package/lib/cjs/presentation-common/content/ContentTraverser.js +437 -439
- package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
- package/lib/cjs/presentation-common/content/Descriptor.d.ts +328 -328
- package/lib/cjs/presentation-common/content/Descriptor.js +191 -193
- package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
- package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
- package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
- package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
- package/lib/cjs/presentation-common/content/Editor.js +9 -9
- package/lib/cjs/presentation-common/content/Fields.d.ts +298 -301
- package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Fields.js +393 -397
- package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
- package/lib/cjs/presentation-common/content/Item.d.ts +85 -85
- package/lib/cjs/presentation-common/content/Item.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Item.js +84 -84
- package/lib/cjs/presentation-common/content/Item.js.map +1 -1
- package/lib/cjs/presentation-common/content/Property.d.ts +57 -57
- package/lib/cjs/presentation-common/content/Property.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Property.js +40 -40
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.d.ts +29 -0
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -0
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.js +139 -0
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.js.map +1 -0
- package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
- package/lib/cjs/presentation-common/content/Renderer.js +9 -9
- package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
- package/lib/cjs/presentation-common/content/TypeDescription.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
- package/lib/cjs/presentation-common/content/Value.d.ts +204 -189
- package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Value.js +281 -273
- package/lib/cjs/presentation-common/content/Value.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
- package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +31 -31
- package/lib/cjs/presentation-common/hierarchy/Key.d.ts +246 -246
- package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/Key.js +121 -121
- package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/Node.d.ts +154 -154
- package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/Node.js +106 -106
- package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
- package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +122 -122
- package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
- package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
- package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
- package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
- package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
- package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
- package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/Rule.d.ts +76 -76
- package/lib/cjs/presentation-common/rules/Rule.js +35 -35
- package/lib/cjs/presentation-common/rules/Ruleset.d.ts +65 -65
- package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
- package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
- package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/Variables.d.ts +58 -58
- package/lib/cjs/presentation-common/rules/Variables.js +25 -25
- package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
- package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
- package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
- package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
- package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
- package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
- package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
- package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
- package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
- package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
- package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
- package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +64 -57
- package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
- package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
- package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
- package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
- package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
- package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
- package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
- package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
- package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
- package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
- package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
- package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
- package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
- package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
- package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
- package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
- package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
- package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
- package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
- package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
- package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
- package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
- package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +21 -21
- package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
- package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
- package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
- package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
- package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
- package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
- package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
- package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
- package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
- package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
- package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
- package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +38 -38
- package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
- package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
- package/lib/cjs/presentation-common.d.ts +114 -112
- package/lib/cjs/presentation-common.d.ts.map +1 -1
- package/lib/cjs/presentation-common.js +134 -128
- package/lib/cjs/presentation-common.js.map +1 -1
- package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
- package/lib/esm/presentation-common/AsyncTasks.js +34 -34
- package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
- package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
- package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
- package/lib/esm/presentation-common/Diagnostics.d.ts.map +1 -1
- package/lib/esm/presentation-common/Diagnostics.js +67 -67
- package/lib/esm/presentation-common/EC.d.ts +347 -350
- package/lib/esm/presentation-common/EC.d.ts.map +1 -1
- package/lib/esm/presentation-common/EC.js +287 -287
- package/lib/esm/presentation-common/EC.js.map +1 -1
- package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
- package/lib/esm/presentation-common/ElementProperties.d.ts.map +1 -1
- package/lib/esm/presentation-common/ElementProperties.js +8 -8
- package/lib/esm/presentation-common/Error.d.ts +47 -45
- package/lib/esm/presentation-common/Error.d.ts.map +1 -1
- package/lib/esm/presentation-common/Error.js +60 -58
- package/lib/esm/presentation-common/Error.js.map +1 -1
- package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +93 -93
- package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
- package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
- package/lib/esm/presentation-common/KeySet.d.ts +146 -146
- package/lib/esm/presentation-common/KeySet.d.ts.map +1 -1
- package/lib/esm/presentation-common/KeySet.js +424 -424
- package/lib/esm/presentation-common/KoqPropertyValueFormatter.d.ts +20 -0
- package/lib/esm/presentation-common/KoqPropertyValueFormatter.d.ts.map +1 -0
- package/lib/esm/presentation-common/KoqPropertyValueFormatter.js +152 -0
- package/lib/esm/presentation-common/KoqPropertyValueFormatter.js.map +1 -0
- package/lib/esm/presentation-common/LabelDefinition.d.ts +93 -87
- package/lib/esm/presentation-common/LabelDefinition.d.ts.map +1 -1
- package/lib/esm/presentation-common/LabelDefinition.js +75 -70
- package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
- package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
- package/lib/esm/presentation-common/LocalizationHelper.d.ts.map +1 -1
- package/lib/esm/presentation-common/LocalizationHelper.js +109 -106
- package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
- package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +27 -40
- package/lib/esm/presentation-common/PresentationIpcInterface.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
- package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
- package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +279 -261
- package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
- package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
- package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +186 -186
- package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationRpcInterface.js +105 -100
- package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
- package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
- package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -83
- package/lib/esm/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
- package/lib/esm/presentation-common/RpcRequestsHandler.js +162 -167
- package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
- package/lib/esm/presentation-common/RulesetVariables.d.ts +171 -171
- package/lib/esm/presentation-common/RulesetVariables.d.ts.map +1 -1
- package/lib/esm/presentation-common/RulesetVariables.js +52 -52
- package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
- package/lib/esm/presentation-common/RulesetsFactory.d.ts.map +1 -1
- package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
- package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
- package/lib/esm/presentation-common/Update.d.ts +150 -213
- package/lib/esm/presentation-common/Update.d.ts.map +1 -1
- package/lib/esm/presentation-common/Update.js +111 -223
- package/lib/esm/presentation-common/Update.js.map +1 -1
- package/lib/esm/presentation-common/Utils.d.ts +62 -62
- package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
- package/lib/esm/presentation-common/Utils.js +39 -39
- package/lib/esm/presentation-common/content/Category.d.ts +49 -49
- package/lib/esm/presentation-common/content/Category.js +45 -45
- package/lib/esm/presentation-common/content/Content.d.ts +38 -38
- package/lib/esm/presentation-common/content/Content.js +52 -52
- package/lib/esm/presentation-common/content/ContentTraverser.d.ts +271 -271
- package/lib/esm/presentation-common/content/ContentTraverser.js +427 -429
- package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
- package/lib/esm/presentation-common/content/Descriptor.d.ts +328 -328
- package/lib/esm/presentation-common/content/Descriptor.js +187 -189
- package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
- package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
- package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
- package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
- package/lib/esm/presentation-common/content/Editor.js +8 -8
- package/lib/esm/presentation-common/content/Fields.d.ts +298 -301
- package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Fields.js +386 -390
- package/lib/esm/presentation-common/content/Fields.js.map +1 -1
- package/lib/esm/presentation-common/content/Item.d.ts +85 -85
- package/lib/esm/presentation-common/content/Item.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Item.js +80 -80
- package/lib/esm/presentation-common/content/Item.js.map +1 -1
- package/lib/esm/presentation-common/content/Property.d.ts +57 -57
- package/lib/esm/presentation-common/content/Property.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Property.js +37 -37
- package/lib/esm/presentation-common/content/PropertyValueFormatter.d.ts +29 -0
- package/lib/esm/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -0
- package/lib/esm/presentation-common/content/PropertyValueFormatter.js +134 -0
- package/lib/esm/presentation-common/content/PropertyValueFormatter.js.map +1 -0
- package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
- package/lib/esm/presentation-common/content/Renderer.js +8 -8
- package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
- package/lib/esm/presentation-common/content/TypeDescription.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
- package/lib/esm/presentation-common/content/Value.d.ts +204 -189
- package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Value.js +278 -270
- package/lib/esm/presentation-common/content/Value.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
- package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +28 -28
- package/lib/esm/presentation-common/hierarchy/Key.d.ts +246 -246
- package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
- package/lib/esm/presentation-common/hierarchy/Key.js +118 -118
- package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/Node.d.ts +154 -154
- package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
- package/lib/esm/presentation-common/hierarchy/Node.js +103 -103
- package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
- package/lib/esm/presentation-common/hierarchy/NodePathElement.js +119 -119
- package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
- package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
- package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
- package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
- package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
- package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
- package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/Rule.d.ts +76 -76
- package/lib/esm/presentation-common/rules/Rule.js +32 -32
- package/lib/esm/presentation-common/rules/Ruleset.d.ts +65 -65
- package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
- package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
- package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/Variables.d.ts +58 -58
- package/lib/esm/presentation-common/rules/Variables.js +22 -22
- package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
- package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
- package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
- package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
- package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
- package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
- package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
- package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
- package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
- package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
- package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
- package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +64 -57
- package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
- package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
- package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
- package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
- package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
- package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
- package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
- package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
- package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
- package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
- package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
- package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
- package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
- package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
- package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
- package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
- package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
- package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
- package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
- package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
- package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
- package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
- package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +18 -18
- package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
- package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
- package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
- package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
- package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
- package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
- package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
- package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
- package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
- package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
- package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
- package/lib/esm/presentation-common/selection/SelectionScope.d.ts +38 -38
- package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
- package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
- package/lib/esm/presentation-common.d.ts +114 -112
- package/lib/esm/presentation-common.d.ts.map +1 -1
- package/lib/esm/presentation-common.js +118 -116
- package/lib/esm/presentation-common.js.map +1 -1
- package/lib/public/locales/en/Presentation.json +19 -0
- package/package.json +17 -15
- package/lib/cjs/assets/locales/en/BisCore.json +0 -18
- package/lib/cjs/assets/locales/en/ECPresentation.json +0 -9
- package/lib/cjs/assets/locales/en/RulesEngine.json +0 -6
- package/lib/cjs/assets/locales/en-PSEUDO/BisCore.json +0 -18
- package/lib/cjs/assets/locales/en-PSEUDO/ECPresentation.json +0 -9
- package/lib/cjs/assets/locales/en-PSEUDO/RulesEngine.json +0 -6
- package/lib/public/locales/en/BisCore.json +0 -18
- package/lib/public/locales/en/ECPresentation.json +0 -9
- package/lib/public/locales/en/RulesEngine.json +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcRequestsHandler.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"RpcRequestsHandler.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,172 +1,167 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module RPC
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.RpcRequestsHandler = void 0;
|
|
11
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
-
const core_common_1 = require("@itwin/core-common");
|
|
13
|
-
const CommonLoggerCategory_1 = require("./CommonLoggerCategory");
|
|
14
|
-
const Error_1 = require("./Error");
|
|
15
|
-
const PresentationRpcInterface_1 = require("./PresentationRpcInterface");
|
|
16
|
-
/**
|
|
17
|
-
* RPC
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return this.request(this.rpcClient.
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
98
|
-
async
|
|
99
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
100
|
-
return this.request(this.rpcClient.
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return this.request(this.rpcClient.
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
core_bentley_1.Logger.logWarning(CommonLoggerCategory_1.PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return cleanedUpRuleset;
|
|
171
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module RPC
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.RpcRequestsHandler = void 0;
|
|
11
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
+
const core_common_1 = require("@itwin/core-common");
|
|
13
|
+
const CommonLoggerCategory_1 = require("./CommonLoggerCategory");
|
|
14
|
+
const Error_1 = require("./Error");
|
|
15
|
+
const PresentationRpcInterface_1 = require("./PresentationRpcInterface");
|
|
16
|
+
/**
|
|
17
|
+
* Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing
|
|
18
|
+
* a timeout error.
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes
|
|
21
|
+
/**
|
|
22
|
+
* RPC requests handler that wraps [[PresentationRpcInterface]] and
|
|
23
|
+
* adds handling for cases when backend needs to be synced with client
|
|
24
|
+
* state.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
class RpcRequestsHandler {
|
|
29
|
+
constructor(props) {
|
|
30
|
+
this.clientId = props?.clientId ?? core_bentley_1.Guid.createValue();
|
|
31
|
+
this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;
|
|
32
|
+
}
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
34
|
+
get rpcClient() { return core_common_1.RpcManager.getClientForInterface(PresentationRpcInterface_1.PresentationRpcInterface); }
|
|
35
|
+
async requestWithTimeout(func, diagnosticsHandler) {
|
|
36
|
+
const start = core_bentley_1.BeTimePoint.now();
|
|
37
|
+
const timeout = core_bentley_1.BeDuration.fromMilliseconds(this.timeout);
|
|
38
|
+
let diagnostics;
|
|
39
|
+
while (start.plus(timeout).isInFuture) {
|
|
40
|
+
try {
|
|
41
|
+
const response = await func();
|
|
42
|
+
diagnostics = response.diagnostics;
|
|
43
|
+
switch (response.statusCode) {
|
|
44
|
+
case Error_1.PresentationStatus.Success: return response.result;
|
|
45
|
+
case Error_1.PresentationStatus.BackendTimeout: break;
|
|
46
|
+
default: throw new Error_1.PresentationError(response.statusCode, response.errorMessage);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
throw new Error_1.PresentationError(Error_1.PresentationStatus.BackendTimeout);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Send the request to backend.
|
|
57
|
+
*
|
|
58
|
+
* If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
|
|
59
|
+
* a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
|
|
60
|
+
* is thrown with the details from the response.
|
|
61
|
+
*/
|
|
62
|
+
async request(func, options, ...additionalOptions) {
|
|
63
|
+
const { imodel, diagnostics, ...optionsNoIModel } = options;
|
|
64
|
+
const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};
|
|
65
|
+
if (isOptionsWithRuleset(optionsNoIModel)) {
|
|
66
|
+
optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);
|
|
67
|
+
}
|
|
68
|
+
const rpcOptions = {
|
|
69
|
+
...optionsNoIModel,
|
|
70
|
+
clientId: this.clientId,
|
|
71
|
+
};
|
|
72
|
+
if (diagnostics) {
|
|
73
|
+
rpcOptions.diagnostics = diagnosticsOptions;
|
|
74
|
+
}
|
|
75
|
+
const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);
|
|
76
|
+
return this.requestWithTimeout(doRequest, diagnosticsHandler);
|
|
77
|
+
}
|
|
78
|
+
async getNodesCount(options) {
|
|
79
|
+
return this.request(this.rpcClient.getNodesCount.bind(this.rpcClient), options);
|
|
80
|
+
}
|
|
81
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
82
|
+
async getPagedNodes(options) {
|
|
83
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
84
|
+
return this.request(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);
|
|
85
|
+
}
|
|
86
|
+
async getNodesDescriptor(options) {
|
|
87
|
+
const response = await this.request(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);
|
|
88
|
+
if (typeof response === "string")
|
|
89
|
+
return JSON.parse(response);
|
|
90
|
+
return response;
|
|
91
|
+
}
|
|
92
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
93
|
+
async getNodePaths(options) {
|
|
94
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
95
|
+
return this.request(this.rpcClient.getNodePaths.bind(this.rpcClient), options);
|
|
96
|
+
}
|
|
97
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
98
|
+
async getFilteredNodePaths(options) {
|
|
99
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
100
|
+
return this.request(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);
|
|
101
|
+
}
|
|
102
|
+
async getContentSources(options) {
|
|
103
|
+
return this.request(this.rpcClient.getContentSources.bind(this.rpcClient), options);
|
|
104
|
+
}
|
|
105
|
+
async getContentDescriptor(options) {
|
|
106
|
+
return this.request(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);
|
|
107
|
+
}
|
|
108
|
+
async getContentSetSize(options) {
|
|
109
|
+
return this.request(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);
|
|
110
|
+
}
|
|
111
|
+
async getPagedContent(options) {
|
|
112
|
+
return this.request(this.rpcClient.getPagedContent.bind(this.rpcClient), options);
|
|
113
|
+
}
|
|
114
|
+
async getPagedContentSet(options) {
|
|
115
|
+
return this.request(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);
|
|
116
|
+
}
|
|
117
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
118
|
+
async getPagedDistinctValues(options) {
|
|
119
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
120
|
+
return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
|
|
121
|
+
}
|
|
122
|
+
async getElementProperties(options) {
|
|
123
|
+
return this.request(this.rpcClient.getElementProperties.bind(this.rpcClient), options);
|
|
124
|
+
}
|
|
125
|
+
async getContentInstanceKeys(options) {
|
|
126
|
+
return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
|
|
127
|
+
}
|
|
128
|
+
async getDisplayLabelDefinition(options) {
|
|
129
|
+
return this.request(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);
|
|
130
|
+
}
|
|
131
|
+
async getPagedDisplayLabelDefinitions(options) {
|
|
132
|
+
return this.request(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);
|
|
133
|
+
}
|
|
134
|
+
async getSelectionScopes(options) {
|
|
135
|
+
return this.request(this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);
|
|
136
|
+
}
|
|
137
|
+
async computeSelection(options) {
|
|
138
|
+
return this.request(
|
|
139
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
140
|
+
this.rpcClient.computeSelection.bind(this.rpcClient), options);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.RpcRequestsHandler = RpcRequestsHandler;
|
|
144
|
+
function isOptionsWithRuleset(options) {
|
|
145
|
+
return (typeof options.rulesetOrId === "object");
|
|
146
|
+
}
|
|
147
|
+
const RULESET_SUPPORTED_PROPERTIES_OBJ = {
|
|
148
|
+
id: true,
|
|
149
|
+
rules: true,
|
|
150
|
+
version: true,
|
|
151
|
+
requiredSchemas: true,
|
|
152
|
+
supplementationInfo: true,
|
|
153
|
+
vars: true,
|
|
154
|
+
};
|
|
155
|
+
function cleanupRuleset(ruleset) {
|
|
156
|
+
const cleanedUpRuleset = { ...ruleset };
|
|
157
|
+
for (const propertyKey of Object.keys(cleanedUpRuleset)) {
|
|
158
|
+
if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {
|
|
159
|
+
if (propertyKey === "$schema")
|
|
160
|
+
delete cleanedUpRuleset[propertyKey];
|
|
161
|
+
else
|
|
162
|
+
core_bentley_1.Logger.logWarning(CommonLoggerCategory_1.PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return cleanedUpRuleset;
|
|
166
|
+
}
|
|
172
167
|
//# 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 { Guid, IDisposable, 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 * 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\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 implements IDisposable {\r\n public readonly maxRequestRepeatCount: number = 5;\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 && props.clientId) ? props.clientId : Guid.createValue();\r\n }\r\n\r\n public dispose() {\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 requestRepeatedly<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler, repeatCount: number = 1): Promise<TResult> {\r\n let diagnostics: ClientDiagnostics | undefined;\r\n let error: unknown | undefined;\r\n let shouldRepeat = false;\r\n try {\r\n const response = await func();\r\n diagnostics = response.diagnostics;\r\n\r\n if (response.statusCode === PresentationStatus.Success)\r\n return response.result!;\r\n\r\n if (response.statusCode === PresentationStatus.BackendTimeout && repeatCount < this.maxRequestRepeatCount)\r\n shouldRepeat = true;\r\n else\r\n error = new PresentationError(response.statusCode, response.errorMessage);\r\n\r\n } catch (e) {\r\n error = e;\r\n if (repeatCount < this.maxRequestRepeatCount)\r\n shouldRepeat = true;\r\n\r\n } finally {\r\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\r\n }\r\n\r\n if (shouldRepeat) {\r\n ++repeatCount;\r\n return this.requestRepeatedly(func, diagnosticsHandler, repeatCount);\r\n }\r\n\r\n throw error;\r\n }\r\n\r\n /**\r\n * Send the request to backend.\r\n *\r\n * If the backend responds with [[PresentationStatus.BackendTimeout]] or there's an RPC-related error,\r\n * the request is repeated up to `this._maxRequestRepeatCount` times. If we fail to get a valid success or error\r\n * response from the backend, throw the last encountered error.\r\n *\r\n * @internal\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 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 const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\r\n return this.requestRepeatedly(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":["/*---------------------------------------------------------------------------------------------\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"]}
|