@itwin/core-common 3.2.0-dev.9 → 3.2.2

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 (676) hide show
  1. package/CHANGELOG.md +61 -1
  2. package/lib/cjs/AnalysisStyle.d.ts +3 -0
  3. package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
  4. package/lib/cjs/AnalysisStyle.js.map +1 -1
  5. package/lib/cjs/BackgroundMapProvider.d.ts +6 -0
  6. package/lib/cjs/BackgroundMapProvider.d.ts.map +1 -1
  7. package/lib/cjs/BackgroundMapProvider.js +10 -0
  8. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  9. package/lib/cjs/BackgroundMapSettings.d.ts +4 -0
  10. package/lib/cjs/BackgroundMapSettings.d.ts.map +1 -1
  11. package/lib/cjs/BackgroundMapSettings.js +1 -0
  12. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  13. package/lib/cjs/Base64EncodedString.d.ts +1 -0
  14. package/lib/cjs/Base64EncodedString.d.ts.map +1 -1
  15. package/lib/cjs/Base64EncodedString.js.map +1 -1
  16. package/lib/cjs/BriefcaseTypes.d.ts +5 -0
  17. package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
  18. package/lib/cjs/BriefcaseTypes.js +2 -0
  19. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  20. package/lib/cjs/Camera.d.ts +1 -0
  21. package/lib/cjs/Camera.d.ts.map +1 -1
  22. package/lib/cjs/Camera.js.map +1 -1
  23. package/lib/cjs/ChangedElements.d.ts +2 -0
  24. package/lib/cjs/ChangedElements.d.ts.map +1 -1
  25. package/lib/cjs/ChangedElements.js +1 -0
  26. package/lib/cjs/ChangedElements.js.map +1 -1
  27. package/lib/cjs/ChangedEntities.d.ts +3 -0
  28. package/lib/cjs/ChangedEntities.d.ts.map +1 -1
  29. package/lib/cjs/ChangedEntities.js.map +1 -1
  30. package/lib/cjs/ChangesetProps.d.ts +9 -1
  31. package/lib/cjs/ChangesetProps.d.ts.map +1 -1
  32. package/lib/cjs/ChangesetProps.js +3 -1
  33. package/lib/cjs/ChangesetProps.js.map +1 -1
  34. package/lib/cjs/ClipStyle.d.ts +2 -0
  35. package/lib/cjs/ClipStyle.d.ts.map +1 -1
  36. package/lib/cjs/ClipStyle.js.map +1 -1
  37. package/lib/cjs/CloudStorage.d.ts.map +1 -1
  38. package/lib/cjs/CloudStorage.js +14 -20
  39. package/lib/cjs/CloudStorage.js.map +1 -1
  40. package/lib/cjs/Code.d.ts +3 -0
  41. package/lib/cjs/Code.d.ts.map +1 -1
  42. package/lib/cjs/Code.js +1 -0
  43. package/lib/cjs/Code.js.map +1 -1
  44. package/lib/cjs/ColorByName.d.ts +153 -152
  45. package/lib/cjs/ColorByName.d.ts.map +1 -1
  46. package/lib/cjs/ColorByName.js +153 -153
  47. package/lib/cjs/ColorByName.js.map +1 -1
  48. package/lib/cjs/ColorDef.d.ts +55 -46
  49. package/lib/cjs/ColorDef.d.ts.map +1 -1
  50. package/lib/cjs/ColorDef.js +49 -31
  51. package/lib/cjs/ColorDef.js.map +1 -1
  52. package/lib/cjs/CommonLoggerCategory.d.ts +1 -0
  53. package/lib/cjs/CommonLoggerCategory.d.ts.map +1 -1
  54. package/lib/cjs/CommonLoggerCategory.js +1 -0
  55. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  56. package/lib/cjs/ConcurrentQuery.d.ts +6 -1
  57. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  58. package/lib/cjs/ConcurrentQuery.js +3 -1
  59. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  60. package/lib/cjs/ContextRealityModel.d.ts +2 -0
  61. package/lib/cjs/ContextRealityModel.d.ts.map +1 -1
  62. package/lib/cjs/ContextRealityModel.js.map +1 -1
  63. package/lib/cjs/DisplayStyleSettings.d.ts +10 -0
  64. package/lib/cjs/DisplayStyleSettings.d.ts.map +1 -1
  65. package/lib/cjs/DisplayStyleSettings.js +1 -0
  66. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  67. package/lib/cjs/ECSqlTypes.d.ts +6 -0
  68. package/lib/cjs/ECSqlTypes.d.ts.map +1 -1
  69. package/lib/cjs/ECSqlTypes.js +4 -0
  70. package/lib/cjs/ECSqlTypes.js.map +1 -1
  71. package/lib/cjs/ElementProps.d.ts +37 -1
  72. package/lib/cjs/ElementProps.d.ts.map +1 -1
  73. package/lib/cjs/ElementProps.js +2 -0
  74. package/lib/cjs/ElementProps.js.map +1 -1
  75. package/lib/cjs/EmphasizeElementsProps.d.ts +3 -0
  76. package/lib/cjs/EmphasizeElementsProps.d.ts.map +1 -1
  77. package/lib/cjs/EmphasizeElementsProps.js +1 -0
  78. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  79. package/lib/cjs/EntityProps.d.ts +4 -0
  80. package/lib/cjs/EntityProps.d.ts.map +1 -1
  81. package/lib/cjs/EntityProps.js.map +1 -1
  82. package/lib/cjs/Environment.d.ts +1 -0
  83. package/lib/cjs/Environment.d.ts.map +1 -1
  84. package/lib/cjs/Environment.js.map +1 -1
  85. package/lib/cjs/FeatureSymbology.d.ts +3 -0
  86. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  87. package/lib/cjs/FeatureSymbology.js.map +1 -1
  88. package/lib/cjs/FeatureTable.d.ts +1 -0
  89. package/lib/cjs/FeatureTable.d.ts.map +1 -1
  90. package/lib/cjs/FeatureTable.js +1 -0
  91. package/lib/cjs/FeatureTable.js.map +1 -1
  92. package/lib/cjs/Fonts.d.ts +3 -0
  93. package/lib/cjs/Fonts.d.ts.map +1 -1
  94. package/lib/cjs/Fonts.js +1 -0
  95. package/lib/cjs/Fonts.js.map +1 -1
  96. package/lib/cjs/Frustum.d.ts +1 -0
  97. package/lib/cjs/Frustum.d.ts.map +1 -1
  98. package/lib/cjs/Frustum.js +1 -0
  99. package/lib/cjs/Frustum.js.map +1 -1
  100. package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
  101. package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
  102. package/lib/cjs/GeoCoordinateServices.js +1 -0
  103. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  104. package/lib/cjs/GeometryContainment.d.ts +2 -0
  105. package/lib/cjs/GeometryContainment.d.ts.map +1 -1
  106. package/lib/cjs/GeometryContainment.js.map +1 -1
  107. package/lib/cjs/GeometryParams.d.ts +3 -0
  108. package/lib/cjs/GeometryParams.d.ts.map +1 -1
  109. package/lib/cjs/GeometryParams.js +3 -0
  110. package/lib/cjs/GeometryParams.js.map +1 -1
  111. package/lib/cjs/GeometrySummary.d.ts +3 -0
  112. package/lib/cjs/GeometrySummary.d.ts.map +1 -1
  113. package/lib/cjs/GeometrySummary.js +1 -0
  114. package/lib/cjs/GeometrySummary.js.map +1 -1
  115. package/lib/cjs/GraphicParams.d.ts +1 -0
  116. package/lib/cjs/GraphicParams.d.ts.map +1 -1
  117. package/lib/cjs/GraphicParams.js +1 -0
  118. package/lib/cjs/GraphicParams.js.map +1 -1
  119. package/lib/cjs/GroundPlane.d.ts +1 -0
  120. package/lib/cjs/GroundPlane.d.ts.map +1 -1
  121. package/lib/cjs/GroundPlane.js.map +1 -1
  122. package/lib/cjs/HSVColor.d.ts +4 -1
  123. package/lib/cjs/HSVColor.d.ts.map +1 -1
  124. package/lib/cjs/HSVColor.js +4 -1
  125. package/lib/cjs/HSVColor.js.map +1 -1
  126. package/lib/cjs/HiddenLine.d.ts +12 -17
  127. package/lib/cjs/HiddenLine.d.ts.map +1 -1
  128. package/lib/cjs/HiddenLine.js +6 -2
  129. package/lib/cjs/HiddenLine.js.map +1 -1
  130. package/lib/cjs/IModel.d.ts +6 -1
  131. package/lib/cjs/IModel.d.ts.map +1 -1
  132. package/lib/cjs/IModel.js.map +1 -1
  133. package/lib/cjs/Image.d.ts +2 -0
  134. package/lib/cjs/Image.d.ts.map +1 -1
  135. package/lib/cjs/Image.js +2 -0
  136. package/lib/cjs/Image.js.map +1 -1
  137. package/lib/cjs/IpcAppProps.d.ts +1 -0
  138. package/lib/cjs/IpcAppProps.d.ts.map +1 -1
  139. package/lib/cjs/IpcAppProps.js.map +1 -1
  140. package/lib/cjs/LightSettings.d.ts +5 -0
  141. package/lib/cjs/LightSettings.d.ts.map +1 -1
  142. package/lib/cjs/LightSettings.js.map +1 -1
  143. package/lib/cjs/LinePixels.d.ts +1 -0
  144. package/lib/cjs/LinePixels.d.ts.map +1 -1
  145. package/lib/cjs/LinePixels.js +1 -0
  146. package/lib/cjs/LinePixels.js.map +1 -1
  147. package/lib/cjs/Localization.d.ts +1 -0
  148. package/lib/cjs/Localization.d.ts.map +1 -1
  149. package/lib/cjs/Localization.js.map +1 -1
  150. package/lib/cjs/MassProperties.d.ts +27 -1
  151. package/lib/cjs/MassProperties.d.ts.map +1 -1
  152. package/lib/cjs/MassProperties.js +1 -0
  153. package/lib/cjs/MassProperties.js.map +1 -1
  154. package/lib/cjs/MaterialProps.d.ts +6 -0
  155. package/lib/cjs/MaterialProps.d.ts.map +1 -1
  156. package/lib/cjs/MaterialProps.js +1 -0
  157. package/lib/cjs/MaterialProps.js.map +1 -1
  158. package/lib/cjs/ModelClipGroup.d.ts +1 -0
  159. package/lib/cjs/ModelClipGroup.d.ts.map +1 -1
  160. package/lib/cjs/ModelClipGroup.js.map +1 -1
  161. package/lib/cjs/ModelGeometryChanges.d.ts +9 -1
  162. package/lib/cjs/ModelGeometryChanges.d.ts.map +1 -1
  163. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  164. package/lib/cjs/ModelProps.d.ts +6 -0
  165. package/lib/cjs/ModelProps.d.ts.map +1 -1
  166. package/lib/cjs/ModelProps.js.map +1 -1
  167. package/lib/cjs/PlanProjectionSettings.d.ts +1 -0
  168. package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
  169. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  170. package/lib/cjs/PlanarClipMask.d.ts +3 -0
  171. package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
  172. package/lib/cjs/PlanarClipMask.js +2 -0
  173. package/lib/cjs/PlanarClipMask.js.map +1 -1
  174. package/lib/cjs/RgbColor.d.ts +1 -0
  175. package/lib/cjs/RgbColor.d.ts.map +1 -1
  176. package/lib/cjs/RgbColor.js.map +1 -1
  177. package/lib/cjs/SessionProps.d.ts +1 -0
  178. package/lib/cjs/SessionProps.d.ts.map +1 -1
  179. package/lib/cjs/SessionProps.js.map +1 -1
  180. package/lib/cjs/SkyBox.d.ts +4 -0
  181. package/lib/cjs/SkyBox.d.ts.map +1 -1
  182. package/lib/cjs/SkyBox.js +1 -0
  183. package/lib/cjs/SkyBox.js.map +1 -1
  184. package/lib/cjs/SolarShadows.d.ts +1 -0
  185. package/lib/cjs/SolarShadows.d.ts.map +1 -1
  186. package/lib/cjs/SolarShadows.js.map +1 -1
  187. package/lib/cjs/SpatialClassification.d.ts +5 -0
  188. package/lib/cjs/SpatialClassification.d.ts.map +1 -1
  189. package/lib/cjs/SpatialClassification.js +2 -0
  190. package/lib/cjs/SpatialClassification.js.map +1 -1
  191. package/lib/cjs/TerrainSettings.d.ts +3 -0
  192. package/lib/cjs/TerrainSettings.d.ts.map +1 -1
  193. package/lib/cjs/TerrainSettings.js +1 -0
  194. package/lib/cjs/TerrainSettings.js.map +1 -1
  195. package/lib/cjs/TextureProps.d.ts +3 -0
  196. package/lib/cjs/TextureProps.d.ts.map +1 -1
  197. package/lib/cjs/TextureProps.js.map +1 -1
  198. package/lib/cjs/ThematicDisplay.d.ts +9 -1
  199. package/lib/cjs/ThematicDisplay.d.ts.map +1 -1
  200. package/lib/cjs/ThematicDisplay.js +5 -1
  201. package/lib/cjs/ThematicDisplay.js.map +1 -1
  202. package/lib/cjs/Thumbnail.d.ts +2 -0
  203. package/lib/cjs/Thumbnail.d.ts.map +1 -1
  204. package/lib/cjs/Thumbnail.js.map +1 -1
  205. package/lib/cjs/TileProps.d.ts +1 -0
  206. package/lib/cjs/TileProps.d.ts.map +1 -1
  207. package/lib/cjs/TileProps.js.map +1 -1
  208. package/lib/cjs/Tween.d.ts +16 -4
  209. package/lib/cjs/Tween.d.ts.map +1 -1
  210. package/lib/cjs/Tween.js.map +1 -1
  211. package/lib/cjs/TxnAction.d.ts +1 -0
  212. package/lib/cjs/TxnAction.d.ts.map +1 -1
  213. package/lib/cjs/TxnAction.js +1 -0
  214. package/lib/cjs/TxnAction.js.map +1 -1
  215. package/lib/cjs/ViewDetails.d.ts +3 -0
  216. package/lib/cjs/ViewDetails.d.ts.map +1 -1
  217. package/lib/cjs/ViewDetails.js +1 -0
  218. package/lib/cjs/ViewDetails.js.map +1 -1
  219. package/lib/cjs/ViewFlags.d.ts +4 -0
  220. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  221. package/lib/cjs/ViewFlags.js +1 -0
  222. package/lib/cjs/ViewFlags.js.map +1 -1
  223. package/lib/cjs/ViewProps.d.ts +69 -3
  224. package/lib/cjs/ViewProps.d.ts.map +1 -1
  225. package/lib/cjs/ViewProps.js.map +1 -1
  226. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +1 -0
  227. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts.map +1 -1
  228. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  229. package/lib/cjs/domains/FunctionalElementProps.d.ts +4 -1
  230. package/lib/cjs/domains/FunctionalElementProps.d.ts.map +1 -1
  231. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  232. package/lib/cjs/domains/GenericElementProps.d.ts +8 -2
  233. package/lib/cjs/domains/GenericElementProps.d.ts.map +1 -1
  234. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  235. package/lib/cjs/geometry/AdditionalTransform.d.ts +2 -0
  236. package/lib/cjs/geometry/AdditionalTransform.d.ts.map +1 -1
  237. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  238. package/lib/cjs/geometry/Cartographic.d.ts +1 -0
  239. package/lib/cjs/geometry/Cartographic.d.ts.map +1 -1
  240. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  241. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +5 -0
  242. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts.map +1 -1
  243. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  244. package/lib/cjs/geometry/ElementGeometry.d.ts +2 -0
  245. package/lib/cjs/geometry/ElementGeometry.d.ts.map +1 -1
  246. package/lib/cjs/geometry/ElementGeometry.js +1 -0
  247. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  248. package/lib/cjs/geometry/GeodeticDatum.d.ts +80 -1
  249. package/lib/cjs/geometry/GeodeticDatum.d.ts.map +1 -1
  250. package/lib/cjs/geometry/GeodeticDatum.js +79 -1
  251. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  252. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +1 -0
  253. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts.map +1 -1
  254. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  255. package/lib/cjs/geometry/GeometryStream.d.ts +15 -0
  256. package/lib/cjs/geometry/GeometryStream.d.ts.map +1 -1
  257. package/lib/cjs/geometry/GeometryStream.js +11 -7
  258. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  259. package/lib/cjs/geometry/ImageGraphic.d.ts +2 -0
  260. package/lib/cjs/geometry/ImageGraphic.d.ts.map +1 -1
  261. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  262. package/lib/cjs/geometry/Placement.d.ts +6 -0
  263. package/lib/cjs/geometry/Placement.d.ts.map +1 -1
  264. package/lib/cjs/geometry/Placement.js.map +1 -1
  265. package/lib/cjs/geometry/Projection.d.ts +6 -0
  266. package/lib/cjs/geometry/Projection.d.ts.map +1 -1
  267. package/lib/cjs/geometry/Projection.js.map +1 -1
  268. package/lib/cjs/geometry/TextString.d.ts +1 -0
  269. package/lib/cjs/geometry/TextString.d.ts.map +1 -1
  270. package/lib/cjs/geometry/TextString.js.map +1 -1
  271. package/lib/cjs/ipc/IpcSocket.d.ts +1 -0
  272. package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
  273. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  274. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts.map +1 -1
  275. package/lib/cjs/ipc/IpcWebSocketTransport.js +3 -2
  276. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  277. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +5 -2
  278. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  279. package/lib/cjs/rpc/IModelReadRpcInterface.js +4 -1
  280. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  281. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +4 -2
  282. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  283. package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -2
  284. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  285. package/lib/cjs/rpc/core/RpcControl.d.ts.map +1 -1
  286. package/lib/cjs/rpc/core/RpcControl.js +3 -2
  287. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  288. package/lib/cjs/rpc/core/RpcInvocation.d.ts +3 -0
  289. package/lib/cjs/rpc/core/RpcInvocation.d.ts.map +1 -1
  290. package/lib/cjs/rpc/core/RpcInvocation.js +32 -1
  291. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  292. package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
  293. package/lib/cjs/rpc/core/RpcMarshaling.js +2 -1
  294. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  295. package/lib/cjs/rpc/core/RpcOperation.d.ts +2 -0
  296. package/lib/cjs/rpc/core/RpcOperation.d.ts.map +1 -1
  297. package/lib/cjs/rpc/core/RpcOperation.js +2 -0
  298. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  299. package/lib/cjs/rpc/core/RpcProtocol.d.ts +24 -1
  300. package/lib/cjs/rpc/core/RpcProtocol.d.ts.map +1 -1
  301. package/lib/cjs/rpc/core/RpcProtocol.js +15 -2
  302. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  303. package/lib/cjs/rpc/core/RpcRequest.d.ts +3 -0
  304. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  305. package/lib/cjs/rpc/core/RpcRequest.js +36 -1
  306. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  307. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
  308. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +1 -2
  309. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  310. package/lib/cjs/rpc/web/RpcMultipart.d.ts +1 -0
  311. package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
  312. package/lib/cjs/rpc/web/RpcMultipart.js +2 -1
  313. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  314. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  315. package/lib/cjs/rpc/web/WebAppRpcLogging.js +14 -10
  316. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  317. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +3 -1
  318. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  319. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +8 -7
  320. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  321. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +5 -6
  322. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  323. package/lib/cjs/rpc/web/WebAppRpcRequest.js +49 -30
  324. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  325. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +1 -0
  326. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  327. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +4 -3
  328. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  329. package/lib/cjs/tile/ElementGraphics.d.ts +20 -2
  330. package/lib/cjs/tile/ElementGraphics.d.ts.map +1 -1
  331. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  332. package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
  333. package/lib/cjs/tile/IModelTileIO.js +2 -2
  334. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  335. package/lib/cjs/tile/TileMetadata.d.ts +18 -13
  336. package/lib/cjs/tile/TileMetadata.d.ts.map +1 -1
  337. package/lib/cjs/tile/TileMetadata.js +164 -134
  338. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  339. package/lib/esm/AnalysisStyle.d.ts +3 -0
  340. package/lib/esm/AnalysisStyle.d.ts.map +1 -1
  341. package/lib/esm/AnalysisStyle.js.map +1 -1
  342. package/lib/esm/BackgroundMapProvider.d.ts +6 -0
  343. package/lib/esm/BackgroundMapProvider.d.ts.map +1 -1
  344. package/lib/esm/BackgroundMapProvider.js +10 -0
  345. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  346. package/lib/esm/BackgroundMapSettings.d.ts +4 -0
  347. package/lib/esm/BackgroundMapSettings.d.ts.map +1 -1
  348. package/lib/esm/BackgroundMapSettings.js +1 -0
  349. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  350. package/lib/esm/Base64EncodedString.d.ts +1 -0
  351. package/lib/esm/Base64EncodedString.d.ts.map +1 -1
  352. package/lib/esm/Base64EncodedString.js.map +1 -1
  353. package/lib/esm/BriefcaseTypes.d.ts +5 -0
  354. package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
  355. package/lib/esm/BriefcaseTypes.js +2 -0
  356. package/lib/esm/BriefcaseTypes.js.map +1 -1
  357. package/lib/esm/Camera.d.ts +1 -0
  358. package/lib/esm/Camera.d.ts.map +1 -1
  359. package/lib/esm/Camera.js.map +1 -1
  360. package/lib/esm/ChangedElements.d.ts +2 -0
  361. package/lib/esm/ChangedElements.d.ts.map +1 -1
  362. package/lib/esm/ChangedElements.js +1 -0
  363. package/lib/esm/ChangedElements.js.map +1 -1
  364. package/lib/esm/ChangedEntities.d.ts +3 -0
  365. package/lib/esm/ChangedEntities.d.ts.map +1 -1
  366. package/lib/esm/ChangedEntities.js.map +1 -1
  367. package/lib/esm/ChangesetProps.d.ts +9 -1
  368. package/lib/esm/ChangesetProps.d.ts.map +1 -1
  369. package/lib/esm/ChangesetProps.js +3 -1
  370. package/lib/esm/ChangesetProps.js.map +1 -1
  371. package/lib/esm/ClipStyle.d.ts +2 -0
  372. package/lib/esm/ClipStyle.d.ts.map +1 -1
  373. package/lib/esm/ClipStyle.js.map +1 -1
  374. package/lib/esm/CloudStorage.d.ts.map +1 -1
  375. package/lib/esm/CloudStorage.js +14 -20
  376. package/lib/esm/CloudStorage.js.map +1 -1
  377. package/lib/esm/Code.d.ts +3 -0
  378. package/lib/esm/Code.d.ts.map +1 -1
  379. package/lib/esm/Code.js +1 -0
  380. package/lib/esm/Code.js.map +1 -1
  381. package/lib/esm/ColorByName.d.ts +153 -152
  382. package/lib/esm/ColorByName.d.ts.map +1 -1
  383. package/lib/esm/ColorByName.js +153 -153
  384. package/lib/esm/ColorByName.js.map +1 -1
  385. package/lib/esm/ColorDef.d.ts +55 -46
  386. package/lib/esm/ColorDef.d.ts.map +1 -1
  387. package/lib/esm/ColorDef.js +49 -31
  388. package/lib/esm/ColorDef.js.map +1 -1
  389. package/lib/esm/CommonLoggerCategory.d.ts +1 -0
  390. package/lib/esm/CommonLoggerCategory.d.ts.map +1 -1
  391. package/lib/esm/CommonLoggerCategory.js +1 -0
  392. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  393. package/lib/esm/ConcurrentQuery.d.ts +6 -1
  394. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  395. package/lib/esm/ConcurrentQuery.js +2 -0
  396. package/lib/esm/ConcurrentQuery.js.map +1 -1
  397. package/lib/esm/ContextRealityModel.d.ts +2 -0
  398. package/lib/esm/ContextRealityModel.d.ts.map +1 -1
  399. package/lib/esm/ContextRealityModel.js.map +1 -1
  400. package/lib/esm/DisplayStyleSettings.d.ts +10 -0
  401. package/lib/esm/DisplayStyleSettings.d.ts.map +1 -1
  402. package/lib/esm/DisplayStyleSettings.js +1 -0
  403. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  404. package/lib/esm/ECSqlTypes.d.ts +6 -0
  405. package/lib/esm/ECSqlTypes.d.ts.map +1 -1
  406. package/lib/esm/ECSqlTypes.js +4 -0
  407. package/lib/esm/ECSqlTypes.js.map +1 -1
  408. package/lib/esm/ElementProps.d.ts +37 -1
  409. package/lib/esm/ElementProps.d.ts.map +1 -1
  410. package/lib/esm/ElementProps.js +2 -0
  411. package/lib/esm/ElementProps.js.map +1 -1
  412. package/lib/esm/EmphasizeElementsProps.d.ts +3 -0
  413. package/lib/esm/EmphasizeElementsProps.d.ts.map +1 -1
  414. package/lib/esm/EmphasizeElementsProps.js +1 -0
  415. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  416. package/lib/esm/EntityProps.d.ts +4 -0
  417. package/lib/esm/EntityProps.d.ts.map +1 -1
  418. package/lib/esm/EntityProps.js.map +1 -1
  419. package/lib/esm/Environment.d.ts +1 -0
  420. package/lib/esm/Environment.d.ts.map +1 -1
  421. package/lib/esm/Environment.js.map +1 -1
  422. package/lib/esm/FeatureSymbology.d.ts +3 -0
  423. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  424. package/lib/esm/FeatureSymbology.js.map +1 -1
  425. package/lib/esm/FeatureTable.d.ts +1 -0
  426. package/lib/esm/FeatureTable.d.ts.map +1 -1
  427. package/lib/esm/FeatureTable.js +1 -0
  428. package/lib/esm/FeatureTable.js.map +1 -1
  429. package/lib/esm/Fonts.d.ts +3 -0
  430. package/lib/esm/Fonts.d.ts.map +1 -1
  431. package/lib/esm/Fonts.js +1 -0
  432. package/lib/esm/Fonts.js.map +1 -1
  433. package/lib/esm/Frustum.d.ts +1 -0
  434. package/lib/esm/Frustum.d.ts.map +1 -1
  435. package/lib/esm/Frustum.js +1 -0
  436. package/lib/esm/Frustum.js.map +1 -1
  437. package/lib/esm/GeoCoordinateServices.d.ts +1 -0
  438. package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
  439. package/lib/esm/GeoCoordinateServices.js +1 -0
  440. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  441. package/lib/esm/GeometryContainment.d.ts +2 -0
  442. package/lib/esm/GeometryContainment.d.ts.map +1 -1
  443. package/lib/esm/GeometryContainment.js.map +1 -1
  444. package/lib/esm/GeometryParams.d.ts +3 -0
  445. package/lib/esm/GeometryParams.d.ts.map +1 -1
  446. package/lib/esm/GeometryParams.js +3 -0
  447. package/lib/esm/GeometryParams.js.map +1 -1
  448. package/lib/esm/GeometrySummary.d.ts +3 -0
  449. package/lib/esm/GeometrySummary.d.ts.map +1 -1
  450. package/lib/esm/GeometrySummary.js +1 -0
  451. package/lib/esm/GeometrySummary.js.map +1 -1
  452. package/lib/esm/GraphicParams.d.ts +1 -0
  453. package/lib/esm/GraphicParams.d.ts.map +1 -1
  454. package/lib/esm/GraphicParams.js +1 -0
  455. package/lib/esm/GraphicParams.js.map +1 -1
  456. package/lib/esm/GroundPlane.d.ts +1 -0
  457. package/lib/esm/GroundPlane.d.ts.map +1 -1
  458. package/lib/esm/GroundPlane.js.map +1 -1
  459. package/lib/esm/HSVColor.d.ts +4 -1
  460. package/lib/esm/HSVColor.d.ts.map +1 -1
  461. package/lib/esm/HSVColor.js +4 -1
  462. package/lib/esm/HSVColor.js.map +1 -1
  463. package/lib/esm/HiddenLine.d.ts +12 -17
  464. package/lib/esm/HiddenLine.d.ts.map +1 -1
  465. package/lib/esm/HiddenLine.js +6 -2
  466. package/lib/esm/HiddenLine.js.map +1 -1
  467. package/lib/esm/IModel.d.ts +6 -1
  468. package/lib/esm/IModel.d.ts.map +1 -1
  469. package/lib/esm/IModel.js.map +1 -1
  470. package/lib/esm/Image.d.ts +2 -0
  471. package/lib/esm/Image.d.ts.map +1 -1
  472. package/lib/esm/Image.js +2 -0
  473. package/lib/esm/Image.js.map +1 -1
  474. package/lib/esm/IpcAppProps.d.ts +1 -0
  475. package/lib/esm/IpcAppProps.d.ts.map +1 -1
  476. package/lib/esm/IpcAppProps.js.map +1 -1
  477. package/lib/esm/LightSettings.d.ts +5 -0
  478. package/lib/esm/LightSettings.d.ts.map +1 -1
  479. package/lib/esm/LightSettings.js.map +1 -1
  480. package/lib/esm/LinePixels.d.ts +1 -0
  481. package/lib/esm/LinePixels.d.ts.map +1 -1
  482. package/lib/esm/LinePixels.js +1 -0
  483. package/lib/esm/LinePixels.js.map +1 -1
  484. package/lib/esm/Localization.d.ts +1 -0
  485. package/lib/esm/Localization.d.ts.map +1 -1
  486. package/lib/esm/Localization.js.map +1 -1
  487. package/lib/esm/MassProperties.d.ts +27 -1
  488. package/lib/esm/MassProperties.d.ts.map +1 -1
  489. package/lib/esm/MassProperties.js +1 -0
  490. package/lib/esm/MassProperties.js.map +1 -1
  491. package/lib/esm/MaterialProps.d.ts +6 -0
  492. package/lib/esm/MaterialProps.d.ts.map +1 -1
  493. package/lib/esm/MaterialProps.js +1 -0
  494. package/lib/esm/MaterialProps.js.map +1 -1
  495. package/lib/esm/ModelClipGroup.d.ts +1 -0
  496. package/lib/esm/ModelClipGroup.d.ts.map +1 -1
  497. package/lib/esm/ModelClipGroup.js.map +1 -1
  498. package/lib/esm/ModelGeometryChanges.d.ts +9 -1
  499. package/lib/esm/ModelGeometryChanges.d.ts.map +1 -1
  500. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  501. package/lib/esm/ModelProps.d.ts +6 -0
  502. package/lib/esm/ModelProps.d.ts.map +1 -1
  503. package/lib/esm/ModelProps.js.map +1 -1
  504. package/lib/esm/PlanProjectionSettings.d.ts +1 -0
  505. package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
  506. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  507. package/lib/esm/PlanarClipMask.d.ts +3 -0
  508. package/lib/esm/PlanarClipMask.d.ts.map +1 -1
  509. package/lib/esm/PlanarClipMask.js +2 -0
  510. package/lib/esm/PlanarClipMask.js.map +1 -1
  511. package/lib/esm/RgbColor.d.ts +1 -0
  512. package/lib/esm/RgbColor.d.ts.map +1 -1
  513. package/lib/esm/RgbColor.js.map +1 -1
  514. package/lib/esm/SessionProps.d.ts +1 -0
  515. package/lib/esm/SessionProps.d.ts.map +1 -1
  516. package/lib/esm/SessionProps.js.map +1 -1
  517. package/lib/esm/SkyBox.d.ts +4 -0
  518. package/lib/esm/SkyBox.d.ts.map +1 -1
  519. package/lib/esm/SkyBox.js +1 -0
  520. package/lib/esm/SkyBox.js.map +1 -1
  521. package/lib/esm/SolarShadows.d.ts +1 -0
  522. package/lib/esm/SolarShadows.d.ts.map +1 -1
  523. package/lib/esm/SolarShadows.js.map +1 -1
  524. package/lib/esm/SpatialClassification.d.ts +5 -0
  525. package/lib/esm/SpatialClassification.d.ts.map +1 -1
  526. package/lib/esm/SpatialClassification.js +2 -0
  527. package/lib/esm/SpatialClassification.js.map +1 -1
  528. package/lib/esm/TerrainSettings.d.ts +3 -0
  529. package/lib/esm/TerrainSettings.d.ts.map +1 -1
  530. package/lib/esm/TerrainSettings.js +1 -0
  531. package/lib/esm/TerrainSettings.js.map +1 -1
  532. package/lib/esm/TextureProps.d.ts +3 -0
  533. package/lib/esm/TextureProps.d.ts.map +1 -1
  534. package/lib/esm/TextureProps.js.map +1 -1
  535. package/lib/esm/ThematicDisplay.d.ts +9 -1
  536. package/lib/esm/ThematicDisplay.d.ts.map +1 -1
  537. package/lib/esm/ThematicDisplay.js +5 -1
  538. package/lib/esm/ThematicDisplay.js.map +1 -1
  539. package/lib/esm/Thumbnail.d.ts +2 -0
  540. package/lib/esm/Thumbnail.d.ts.map +1 -1
  541. package/lib/esm/Thumbnail.js.map +1 -1
  542. package/lib/esm/TileProps.d.ts +1 -0
  543. package/lib/esm/TileProps.d.ts.map +1 -1
  544. package/lib/esm/TileProps.js.map +1 -1
  545. package/lib/esm/Tween.d.ts +16 -4
  546. package/lib/esm/Tween.d.ts.map +1 -1
  547. package/lib/esm/Tween.js.map +1 -1
  548. package/lib/esm/TxnAction.d.ts +1 -0
  549. package/lib/esm/TxnAction.d.ts.map +1 -1
  550. package/lib/esm/TxnAction.js +1 -0
  551. package/lib/esm/TxnAction.js.map +1 -1
  552. package/lib/esm/ViewDetails.d.ts +3 -0
  553. package/lib/esm/ViewDetails.d.ts.map +1 -1
  554. package/lib/esm/ViewDetails.js +1 -0
  555. package/lib/esm/ViewDetails.js.map +1 -1
  556. package/lib/esm/ViewFlags.d.ts +4 -0
  557. package/lib/esm/ViewFlags.d.ts.map +1 -1
  558. package/lib/esm/ViewFlags.js +1 -0
  559. package/lib/esm/ViewFlags.js.map +1 -1
  560. package/lib/esm/ViewProps.d.ts +69 -3
  561. package/lib/esm/ViewProps.d.ts.map +1 -1
  562. package/lib/esm/ViewProps.js.map +1 -1
  563. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +1 -0
  564. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts.map +1 -1
  565. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  566. package/lib/esm/domains/FunctionalElementProps.d.ts +4 -1
  567. package/lib/esm/domains/FunctionalElementProps.d.ts.map +1 -1
  568. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  569. package/lib/esm/domains/GenericElementProps.d.ts +8 -2
  570. package/lib/esm/domains/GenericElementProps.d.ts.map +1 -1
  571. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  572. package/lib/esm/geometry/AdditionalTransform.d.ts +2 -0
  573. package/lib/esm/geometry/AdditionalTransform.d.ts.map +1 -1
  574. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  575. package/lib/esm/geometry/Cartographic.d.ts +1 -0
  576. package/lib/esm/geometry/Cartographic.d.ts.map +1 -1
  577. package/lib/esm/geometry/Cartographic.js.map +1 -1
  578. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +5 -0
  579. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts.map +1 -1
  580. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  581. package/lib/esm/geometry/ElementGeometry.d.ts +2 -0
  582. package/lib/esm/geometry/ElementGeometry.d.ts.map +1 -1
  583. package/lib/esm/geometry/ElementGeometry.js +1 -0
  584. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  585. package/lib/esm/geometry/GeodeticDatum.d.ts +80 -1
  586. package/lib/esm/geometry/GeodeticDatum.d.ts.map +1 -1
  587. package/lib/esm/geometry/GeodeticDatum.js +77 -0
  588. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  589. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +1 -0
  590. package/lib/esm/geometry/GeodeticEllipsoid.d.ts.map +1 -1
  591. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  592. package/lib/esm/geometry/GeometryStream.d.ts +15 -0
  593. package/lib/esm/geometry/GeometryStream.d.ts.map +1 -1
  594. package/lib/esm/geometry/GeometryStream.js +11 -7
  595. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  596. package/lib/esm/geometry/ImageGraphic.d.ts +2 -0
  597. package/lib/esm/geometry/ImageGraphic.d.ts.map +1 -1
  598. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  599. package/lib/esm/geometry/Placement.d.ts +6 -0
  600. package/lib/esm/geometry/Placement.d.ts.map +1 -1
  601. package/lib/esm/geometry/Placement.js.map +1 -1
  602. package/lib/esm/geometry/Projection.d.ts +6 -0
  603. package/lib/esm/geometry/Projection.d.ts.map +1 -1
  604. package/lib/esm/geometry/Projection.js.map +1 -1
  605. package/lib/esm/geometry/TextString.d.ts +1 -0
  606. package/lib/esm/geometry/TextString.d.ts.map +1 -1
  607. package/lib/esm/geometry/TextString.js.map +1 -1
  608. package/lib/esm/ipc/IpcSocket.d.ts +1 -0
  609. package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
  610. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  611. package/lib/esm/ipc/IpcWebSocketTransport.d.ts.map +1 -1
  612. package/lib/esm/ipc/IpcWebSocketTransport.js +1 -0
  613. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  614. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +5 -2
  615. package/lib/esm/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  616. package/lib/esm/rpc/IModelReadRpcInterface.js +4 -1
  617. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  618. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +4 -2
  619. package/lib/esm/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  620. package/lib/esm/rpc/IModelTileRpcInterface.js +4 -2
  621. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  622. package/lib/esm/rpc/core/RpcControl.d.ts.map +1 -1
  623. package/lib/esm/rpc/core/RpcControl.js +1 -0
  624. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  625. package/lib/esm/rpc/core/RpcInvocation.d.ts +3 -0
  626. package/lib/esm/rpc/core/RpcInvocation.d.ts.map +1 -1
  627. package/lib/esm/rpc/core/RpcInvocation.js +34 -3
  628. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  629. package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
  630. package/lib/esm/rpc/core/RpcMarshaling.js +1 -0
  631. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  632. package/lib/esm/rpc/core/RpcOperation.d.ts +2 -0
  633. package/lib/esm/rpc/core/RpcOperation.d.ts.map +1 -1
  634. package/lib/esm/rpc/core/RpcOperation.js +2 -0
  635. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  636. package/lib/esm/rpc/core/RpcProtocol.d.ts +24 -1
  637. package/lib/esm/rpc/core/RpcProtocol.d.ts.map +1 -1
  638. package/lib/esm/rpc/core/RpcProtocol.js +14 -1
  639. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  640. package/lib/esm/rpc/core/RpcRequest.d.ts +3 -0
  641. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  642. package/lib/esm/rpc/core/RpcRequest.js +37 -2
  643. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  644. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
  645. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +0 -1
  646. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  647. package/lib/esm/rpc/web/RpcMultipart.d.ts +1 -0
  648. package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
  649. package/lib/esm/rpc/web/RpcMultipart.js +1 -0
  650. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  651. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  652. package/lib/esm/rpc/web/WebAppRpcLogging.js +14 -10
  653. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  654. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +3 -1
  655. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  656. package/lib/esm/rpc/web/WebAppRpcProtocol.js +8 -7
  657. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  658. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +5 -6
  659. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  660. package/lib/esm/rpc/web/WebAppRpcRequest.js +47 -28
  661. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  662. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +1 -0
  663. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  664. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +1 -0
  665. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  666. package/lib/esm/tile/ElementGraphics.d.ts +20 -2
  667. package/lib/esm/tile/ElementGraphics.d.ts.map +1 -1
  668. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  669. package/lib/esm/tile/IModelTileIO.d.ts +2 -2
  670. package/lib/esm/tile/IModelTileIO.js +2 -2
  671. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  672. package/lib/esm/tile/TileMetadata.d.ts +18 -13
  673. package/lib/esm/tile/TileMetadata.d.ts.map +1 -1
  674. package/lib/esm/tile/TileMetadata.js +163 -133
  675. package/lib/esm/tile/TileMetadata.js.map +1 -1
  676. package/package.json +25 -12
@@ -1 +1 @@
1
- {"version":3,"file":"RpcMultipart.js","sourceRoot":"","sources":["../../../../src/rpc/web/RpcMultipart.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,mDAA+D;AAc/D;;GAEG;AACH,MAAa,YAAY;IACvB,wDAAwD;IACjD,MAAM,CAAC,UAAU,CAAC,KAAyB;QAChD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IAC5C,MAAM,CAAC,YAAY,CAAC,MAA0B;QACnD,MAAM,IAAI,yBAAW,CAAC,2BAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,2DAA2D;IACpD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAuB;QACtD,MAAM,IAAI,yBAAW,CAAC,2BAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,gBAAgB,CAAC,IAAoB,EAAE,KAAyB;QAC5E,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;aAC3F;iBAAM;gBACL,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;aACnF;SACF;IACH,CAAC;CACF;AA/BD,oCA+BC","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 RpcInterface\r\n */\r\n\r\nimport { Readable } from \"stream\";\r\nimport { BentleyStatus, IModelError } from \"../../IModelError\";\r\nimport { RpcSerializedValue } from \"../core/RpcMarshaling\";\r\nimport { HttpServerRequest } from \"../web/WebAppRpcProtocol\";\r\n\r\n/** @internal */\r\nexport interface FormDataCommon {\r\n append(name: string, value: string | Blob | Buffer, fileName?: string): void;\r\n}\r\n\r\n/** @internal */\r\nexport interface ReadableFormData extends Readable {\r\n getHeaders(): { [key: string]: any };\r\n}\r\n\r\n/** Support for transporting RPC values using the HTTP multipart content type.\r\n * @internal\r\n */\r\nexport class RpcMultipart {\r\n /** Creates a multipart form object for an RPC value. */\r\n public static createForm(value: RpcSerializedValue): FormData {\r\n const form = new FormData();\r\n RpcMultipart.writeValueToForm(form, value);\r\n return form;\r\n }\r\n\r\n /** Creates a multipart stream for an RPC value. */\r\n public static createStream(_value: RpcSerializedValue): ReadableFormData {\r\n throw new IModelError(BentleyStatus.ERROR, \"Not implemented.\");\r\n }\r\n\r\n /** Obtains the RPC value from a multipart HTTP request. */\r\n public static async parseRequest(_req: HttpServerRequest): Promise<RpcSerializedValue> {\r\n throw new IModelError(BentleyStatus.ERROR, \"Not implemented.\");\r\n }\r\n\r\n /** @internal */\r\n public static writeValueToForm(form: FormDataCommon, value: RpcSerializedValue) {\r\n form.append(\"objects\", value.objects);\r\n\r\n for (let i = 0; i !== value.data.length; ++i) {\r\n if (typeof (Blob) !== \"undefined\") {\r\n form.append(`data-${i}`, new Blob([value.data[i]], { type: \"application/octet-stream\" }));\r\n } else {\r\n const buf = value.data[i];\r\n form.append(`data-${i}`, Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength));\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RpcMultipart.js","sourceRoot":"","sources":["../../../../src/rpc/web/RpcMultipart.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,mCAAgC;AAEhC,mDAA+D;AAc/D;;GAEG;AACH,MAAa,YAAY;IACvB,wDAAwD;IACjD,MAAM,CAAC,UAAU,CAAC,KAAyB;QAChD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IAC5C,MAAM,CAAC,YAAY,CAAC,MAA0B;QACnD,MAAM,IAAI,yBAAW,CAAC,2BAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,2DAA2D;IACpD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAuB;QACtD,MAAM,IAAI,yBAAW,CAAC,2BAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,gBAAgB,CAAC,IAAoB,EAAE,KAAyB;QAC5E,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;aAC3F;iBAAM;gBACL,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;aACnF;SACF;IACH,CAAC;CACF;AA/BD,oCA+BC","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 RpcInterface\r\n */\r\n\r\nimport { Buffer } from \"buffer\";\r\nimport { Readable } from \"stream\";\r\nimport { BentleyStatus, IModelError } from \"../../IModelError\";\r\nimport { RpcSerializedValue } from \"../core/RpcMarshaling\";\r\nimport { HttpServerRequest } from \"../web/WebAppRpcProtocol\";\r\n\r\n/** @internal */\r\nexport interface FormDataCommon {\r\n append(name: string, value: string | Blob | Buffer, fileName?: string): void;\r\n}\r\n\r\n/** @internal */\r\nexport interface ReadableFormData extends Readable {\r\n getHeaders(): { [key: string]: any };\r\n}\r\n\r\n/** Support for transporting RPC values using the HTTP multipart content type.\r\n * @internal\r\n */\r\nexport class RpcMultipart {\r\n /** Creates a multipart form object for an RPC value. */\r\n public static createForm(value: RpcSerializedValue): FormData {\r\n const form = new FormData();\r\n RpcMultipart.writeValueToForm(form, value);\r\n return form;\r\n }\r\n\r\n /** Creates a multipart stream for an RPC value. */\r\n public static createStream(_value: RpcSerializedValue): ReadableFormData {\r\n throw new IModelError(BentleyStatus.ERROR, \"Not implemented.\");\r\n }\r\n\r\n /** Obtains the RPC value from a multipart HTTP request. */\r\n public static async parseRequest(_req: HttpServerRequest): Promise<RpcSerializedValue> {\r\n throw new IModelError(BentleyStatus.ERROR, \"Not implemented.\");\r\n }\r\n\r\n /** @internal */\r\n public static writeValueToForm(form: FormDataCommon, value: RpcSerializedValue) {\r\n form.append(\"objects\", value.objects);\r\n\r\n for (let i = 0; i !== value.data.length; ++i) {\r\n if (typeof (Blob) !== \"undefined\") {\r\n form.append(`data-${i}`, new Blob([value.data[i]], { type: \"application/octet-stream\" }));\r\n } else {\r\n const buf = value.data[i];\r\n form.append(`data-${i}`, Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength));\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"WebAppRpcLogging.d.ts","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcLogging.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiBhD,gBAAgB;AAChB,qBAAa,gBAAgB;WACP,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,OAAO,CAAC,MAAM,CAAC,WAAW;IAmB1B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC,OAAO,CAAC,MAAM,CAAC,UAAU;IAiBzB,OAAO,CAAC,MAAM,CAAC,WAAW;IAkB1B,OAAO,CAAC,MAAM,CAAC,gBAAgB;mBAcV,eAAe;CAiBrC"}
1
+ {"version":3,"file":"WebAppRpcLogging.d.ts","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcLogging.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBhD,gBAAgB;AAChB,qBAAa,gBAAgB;WACP,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,OAAO,CAAC,MAAM,CAAC,WAAW;IAmB1B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC,OAAO,CAAC,MAAM,CAAC,UAAU;IAiBzB,OAAO,CAAC,MAAM,CAAC,WAAW;IAkB1B,OAAO,CAAC,MAAM,CAAC,gBAAgB;mBAcV,eAAe;CAiBrC"}
@@ -13,20 +13,24 @@ const CommonLoggerCategory_1 = require("../../CommonLoggerCategory");
13
13
  const RpcConstants_1 = require("../core/RpcConstants");
14
14
  const RpcInvocation_1 = require("../core/RpcInvocation");
15
15
  const WebAppRpcRequest_1 = require("./WebAppRpcRequest");
16
- // eslint-disable-next-line @typescript-eslint/no-var-requires
17
- const os = (typeof (process) !== "undefined") ? require("os") : undefined;
16
+ let hostname = "";
18
17
  function getHostname() {
19
- if (os !== undefined) {
20
- return os.hostname();
21
- }
22
- else {
23
- if (typeof (window) !== "undefined") {
24
- return window.location.host;
18
+ if (!hostname) {
19
+ try {
20
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
21
+ const os = require("os");
22
+ hostname = os.hostname();
25
23
  }
26
- else {
27
- return "imodeljs-mobile";
24
+ catch (_) {
25
+ if (globalThis.window) {
26
+ hostname = globalThis.window.location.host;
27
+ }
28
+ else {
29
+ hostname = "imodeljs-mobile";
30
+ }
28
31
  }
29
32
  }
33
+ return hostname;
30
34
  }
31
35
  /** @internal */
32
36
  class WebAppRpcLogging {
@@ -1 +1 @@
1
- {"version":3,"file":"WebAppRpcLogging.js","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcLogging.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 RpcInterface\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { CommonLoggerCategory } from \"../../CommonLoggerCategory\";\r\nimport { RpcInterfaceDefinition } from \"../../RpcInterface\";\r\nimport { RpcProtocolEvent } from \"../core/RpcConstants\";\r\nimport { RpcInvocation } from \"../core/RpcInvocation\";\r\nimport { RpcOperation } from \"../core/RpcOperation\";\r\nimport { SerializedRpcOperation, SerializedRpcRequest } from \"../core/RpcProtocol\";\r\nimport { RpcRequest } from \"../core/RpcRequest\";\r\nimport { WebAppRpcRequest } from \"./WebAppRpcRequest\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-var-requires\r\nconst os = (typeof (process) !== \"undefined\") ? require(\"os\") : undefined;\r\nfunction getHostname(): string {\r\n if (os !== undefined) {\r\n return os.hostname();\r\n } else {\r\n if (typeof (window) !== \"undefined\") {\r\n return window.location.host;\r\n } else {\r\n return \"imodeljs-mobile\";\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebAppRpcLogging {\r\n public static async logProtocolEvent(event: RpcProtocolEvent, object: RpcRequest | RpcInvocation): Promise<void> {\r\n if (object instanceof WebAppRpcRequest) {\r\n switch (event) {\r\n case RpcProtocolEvent.RequestCreated: return WebAppRpcLogging.logRequest(CommonLoggerCategory.RpcInterfaceFrontend, \"RpcInterface.frontend.request\", object);\r\n case RpcProtocolEvent.ResponseLoaded: return WebAppRpcLogging.logResponse(CommonLoggerCategory.RpcInterfaceFrontend, \"RpcInterface.frontend.response\", object, object.metadata.status, object.elapsed);\r\n case RpcProtocolEvent.ConnectionErrorReceived: return WebAppRpcLogging.logErrorFrontend(\"RpcInterface.frontend.connectionError\", object);\r\n case RpcProtocolEvent.ConnectionAborted: return WebAppRpcLogging.logErrorFrontend(\"RpcInterface.frontend.connectionAborted\", object);\r\n }\r\n } else if (object instanceof RpcInvocation) {\r\n switch (event) {\r\n case RpcProtocolEvent.RequestReceived: return WebAppRpcLogging.logRequest(CommonLoggerCategory.RpcInterfaceBackend, \"RpcInterface.backend.request\", object.request);\r\n case RpcProtocolEvent.BackendErrorOccurred: return WebAppRpcLogging.logErrorBackend(\"RpcInterface.backend.error\", object);\r\n case RpcProtocolEvent.BackendResponseCreated: return WebAppRpcLogging.logResponse(CommonLoggerCategory.RpcInterfaceBackend, \"RpcInterface.backend.response\", object.request, object.status, object.elapsed);\r\n }\r\n }\r\n }\r\n\r\n private static getRpcInterfaceName(g: string | RpcInterfaceDefinition): string {\r\n return (typeof g === \"string\") ? g : g.interfaceName;\r\n }\r\n\r\n private static findPathIds(path: string) {\r\n let iTwinId = \"\";\r\n let iModelId = \"\";\r\n\r\n const tokens = path.split(\"/\");\r\n for (let i = 0; i !== tokens.length; ++i) {\r\n // For backwards compatibility, find old \"context\" or current \"iTwin\" terminology\r\n if ((/^context$/i).test(tokens[i]) || (/^itwin$/i).test(tokens[i])) {\r\n iTwinId = tokens[i + 1] || \"\";\r\n }\r\n\r\n if ((/^imodel$/i).test(tokens[i])) {\r\n iModelId = tokens[i + 1] || \"\";\r\n }\r\n }\r\n\r\n return { iTwinId, iModelId };\r\n }\r\n\r\n private static buildOperationDescriptor(operation: RpcOperation | SerializedRpcOperation): string {\r\n if (!operation) {\r\n return \"unknown.unknown\";\r\n }\r\n\r\n const interfaceName = typeof (operation.interfaceDefinition) === \"string\" ? operation.interfaceDefinition : operation.interfaceDefinition.interfaceName;\r\n const operationName = operation.operationName;\r\n return `${interfaceName}.${operationName}`;\r\n }\r\n\r\n private static logRequest(loggerCategory: string, message: string, object: WebAppRpcRequest | SerializedRpcRequest): void {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(object.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(object.path);\r\n\r\n Logger.logTrace(loggerCategory, `${message}.${operationDescriptor}`, () => ({\r\n method: object.method,\r\n path: object.path,\r\n operation: object.operation.operationName,\r\n rpcInterface: WebAppRpcLogging.getRpcInterfaceName(object.operation.interfaceDefinition),\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: object.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n TimeElapsed: (\"elapsed\" in object) ? object.elapsed : 0, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n\r\n private static logResponse(loggerCategory: string, message: string, object: WebAppRpcRequest | SerializedRpcRequest, status: number, elapsed: number): void {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(object.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(object.path);\r\n\r\n Logger.logTrace(loggerCategory, `${message}.${operationDescriptor}`, () => ({\r\n method: object.method,\r\n path: object.path,\r\n operation: object.operation.operationName,\r\n rpcInterface: WebAppRpcLogging.getRpcInterfaceName(object.operation.interfaceDefinition),\r\n status,\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: object.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n TimeElapsed: elapsed, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n\r\n private static logErrorFrontend(message: string, request: WebAppRpcRequest): void {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(request.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(request.path);\r\n\r\n Logger.logInfo(CommonLoggerCategory.RpcInterfaceFrontend, `${message}.${operationDescriptor}`, () => ({\r\n method: request.method,\r\n path: request.path,\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: request.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n\r\n private static async logErrorBackend(message: string, invocation: RpcInvocation): Promise<void> {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(invocation.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(invocation.request.path);\r\n const result = await invocation.result;\r\n const errorMessage = result.message ? result.message : result.objects; // Can be an error or an RpcSerializedValue\r\n\r\n Logger.logInfo(CommonLoggerCategory.RpcInterfaceBackend, `${message}.${operationDescriptor}`, () => ({\r\n method: invocation.request.method,\r\n path: invocation.request.path,\r\n status: invocation.status,\r\n errorMessage,\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: invocation.request.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WebAppRpcLogging.js","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcLogging.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 RpcInterface\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { CommonLoggerCategory } from \"../../CommonLoggerCategory\";\r\nimport { RpcInterfaceDefinition } from \"../../RpcInterface\";\r\nimport { RpcProtocolEvent } from \"../core/RpcConstants\";\r\nimport { RpcInvocation } from \"../core/RpcInvocation\";\r\nimport { RpcOperation } from \"../core/RpcOperation\";\r\nimport { SerializedRpcOperation, SerializedRpcRequest } from \"../core/RpcProtocol\";\r\nimport { RpcRequest } from \"../core/RpcRequest\";\r\nimport { WebAppRpcRequest } from \"./WebAppRpcRequest\";\r\n\r\nlet hostname = \"\";\r\nfunction getHostname(): string {\r\n if (!hostname) {\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n const os = require(\"os\");\r\n hostname = os.hostname();\r\n } catch (_) {\r\n if (globalThis.window) {\r\n hostname = globalThis.window.location.host;\r\n } else {\r\n hostname = \"imodeljs-mobile\";\r\n }\r\n }\r\n }\r\n return hostname;\r\n}\r\n\r\n/** @internal */\r\nexport class WebAppRpcLogging {\r\n public static async logProtocolEvent(event: RpcProtocolEvent, object: RpcRequest | RpcInvocation): Promise<void> {\r\n if (object instanceof WebAppRpcRequest) {\r\n switch (event) {\r\n case RpcProtocolEvent.RequestCreated: return WebAppRpcLogging.logRequest(CommonLoggerCategory.RpcInterfaceFrontend, \"RpcInterface.frontend.request\", object);\r\n case RpcProtocolEvent.ResponseLoaded: return WebAppRpcLogging.logResponse(CommonLoggerCategory.RpcInterfaceFrontend, \"RpcInterface.frontend.response\", object, object.metadata.status, object.elapsed);\r\n case RpcProtocolEvent.ConnectionErrorReceived: return WebAppRpcLogging.logErrorFrontend(\"RpcInterface.frontend.connectionError\", object);\r\n case RpcProtocolEvent.ConnectionAborted: return WebAppRpcLogging.logErrorFrontend(\"RpcInterface.frontend.connectionAborted\", object);\r\n }\r\n } else if (object instanceof RpcInvocation) {\r\n switch (event) {\r\n case RpcProtocolEvent.RequestReceived: return WebAppRpcLogging.logRequest(CommonLoggerCategory.RpcInterfaceBackend, \"RpcInterface.backend.request\", object.request);\r\n case RpcProtocolEvent.BackendErrorOccurred: return WebAppRpcLogging.logErrorBackend(\"RpcInterface.backend.error\", object);\r\n case RpcProtocolEvent.BackendResponseCreated: return WebAppRpcLogging.logResponse(CommonLoggerCategory.RpcInterfaceBackend, \"RpcInterface.backend.response\", object.request, object.status, object.elapsed);\r\n }\r\n }\r\n }\r\n\r\n private static getRpcInterfaceName(g: string | RpcInterfaceDefinition): string {\r\n return (typeof g === \"string\") ? g : g.interfaceName;\r\n }\r\n\r\n private static findPathIds(path: string) {\r\n let iTwinId = \"\";\r\n let iModelId = \"\";\r\n\r\n const tokens = path.split(\"/\");\r\n for (let i = 0; i !== tokens.length; ++i) {\r\n // For backwards compatibility, find old \"context\" or current \"iTwin\" terminology\r\n if ((/^context$/i).test(tokens[i]) || (/^itwin$/i).test(tokens[i])) {\r\n iTwinId = tokens[i + 1] || \"\";\r\n }\r\n\r\n if ((/^imodel$/i).test(tokens[i])) {\r\n iModelId = tokens[i + 1] || \"\";\r\n }\r\n }\r\n\r\n return { iTwinId, iModelId };\r\n }\r\n\r\n private static buildOperationDescriptor(operation: RpcOperation | SerializedRpcOperation): string {\r\n if (!operation) {\r\n return \"unknown.unknown\";\r\n }\r\n\r\n const interfaceName = typeof (operation.interfaceDefinition) === \"string\" ? operation.interfaceDefinition : operation.interfaceDefinition.interfaceName;\r\n const operationName = operation.operationName;\r\n return `${interfaceName}.${operationName}`;\r\n }\r\n\r\n private static logRequest(loggerCategory: string, message: string, object: WebAppRpcRequest | SerializedRpcRequest): void {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(object.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(object.path);\r\n\r\n Logger.logTrace(loggerCategory, `${message}.${operationDescriptor}`, () => ({\r\n method: object.method,\r\n path: object.path,\r\n operation: object.operation.operationName,\r\n rpcInterface: WebAppRpcLogging.getRpcInterfaceName(object.operation.interfaceDefinition),\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: object.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n TimeElapsed: (\"elapsed\" in object) ? object.elapsed : 0, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n\r\n private static logResponse(loggerCategory: string, message: string, object: WebAppRpcRequest | SerializedRpcRequest, status: number, elapsed: number): void {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(object.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(object.path);\r\n\r\n Logger.logTrace(loggerCategory, `${message}.${operationDescriptor}`, () => ({\r\n method: object.method,\r\n path: object.path,\r\n operation: object.operation.operationName,\r\n rpcInterface: WebAppRpcLogging.getRpcInterfaceName(object.operation.interfaceDefinition),\r\n status,\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: object.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n TimeElapsed: elapsed, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n\r\n private static logErrorFrontend(message: string, request: WebAppRpcRequest): void {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(request.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(request.path);\r\n\r\n Logger.logInfo(CommonLoggerCategory.RpcInterfaceFrontend, `${message}.${operationDescriptor}`, () => ({\r\n method: request.method,\r\n path: request.path,\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: request.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n\r\n private static async logErrorBackend(message: string, invocation: RpcInvocation): Promise<void> {\r\n const operationDescriptor = WebAppRpcLogging.buildOperationDescriptor(invocation.operation);\r\n const pathIds = WebAppRpcLogging.findPathIds(invocation.request.path);\r\n const result = await invocation.result;\r\n const errorMessage = result.message ? result.message : result.objects; // Can be an error or an RpcSerializedValue\r\n\r\n Logger.logInfo(CommonLoggerCategory.RpcInterfaceBackend, `${message}.${operationDescriptor}`, () => ({\r\n method: invocation.request.method,\r\n path: invocation.request.path,\r\n status: invocation.status,\r\n errorMessage,\r\n // Alert! The following properties are required by Bentley DevOps standards. Do not change their names!\r\n ActivityId: invocation.request.id, // eslint-disable-line @typescript-eslint/naming-convention\r\n MachineName: getHostname(), // eslint-disable-line @typescript-eslint/naming-convention\r\n ...pathIds,\r\n }));\r\n }\r\n}\r\n"]}
@@ -9,6 +9,7 @@ import { RpcOperation } from "../core/RpcOperation";
9
9
  import { RpcProtocol } from "../core/RpcProtocol";
10
10
  import { OpenAPIInfo, OpenAPIParameter, RpcOpenAPIDescription } from "./OpenAPI";
11
11
  import { WebAppRpcRequest } from "./WebAppRpcRequest";
12
+ import { IModelRpcProps } from "../../IModel";
12
13
  /** An HTTP server request object.
13
14
  * @public
14
15
  */
@@ -56,7 +57,7 @@ export declare abstract class WebAppRpcProtocol extends RpcProtocol {
56
57
  /** @internal */
57
58
  allowedHeaders: Set<string>;
58
59
  /** @internal */
59
- initialize(): Promise<void>;
60
+ initialize(token?: IModelRpcProps): Promise<void>;
60
61
  /** Convenience handler for an RPC operation get request for an HTTP server. */
61
62
  handleOperationGetRequest(req: HttpServerRequest, res: HttpServerResponse): Promise<void>;
62
63
  /** Convenience handler for an RPC operation post request for an HTTP server. */
@@ -75,6 +76,7 @@ export declare abstract class WebAppRpcProtocol extends RpcProtocol {
75
76
  getStatus(code: number): RpcRequestStatus;
76
77
  /** Supplies the protocol-specific code corresponding to a status value. */
77
78
  getCode(status: RpcRequestStatus): number;
79
+ supportsStatusCategory: boolean;
78
80
  /** Whether an HTTP status code indicates a request timeout. */
79
81
  isTimeout(code: number): boolean;
80
82
  /** An OpenAPI-compatible description of this protocol.
@@ -1 +1 @@
1
- {"version":3,"file":"WebAppRpcProtocol.d.ts","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebAppRpcProtocol.d.ts","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcProtocol.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.WebAppRpcProtocol = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
11
12
  const RpcConfiguration_1 = require("../core/RpcConfiguration");
12
13
  const RpcConstants_1 = require("../core/RpcConstants");
13
14
  const RpcProtocol_1 = require("../core/RpcProtocol");
@@ -18,10 +19,9 @@ const CommonLoggerCategory_1 = require("../../CommonLoggerCategory");
18
19
  const RpcInterface_1 = require("../../RpcInterface");
19
20
  const RpcManager_1 = require("../../RpcManager");
20
21
  const RpcRoutingToken_1 = require("../core/RpcRoutingToken");
21
- const core_bentley_1 = require("@itwin/core-bentley");
22
22
  class InitializeInterface extends RpcInterface_1.RpcInterface {
23
- async initialize() { return this.forward(arguments); }
24
- static createRequest(protocol) {
23
+ async initialize(_token) { return this.forward(arguments); }
24
+ static createRequest(protocol, token) {
25
25
  const routing = RpcRoutingToken_1.RpcRoutingToken.generate();
26
26
  const config = class extends RpcConfiguration_1.RpcConfiguration {
27
27
  constructor() {
@@ -34,7 +34,7 @@ class InitializeInterface extends RpcInterface_1.RpcInterface {
34
34
  const instance = RpcConfiguration_1.RpcConfiguration.obtain(config);
35
35
  RpcConfiguration_1.RpcConfiguration.initializeInterfaces(instance);
36
36
  const client = RpcManager_1.RpcManager.getClientForInterface(InitializeInterface, routing);
37
- return new (protocol.requestType)(client, "initialize", []);
37
+ return new (protocol.requestType)(client, "initialize", [token]);
38
38
  }
39
39
  }
40
40
  InitializeInterface.interfaceName = "InitializeInterface";
@@ -53,16 +53,17 @@ class WebAppRpcProtocol extends RpcProtocol_1.RpcProtocol {
53
53
  this.pathPrefix = "";
54
54
  /** The RPC request class for this protocol. */
55
55
  this.requestType = WebAppRpcRequest_1.WebAppRpcRequest;
56
+ this.supportsStatusCategory = true;
56
57
  this.events.addListener(WebAppRpcLogging_1.WebAppRpcLogging.logProtocolEvent);
57
58
  }
58
59
  /** @internal */
59
- async initialize() {
60
+ async initialize(token) {
60
61
  if (this._initialized) {
61
62
  return this._initialized;
62
63
  }
63
64
  return this._initialized = new Promise(async (resolve) => {
64
65
  try {
65
- const request = InitializeInterface.createRequest(this);
66
+ const request = InitializeInterface.createRequest(this, token);
66
67
  const response = await request.preflight();
67
68
  if (response && response.ok) {
68
69
  (response.headers.get("Access-Control-Allow-Headers") || "").split(",").forEach((v) => this.allowedHeaders.add(v.trim()));
@@ -82,7 +83,7 @@ class WebAppRpcProtocol extends RpcProtocol_1.RpcProtocol {
82
83
  async handleOperationPostRequest(req, res) {
83
84
  const request = await WebAppRpcRequest_1.WebAppRpcRequest.parseRequest(this, req);
84
85
  const fulfillment = await this.fulfill(request);
85
- WebAppRpcRequest_1.WebAppRpcRequest.sendResponse(this, request, fulfillment, res);
86
+ await WebAppRpcRequest_1.WebAppRpcRequest.sendResponse(this, request, fulfillment, req, res);
86
87
  }
87
88
  /** Convenience handler for an OpenAPI description request for an HTTP server. */
88
89
  handleOpenApiDescriptionRequest(_req, res) {
@@ -1 +1 @@
1
- {"version":3,"file":"WebAppRpcProtocol.js","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcProtocol.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 RpcInterface\r\n */\r\n\r\nimport { Readable, Writable } from \"stream\";\r\nimport { RpcConfiguration } from \"../core/RpcConfiguration\";\r\nimport { RpcContentType, RpcRequestStatus, WEB_RPC_CONSTANTS } from \"../core/RpcConstants\";\r\nimport { RpcOperation } from \"../core/RpcOperation\";\r\nimport { RpcProtocol } from \"../core/RpcProtocol\";\r\nimport { OpenAPIInfo, OpenAPIParameter, RpcOpenAPIDescription } from \"./OpenAPI\";\r\nimport { WebAppRpcLogging } from \"./WebAppRpcLogging\";\r\nimport { WebAppRpcRequest } from \"./WebAppRpcRequest\";\r\nimport { CommonLoggerCategory } from \"../../CommonLoggerCategory\";\r\nimport { RpcInterface } from \"../../RpcInterface\";\r\nimport { RpcManager } from \"../../RpcManager\";\r\nimport { RpcRoutingToken } from \"../core/RpcRoutingToken\";\r\nimport { BentleyError, Logger } from \"@itwin/core-bentley\";\r\n\r\nclass InitializeInterface extends RpcInterface {\r\n public static readonly interfaceName = \"InitializeInterface\";\r\n public static readonly interfaceVersion = \"1.0.0\";\r\n public async initialize() { return this.forward(arguments); }\r\n\r\n public static createRequest(protocol: WebAppRpcProtocol) {\r\n const routing = RpcRoutingToken.generate();\r\n\r\n const config = class extends RpcConfiguration {\r\n public interfaces = () => [InitializeInterface];\r\n public protocol = protocol;\r\n };\r\n\r\n RpcConfiguration.assignWithRouting(InitializeInterface, routing, config);\r\n\r\n const instance = RpcConfiguration.obtain(config);\r\n RpcConfiguration.initializeInterfaces(instance);\r\n\r\n const client = RpcManager.getClientForInterface(InitializeInterface, routing);\r\n return new (protocol.requestType)(client, \"initialize\", []);\r\n }\r\n}\r\n\r\n/** An HTTP server request object.\r\n * @public\r\n */\r\nexport interface HttpServerRequest extends Readable {\r\n aborted: boolean;\r\n httpVersion: string;\r\n httpVersionMajor: number;\r\n httpVersionMinor: number;\r\n complete: boolean;\r\n connection: any;\r\n headers: { [header: string]: string | string[] | undefined };\r\n rawHeaders: string[];\r\n trailers: { [key: string]: string | undefined };\r\n rawTrailers: string[];\r\n setTimeout(msecs: number, callback: () => void): this;\r\n url?: string;\r\n statusCode?: number;\r\n statusMessage?: string;\r\n socket: any;\r\n destroy(error?: Error): void;\r\n body: string | Buffer;\r\n path: string;\r\n method: string;\r\n ip?: string;\r\n header: (field: string) => string | undefined;\r\n}\r\n\r\n/** An HTTP server response object.\r\n * @public\r\n */\r\nexport interface HttpServerResponse extends Writable {\r\n send(body?: any): HttpServerResponse;\r\n status(code: number): HttpServerResponse;\r\n set(field: string, value: string): void;\r\n}\r\n\r\n/** The HTTP application protocol.\r\n * @internal\r\n */\r\nexport abstract class WebAppRpcProtocol extends RpcProtocol {\r\n public override preserveStreams = true;\r\n\r\n private _initialized: Promise<void> | undefined;\r\n\r\n /** @internal */\r\n public allowedHeaders: Set<string> = new Set();\r\n\r\n /** @internal */\r\n public async initialize() {\r\n if (this._initialized) {\r\n return this._initialized;\r\n }\r\n\r\n return this._initialized = new Promise(async (resolve) => {\r\n try {\r\n const request = InitializeInterface.createRequest(this);\r\n const response = await request.preflight();\r\n if (response && response.ok) {\r\n (response.headers.get(\"Access-Control-Allow-Headers\") || \"\").split(\",\").forEach((v) => this.allowedHeaders.add(v.trim()));\r\n }\r\n } catch (err) {\r\n Logger.logWarning(CommonLoggerCategory.RpcInterfaceFrontend, \"Unable to discover backend capabilities.\", BentleyError.getErrorProps(err));\r\n }\r\n\r\n resolve();\r\n });\r\n }\r\n\r\n /** Convenience handler for an RPC operation get request for an HTTP server. */\r\n public async handleOperationGetRequest(req: HttpServerRequest, res: HttpServerResponse) {\r\n return this.handleOperationPostRequest(req, res);\r\n }\r\n\r\n /** Convenience handler for an RPC operation post request for an HTTP server. */\r\n public async handleOperationPostRequest(req: HttpServerRequest, res: HttpServerResponse) {\r\n const request = await WebAppRpcRequest.parseRequest(this, req);\r\n const fulfillment = await this.fulfill(request);\r\n WebAppRpcRequest.sendResponse(this, request, fulfillment, res);\r\n }\r\n\r\n /** Convenience handler for an OpenAPI description request for an HTTP server. */\r\n public handleOpenApiDescriptionRequest(_req: HttpServerRequest, res: HttpServerResponse) {\r\n const description = JSON.stringify(this.openAPIDescription);\r\n res.send(description);\r\n }\r\n\r\n /** Converts an HTTP content type value to an RPC content type value. */\r\n public static computeContentType(httpType: string | null | undefined): RpcContentType {\r\n if (!httpType)\r\n return RpcContentType.Unknown;\r\n\r\n if (httpType.indexOf(WEB_RPC_CONSTANTS.ANY_TEXT) === 0) {\r\n return RpcContentType.Text;\r\n } else if (httpType.indexOf(WEB_RPC_CONSTANTS.BINARY) === 0) {\r\n return RpcContentType.Binary;\r\n } else if (httpType.indexOf(WEB_RPC_CONSTANTS.MULTIPART) === 0) {\r\n return RpcContentType.Multipart;\r\n } else {\r\n return RpcContentType.Unknown;\r\n }\r\n }\r\n\r\n /** The OpenAPI-compatible info object for this protocol. */\r\n public abstract info: OpenAPIInfo;\r\n\r\n /** An optional prefix for RPC operation URI paths. */\r\n public pathPrefix: string = \"\";\r\n\r\n /** The RPC request class for this protocol. */\r\n public readonly requestType = WebAppRpcRequest;\r\n\r\n /** Supplies the status corresponding to a protocol-specific code value. */\r\n public override getStatus(code: number): RpcRequestStatus {\r\n switch (code) {\r\n case 404: return RpcRequestStatus.NotFound;\r\n case 202: return RpcRequestStatus.Pending;\r\n case 200: return RpcRequestStatus.Resolved;\r\n case 500: return RpcRequestStatus.Rejected;\r\n case 204: return RpcRequestStatus.NoContent;\r\n case 502: return RpcRequestStatus.BadGateway;\r\n case 503: return RpcRequestStatus.ServiceUnavailable;\r\n case 504: return RpcRequestStatus.GatewayTimeout;\r\n default: return RpcRequestStatus.Unknown;\r\n }\r\n }\r\n\r\n /** Supplies the protocol-specific code corresponding to a status value. */\r\n public override getCode(status: RpcRequestStatus): number {\r\n switch (status) {\r\n case RpcRequestStatus.NotFound: return 404;\r\n case RpcRequestStatus.Pending: return 202;\r\n case RpcRequestStatus.Resolved: return 200;\r\n case RpcRequestStatus.Rejected: return 500;\r\n case RpcRequestStatus.NoContent: return 204;\r\n case RpcRequestStatus.BadGateway: return 502;\r\n case RpcRequestStatus.ServiceUnavailable: return 503;\r\n case RpcRequestStatus.GatewayTimeout: return 504;\r\n default: return 501;\r\n }\r\n }\r\n\r\n /** Whether an HTTP status code indicates a request timeout. */\r\n public isTimeout(code: number): boolean {\r\n return code === 504;\r\n }\r\n\r\n /** An OpenAPI-compatible description of this protocol.\r\n * @internal\r\n */\r\n public get openAPIDescription() { return new RpcOpenAPIDescription(this); }\r\n\r\n /** Returns the OpenAPI-compatible URI path parameters for an RPC operation.\r\n * @internal\r\n */\r\n public abstract supplyPathParametersForOperation(_operation: RpcOperation): OpenAPIParameter[];\r\n\r\n /** Constructs an HTTP protocol. */\r\n public constructor(configuration: RpcConfiguration) {\r\n super(configuration);\r\n this.events.addListener(WebAppRpcLogging.logProtocolEvent);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WebAppRpcProtocol.js","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcProtocol.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 RpcInterface\r\n */\r\n\r\nimport { BentleyError, Logger } from \"@itwin/core-bentley\";\r\nimport { Readable, Writable } from \"stream\";\r\nimport { RpcConfiguration } from \"../core/RpcConfiguration\";\r\nimport { RpcContentType, RpcRequestStatus, WEB_RPC_CONSTANTS } from \"../core/RpcConstants\";\r\nimport { RpcOperation } from \"../core/RpcOperation\";\r\nimport { RpcProtocol } from \"../core/RpcProtocol\";\r\nimport { OpenAPIInfo, OpenAPIParameter, RpcOpenAPIDescription } from \"./OpenAPI\";\r\nimport { WebAppRpcLogging } from \"./WebAppRpcLogging\";\r\nimport { WebAppRpcRequest } from \"./WebAppRpcRequest\";\r\nimport { CommonLoggerCategory } from \"../../CommonLoggerCategory\";\r\nimport { RpcInterface } from \"../../RpcInterface\";\r\nimport { RpcManager } from \"../../RpcManager\";\r\nimport { RpcRoutingToken } from \"../core/RpcRoutingToken\";\r\nimport { IModelRpcProps } from \"../../IModel\";\r\n\r\nclass InitializeInterface extends RpcInterface {\r\n public static readonly interfaceName = \"InitializeInterface\";\r\n public static readonly interfaceVersion = \"1.0.0\";\r\n public async initialize(_token?: IModelRpcProps) { return this.forward(arguments); }\r\n\r\n public static createRequest(protocol: WebAppRpcProtocol, token?: IModelRpcProps) {\r\n const routing = RpcRoutingToken.generate();\r\n\r\n const config = class extends RpcConfiguration {\r\n public interfaces = () => [InitializeInterface];\r\n public protocol = protocol;\r\n };\r\n\r\n RpcConfiguration.assignWithRouting(InitializeInterface, routing, config);\r\n\r\n const instance = RpcConfiguration.obtain(config);\r\n RpcConfiguration.initializeInterfaces(instance);\r\n\r\n const client = RpcManager.getClientForInterface(InitializeInterface, routing);\r\n return new (protocol.requestType)(client, \"initialize\", [token]);\r\n }\r\n}\r\n\r\n/** An HTTP server request object.\r\n * @public\r\n */\r\nexport interface HttpServerRequest extends Readable {\r\n aborted: boolean;\r\n httpVersion: string;\r\n httpVersionMajor: number;\r\n httpVersionMinor: number;\r\n complete: boolean;\r\n connection: any;\r\n headers: { [header: string]: string | string[] | undefined };\r\n rawHeaders: string[];\r\n trailers: { [key: string]: string | undefined };\r\n rawTrailers: string[];\r\n setTimeout(msecs: number, callback: () => void): this;\r\n url?: string;\r\n statusCode?: number;\r\n statusMessage?: string;\r\n socket: any;\r\n destroy(error?: Error): void;\r\n body: string | Buffer;\r\n path: string;\r\n method: string;\r\n ip?: string;\r\n header: (field: string) => string | undefined;\r\n}\r\n\r\n/** An HTTP server response object.\r\n * @public\r\n */\r\nexport interface HttpServerResponse extends Writable {\r\n send(body?: any): HttpServerResponse;\r\n status(code: number): HttpServerResponse;\r\n set(field: string, value: string): void;\r\n}\r\n\r\n/** The HTTP application protocol.\r\n * @internal\r\n */\r\nexport abstract class WebAppRpcProtocol extends RpcProtocol {\r\n public override preserveStreams = true;\r\n\r\n private _initialized: Promise<void> | undefined;\r\n\r\n /** @internal */\r\n public allowedHeaders: Set<string> = new Set();\r\n\r\n /** @internal */\r\n public override async initialize(token?: IModelRpcProps) {\r\n if (this._initialized) {\r\n return this._initialized;\r\n }\r\n\r\n return this._initialized = new Promise(async (resolve) => {\r\n try {\r\n const request = InitializeInterface.createRequest(this, token);\r\n const response = await request.preflight();\r\n if (response && response.ok) {\r\n (response.headers.get(\"Access-Control-Allow-Headers\") || \"\").split(\",\").forEach((v) => this.allowedHeaders.add(v.trim()));\r\n }\r\n } catch (err) {\r\n Logger.logWarning(CommonLoggerCategory.RpcInterfaceFrontend, \"Unable to discover backend capabilities.\", BentleyError.getErrorProps(err));\r\n }\r\n\r\n resolve();\r\n });\r\n }\r\n\r\n /** Convenience handler for an RPC operation get request for an HTTP server. */\r\n public async handleOperationGetRequest(req: HttpServerRequest, res: HttpServerResponse) {\r\n return this.handleOperationPostRequest(req, res);\r\n }\r\n\r\n /** Convenience handler for an RPC operation post request for an HTTP server. */\r\n public async handleOperationPostRequest(req: HttpServerRequest, res: HttpServerResponse) {\r\n const request = await WebAppRpcRequest.parseRequest(this, req);\r\n const fulfillment = await this.fulfill(request);\r\n await WebAppRpcRequest.sendResponse(this, request, fulfillment, req, res);\r\n }\r\n\r\n /** Convenience handler for an OpenAPI description request for an HTTP server. */\r\n public handleOpenApiDescriptionRequest(_req: HttpServerRequest, res: HttpServerResponse) {\r\n const description = JSON.stringify(this.openAPIDescription);\r\n res.send(description);\r\n }\r\n\r\n /** Converts an HTTP content type value to an RPC content type value. */\r\n public static computeContentType(httpType: string | null | undefined): RpcContentType {\r\n if (!httpType)\r\n return RpcContentType.Unknown;\r\n\r\n if (httpType.indexOf(WEB_RPC_CONSTANTS.ANY_TEXT) === 0) {\r\n return RpcContentType.Text;\r\n } else if (httpType.indexOf(WEB_RPC_CONSTANTS.BINARY) === 0) {\r\n return RpcContentType.Binary;\r\n } else if (httpType.indexOf(WEB_RPC_CONSTANTS.MULTIPART) === 0) {\r\n return RpcContentType.Multipart;\r\n } else {\r\n return RpcContentType.Unknown;\r\n }\r\n }\r\n\r\n /** The OpenAPI-compatible info object for this protocol. */\r\n public abstract info: OpenAPIInfo;\r\n\r\n /** An optional prefix for RPC operation URI paths. */\r\n public pathPrefix: string = \"\";\r\n\r\n /** The RPC request class for this protocol. */\r\n public readonly requestType = WebAppRpcRequest;\r\n\r\n /** Supplies the status corresponding to a protocol-specific code value. */\r\n public override getStatus(code: number): RpcRequestStatus {\r\n switch (code) {\r\n case 404: return RpcRequestStatus.NotFound;\r\n case 202: return RpcRequestStatus.Pending;\r\n case 200: return RpcRequestStatus.Resolved;\r\n case 500: return RpcRequestStatus.Rejected;\r\n case 204: return RpcRequestStatus.NoContent;\r\n case 502: return RpcRequestStatus.BadGateway;\r\n case 503: return RpcRequestStatus.ServiceUnavailable;\r\n case 504: return RpcRequestStatus.GatewayTimeout;\r\n default: return RpcRequestStatus.Unknown;\r\n }\r\n }\r\n\r\n /** Supplies the protocol-specific code corresponding to a status value. */\r\n public override getCode(status: RpcRequestStatus): number {\r\n switch (status) {\r\n case RpcRequestStatus.NotFound: return 404;\r\n case RpcRequestStatus.Pending: return 202;\r\n case RpcRequestStatus.Resolved: return 200;\r\n case RpcRequestStatus.Rejected: return 500;\r\n case RpcRequestStatus.NoContent: return 204;\r\n case RpcRequestStatus.BadGateway: return 502;\r\n case RpcRequestStatus.ServiceUnavailable: return 503;\r\n case RpcRequestStatus.GatewayTimeout: return 504;\r\n default: return 501;\r\n }\r\n }\r\n\r\n public override supportsStatusCategory = true;\r\n\r\n /** Whether an HTTP status code indicates a request timeout. */\r\n public isTimeout(code: number): boolean {\r\n return code === 504;\r\n }\r\n\r\n /** An OpenAPI-compatible description of this protocol.\r\n * @internal\r\n */\r\n public get openAPIDescription() { return new RpcOpenAPIDescription(this); }\r\n\r\n /** Returns the OpenAPI-compatible URI path parameters for an RPC operation.\r\n * @internal\r\n */\r\n public abstract supplyPathParametersForOperation(_operation: RpcOperation): OpenAPIParameter[];\r\n\r\n /** Constructs an HTTP protocol. */\r\n public constructor(configuration: RpcConfiguration) {\r\n super(configuration);\r\n this.events.addListener(WebAppRpcLogging.logProtocolEvent);\r\n }\r\n}\r\n"]}
@@ -1,7 +1,6 @@
1
1
  /** @packageDocumentation
2
2
  * @module RpcInterface
3
3
  */
4
- import "@ungap/url-search-params/index";
5
4
  import { RpcInterface } from "../../RpcInterface";
6
5
  import { RpcContentType } from "../core/RpcConstants";
7
6
  import { RpcSerializedValue } from "../core/RpcMarshaling";
@@ -36,7 +35,7 @@ export declare class WebAppRpcRequest extends RpcRequest {
36
35
  /** Parses a request. */
37
36
  static parseRequest(protocol: WebAppRpcProtocol, req: HttpServerRequest): Promise<SerializedRpcRequest>;
38
37
  /** Sends the response for a web request. */
39
- static sendResponse(protocol: WebAppRpcProtocol, request: SerializedRpcRequest, fulfillment: RpcRequestFulfillment, res: HttpServerResponse): void;
38
+ static sendResponse(protocol: WebAppRpcProtocol, request: SerializedRpcRequest, fulfillment: RpcRequestFulfillment, req: HttpServerRequest, res: HttpServerResponse): Promise<void>;
40
39
  /** Determines the most efficient transport type for an RPC value. */
41
40
  protected static computeTransportType(value: RpcSerializedValue, source: any): RpcContentType;
42
41
  /** Constructs a web application request. */
@@ -56,10 +55,10 @@ export declare class WebAppRpcRequest extends RpcRequest {
56
55
  /** Override to supply an alternate Request function. */
57
56
  protected supplyRequest(): typeof Request;
58
57
  private static configureResponse;
59
- private static sendText;
60
- private static sendBinary;
61
- private static sendMultipart;
62
- private static sendStream;
58
+ private static configureText;
59
+ private static configureBinary;
60
+ private static configureMultipart;
61
+ private static configureStream;
63
62
  private static parseFromPath;
64
63
  private static parseFromBody;
65
64
  private performFetch;
@@ -1 +1 @@
1
- {"version":3,"file":"WebAppRpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcRequest.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAkF,MAAM,sBAAsB,CAAC;AACtI,OAAO,EAA0B,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAA0B,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG/F,gBAAgB;AAChB,oBAAY,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtG;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,KAAK,QAAQ,GAAiE;IAErF;;OAEG;IACH,OAAc,mBAAmB,SAAQ;IAEzC,wCAAwC;IACxB,MAAM,EAAE,YAAY,CAAC;IAErC,0DAA0D;IAC1D,SAAyB,QAAQ,EAAE,iBAAiB,CAA6C;IAEjG,+FAA+F;IACxF,QAAQ;;;MAA8B;IAE7C,oBAAoB;IACpB,OAAO,CAAC,MAAM,CAAC,YAAY;IAY3B,wBAAwB;WACJ,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoCpH,4CAA4C;WAC9B,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,EAAE,kBAAkB;IAalJ,qEAAqE;IACrE,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,GAAG,cAAc;IAY7F,4CAA4C;gBACzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE;IAO7E,gBAAgB;IACH,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAQpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK3D,kCAAkC;IAClC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAItD,yBAAyB;cACT,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;cAiBpB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;cAqB3C,qBAAqB,CAAC,IAAI,EAAE,MAAM;cAQrC,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAoCnD,sDAAsD;IACtD,SAAS,CAAC,WAAW,IAAI,OAAO,KAAK;IAIrC,wDAAwD;IACxD,SAAS,CAAC,aAAa,IAAI,OAAO,OAAO;IAIzC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAYhC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAOvB,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB,OAAO,CAAC,MAAM,CAAC,aAAa;IAc5B,OAAO,CAAC,MAAM,CAAC,UAAU;IAOzB,OAAO,CAAC,MAAM,CAAC,aAAa;mBAKP,aAAa;YAapB,YAAY;YAkBZ,QAAQ;YAMR,UAAU;YAMV,aAAa;YAMb,cAAc;IAiB5B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,kBAAkB;CAiB3B"}
1
+ {"version":3,"file":"WebAppRpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/rpc/web/WebAppRpcRequest.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAkF,MAAM,sBAAsB,CAAC;AAEtI,OAAO,EAA0B,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAe,qBAAqB,EAA0B,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACvH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,gBAAgB;AAChB,oBAAY,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtG;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,KAAK,QAAQ,GAAiE;IAErF;;OAEG;IACH,OAAc,mBAAmB,SAAQ;IAEzC,wCAAwC;IACxB,MAAM,EAAE,YAAY,CAAC;IAErC,0DAA0D;IAC1D,SAAyB,QAAQ,EAAE,iBAAiB,CAA6C;IAEjG,+FAA+F;IACxF,QAAQ;;;MAA8B;IAE7C,oBAAoB;IACpB,OAAO,CAAC,MAAM,CAAC,YAAY;IAY3B,wBAAwB;WACJ,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoCpH,4CAA4C;WACxB,YAAY,CAC9B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,qBAAqB,EAClC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,IAAI,CAAC;IAuChB,qEAAqE;IACrE,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,GAAG,cAAc;IAY7F,4CAA4C;gBACzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE;IAO7E,gBAAgB;IACH,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAQpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK3D,kCAAkC;IAClC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAItD,yBAAyB;cACT,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;cAapB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;cAqB3C,qBAAqB,CAAC,IAAI,EAAE,MAAM;cAQrC,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA2CnD,sDAAsD;IACtD,SAAS,CAAC,WAAW,IAAI,OAAO,KAAK;IAIrC,wDAAwD;IACxD,SAAS,CAAC,aAAa,IAAI,OAAO,OAAO;IAIzC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAYhC,OAAO,CAAC,MAAM,CAAC,aAAa;IAK5B,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAYjC,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,OAAO,CAAC,MAAM,CAAC,aAAa;mBAKP,aAAa;YAapB,YAAY;YAkBZ,QAAQ;YAMR,UAAU;YAMV,aAAa;YAMb,cAAc;IAiB5B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,kBAAkB;CAiB3B"}
@@ -8,11 +8,12 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.WebAppRpcRequest = void 0;
11
- require("@ungap/url-search-params/index");
12
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
+ const buffer_1 = require("buffer");
13
13
  const IModelError_1 = require("../../IModelError");
14
14
  const RpcConstants_1 = require("../core/RpcConstants");
15
15
  const RpcMarshaling_1 = require("../core/RpcMarshaling");
16
+ const RpcProtocol_1 = require("../core/RpcProtocol");
16
17
  const RpcRequest_1 = require("../core/RpcRequest");
17
18
  const RpcMultipartParser_1 = require("./multipart/RpcMultipartParser");
18
19
  const RpcMultipart_1 = require("./RpcMultipart");
@@ -79,19 +80,43 @@ class WebAppRpcRequest extends RpcRequest_1.RpcRequest {
79
80
  return request;
80
81
  }
81
82
  /** Sends the response for a web request. */
82
- static sendResponse(protocol, request, fulfillment, res) {
83
+ static async sendResponse(protocol, request, fulfillment, req, res) {
84
+ var _a;
85
+ const versionHeader = protocol.protocolVersionHeaderName;
86
+ if (versionHeader && RpcProtocol_1.RpcProtocol.protocolVersion) {
87
+ res.set(versionHeader, RpcProtocol_1.RpcProtocol.protocolVersion.toString());
88
+ }
89
+ // eslint-disable-next-line @typescript-eslint/naming-convention
90
+ const { Readable, Stream } = await Promise.resolve().then(() => require(/* webpackIgnore: true */ "stream"));
91
+ const { createGzip } = await Promise.resolve().then(() => require(/* webpackIgnore: true */ "zlib"));
83
92
  const transportType = WebAppRpcRequest.computeTransportType(fulfillment.result, fulfillment.rawResult);
93
+ let responseBody;
84
94
  if (transportType === RpcConstants_1.RpcContentType.Binary) {
85
- WebAppRpcRequest.sendBinary(protocol, request, fulfillment, res);
95
+ responseBody = WebAppRpcRequest.configureBinary(fulfillment, res);
86
96
  }
87
97
  else if (transportType === RpcConstants_1.RpcContentType.Multipart) {
88
- WebAppRpcRequest.sendMultipart(protocol, request, fulfillment, res);
98
+ responseBody = WebAppRpcRequest.configureMultipart(fulfillment, res);
89
99
  }
90
100
  else if (transportType === RpcConstants_1.RpcContentType.Stream) {
91
- WebAppRpcRequest.sendStream(protocol, request, fulfillment, res);
101
+ responseBody = WebAppRpcRequest.configureStream(fulfillment);
92
102
  }
93
103
  else {
94
- WebAppRpcRequest.sendText(protocol, request, fulfillment, res);
104
+ responseBody = WebAppRpcRequest.configureText(fulfillment, res);
105
+ }
106
+ WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
107
+ res.status(fulfillment.status);
108
+ if (fulfillment.allowCompression && ((_a = req.header("Accept-Encoding")) === null || _a === void 0 ? void 0 : _a.includes("gzip"))) {
109
+ res.set("Content-Encoding", "gzip");
110
+ const readableResponseBody = (responseBody instanceof Stream) ? responseBody : Readable.from(responseBody);
111
+ responseBody = readableResponseBody.pipe(createGzip());
112
+ }
113
+ // This check should in theory look for instances of Readable, but that would break backend implementation at
114
+ // core/backend/src/RpcBackend.ts
115
+ if (responseBody instanceof Stream) {
116
+ responseBody.pipe(res);
117
+ }
118
+ else {
119
+ res.send(responseBody);
95
120
  }
96
121
  }
97
122
  /** Determines the most efficient transport type for an RPC value. */
@@ -127,9 +152,6 @@ class WebAppRpcRequest extends RpcRequest_1.RpcRequest {
127
152
  }
128
153
  /** Sends the request. */
129
154
  async send() {
130
- if (this.method !== "options") {
131
- await this.protocol.initialize();
132
- }
133
155
  this._loading = true;
134
156
  await this.setupTransport();
135
157
  return new Promise(async (resolve, reject) => {
@@ -177,6 +199,12 @@ class WebAppRpcRequest extends RpcRequest_1.RpcRequest {
177
199
  reject(new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, "Invalid state."));
178
200
  return;
179
201
  }
202
+ if (this.protocol.protocolVersionHeaderName) {
203
+ const version = response.headers.get(this.protocol.protocolVersionHeaderName);
204
+ if (version) {
205
+ this.responseProtocolVersion = parseInt(version, 10);
206
+ }
207
+ }
180
208
  const contentType = response.headers.get(RpcConstants_1.WEB_RPC_CONSTANTS.CONTENT);
181
209
  const responseType = WebAppRpcProtocol_1.WebAppRpcProtocol.computeContentType(contentType);
182
210
  if (responseType === RpcConstants_1.RpcContentType.Binary) {
@@ -217,20 +245,16 @@ class WebAppRpcRequest extends RpcRequest_1.RpcRequest {
217
245
  res.set("Retry-After", fulfillment.retry);
218
246
  }
219
247
  }
220
- static sendText(protocol, request, fulfillment, res) {
221
- const response = (fulfillment.status === 204) ? "" : fulfillment.result.objects;
248
+ static configureText(fulfillment, res) {
222
249
  res.set(RpcConstants_1.WEB_RPC_CONSTANTS.CONTENT, RpcConstants_1.WEB_RPC_CONSTANTS.TEXT);
223
- WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
224
- res.status(fulfillment.status).send(response);
250
+ return (fulfillment.status === 204) ? "" : fulfillment.result.objects;
225
251
  }
226
- static sendBinary(protocol, request, fulfillment, res) {
227
- const data = fulfillment.result.data[0];
228
- const response = Buffer.isBuffer(data) ? data : Buffer.from(data);
252
+ static configureBinary(fulfillment, res) {
229
253
  res.set(RpcConstants_1.WEB_RPC_CONSTANTS.CONTENT, RpcConstants_1.WEB_RPC_CONSTANTS.BINARY);
230
- WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
231
- res.status(fulfillment.status).send(response);
254
+ const data = fulfillment.result.data[0];
255
+ return buffer_1.Buffer.isBuffer(data) ? data : buffer_1.Buffer.from(data);
232
256
  }
233
- static sendMultipart(protocol, request, fulfillment, res) {
257
+ static configureMultipart(fulfillment, res) {
234
258
  const response = RpcMultipart_1.RpcMultipart.createStream(fulfillment.result);
235
259
  const headers = response.getHeaders();
236
260
  for (const header in headers) {
@@ -238,18 +262,13 @@ class WebAppRpcRequest extends RpcRequest_1.RpcRequest {
238
262
  res.set(header, headers[header]);
239
263
  }
240
264
  }
241
- WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
242
- res.status(fulfillment.status);
243
- response.pipe(res);
265
+ return response;
244
266
  }
245
- static sendStream(protocol, request, fulfillment, res) {
246
- const response = fulfillment.result.stream;
247
- WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
248
- res.status(fulfillment.status);
249
- response.pipe(res);
267
+ static configureStream(fulfillment) {
268
+ return fulfillment.result.stream;
250
269
  }
251
270
  static parseFromPath(operation) {
252
- const decoded = operation.encodedRequest ? Buffer.from(operation.encodedRequest, "base64").toString("binary") : "";
271
+ const decoded = operation.encodedRequest ? buffer_1.Buffer.from(operation.encodedRequest, "base64").toString("binary") : "";
253
272
  return RpcMarshaling_1.RpcSerializedValue.create(decoded);
254
273
  }
255
274
  static async parseFromBody(req) {
@@ -293,7 +312,7 @@ class WebAppRpcRequest extends RpcRequest_1.RpcRequest {
293
312
  }
294
313
  async loadMultipart(response, contentType) {
295
314
  const data = await response.arrayBuffer();
296
- const value = new RpcMultipartParser_1.RpcMultipartParser(contentType, Buffer.from(data)).parse();
315
+ const value = new RpcMultipartParser_1.RpcMultipartParser(contentType, buffer_1.Buffer.from(data)).parse();
297
316
  return value;
298
317
  }
299
318
  async setupTransport() {
@@ -344,5 +363,5 @@ exports.WebAppRpcRequest = WebAppRpcRequest;
344
363
  /** The maximum size permitted for an encoded component in a URL.
345
364
  * @note This is used for features like encoding the payload of a cacheable request in the URL.
346
365
  */
347
- WebAppRpcRequest.maxUrlComponentSize = 1024;
366
+ WebAppRpcRequest.maxUrlComponentSize = 4096;
348
367
  //# sourceMappingURL=WebAppRpcRequest.js.map