@microsoft/windows-admin-center-sdk 4.167.0 → 4.260.0

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 (617) hide show
  1. package/angular/assets/strings/cs-CZ/strings.json +1 -1
  2. package/angular/assets/strings/de-DE/strings.json +1 -1
  3. package/angular/assets/strings/es-ES/strings.json +1 -1
  4. package/angular/assets/strings/fr-FR/strings.json +1 -1
  5. package/angular/assets/strings/hu-HU/strings.json +1 -1
  6. package/angular/assets/strings/id-ID/strings.json +1 -1
  7. package/angular/assets/strings/it-IT/strings.json +1 -1
  8. package/angular/assets/strings/ja-JP/strings.json +1 -1
  9. package/angular/assets/strings/ko-KR/strings.json +1 -1
  10. package/angular/assets/strings/nl-NL/strings.json +1 -1
  11. package/angular/assets/strings/pl-PL/strings.json +1 -1
  12. package/angular/assets/strings/pt-BR/strings.json +1 -1
  13. package/angular/assets/strings/pt-PT/strings.json +1 -1
  14. package/angular/assets/strings/ru-RU/strings.json +1 -1
  15. package/angular/assets/strings/strings.json +1 -1
  16. package/angular/assets/strings/sv-SE/strings.json +1 -1
  17. package/angular/assets/strings/tr-TR/strings.json +1 -1
  18. package/angular/assets/strings/zh-CN/strings.json +1 -1
  19. package/angular/assets/strings/zh-TW/strings.json +1 -1
  20. package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
  21. package/angular/esm2020/src/controls/copilot/copilot.component.mjs +55 -0
  22. package/angular/esm2020/src/controls/copilot/copilot.module.mjs +25 -0
  23. package/angular/esm2020/src/controls/copilot/index.mjs +3 -0
  24. package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -9
  25. package/angular/esm2020/src/controls/details/details.component.mjs +62 -25
  26. package/angular/esm2020/src/controls/details/details.module.mjs +5 -1
  27. package/angular/esm2020/src/controls/dialog/dialog.component.mjs +35 -23
  28. package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
  29. package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
  30. package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
  31. package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
  32. package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
  33. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
  34. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
  35. package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
  36. package/angular/esm2020/src/controls/guided-panel/guided-pane/guided-pane.component.mjs +12 -3
  37. package/angular/esm2020/src/controls/index.mjs +4 -1
  38. package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
  39. package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
  40. package/angular/esm2020/src/controls/summary/index.mjs +4 -0
  41. package/angular/esm2020/src/controls/summary/summary-item.mjs +83 -0
  42. package/angular/esm2020/src/controls/summary/summary.component.mjs +391 -0
  43. package/angular/esm2020/src/controls/summary/summary.module.mjs +37 -0
  44. package/angular/esm2020/src/controls/summary-group/index.mjs +3 -0
  45. package/angular/esm2020/src/controls/summary-group/summary-group.component.mjs +84 -0
  46. package/angular/esm2020/src/controls/summary-group/summary-group.module.mjs +33 -0
  47. package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
  48. package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
  49. package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
  50. package/angular/esm2020/src/data/index.mjs +2 -1
  51. package/angular/esm2020/src/generated/strings.mjs +1 -1
  52. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +1798 -597
  53. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  54. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +1679 -597
  55. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  56. package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
  57. package/angular/src/controls/copilot/copilot.component.d.ts +31 -0
  58. package/angular/src/controls/copilot/copilot.module.d.ts +8 -0
  59. package/angular/src/controls/copilot/index.d.ts +2 -0
  60. package/angular/src/controls/details/details.component.d.ts +5 -1
  61. package/angular/src/controls/details/details.module.d.ts +3 -2
  62. package/angular/src/controls/dialog/dialog.component.d.ts +5 -1
  63. package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
  64. package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
  65. package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
  66. package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
  67. package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
  68. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
  69. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
  70. package/angular/src/controls/guided-panel/guided-pane/guided-pane.component.d.ts +4 -0
  71. package/angular/src/controls/index.d.ts +3 -0
  72. package/angular/src/controls/summary/index.d.ts +3 -0
  73. package/angular/src/controls/summary/summary-item.d.ts +105 -0
  74. package/angular/src/controls/summary/summary.component.d.ts +82 -0
  75. package/angular/src/controls/summary/summary.module.d.ts +11 -0
  76. package/angular/src/controls/summary-group/index.d.ts +3 -0
  77. package/angular/src/controls/summary-group/summary-group.component.d.ts +57 -0
  78. package/angular/src/controls/summary-group/summary-group.module.d.ts +10 -0
  79. package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
  80. package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
  81. package/angular/src/data/index.d.ts +1 -0
  82. package/angular/src/generated/strings.d.ts +11 -0
  83. package/core/async/cancellation.js +316 -0
  84. package/core/async/index.js +312 -0
  85. package/core/async/progress.js +312 -0
  86. package/core/azure/azure-constants.js +316 -0
  87. package/core/azure/azure-logging.js +316 -0
  88. package/core/azure/azure-manager.js +316 -0
  89. package/core/azure/models/aadAppConfig-data.js +312 -0
  90. package/core/azure/models/azureArcStatusEnum.js +315 -0
  91. package/core/azure/models/azureTokenResult-data.js +315 -0
  92. package/core/azure/resources/deployment-operation-request-body.js +316 -0
  93. package/core/azure/resources/deployment-operation-response.js +312 -0
  94. package/core/azure/resources/location-data.js +316 -0
  95. package/core/azure/resources/resource-group-data.js +316 -0
  96. package/core/azure/resources/subscription-data.js +316 -0
  97. package/core/base/data-store/browser-storage-data-store.js +312 -0
  98. package/core/base/data-store/cached-data-store.js +316 -0
  99. package/core/base/data-store/data-store.js +312 -0
  100. package/core/base/data-store/local-data-store.js +312 -0
  101. package/core/base/data-store/memory-data-store.js +312 -0
  102. package/core/base/data-store/session-data-store.js +316 -0
  103. package/core/base/date/date-like.js +315 -0
  104. package/core/base/date/date-range.js +316 -0
  105. package/core/base/date/date-time.js +312 -0
  106. package/core/base/date/date-type.js +312 -0
  107. package/core/base/date/time-unit.js +316 -0
  108. package/core/base/decorators/base.js +316 -0
  109. package/core/base/decorators/debounce.decorators.js +316 -0
  110. package/core/base/decorators/delay.decorator.js +312 -0
  111. package/core/base/decorators/yield.decorator.js +312 -0
  112. package/core/base/environment.js +316 -0
  113. package/core/base/json.js +316 -0
  114. package/core/base/msft-sme.mock.js +315 -0
  115. package/core/base/polyfills/array.js +316 -0
  116. package/core/base/polyfills/string.js +316 -0
  117. package/core/base/rxjs-lifetime-manager.js +312 -0
  118. package/core/base/utilities.js +312 -0
  119. package/core/base/versioned-object.js +316 -0
  120. package/core/copilot/copilot-extension-service.d.ts +49 -0
  121. package/core/copilot/copilot-extension-service.d.ts.map +1 -0
  122. package/core/copilot/copilot-extension-service.js +446 -0
  123. package/core/copilot/copilot-extension-service.js.map +1 -0
  124. package/core/copilot/copilot-iframe/iframe-broker-service.d.ts +19 -0
  125. package/core/copilot/copilot-iframe/iframe-broker-service.d.ts.map +1 -0
  126. package/core/copilot/copilot-iframe/iframe-broker-service.js +344 -0
  127. package/core/copilot/copilot-iframe/iframe-broker-service.js.map +1 -0
  128. package/core/copilot/copilot-iframe/iframe-child-service.d.ts +15 -0
  129. package/core/copilot/copilot-iframe/iframe-child-service.d.ts.map +1 -0
  130. package/core/copilot/copilot-iframe/iframe-child-service.js +337 -0
  131. package/core/copilot/copilot-iframe/iframe-child-service.js.map +1 -0
  132. package/core/copilot/copilot-iframe/iframe-message-payload.d.ts +4 -0
  133. package/core/copilot/copilot-iframe/iframe-message-payload.d.ts.map +1 -0
  134. package/core/copilot/copilot-iframe/iframe-message-payload.js +319 -0
  135. package/core/copilot/copilot-iframe/iframe-message-payload.js.map +1 -0
  136. package/core/copilot/copilot-iframe/iframe-message-type.d.ts +4 -0
  137. package/core/copilot/copilot-iframe/iframe-message-type.d.ts.map +1 -0
  138. package/core/copilot/copilot-iframe/iframe-message-type.js +319 -0
  139. package/core/copilot/copilot-iframe/iframe-message-type.js.map +1 -0
  140. package/core/copilot/copilot-iframe/iframe-message.d.ts +6 -0
  141. package/core/copilot/copilot-iframe/iframe-message.d.ts.map +1 -0
  142. package/core/copilot/copilot-iframe/iframe-message.js +315 -0
  143. package/core/copilot/copilot-iframe/iframe-message.js.map +1 -0
  144. package/core/data/accessibility-manager.js +316 -0
  145. package/core/data/active-directory/active-directory.js +312 -0
  146. package/core/data/active-directory/models/account-info.js +316 -0
  147. package/core/data/active-directory/models/active-directory-search-options.js +312 -0
  148. package/core/data/active-directory/models/search-type.js +315 -0
  149. package/core/data/animation.js +312 -0
  150. package/core/data/app-context.js +316 -0
  151. package/core/data/asset-manager.js +316 -0
  152. package/core/data/base64-array-buffer.js +312 -0
  153. package/core/data/batch-connection.js +316 -0
  154. package/core/data/cim-connection.js +312 -0
  155. package/core/data/cim-stream.js +312 -0
  156. package/core/data/cim.js +316 -0
  157. package/core/data/column-picker.js +315 -0
  158. package/core/data/cookie.js +316 -0
  159. package/core/data/core-environment.js +312 -0
  160. package/core/data/crypto.js +312 -0
  161. package/core/data/deployment-share.js +316 -0
  162. package/core/data/disposable.js +316 -0
  163. package/core/data/electron.js +316 -0
  164. package/core/data/error-extended.js +316 -0
  165. package/core/data/extension-broker/dialog-listener.js +312 -0
  166. package/core/data/extension-broker/extension-broker.js +316 -0
  167. package/core/data/extension-broker/extension-listener.js +316 -0
  168. package/core/data/extension-broker/model/extension-broker-request-payload.js +316 -0
  169. package/core/data/extension-broker/model/extension-broker-response-error.js +315 -0
  170. package/core/data/extension-broker/model/extension-broker-response-payload.js +316 -0
  171. package/core/data/extension-broker/model/extension-entries.js +315 -0
  172. package/core/data/extension-broker/model/extension-instance.js +316 -0
  173. package/core/data/extension-broker/model/extension-rect.js +316 -0
  174. package/core/data/extension-broker/model/extension-search-options.js +316 -0
  175. package/core/data/extension-broker/service-listener.js +315 -0
  176. package/core/data/extension-broker/worker-listener.js +315 -0
  177. package/core/data/extension-broker/worker-set.js +316 -0
  178. package/core/data/file-transfer.js +316 -0
  179. package/core/data/gateway-connection.js +316 -0
  180. package/core/data/gateway-status.js +316 -0
  181. package/core/data/gateway-url-builder.js +316 -0
  182. package/core/data/gateway-url-translator.js +316 -0
  183. package/core/data/gateway-urls.js +316 -0
  184. package/core/data/globalization.js +315 -0
  185. package/core/data/http-constants.js +316 -0
  186. package/core/data/http.js +316 -0
  187. package/core/data/jobs/jobs-manager.js +316 -0
  188. package/core/data/jobs/models/job-credentials.js +312 -0
  189. package/core/data/jobs/models/job-node.js +316 -0
  190. package/core/data/jobs/models/job-paginated-response.js +312 -0
  191. package/core/data/jobs/models/job-pagination-options.js +316 -0
  192. package/core/data/jobs/models/job.js +316 -0
  193. package/core/data/jobs/models/node-job.js +316 -0
  194. package/core/data/jobs/models/powershell-job.js +312 -0
  195. package/core/data/language.js +312 -0
  196. package/core/data/lifetime-data.js +316 -0
  197. package/core/data/localization-manager.js +316 -0
  198. package/core/data/native-q.js +312 -0
  199. package/core/data/net.d.ts.map +1 -1
  200. package/core/data/net.js +317 -1
  201. package/core/data/net.js.map +1 -1
  202. package/core/data/node-connection.d.ts.map +1 -1
  203. package/core/data/node-connection.js +316 -0
  204. package/core/data/node-connection.js.map +1 -1
  205. package/core/data/node-extension-install.js +316 -0
  206. package/core/data/powershell-alternate.js +316 -0
  207. package/core/data/powershell-batch.js +312 -0
  208. package/core/data/powershell-connection.js +312 -0
  209. package/core/data/powershell-crypto.js +316 -0
  210. package/core/data/powershell-stream.js +315 -0
  211. package/core/data/powershell.js +316 -0
  212. package/core/data/query-cache.js +312 -0
  213. package/core/data/resource-cache.js +312 -0
  214. package/core/data/schedule-reboot.js +315 -0
  215. package/core/data/settings-manager.js +316 -0
  216. package/core/data/settings-manger.mock.js +315 -0
  217. package/core/data/sme-extension.js +312 -0
  218. package/core/data/ssh-stream.js +316 -0
  219. package/core/data/units.js +312 -0
  220. package/core/data/uri-builder.js +316 -0
  221. package/core/data/wdac-operations.js +315 -0
  222. package/core/data/websocket-stream.js +316 -0
  223. package/core/diagnostics/error-monitor.js +316 -0
  224. package/core/diagnostics/log-level.js +316 -0
  225. package/core/diagnostics/log-record.js +312 -0
  226. package/core/diagnostics/logging-constants.js +316 -0
  227. package/core/diagnostics/logging.js +316 -0
  228. package/core/diagnostics/logging.mock.js +316 -0
  229. package/core/diagnostics/sme-web-telemetry-models.js +316 -0
  230. package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
  231. package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
  232. package/core/diagnostics/sme-web-telemetry.js +339 -15
  233. package/core/diagnostics/sme-web-telemetry.js.map +1 -1
  234. package/core/diagnostics/telemetry-control-type.js +316 -0
  235. package/core/diagnostics/telemetry-options.js +316 -0
  236. package/core/diagnostics/telemetry-record.js +316 -0
  237. package/core/dom/dom.js +316 -0
  238. package/core/frame/frame-connection.js +316 -0
  239. package/core/frame/frame-connection.mock.js +316 -0
  240. package/core/frame/shell-navigation-connection.js +316 -0
  241. package/core/generated/powershell-scripts.d.ts.map +1 -1
  242. package/core/generated/powershell-scripts.js +313 -1
  243. package/core/generated/powershell-scripts.js.map +1 -1
  244. package/core/generated/strings.js +312 -0
  245. package/core/host/host-core-manager.js +316 -0
  246. package/core/host/host-core-message-type.js +316 -0
  247. package/core/host/host-core-messages.js +312 -0
  248. package/core/index.d.ts +48 -25
  249. package/core/index.d.ts.map +1 -1
  250. package/core/index.js +351 -18
  251. package/core/index.js.map +1 -1
  252. package/core/manifest/environment-modules.d.ts +3 -1
  253. package/core/manifest/environment-modules.d.ts.map +1 -1
  254. package/core/manifest/environment-modules.js +314 -0
  255. package/core/manifest/environment-modules.js.map +1 -1
  256. package/core/manifest/manifest-loader.js +312 -0
  257. package/core/manifest/module-schema.json +3 -1
  258. package/core/notification/client-notification-instance.js +316 -0
  259. package/core/notification/client-notification.js +316 -0
  260. package/core/notification/notification-connection.js +316 -0
  261. package/core/notification/notification-link-type.js +312 -0
  262. package/core/notification/notification-manager.js +312 -0
  263. package/core/notification/notification-message.js +312 -0
  264. package/core/notification/notification-state.js +316 -0
  265. package/core/notification/notification.js +312 -0
  266. package/core/notification/powershell-notification.js +316 -0
  267. package/core/notification/socket-signalr.js +312 -0
  268. package/core/notification/work-item-connection.js +312 -0
  269. package/core/notification/work-item-manager.js +316 -0
  270. package/core/notification/work-item-request.js +315 -0
  271. package/core/performance/performance-profile-data-type.js +315 -0
  272. package/core/performance/performance-profile-data.js +315 -0
  273. package/core/performance/performance-profile-database.js +315 -0
  274. package/core/performance/performance-profile-record.js +316 -0
  275. package/core/performance/performance-profile.d.ts.map +1 -1
  276. package/core/performance/performance-profile.js +325 -9
  277. package/core/performance/performance-profile.js.map +1 -1
  278. package/core/performance/performance-tracker.js +312 -0
  279. package/core/polyfills.js +316 -0
  280. package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +219 -0
  281. package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +218 -0
  282. package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
  283. package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
  284. package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
  285. package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +218 -0
  286. package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +218 -0
  287. package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +218 -0
  288. package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +221 -1
  289. package/core/rpc/alive/rpc-alive-client.js +312 -0
  290. package/core/rpc/alive/rpc-alive-handler.js +312 -0
  291. package/core/rpc/alive/rpc-alive-model.js +316 -0
  292. package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
  293. package/core/rpc/alive/rpc-observable-alive-client.js +316 -0
  294. package/core/rpc/alive/rpc-observable-alive-model.js +315 -0
  295. package/core/rpc/alive/rpc-observable-alive-server.js +315 -0
  296. package/core/rpc/azure/rpc-azure-model.js +312 -0
  297. package/core/rpc/azure/rpc-azure-request-client.js +312 -0
  298. package/core/rpc/azure/rpc-azure-request-handler.js +316 -0
  299. package/core/rpc/azure/rpc-azure-request-subject-server.js +316 -0
  300. package/core/rpc/azure/rpc-azure-response-client.js +316 -0
  301. package/core/rpc/azure/rpc-azure-response-handler.js +312 -0
  302. package/core/rpc/copilot/rpc-observable-copilot-client.d.ts +24 -0
  303. package/core/rpc/copilot/rpc-observable-copilot-client.d.ts.map +1 -0
  304. package/core/rpc/copilot/rpc-observable-copilot-client.js +343 -0
  305. package/core/rpc/copilot/rpc-observable-copilot-client.js.map +1 -0
  306. package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts +24 -0
  307. package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts.map +1 -0
  308. package/core/rpc/copilot/rpc-observable-copilot-config-client.js +343 -0
  309. package/core/rpc/copilot/rpc-observable-copilot-config-client.js.map +1 -0
  310. package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts +14 -0
  311. package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts.map +1 -0
  312. package/core/rpc/copilot/rpc-observable-copilot-config-server.js +332 -0
  313. package/core/rpc/copilot/rpc-observable-copilot-config-server.js.map +1 -0
  314. package/core/rpc/copilot/rpc-observable-copilot-model.d.ts +55 -0
  315. package/core/rpc/copilot/rpc-observable-copilot-model.d.ts.map +1 -0
  316. package/core/rpc/copilot/rpc-observable-copilot-model.js +334 -0
  317. package/core/rpc/copilot/rpc-observable-copilot-model.js.map +1 -0
  318. package/core/rpc/copilot/rpc-observable-copilot-server.d.ts +14 -0
  319. package/core/rpc/copilot/rpc-observable-copilot-server.d.ts.map +1 -0
  320. package/core/rpc/copilot/rpc-observable-copilot-server.js +333 -0
  321. package/core/rpc/copilot/rpc-observable-copilot-server.js.map +1 -0
  322. package/core/rpc/credssp/rpc-credssp-model.js +315 -0
  323. package/core/rpc/credssp/rpc-credssp-request-client.js +316 -0
  324. package/core/rpc/credssp/rpc-credssp-request-handler.js +316 -0
  325. package/core/rpc/credssp/rpc-credssp-request-subject-server.js +316 -0
  326. package/core/rpc/credssp/rpc-credssp-response-client.js +316 -0
  327. package/core/rpc/credssp/rpc-credssp-response-handler.js +316 -0
  328. package/core/rpc/dialog/rpc-dialog-client.js +312 -0
  329. package/core/rpc/dialog/rpc-dialog-handler.js +315 -0
  330. package/core/rpc/dialog/rpc-dialog-model.js +316 -0
  331. package/core/rpc/dialog/rpc-dialog-subject-server.js +316 -0
  332. package/core/rpc/electron/rpc-electron-model.js +316 -0
  333. package/core/rpc/electron/rpc-electron-request-client.js +316 -0
  334. package/core/rpc/electron/rpc-electron-request-handler.js +315 -0
  335. package/core/rpc/electron/rpc-electron-request-subject-server.js +316 -0
  336. package/core/rpc/electron/rpc-electron-response-client.js +312 -0
  337. package/core/rpc/electron/rpc-electron-response-handler.js +315 -0
  338. package/core/rpc/elevate/rpc-observable-elevate-client.js +315 -0
  339. package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
  340. package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
  341. package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +316 -0
  342. package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +316 -0
  343. package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
  344. package/core/rpc/extension-broker/rpc-extension-broker-model.js +312 -0
  345. package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +312 -0
  346. package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
  347. package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
  348. package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
  349. package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
  350. package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
  351. package/core/rpc/extension-data/rpc-observable-extension-data-client.js +316 -0
  352. package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
  353. package/core/rpc/extension-data/rpc-observable-extension-data-server.js +315 -0
  354. package/core/rpc/forward/rpc-forward-auto-client.js +315 -0
  355. package/core/rpc/forward/rpc-forward-down-client.js +315 -0
  356. package/core/rpc/forward/rpc-forward-down-handler.js +316 -0
  357. package/core/rpc/forward/rpc-forward-model.js +316 -0
  358. package/core/rpc/forward/rpc-forward-up-client.js +312 -0
  359. package/core/rpc/forward/rpc-forward-up-handler.js +316 -0
  360. package/core/rpc/forward/rpc-forward-up-subject-server.js +316 -0
  361. package/core/rpc/log/rpc-log-client.js +316 -0
  362. package/core/rpc/log/rpc-log-handler.js +312 -0
  363. package/core/rpc/log/rpc-log-model.js +316 -0
  364. package/core/rpc/log/rpc-log-subject-server.js +316 -0
  365. package/core/rpc/notification/rpc-notification-client.js +316 -0
  366. package/core/rpc/notification/rpc-notification-handler.js +312 -0
  367. package/core/rpc/notification/rpc-notification-model.js +316 -0
  368. package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
  369. package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
  370. package/core/rpc/overlay/rpc-overlay-close-handler.js +316 -0
  371. package/core/rpc/overlay/rpc-overlay-model.js +312 -0
  372. package/core/rpc/overlay/rpc-overlay-open-client.js +312 -0
  373. package/core/rpc/overlay/rpc-overlay-open-handler.js +316 -0
  374. package/core/rpc/overlay/rpc-overlay-open-subject-server.js +316 -0
  375. package/core/rpc/performance/rpc-observable-performance-client.js +315 -0
  376. package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
  377. package/core/rpc/performance/rpc-observable-performance-config-server.js +316 -0
  378. package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
  379. package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
  380. package/core/rpc/report/rpc-report-client.js +316 -0
  381. package/core/rpc/report/rpc-report-handler.js +315 -0
  382. package/core/rpc/report/rpc-report-model.js +315 -0
  383. package/core/rpc/report/rpc-report-subject-server.js +312 -0
  384. package/core/rpc/rpc-base.d.ts +4 -0
  385. package/core/rpc/rpc-base.d.ts.map +1 -1
  386. package/core/rpc/rpc-base.js +316 -0
  387. package/core/rpc/rpc-base.js.map +1 -1
  388. package/core/rpc/rpc-channel.js +316 -0
  389. package/core/rpc/rpc-forwarder.js +312 -0
  390. package/core/rpc/rpc-inbound-client.js +315 -0
  391. package/core/rpc/rpc-inbound.js +312 -0
  392. package/core/rpc/rpc-manager.js +316 -0
  393. package/core/rpc/rpc-module-subject-server.js +316 -0
  394. package/core/rpc/rpc-observable-client.js +316 -0
  395. package/core/rpc/rpc-observable-request.js +316 -0
  396. package/core/rpc/rpc-observable-result.js +316 -0
  397. package/core/rpc/rpc-observable-server.js +316 -0
  398. package/core/rpc/rpc-outbound-client.js +316 -0
  399. package/core/rpc/rpc-outbound.js +315 -0
  400. package/core/rpc/rpc-subject-server.js +316 -0
  401. package/core/rpc/rpc.js +316 -0
  402. package/core/rpc/seek/rpc-seek-client.js +316 -0
  403. package/core/rpc/seek/rpc-seek-handler.js +315 -0
  404. package/core/rpc/seek/rpc-seek-model.js +315 -0
  405. package/core/rpc/settings/rpc-settings-client.js +312 -0
  406. package/core/rpc/settings/rpc-settings-handler.js +315 -0
  407. package/core/rpc/settings/rpc-settings-model.js +315 -0
  408. package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
  409. package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +316 -0
  410. package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +316 -0
  411. package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +315 -0
  412. package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +315 -0
  413. package/core/rpc/sme-extension/rpc-sme-extension-model.js +316 -0
  414. package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +316 -0
  415. package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
  416. package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
  417. package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +316 -0
  418. package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +316 -0
  419. package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
  420. package/core/rpc/telemetry/rpc-telemetry-handler.js +312 -0
  421. package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
  422. package/core/rpc/telemetry/rpc-telemetry-subject-server.js +316 -0
  423. package/core/rpc/update-data/rpc-update-data-client.js +316 -0
  424. package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
  425. package/core/rpc/update-data/rpc-update-data-model.js +312 -0
  426. package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
  427. package/core/rpc/update-theme/rpc-observable-update-theme-client.js +316 -0
  428. package/core/rpc/update-theme/rpc-observable-update-theme-model.js +315 -0
  429. package/core/rpc/update-theme/rpc-observable-update-theme-server.js +316 -0
  430. package/core/rpc/work-item/rpc-work-item-client.js +315 -0
  431. package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
  432. package/core/rpc/work-item/rpc-work-item-model.js +316 -0
  433. package/core/rpc/work-item/rpc-work-item-subject-server.js +316 -0
  434. package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
  435. package/core/rpc/work-item-find/rpc-work-item-find-handler.js +315 -0
  436. package/core/rpc/work-item-find/rpc-work-item-find-model.js +316 -0
  437. package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
  438. package/core/security/active-connection.js +315 -0
  439. package/core/security/authorization-manager.js +315 -0
  440. package/core/security/connection-manager-settings/common-connection-settings.js +316 -0
  441. package/core/security/connection-manager-settings/connection-settings.js +315 -0
  442. package/core/security/connection-manager.js +316 -0
  443. package/core/security/connection-stream.js +316 -0
  444. package/core/security/connection.js +312 -0
  445. package/core/security/credssp-manager.js +315 -0
  446. package/core/security/sign-on-manager.js +316 -0
  447. package/core/security/tag-manager.js +315 -0
  448. package/core/security/tool-condition-validator.js +316 -0
  449. package/core/security/tool-connection-query.js +312 -0
  450. package/core/security/user-principal.js +312 -0
  451. package/core/shared/cluster-inventory/cluster-inventory-cache.js +316 -0
  452. package/core/shared/cluster-inventory/cluster-inventory.js +315 -0
  453. package/core/shared/cluster-inventory/cluster-node-inventory.js +316 -0
  454. package/core/shared/gateway-inventory/gateway-inventory-cache.js +316 -0
  455. package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +316 -0
  456. package/core/shared/gateway-inventory/gateway-inventory-detail.js +316 -0
  457. package/core/shared/gateway-inventory/gateway-inventory.js +316 -0
  458. package/core/shared/inventory-query-caches.js +316 -0
  459. package/core/shared/server-inventory/server-inventory-cache.d.ts.map +1 -1
  460. package/core/shared/server-inventory/server-inventory-cache.js +313 -0
  461. package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
  462. package/core/shared/server-inventory/server-inventory-detail-cache.js +315 -0
  463. package/core/shared/server-inventory/server-inventory-detail.js +316 -0
  464. package/core/shared/server-inventory/server-inventory.d.ts +8 -0
  465. package/core/shared/server-inventory/server-inventory.d.ts.map +1 -1
  466. package/core/shared/server-inventory/server-inventory.js +320 -0
  467. package/core/shared/server-inventory/server-inventory.js.map +1 -1
  468. package/core/shared/shared-cache.js +312 -0
  469. package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
  470. package/core/shared/tool-inventory/tool-inventory.js +316 -0
  471. package/core/special.js +316 -0
  472. package/core/test-utilities/accessibility-tester.js +316 -0
  473. package/core/test-utilities/console.mock.js +316 -0
  474. package/core/test-utilities/jasmine-axe-matcher.js +316 -0
  475. package/core/test-utilities/wait-async.js +315 -0
  476. package/core/test.js +312 -0
  477. package/core/testing.js +316 -0
  478. package/core/workflow/persistent-local-storage.js +316 -0
  479. package/core/workflow/persistent-work-item-apply-state.js +316 -0
  480. package/core/workflow/persistent-work-item-state.js +316 -0
  481. package/core/workflow/persistent-work-item.js +316 -0
  482. package/core/workflow/persistent-workflow-builder.js +316 -0
  483. package/core/workflow/persistent-workflow-context.js +315 -0
  484. package/core/workflow/persistent-workflow-runner.js +316 -0
  485. package/core/workflow/persistent-workflow-snapshot.js +315 -0
  486. package/core/workflow/persistent-workflow-store.js +312 -0
  487. package/core/workflow/persistent-workflow.js +312 -0
  488. package/package.json +7 -6
  489. package/styles/css/main-v2.css +1 -1
  490. package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
  491. package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
  492. package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
  493. package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
  494. package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
  495. package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
  496. package/tools/build/webpack/index-html.transform.js +312 -0
  497. package/tools/build/webpack/shell.index-html.transform.js +316 -0
  498. package/tools/build/webpack/shell.webpack.config.js +312 -0
  499. package/tools/build/webpack/webpack.config.js +312 -0
  500. package/tools/code-formatter/.eslintrc.base.json +2 -1
  501. package/tools/code-formatter/lint.js +316 -0
  502. package/tools/code-formatter/utilities.d.ts.map +1 -1
  503. package/tools/code-formatter/utilities.js +313 -1
  504. package/tools/code-formatter/utilities.js.map +1 -1
  505. package/tools/gulp-doc-generator/index.js +316 -0
  506. package/tools/gulp-manifest-resource/index.js +315 -0
  507. package/tools/gulp-manifest-validator/index.js +316 -0
  508. package/tools/gulp-merge-json-in-folders/index.js +316 -0
  509. package/tools/gulp-merge-json-in-folders/json-merge.js +316 -0
  510. package/tools/gulp-ps-cim/index.js +316 -0
  511. package/tools/gulp-ps-code/index.d.ts.map +1 -1
  512. package/tools/gulp-ps-code/index.js +326 -2
  513. package/tools/gulp-ps-code/index.js.map +1 -1
  514. package/tools/gulp-ps-code/ps-code-convert.js +316 -0
  515. package/tools/gulp-ps-manifest/index.js +312 -0
  516. package/tools/gulp-ps-module/index.d.ts.map +1 -1
  517. package/tools/gulp-ps-module/index.js +328 -3
  518. package/tools/gulp-ps-module/index.js.map +1 -1
  519. package/tools/gulp-ps-resjson/index.js +316 -0
  520. package/tools/gulp-resjson/index.js +312 -0
  521. package/tools/gulp-resjson/resjson-convert.js +316 -0
  522. package/tools/gulp-schema-form/index.js +312 -0
  523. package/tools/gulp-svg-code/index.js +316 -0
  524. package/tools/gulp-svg-code/svg-code-convert.js +312 -0
  525. package/tools/gulp-update-notes-resource/index.js +312 -0
  526. package/tools/module-template/build/increment-package-version.ps1 +219 -0
  527. package/tools/module-template/build/pipelines/ci-build.yml +5 -5
  528. package/tools/module-template/build/pipelines/pull-request.yml +4 -4
  529. package/tools/module-template/build/push-incremented-version.ps1 +218 -1
  530. package/tools/module-template/build/update-powershell-code.ps1 +216 -0
  531. package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
  532. package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
  533. package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
  534. package/tools/module-template/gulpfile.ts/common/test.ts +2 -3
  535. package/tools/module-template/gulpfile.ts/common/utilities.ts +40 -12
  536. package/tools/pack-nuget/index.d.ts.map +1 -1
  537. package/tools/pack-nuget/index.js +325 -3
  538. package/tools/pack-nuget/index.js.map +1 -1
  539. package/tools/scripts/Invoke-PesterTest.ps1 +218 -0
  540. package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
  541. package/tools/scripts/Search-NonAsciiText.ps1 +219 -0
  542. package/tools/scripts/package-information/README.md +3 -0
  543. package/tools/scripts/package-information/ms-logo.png +0 -0
  544. package/tools/test-runner/index.js +316 -0
  545. package/tools/utilities/index.js +312 -0
  546. package/tools/wac-cli/src/angular15/configs/angular-json-config.js +315 -0
  547. package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
  548. package/tools/wac-cli/src/angular15/configs/config.js +312 -0
  549. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +315 -0
  550. package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +315 -0
  551. package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +316 -0
  552. package/tools/wac-cli/src/angular15/configs/package-json-config.js +316 -0
  553. package/tools/wac-cli/src/angular15/configs/replace-config.js +312 -0
  554. package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +316 -0
  555. package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +316 -0
  556. package/tools/wac-cli/src/angular15/main.js +316 -0
  557. package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
  558. package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +316 -0
  559. package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +316 -0
  560. package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
  561. package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +316 -0
  562. package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
  563. package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +315 -0
  564. package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +316 -0
  565. package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +316 -0
  566. package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +316 -0
  567. package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
  568. package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +316 -0
  569. package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +315 -0
  570. package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +316 -0
  571. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +312 -0
  572. package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +315 -0
  573. package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +316 -0
  574. package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +316 -0
  575. package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +316 -0
  576. package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +316 -0
  577. package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +316 -0
  578. package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +316 -0
  579. package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +316 -0
  580. package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
  581. package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
  582. package/tools/wac-cli/src/angular15/utils/command-runner.js +316 -0
  583. package/tools/wac-cli/src/angular15/utils/file-comparison.js +316 -0
  584. package/tools/wac-cli/src/angular15/utils/file-replacement.js +315 -0
  585. package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
  586. package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
  587. package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
  588. package/tools/wac-cli/src/angular15/utils/relative-path.js +316 -0
  589. package/tools/wac-cli/src/angular15/utils/remove-item.js +316 -0
  590. package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
  591. package/tools/wac-cli/src/angular15/utils/update-shell-references.js +312 -0
  592. package/tools/wac-cli/src/common.js +316 -0
  593. package/tools/wac-cli/src/create/main.js +316 -0
  594. package/tools/wac-cli/src/eslint/main.js +312 -0
  595. package/tools/wac-cli/src/index.js +316 -0
  596. package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
  597. package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +312 -0
  598. package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +316 -0
  599. package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
  600. package/tools/wac-cli/src/upgrade/file-updater.js +316 -0
  601. package/tools/wac-cli/src/upgrade/get-files.js +312 -0
  602. package/tools/wac-cli/src/upgrade/main.js +316 -0
  603. package/tools/wac-cli/src/upgrade/models/error-result.js +316 -0
  604. package/tools/wac-cli/src/upgrade/models/updater-interface.js +316 -0
  605. package/tools/wac-cli/src/upgrade/package-updater.js +316 -0
  606. package/tools/wac-cli/templates/wac-template/package.json +1 -1
  607. package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
  608. package/tools/wac-cli/templates/wac-template/src/karma.conf.js +317 -1
  609. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +218 -0
  610. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
  611. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
  612. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
  613. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +218 -1
  614. package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
  615. package/core/data/extension-broker/snap-in-listener.js +0 -73
  616. package/core/data/extension-broker/snap-in-listener.js.map +0 -1
  617. package/microsoft-windows-admin-center-sdk-4.167.0.tgz +0 -0
@@ -161,13 +161,13 @@ export class PerformanceProfile {
161
161
  if (!powershell.sessionId) {
162
162
  powershell.sessionId = response && response.properties && response.properties.sessionId;
163
163
  if (!powershell.sessionId) {
164
- powershell.sessionId = PerformanceProfile.getBetween(url, 'features/powershellApi/pssessions/', '?');
164
+ powershell.sessionId = PerformanceProfile.getBetween(url, '/pssessions/', '?');
165
165
  }
166
166
  }
167
167
  return powershell;
168
168
  }
169
169
  static cimApi(url, body) {
170
- if (url.indexOf('/features/cim/query') > 0) {
170
+ if (url.indexOf('/features/cim/query') > 0 || url.indexOf('/services/WinREST/CIM/query') > 0) {
171
171
  try {
172
172
  return JSON.parse(body);
173
173
  }
@@ -244,10 +244,10 @@ export class PerformanceProfile {
244
244
  status: batchStatus,
245
245
  method: batchMethod
246
246
  };
247
- if (batchUrl.indexOf('/features/powershellApi/') > 0) {
247
+ if (batchUrl.indexOf('/features/powershellApi/') > 0 || batchUrl.indexOf('/services/WinREST/PowerShell/') > 0) {
248
248
  batchItem.powershell = PerformanceProfile.powershellApi(batchUrl, batchBody, batchResponse);
249
249
  }
250
- else if (batchUrl.includes('/features/cim/query')) {
250
+ else if (batchUrl.includes('/features/cim/query') || batchUrl.includes('/services/WinREST/CIM/')) {
251
251
  batchItem.cim = PerformanceProfile.cimApi(batchUrl, batchBody);
252
252
  }
253
253
  batch.push(batchItem);
@@ -265,7 +265,7 @@ export class PerformanceProfile {
265
265
  if (index1 < 0) {
266
266
  return null;
267
267
  }
268
- return source.substring(index0, index1 - index0);
268
+ return source.substring(index0, index1);
269
269
  }
270
270
  enable(rpc) {
271
271
  MsftSme.setPerformanceProfile(true);
@@ -405,11 +405,11 @@ export class PerformanceProfile {
405
405
  const method = request.method;
406
406
  const end = Date.now();
407
407
  const start = request[startPropertyName];
408
- if (url.indexOf('/features/powershellApi/') > 0) {
408
+ if (url.indexOf('/features/powershellApi/') > 0 || url.indexOf('/services/WinREST/PowerShell/') > 0) {
409
409
  const powershell = PerformanceProfile.powershellApi(url, request.body, response.response);
410
410
  PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, response.status, powershell);
411
411
  }
412
- else if (url.includes('/features/cim/')) {
412
+ else if (url.includes('/features/cim/') || url.includes('/services/WinREST/CIM')) {
413
413
  const cim = PerformanceProfile.cimApi(url, request.body);
414
414
  PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, response.status, cim);
415
415
  }
@@ -433,11 +433,11 @@ export class PerformanceProfile {
433
433
  const end = Date.now();
434
434
  const start = request[startPropertyName];
435
435
  const message = Net.getErrorMessage(error);
436
- if (url.indexOf('features/powershellApi') > 0) {
436
+ if (url.indexOf('features/powershellApi') > 0 || url.indexOf('/services/WinREST/PowerShell/') > 0) {
437
437
  const powershell = PerformanceProfile.powershellApi(url, request.body, error.response);
438
438
  PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, error.status, powershell, message);
439
439
  }
440
- else if (url.includes('/features/cim/')) {
440
+ else if (url.includes('/features/cim/') || url.includes('/services/WinREST/CIM/')) {
441
441
  const cim = PerformanceProfile.cimApi(url, request.body);
442
442
  PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, error.status, cim, message);
443
443
  }
@@ -527,3 +527,319 @@ export class PerformanceProfile {
527
527
  }
528
528
 
529
529
  //# sourceMappingURL=performance-profile.js.map
530
+
531
+ // SIG // Begin signature block
532
+ // SIG // MIIoQQYJKoZIhvcNAQcCoIIoMjCCKC4CAQExDzANBglg
533
+ // SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
534
+ // SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
535
+ // SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
536
+ // SIG // WKB3p/kv6D5QfJO8CtOLGWUi/mtLt586w68obYvAFGOg
537
+ // SIG // gg12MIIF9DCCA9ygAwIBAgITMwAAA68wQA5Mo00FQQAA
538
+ // SIG // AAADrzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
539
+ // SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
540
+ // SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
541
+ // SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
542
+ // SIG // aWduaW5nIFBDQSAyMDExMB4XDTIzMTExNjE5MDkwMFoX
543
+ // SIG // DTI0MTExNDE5MDkwMFowdDELMAkGA1UEBhMCVVMxEzAR
544
+ // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
545
+ // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
546
+ // SIG // bjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
547
+ // SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
548
+ // SIG // zkvLNa2un9GBrYNDoRGkGv7d0PqtTBB4ViYakFbjuWpm
549
+ // SIG // F0KcvDAzzaCWJPhVgIXjz+S8cHEoHuWnp/n+UOljT3eh
550
+ // SIG // A8Rs6Lb1aTYub3tB/e0txewv2sQ3yscjYdtTBtFvEm9L
551
+ // SIG // 8Yv76K3Cxzi/Yvrdg+sr7w8y5RHn1Am0Ff8xggY1xpWC
552
+ // SIG // XFI+kQM18njQDcUqSlwBnexYfqHBhzz6YXA/S0EziYBu
553
+ // SIG // 2O2mM7R6gSyYkEOHgIGTVOGnOvvC5xBgC4KNcnQuQSRL
554
+ // SIG // iUI2CmzU8vefR6ykruyzt1rNMPI8OqWHQtSDKXU5JNqb
555
+ // SIG // k4GNjwzcwbSzOHrxuxWHq91l/vLdVDGDUwIDAQABo4IB
556
+ // SIG // czCCAW8wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYB
557
+ // SIG // BQUHAwMwHQYDVR0OBBYEFEcccTTyBDxkjvJKs/m4AgEF
558
+ // SIG // hl7BMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNy
559
+ // SIG // b3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDAx
560
+ // SIG // Mis1MDE4MjYwHwYDVR0jBBgwFoAUSG5k5VAF04KqFzc3
561
+ // SIG // IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDov
562
+ // SIG // L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWlj
563
+ // SIG // Q29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNybDBhBggr
564
+ // SIG // BgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93
565
+ // SIG // d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWlj
566
+ // SIG // Q29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNydDAMBgNV
567
+ // SIG // HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQCEsRbf
568
+ // SIG // 80dn60xTweOWHZoWaQdpzSaDqIvqpYHE5ZzuEMJWDdcP
569
+ // SIG // 72MGw8v6BSaJQ+a+hTCXdERnIBDPKvU4ENjgu4EBJocH
570
+ // SIG // lSe8riiZUAR+z+z4OUYqoFd3EqJyfjjOJBR2z94Dy4ss
571
+ // SIG // 7LEkHUbj2NZiFqBoPYu2OGQvEk+1oaUsnNKZ7Nl7FHtV
572
+ // SIG // 7CI2lHBru83e4IPe3glIi0XVZJT5qV6Gx/QhAFmpEVBj
573
+ // SIG // SAmDdgII4UUwuI9yiX6jJFNOEek6MoeP06LMJtbqA3Bq
574
+ // SIG // +ZWmJ033F97uVpyaiS4bj3vFI/ZBgDnMqNDtZjcA2vi4
575
+ // SIG // RRMweggd9vsHyTLpn6+nXoLy03vMeebq0C3k44pgUIEu
576
+ // SIG // PQUlJIRTe6IrN3GcjaZ6zHGuQGWgu6SyO9r7qkrEpS2p
577
+ // SIG // RjnGZjx2RmCamdAWnDdu+DmfNEPAddYjaJJ7PTnd+PGz
578
+ // SIG // G+WeH4ocWgVnm5fJFhItjj70CJjgHqt57e1FiQcyWCwB
579
+ // SIG // hKX2rGgN2UICHBF3Q/rsKOspjMw2OlGphTn2KmFl5J7c
580
+ // SIG // Qxru54A9roClLnHGCiSUYos/iwFHI/dAVXEh0S0KKfTf
581
+ // SIG // M6AC6/9bCbsD61QLcRzRIElvgCgaiMWFjOBL99pemoEl
582
+ // SIG // AHsyzG6uX93fMfas09N9YzA0/rFAKAsNDOcFbQlEHKiD
583
+ // SIG // T7mI20tVoCcmSIhJATCCB3owggVioAMCAQICCmEOkNIA
584
+ // SIG // AAAAAAMwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYT
585
+ // SIG // AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
586
+ // SIG // EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
587
+ // SIG // cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290
588
+ // SIG // IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDExMB4XDTEx
589
+ // SIG // MDcwODIwNTkwOVoXDTI2MDcwODIxMDkwOVowfjELMAkG
590
+ // SIG // A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
591
+ // SIG // BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
592
+ // SIG // dCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9zb2Z0
593
+ // SIG // IENvZGUgU2lnbmluZyBQQ0EgMjAxMTCCAiIwDQYJKoZI
594
+ // SIG // hvcNAQEBBQADggIPADCCAgoCggIBAKvw+nIQHC6t2G6q
595
+ // SIG // ghBNNLrytlghn0IbKmvpWlCquAY4GgRJun/DDB7dN2vG
596
+ // SIG // EtgL8DjCmQawyDnVARQxQtOJDXlkh36UYCRsr55JnOlo
597
+ // SIG // XtLfm1OyCizDr9mpK656Ca/XllnKYBoF6WZ26DJSJhIv
598
+ // SIG // 56sIUM+zRLdd2MQuA3WraPPLbfM6XKEW9Ea64DhkrG5k
599
+ // SIG // NXimoGMPLdNAk/jj3gcN1Vx5pUkp5w2+oBN3vpQ97/vj
600
+ // SIG // K1oQH01WKKJ6cuASOrdJXtjt7UORg9l7snuGG9k+sYxd
601
+ // SIG // 6IlPhBryoS9Z5JA7La4zWMW3Pv4y07MDPbGyr5I4ftKd
602
+ // SIG // gCz1TlaRITUlwzluZH9TupwPrRkjhMv0ugOGjfdf8NBS
603
+ // SIG // v4yUh7zAIXQlXxgotswnKDglmDlKNs98sZKuHCOnqWbs
604
+ // SIG // YR9q4ShJnV+I4iVd0yFLPlLEtVc/JAPw0XpbL9Uj43Bd
605
+ // SIG // D1FGd7P4AOG8rAKCX9vAFbO9G9RVS+c5oQ/pI0m8GLhE
606
+ // SIG // fEXkwcNyeuBy5yTfv0aZxe/CHFfbg43sTUkwp6uO3+xb
607
+ // SIG // n6/83bBm4sGXgXvt1u1L50kppxMopqd9Z4DmimJ4X7Iv
608
+ // SIG // hNdXnFy/dygo8e1twyiPLI9AN0/B4YVEicQJTMXUpUMv
609
+ // SIG // dJX3bvh4IFgsE11glZo+TzOE2rCIF96eTvSWsLxGoGyY
610
+ // SIG // 0uDWiIwLAgMBAAGjggHtMIIB6TAQBgkrBgEEAYI3FQEE
611
+ // SIG // AwIBADAdBgNVHQ4EFgQUSG5k5VAF04KqFzc3IrVtqMp1
612
+ // SIG // ApUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
613
+ // SIG // VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
614
+ // SIG // BBgwFoAUci06AjGQQ7kUBU7h6qfHMdEjiTQwWgYDVR0f
615
+ // SIG // BFMwUTBPoE2gS4ZJaHR0cDovL2NybC5taWNyb3NvZnQu
616
+ // SIG // Y29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0
617
+ // SIG // MjAxMV8yMDExXzAzXzIyLmNybDBeBggrBgEFBQcBAQRS
618
+ // SIG // MFAwTgYIKwYBBQUHMAKGQmh0dHA6Ly93d3cubWljcm9z
619
+ // SIG // b2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0MjAx
620
+ // SIG // MV8yMDExXzAzXzIyLmNydDCBnwYDVR0gBIGXMIGUMIGR
621
+ // SIG // BgkrBgEEAYI3LgMwgYMwPwYIKwYBBQUHAgEWM2h0dHA6
622
+ // SIG // Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvZG9jcy9w
623
+ // SIG // cmltYXJ5Y3BzLmh0bTBABggrBgEFBQcCAjA0HjIgHQBM
624
+ // SIG // AGUAZwBhAGwAXwBwAG8AbABpAGMAeQBfAHMAdABhAHQA
625
+ // SIG // ZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEA
626
+ // SIG // Z/KGpZjgVHkaLtPYdGcimwuWEeFjkplCln3SeQyQwWVf
627
+ // SIG // Liw++MNy0W2D/r4/6ArKO79HqaPzadtjvyI1pZddZYSQ
628
+ // SIG // fYtGUFXYDJJ80hpLHPM8QotS0LD9a+M+By4pm+Y9G6XU
629
+ // SIG // tR13lDni6WTJRD14eiPzE32mkHSDjfTLJgJGKsKKELuk
630
+ // SIG // qQUMm+1o+mgulaAqPyprWEljHwlpblqYluSD9MCP80Yr
631
+ // SIG // 3vw70L01724lruWvJ+3Q3fMOr5kol5hNDj0L8giJ1h/D
632
+ // SIG // Mhji8MUtzluetEk5CsYKwsatruWy2dsViFFFWDgycSca
633
+ // SIG // f7H0J/jeLDogaZiyWYlobm+nt3TDQAUGpgEqKD6CPxNN
634
+ // SIG // ZgvAs0314Y9/HG8VfUWnduVAKmWjw11SYobDHWM2l4bf
635
+ // SIG // 2vP48hahmifhzaWX0O5dY0HjWwechz4GdwbRBrF1HxS+
636
+ // SIG // YWG18NzGGwS+30HHDiju3mUv7Jf2oVyW2ADWoUa9WfOX
637
+ // SIG // pQlLSBCZgB/QACnFsZulP0V3HjXG0qKin3p6IvpIlR+r
638
+ // SIG // +0cjgPWe+L9rt0uX4ut1eBrs6jeZeRhL/9azI2h15q/6
639
+ // SIG // /IvrC4DqaTuv/DDtBEyO3991bWORPdGdVk5Pv4BXIqF4
640
+ // SIG // ETIheu9BCrE/+6jMpF3BoYibV3FWTkhFwELJm3ZbCoBI
641
+ // SIG // a/15n8G9bW1qyVJzEw16UM0xghojMIIaHwIBATCBlTB+
642
+ // SIG // MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
643
+ // SIG // bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
644
+ // SIG // cm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNy
645
+ // SIG // b3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExAhMzAAAD
646
+ // SIG // rzBADkyjTQVBAAAAAAOvMA0GCWCGSAFlAwQCAQUAoIGu
647
+ // SIG // MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
648
+ // SIG // AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3
649
+ // SIG // DQEJBDEiBCBAgynJ/hKrHa51Hmml8pliDpsaGQkVZeQq
650
+ // SIG // QU2tGdeFzjBCBgorBgEEAYI3AgEMMTQwMqAUgBIATQBp
651
+ // SIG // AGMAcgBvAHMAbwBmAHShGoAYaHR0cDovL3d3dy5taWNy
652
+ // SIG // b3NvZnQuY29tMA0GCSqGSIb3DQEBAQUABIIBAMTsgxvH
653
+ // SIG // jE6CQ0lpahJlz70taF5e9kWJ77A+/ykRUWaf79NQwkLH
654
+ // SIG // 6UuUoRiAbYIqVy8u+7xZpe0/+JEXFYIxYAdM1lNAswy+
655
+ // SIG // 1KMpHPOC9BRhTx8Mu5YJUXpbO8I045r9b950rJkdwQCn
656
+ // SIG // E9hxd2u/sFlKek1Mh/OCdPzc6UCYl6wZKacLw+zXW+kG
657
+ // SIG // jbf4lkii14/zkLo8f7nSre4aCJhQm3tNR50yyPZEVUQO
658
+ // SIG // gNOm7QAYshKZzW7wesLOLc/9vHdP9VCoeXKn7N6/Bd+i
659
+ // SIG // M8gnw9T9cwiuyJy6yJ1pX0YqVvt1DeurxI84mWSLVk9j
660
+ // SIG // N1cXLZW6P6Jlx81Zlj75rewTz06hghetMIIXqQYKKwYB
661
+ // SIG // BAGCNwMDATGCF5kwgheVBgkqhkiG9w0BBwKggheGMIIX
662
+ // SIG // ggIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBWgYLKoZIhvcN
663
+ // SIG // AQkQAQSgggFJBIIBRTCCAUECAQEGCisGAQQBhFkKAwEw
664
+ // SIG // MTANBglghkgBZQMEAgEFAAQgl1YbevdlQ5HEW7vdDDDu
665
+ // SIG // T/70jj4kpEePDiudWB9Q6kcCBmbrH7zK8BgTMjAyNDA5
666
+ // SIG // MjYwMDAwNTEuMzcxWjAEgAIB9KCB2aSB1jCB0zELMAkG
667
+ // SIG // A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
668
+ // SIG // BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
669
+ // SIG // dCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0
670
+ // SIG // IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMScwJQYD
671
+ // SIG // VQQLEx5uU2hpZWxkIFRTUyBFU046MzYwNS0wNUUwLUQ5
672
+ // SIG // NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1w
673
+ // SIG // IFNlcnZpY2WgghH7MIIHKDCCBRCgAwIBAgITMwAAAfdY
674
+ // SIG // IHUEyvvC9AABAAAB9zANBgkqhkiG9w0BAQsFADB8MQsw
675
+ // SIG // CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
676
+ // SIG // MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
677
+ // SIG // b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv
678
+ // SIG // ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNDA3MjUx
679
+ // SIG // ODMxMDZaFw0yNTEwMjIxODMxMDZaMIHTMQswCQYDVQQG
680
+ // SIG // EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
681
+ // SIG // BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
682
+ // SIG // cnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl
683
+ // SIG // bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT
684
+ // SIG // Hm5TaGllbGQgVFNTIEVTTjozNjA1LTA1RTAtRDk0NzEl
685
+ // SIG // MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
686
+ // SIG // dmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
687
+ // SIG // ggIBANDnR0wTaJuv7lymhCj/azyE5E+kMRddbY8wdDZN
688
+ // SIG // W8g6T6xUx4Wt4ccEnU3K/GNGt5OhEJcKsukTs+NntEeX
689
+ // SIG // g1vnQqEGqYqQyBVDmKd6DbqsF/8XqQExJGNezMlxceq0
690
+ // SIG // FtjXFlCVt0KNgLidBzrW5UqSLUGTxph5xqpLfwweORcM
691
+ // SIG // ZOlaEr8TXECoShE5Ls67fFOg0XHEJtRXYZjyoA84HHwz
692
+ // SIG // zOaPhp824jLustOvQOBB5izJpHnEpFbwZnGfFZ8xR0w5
693
+ // SIG // Bi3aZw1eRV41TmwIG0jNHJ6mEhn0ae1RhwUasqLHL0eG
694
+ // SIG // 3EPglfaQ42yekua2Z9bgPIUYY9PR7N9x0Xr7eKFgFWBi
695
+ // SIG // LYBLBvgawmG6YFjAxCFZwID2RIjwGiPMARnphOH3hJLs
696
+ // SIG // +0wMIJEQXFMy4EOLrz6kQ9QPiZLduvqQ6lmEp9DAPI9M
697
+ // SIG // 2nEJPavwL3Ij1w/SLdns/pqhM4BUUbCRi7XH/R5LLyvC
698
+ // SIG // bHeiOcxUoZaouW6c39WODTojToeUMFtaSLwOYq5Wpe6h
699
+ // SIG // YZAHnnmapqKfPrjcWV8RQkBt0d7OaV1vPRYgofa5l61a
700
+ // SIG // jgsIHFxSCUAEJJZSrCPlCahqva5kQASc+ZRykxWJhcHD
701
+ // SIG // Odillozcd8+qHcM9ofrMWsXsE6HvRqrQ8d/2lPsqjUXA
702
+ // SIG // fMNLUl1H/spTeLpOcRxKS6cfmTTbAgMBAAGjggFJMIIB
703
+ // SIG // RTAdBgNVHQ4EFgQU30akMz95vT2Vri39afP5nhX5Jpgw
704
+ // SIG // HwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIw
705
+ // SIG // XwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNy
706
+ // SIG // b3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw
707
+ // SIG // VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwG
708
+ // SIG // CCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDov
709
+ // SIG // L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9N
710
+ // SIG // aWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx
711
+ // SIG // MCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8E
712
+ // SIG // DDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJ
713
+ // SIG // KoZIhvcNAQELBQADggIBADdGo2nyC3i+kkCDCDAFzNUH
714
+ // SIG // esWqHItpjq6UfLylssk7C92/NwO1xi4gG0MU66p171Vl
715
+ // SIG // njbLeWEA/LGjvlE4DiyXU3X1AA4S16CvkZcI353YpiCU
716
+ // SIG // /TB/bVGFy8yVyoWTNPaLj8DbK5/GDiyKXQIuUz8jfApd
717
+ // SIG // dThmUpT/a/CZ76JltNAKCeD5fa5YNBuZXEJJwF6h2vZ0
718
+ // SIG // HVqdWcV6jXftCbCppUfLXADV99wpTPTZ2gpSRMS0B4in
719
+ // SIG // h1FFrasizJeuU1usETO15Re2Pj05wvHbjVp+Li54Pjjf
720
+ // SIG // 2d/RjuqgY+yBGcaKuKN2rxIfW2uN1FOk4M1WWgZvFWgN
721
+ // SIG // MEsFHv6aqUzmBVjetly94JfyQtqc3yD8T+ul30SyMWn4
722
+ // SIG // wVV5vClQ59nDC/SL0StNrPeNWOfkUeIEgDoS4kEOgNN1
723
+ // SIG // TUbqfrKTGtJPl0zwIvtmjB+cWtWY2/yvLvX/TNOVNP21
724
+ // SIG // DCVyQz/vsrFqSW1UQ4hxu7M2nGvq9x4lD40CckJdjYjn
725
+ // SIG // GExlfw3C6ywgStsxudNxRm9ODeSn9dF4AMBWl5aHeQfX
726
+ // SIG // iofeT51ysdizQYC8BvOWp5YYRscQUOZhbCRpAZ9D2T7Q
727
+ // SIG // M2cn6/eqsc6adqR/QySXIygg6zJmc4l2s6WuVVTd+gjt
728
+ // SIG // ZA1OAAZEmE1zjPEZiV7kJu5lBd21po/oYwCW+Kc+oU+V
729
+ // SIG // MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAA
730
+ // SIG // FTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMx
731
+ // SIG // EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
732
+ // SIG // ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
733
+ // SIG // dGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2Vy
734
+ // SIG // dGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMw
735
+ // SIG // MTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQG
736
+ // SIG // EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
737
+ // SIG // BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
738
+ // SIG // cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt
739
+ // SIG // ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEB
740
+ // SIG // BQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O
741
+ // SIG // 1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xP
742
+ // SIG // x2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpS
743
+ // SIG // g0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/Y
744
+ // SIG // JlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+
745
+ // SIG // jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GP
746
+ // SIG // sjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6
747
+ // SIG // BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyzi
748
+ // SIG // YrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31B
749
+ // SIG // mkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn42
750
+ // SIG // 7DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n
751
+ // SIG // 6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLR
752
+ // SIG // vWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2
753
+ // SIG // ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9
754
+ // SIG // stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8
755
+ // SIG // FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6t
756
+ // SIG // AgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQAB
757
+ // SIG // MCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q
758
+ // SIG // /y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ
759
+ // SIG // 6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/
760
+ // SIG // BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQu
761
+ // SIG // Y29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMG
762
+ // SIG // A1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQM
763
+ // SIG // HgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMB
764
+ // SIG // Af8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjR
765
+ // SIG // PZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6
766
+ // SIG // Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1
767
+ // SIG // Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBa
768
+ // SIG // BggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6
769
+ // SIG // Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWlj
770
+ // SIG // Um9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3
771
+ // SIG // DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/q
772
+ // SIG // XBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x
773
+ // SIG // 5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOw
774
+ // SIG // Bb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1Tk
775
+ // SIG // eFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8Z
776
+ // SIG // thISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/AL
777
+ // SIG // aoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99J
778
+ // SIG // o3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32
779
+ // SIG // THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEU
780
+ // SIG // BHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsN
781
+ // SIG // n6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQ
782
+ // SIG // THa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+
783
+ // SIG // y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10Cga
784
+ // SIG // iQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0l
785
+ // SIG // lOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghi
786
+ // SIG // f9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA1Yw
787
+ // SIG // ggI+AgEBMIIBAaGB2aSB1jCB0zELMAkGA1UEBhMCVVMx
788
+ // SIG // EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
789
+ // SIG // ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
790
+ // SIG // dGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQg
791
+ // SIG // T3BlcmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hp
792
+ // SIG // ZWxkIFRTUyBFU046MzYwNS0wNUUwLUQ5NDcxJTAjBgNV
793
+ // SIG // BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wi
794
+ // SIG // IwoBATAHBgUrDgMCGgMVAG9vCgxv8V2zQY5jO/56sN24
795
+ // SIG // KxDmoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV
796
+ // SIG // BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
797
+ // SIG // HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm
798
+ // SIG // MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
799
+ // SIG // IDIwMTAwDQYJKoZIhvcNAQELBQACBQDqnthmMCIYDzIw
800
+ // SIG // MjQwOTI1MTg0MzUwWhgPMjAyNDA5MjYxODQzNTBaMHQw
801
+ // SIG // OgYKKwYBBAGEWQoEATEsMCowCgIFAOqe2GYCAQAwBwIB
802
+ // SIG // AAICG58wBwIBAAICEzcwCgIFAOqgKeYCAQAwNgYKKwYB
803
+ // SIG // BAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQAC
804
+ // SIG // AwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOC
805
+ // SIG // AQEAN/R5oigl2n3m28RynfkAhZw9f6xoOZ16nvZWvf5E
806
+ // SIG // snq96s8yvnOTCcszc1imvi4raW6tbt9bpFVzZ/1NyDVU
807
+ // SIG // aTdepzWR5Jdhd5pux/UulTTTFtYbRHElK48PnwcP3/eO
808
+ // SIG // uHXpXqjw45JTxuktFXxXW8qxymDB0XBwlyZMag+eD8R6
809
+ // SIG // GVV+P+cDTr8mDkwZgIn4QIfv3ewMGkaogjnpwpPmwTst
810
+ // SIG // e9Lag0NeorqHxjoneACxbeqhT9NwAhKS1It2lwqK7+zb
811
+ // SIG // ztVIb31OlXkSN14eLYFV+/YNHbqhDPSdlp3qfJ6vRmId
812
+ // SIG // E+VDlSCNFvbza/TnZemUvf1hh6asIrCGlMD00zGCBA0w
813
+ // SIG // ggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
814
+ // SIG // EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
815
+ // SIG // HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAk
816
+ // SIG // BgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy
817
+ // SIG // MDEwAhMzAAAB91ggdQTK+8L0AAEAAAH3MA0GCWCGSAFl
818
+ // SIG // AwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcN
819
+ // SIG // AQkQAQQwLwYJKoZIhvcNAQkEMSIEIE9bHqE6D4Km2ZjN
820
+ // SIG // Dd7gz+155cka47wBxCHFKxPDiYRaMIH6BgsqhkiG9w0B
821
+ // SIG // CRACLzGB6jCB5zCB5DCBvQQgIdqY2mt3GtHnGLobutLm
822
+ // SIG // Bz/yCpz23nW1UCeUqCB+WeIwgZgwgYCkfjB8MQswCQYD
823
+ // SIG // VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
824
+ // SIG // A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
825
+ // SIG // IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
826
+ // SIG // VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfdYIHUEyvvC
827
+ // SIG // 9AABAAAB9zAiBCB4bebJAbYB+LVliQGpDww0RLpnmKix
828
+ // SIG // GRhdijXczMQYXjANBgkqhkiG9w0BAQsFAASCAgBWUT+T
829
+ // SIG // ID7JEMGi7DmH9/ZLcDrzzpMtTM3XiP3G7xMmKIl6aQ/h
830
+ // SIG // djOIqUJ+FjNFI5bXvuH0SwYv8i1A9Wd8223HFmnDPWeE
831
+ // SIG // OHtc+Du/2Jn3RtRu1KcC26CbXFgBB+lhK4wNi7JqLBiY
832
+ // SIG // fD2fB3IiKVclnMAzOL4UPWjT/J+PxxoYZx0oYQ+MuNsz
833
+ // SIG // PoE9R6aT7fGv5Yf/KGJ2lmOmn3S/WQuBFlTlttgcfxok
834
+ // SIG // RhQRQ/p9/Qk4Ixr2q8QQr0lmQRbIOZpXVbe9aeKf/EU5
835
+ // SIG // uimSWlWQBZo+YNESneCt1kNNMbg0i/UZ6dv7agNJTGyS
836
+ // SIG // /3dPpwiA3xhXJUSKPzpuZw90KzOuetkN0vuWLYRhI7WU
837
+ // SIG // bwImW5NrP83knrhhkCvvAtEcWoX+yeFYHZ/yXL0PkVGV
838
+ // SIG // eBi0TJOS/sPWcQfAxu2wxiZHgcem7AClgmGw58ri5eGg
839
+ // SIG // kRST7WNXG6smUFFeqRn6jxLzpHDQs4wkBlhFWMG0u1om
840
+ // SIG // tPuVvrT63xB6cC2yJ7M0TnaoeUgfXj2N45W/6fKBfER0
841
+ // SIG // d4Si8093+Be/UuxjJBIIPWi2tmsVa6zHENs+KfCmbbFE
842
+ // SIG // gptEMj6ydcCKKAfWuJU1D9hInxfbG7zu04KBb/LR/VG0
843
+ // SIG // uMQ6m6d4/wC0rnuKiN9jeSK2iqIbF+nM4DRW48Nd/FE5
844
+ // SIG // k/YJnJLvcyQcLs+tMw==
845
+ // SIG // End signature block
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/core/performance/performance-profile.ts"],"names":[],"mappings":"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","file":"performance-profile.js","sourcesContent":["import { of, Subscription, throwError } from 'rxjs';\r\nimport { AjaxError, AjaxRequest, AjaxResponse } from 'rxjs/ajax';\r\nimport { filter, map, take } from 'rxjs/operators';\r\nimport { CimResultFormat, CimStream, CimStreamMonitorSetContext, CimStreamOptions, CimStreamRequestData } from '../data/cim-stream';\r\nimport { Http } from '../data/http';\r\nimport { Net } from '../data/net';\r\nimport { PowerShellCommand } from '../data/powershell';\r\nimport { PowerShellStream, PowerShellStreamMonitorSetContext, PowerShellStreamOptions } from '../data/powershell-stream';\r\nimport { WebsocketStreamDataRequestState } from '../data/websocket-stream';\r\nimport { Logging } from '../diagnostics/logging';\r\nimport { RpcObservablePerformanceClient } from '../rpc/performance/rpc-observable-performance-client';\r\nimport { RpcObservablePerformanceConfigClient } from '../rpc/performance/rpc-observable-performance-config-client';\r\nimport { RpcObservablePerformanceServer } from '../rpc/performance/rpc-observable-performance-server';\r\nimport { Rpc } from '../rpc/rpc';\r\nimport {\r\n PerformanceProfileData, PerformanceProfileDataCim, PerformanceProfileDataPowerShell, PerformanceProfileXhrFetch\r\n} from './performance-profile-data';\r\nimport { PerformanceProfileDataType } from './performance-profile-data-type';\r\nimport { PerformanceProfileDatabase } from './performance-profile-database';\r\nimport { PerformanceProfileRecord } from './performance-profile-record';\r\n\r\ninterface PowerShellStreamContext {\r\n id: number;\r\n start: number;\r\n progressStart: number;\r\n progressEnd?: number;\r\n count: number;\r\n itemCount: number;\r\n}\r\n\r\ninterface CimStreamContext {\r\n id: number;\r\n start: number;\r\n progressStart: number;\r\n progressEnd?: number;\r\n count: number;\r\n itemCount: number;\r\n}\r\n\r\n/**\r\n * Performance measurement class.\r\n */\r\nexport class PerformanceProfile {\r\n private static monitorName = 'PerformanceProfile';\r\n private static instance: PerformanceProfile;\r\n\r\n private database: PerformanceProfileDatabase = null;\r\n private rpc: Rpc;\r\n private rpcObservablePerformanceClient: RpcObservablePerformanceClient;\r\n private rpcObservablePerformanceServer: RpcObservablePerformanceServer;\r\n private subscription: Subscription;\r\n private moduleVersionMap: { [index: string]: string } = {};\r\n private rpcObservablePerformanceConfigClient: RpcObservablePerformanceConfigClient;\r\n\r\n /**\r\n * Gets the current PerformanceProfile instance.\r\n */\r\n public static get current(): PerformanceProfile {\r\n if (PerformanceProfile.instance) {\r\n return PerformanceProfile.instance;\r\n }\r\n\r\n PerformanceProfile.instance = new PerformanceProfile();\r\n return PerformanceProfile.instance;\r\n }\r\n\r\n public static get database(): PerformanceProfileDatabase {\r\n return PerformanceProfile.current.database;\r\n }\r\n\r\n /**\r\n * Record Route navigation performance measurement.\r\n */\r\n public static logRouteNavigation(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n target?: string,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.RouteNavigation,\r\n routeNavigation: { url, target }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record Null packet.\r\n */\r\n public static logNull(source: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: 0,\r\n end: 0,\r\n errorMessage: null,\r\n type: PerformanceProfileDataType.Null\r\n };\r\n PerformanceProfile.current.logAnyway(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for PowerShell.\r\n */\r\n private static logXhrFetchPowerShell(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n powershell: PerformanceProfileDataPowerShell,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, powershell }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for CIM.\r\n */\r\n private static logXhrFetchCim(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n cim: PerformanceProfileDataCim,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, cim }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for Batch.\r\n */\r\n private static logXhrFetchBatch(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n batch: PerformanceProfileXhrFetch[],\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, batch }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for general.\r\n */\r\n private static logXhrFetch(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record WebSocket performance measurement.\r\n */\r\n private static logWebSocketPowerShell(\r\n source: string,\r\n nodeName: string,\r\n command: string,\r\n context: PowerShellStreamContext,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: context.progressStart,\r\n end: context.progressEnd,\r\n errorMessage,\r\n type: PerformanceProfileDataType.WebSocket,\r\n webSocket: { nodeName, id: context.id, count: context.count, itemCount: context.itemCount, powershell: { command } }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record WebSocket performance measurement.\r\n */\r\n private static logWebSocketCim(\r\n source: string,\r\n nodeName: string,\r\n cim: CimStreamRequestData,\r\n context: CimStreamContext,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: context.progressStart,\r\n end: context.progressEnd,\r\n errorMessage,\r\n type: PerformanceProfileDataType.WebSocket,\r\n webSocket: { nodeName, id: context.id, count: context.count, itemCount: context.itemCount, cim }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n private static powershellApi(\r\n url: string,\r\n body: string,\r\n response: { completed?: string, sessionId?: string; properties?: { completed: string; sessionId: string; }; }): PerformanceProfileDataPowerShell {\r\n const powershell: { command?: string; sessionId?: string; completed?: string } = {};\r\n if (body && body.indexOf('\\\"properties\\\"') > 0) {\r\n powershell.command = PerformanceProfile.getBetween(body, ',\\\"command\\\":\\\"', '\\\",\\\"')\r\n || PerformanceProfile.getBetween(body, '\\\"script\\\":\\\"##', '##:');\r\n }\r\n\r\n powershell.completed = response && response.completed;\r\n if (!powershell.completed) {\r\n powershell.completed = response && response.properties && response.properties.completed;\r\n }\r\n\r\n powershell.sessionId = response && response.sessionId;\r\n if (!powershell.sessionId) {\r\n powershell.sessionId = response && response.properties && response.properties.sessionId;\r\n if (!powershell.sessionId) {\r\n powershell.sessionId = PerformanceProfile.getBetween(url, 'features/powershellApi/pssessions/', '?');\r\n }\r\n }\r\n\r\n return powershell;\r\n }\r\n\r\n private static cimApi(url: string, body: string): PerformanceProfileDataCim {\r\n if (url.indexOf('/features/cim/query') > 0) {\r\n try {\r\n return JSON.parse(body);\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n const namespaceName = PerformanceProfile.getBetween(url, '/namespaces/', '/classes/');\r\n const className = PerformanceProfile.getBetween(url, '/classes/', '/instances');\r\n return { namespace: namespaceName, className: className };\r\n }\r\n\r\n private static batchApi(body: string, response: string): PerformanceProfileXhrFetch[] {\r\n const delimiter = '\\x0d\\x0a';\r\n const batch: PerformanceProfileXhrFetch[] = [];\r\n let last = body.indexOf(delimiter);\r\n let separator = body.substring(0, last + 2);\r\n const bodySegments = body.split(separator);\r\n last = response.indexOf(delimiter);\r\n separator = response.substring(0, last + 2);\r\n const responseSegments = response.split(separator);\r\n if (bodySegments.length === responseSegments.length && bodySegments.length > 1) {\r\n let batchMethod: string;\r\n let batchUrl: string;\r\n let batchBody: string;\r\n let batchStatus: number;\r\n let batchResponse: any;\r\n for (let i = 1; i < bodySegments.length; i++) {\r\n const bodySegment = bodySegments[i];\r\n const responseSegment = responseSegments[i];\r\n const bodySegmentLines = bodySegment.split(delimiter);\r\n let emptyLines = 0;\r\n for (let j = 0; j < bodySegmentLines.length; j++) {\r\n const line = bodySegmentLines[j];\r\n if (line.length > 0) {\r\n if (emptyLines === 1 && !batchUrl) {\r\n // reached header segment.\r\n const query = line.split(' ');\r\n batchMethod = query[0];\r\n batchUrl = query[1];\r\n } else if (emptyLines >= 2 && !batchBody) {\r\n batchBody = line;\r\n }\r\n } else {\r\n emptyLines++;\r\n }\r\n }\r\n\r\n emptyLines = 0;\r\n const responseSegmentLines = responseSegment.split(delimiter);\r\n for (let j = 0; j < responseSegmentLines.length; j++) {\r\n const line = responseSegmentLines[j];\r\n if (line.length > 0) {\r\n if (emptyLines === 1 && !batchStatus) {\r\n // reached header segment.\r\n const query = line.split(' ');\r\n batchStatus = Number(query[1]);\r\n } else if (emptyLines >= 2 && !batchResponse) {\r\n try {\r\n batchResponse = JSON.parse(line);\r\n } catch {\r\n batchResponse = {};\r\n }\r\n }\r\n } else {\r\n emptyLines++;\r\n }\r\n }\r\n\r\n const batchItem: PerformanceProfileXhrFetch = {\r\n url: batchUrl,\r\n status: batchStatus,\r\n method: batchMethod\r\n };\r\n if (batchUrl.indexOf('/features/powershellApi/') > 0) {\r\n batchItem.powershell = PerformanceProfile.powershellApi(batchUrl, batchBody, batchResponse);\r\n } else if (batchUrl.includes('/features/cim/query')) {\r\n batchItem.cim = PerformanceProfile.cimApi(batchUrl, batchBody);\r\n }\r\n\r\n batch.push(batchItem);\r\n }\r\n }\r\n\r\n return batch;\r\n }\r\n\r\n private static getBetween(source: string, begin: string, end: string): string {\r\n let index0 = source.indexOf(begin);\r\n if (index0 < 0) {\r\n return null;\r\n }\r\n\r\n index0 += begin.length;\r\n const index1 = source.indexOf(end, index0);\r\n if (index1 < 0) {\r\n return null;\r\n }\r\n\r\n return source.substring(index0, index1 - index0);\r\n }\r\n\r\n public enable(rpc: Rpc): void {\r\n MsftSme.setPerformanceProfile(true);\r\n this.registerRpc(rpc);\r\n }\r\n\r\n public disable(rpc: Rpc): void {\r\n MsftSme.setPerformanceProfile(false);\r\n this.registerRpc(rpc);\r\n }\r\n\r\n private checkPerformanceProfile(): boolean {\r\n if (!MsftSme.getPerformanceProfile()) {\r\n if (this.database) {\r\n this.database.close();\r\n this.database = null;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!this.database) {\r\n this.database = new PerformanceProfileDatabase();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public registerRpc(rpc: Rpc): void {\r\n if (!this.rpc) {\r\n this.rpc = rpc;\r\n if (MsftSme.isShell()) {\r\n this.subscription = rpc.stateChanged\r\n .pipe(\r\n filter(active => active),\r\n take(1))\r\n .subscribe(() => {\r\n this.rpcObservablePerformanceConfigClient = new RpcObservablePerformanceConfigClient(this.rpc);\r\n this.rpcObservablePerformanceServer = new RpcObservablePerformanceServer(rpc);\r\n this.rpcObservablePerformanceServer.register(\r\n request => {\r\n if (request.type === PerformanceProfileDataType.Null) {\r\n // The packet is null packet and retain only the version data.\r\n if (request.sourceVersion === '0.2.0') {\r\n // this version can support config command when on/off switch was used.\r\n this.moduleVersionMap[request.sourceName] = request.sourceVersion;\r\n }\r\n\r\n return of(null);\r\n }\r\n\r\n if (!this.checkPerformanceProfile()) {\r\n return of(null);\r\n }\r\n\r\n return this.database.write(request).pipe(map(() => null));\r\n });\r\n });\r\n } else {\r\n this.subscription = rpc.stateChanged\r\n .pipe(\r\n filter(active => active),\r\n take(1))\r\n .subscribe(() => {\r\n this.rpcObservablePerformanceClient = new RpcObservablePerformanceClient(rpc);\r\n });\r\n }\r\n }\r\n\r\n this.updateMonitors();\r\n }\r\n\r\n public updateMonitors(): void {\r\n const enabled = this.checkPerformanceProfile();\r\n if (this.rpcObservablePerformanceConfigClient) {\r\n // enable/disable the performance profile data collection to current modules.\r\n // but these must be version 0.2.0.\r\n const items = this.rpc.rpcManager.getCurrentRpcOutbound();\r\n if (items) {\r\n for (const item of items) {\r\n if (this.moduleVersionMap[item.name]) {\r\n this.rpcObservablePerformanceConfigClient.config({ enabled }, item).subscribe();\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (enabled) {\r\n this.registerHttp();\r\n this.registerPowerShellStream();\r\n this.registerCimStream();\r\n } else {\r\n Http.unregisterMonitors(PerformanceProfile.monitorName);\r\n PowerShellStream.unregisterMonitors(PerformanceProfile.monitorName);\r\n CimStream.unregisterMonitors(PerformanceProfile.monitorName);\r\n }\r\n }\r\n\r\n private log(message: PerformanceProfileData): void {\r\n if (!this.checkPerformanceProfile()) {\r\n return;\r\n }\r\n\r\n const self = MsftSme.self();\r\n const record: PerformanceProfileRecord = {\r\n ...message,\r\n ...{ sessionId: self.Init.sessionId, timestamp: Date.now(), moduleName: self.Init.moduleName }\r\n };\r\n\r\n if (!record.errorMessage) {\r\n delete record['errorMessage'];\r\n }\r\n\r\n if (this.rpc && this.rpc.stateActive && this.rpcObservablePerformanceClient) {\r\n // send to shell.\r\n this.rpcObservablePerformanceClient.log(record).subscribe();\r\n } else {\r\n // write to database.\r\n this.database.write(record).subscribe();\r\n }\r\n }\r\n\r\n private logAnyway(message: PerformanceProfileData): void {\r\n const self = MsftSme.self();\r\n const record: PerformanceProfileRecord = {\r\n ...message,\r\n ...{ sessionId: self.Init.sessionId, timestamp: Date.now(), moduleName: self.Init.moduleName }\r\n };\r\n\r\n if (!record.errorMessage) {\r\n delete record['errorMessage'];\r\n }\r\n\r\n if (this.rpc && this.rpc.stateActive && this.rpcObservablePerformanceClient) {\r\n // send to shell.\r\n this.rpcObservablePerformanceClient.log(record).subscribe();\r\n }\r\n }\r\n\r\n private registerHttp(): void {\r\n const startPropertyName = '_start_';\r\n\r\n Http.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (request: AjaxRequest) => {\r\n if (!request) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxRequest object.');\r\n return of(request);\r\n }\r\n\r\n request[startPropertyName] = Date.now();\r\n return of(request);\r\n },\r\n successMonitor: (response: AjaxResponse<any>) => {\r\n if (!response || !response.request || !response.request.url) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxResponse object.');\r\n return of(response);\r\n }\r\n\r\n const request = response.request;\r\n const url = request.url;\r\n const method = request.method;\r\n const end = Date.now();\r\n const start = request[startPropertyName];\r\n if (url.indexOf('/features/powershellApi/') > 0) {\r\n const powershell = PerformanceProfile.powershellApi(url, request.body, response.response);\r\n PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, response.status, powershell);\r\n } else if (url.includes('/features/cim/')) {\r\n const cim = PerformanceProfile.cimApi(url, request.body);\r\n PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, response.status, cim);\r\n } else if (url.indexOf('/api/batch') > 0) {\r\n const batch = PerformanceProfile.batchApi(request.body, response.response);\r\n PerformanceProfile.logXhrFetchBatch('Http', start, end, url, method, response.status, batch);\r\n } else {\r\n PerformanceProfile.logXhrFetch('Http', start, end, url, method, response.status);\r\n }\r\n\r\n return of(response);\r\n },\r\n errorMonitor: (error: AjaxError) => {\r\n if (!error || !error.response || !error.request || !error.request.url) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxError object.');\r\n return throwError(() => error);\r\n }\r\n\r\n const request = error.request;\r\n const url = request.url;\r\n const method = request.method;\r\n const end = Date.now();\r\n const start = request[startPropertyName];\r\n const message = Net.getErrorMessage(error);\r\n if (url.indexOf('features/powershellApi') > 0) {\r\n const powershell = PerformanceProfile.powershellApi(url, request.body, error.response);\r\n PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, error.status, powershell, message);\r\n } else if (url.includes('/features/cim/')) {\r\n const cim = PerformanceProfile.cimApi(url, request.body);\r\n PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, error.status, cim, message);\r\n } else {\r\n PerformanceProfile.logXhrFetch('Http', start, end, url, method, error.status, message);\r\n }\r\n\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private registerPowerShellStream(): void {\r\n let masterId = 1;\r\n PowerShellStream.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (nodeName: string, command: PowerShellCommand, options?: PowerShellStreamOptions) => {\r\n const start = Date.now();\r\n const id = masterId++;\r\n const context: PowerShellStreamMonitorSetContext<PowerShellStreamContext> = {\r\n nodeName,\r\n command,\r\n options,\r\n data: { id, start, progressStart: start, count: 0, itemCount: 0 }\r\n };\r\n return of(context);\r\n },\r\n successMonitor: (response: any, context: PowerShellStreamMonitorSetContext<PowerShellStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n context.data.count++;\r\n context.data.itemCount += (response && response.results && response.results.length || 1);\r\n PerformanceProfile.logWebSocketPowerShell(\r\n 'PowerShellStream',\r\n context.nodeName,\r\n context.command.command,\r\n context.data);\r\n context.data.progressStart = Date.now();\r\n return of(response);\r\n },\r\n errorMonitor: (error: any, context: PowerShellStreamMonitorSetContext<PowerShellStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n PerformanceProfile.logWebSocketPowerShell(\r\n 'PowerShellStream',\r\n context.nodeName,\r\n context.command.command,\r\n context.data,\r\n Net.getErrorMessage(error));\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private registerCimStream(): void {\r\n let masterId = 1;\r\n CimStream.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (\r\n nodeName: string,\r\n requestState: WebsocketStreamDataRequestState,\r\n request: CimStreamRequestData,\r\n format: CimResultFormat,\r\n options?: CimStreamOptions) => {\r\n const start = Date.now();\r\n const id = masterId++;\r\n const context: CimStreamMonitorSetContext<CimStreamContext> = {\r\n nodeName,\r\n requestState,\r\n request,\r\n format,\r\n options,\r\n data: { id, start, progressStart: start, count: 0, itemCount: 0 }\r\n };\r\n return of(context);\r\n },\r\n successMonitor: (response: any, context: CimStreamMonitorSetContext<CimStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n context.data.count++;\r\n context.data.itemCount += (response && response.results && response.results.length || 1);\r\n PerformanceProfile.logWebSocketCim(\r\n 'CimStream',\r\n context.nodeName,\r\n this.removeCimStreamDetailData(context.request),\r\n context.data);\r\n context.data.progressStart = Date.now();\r\n return of(response);\r\n },\r\n errorMonitor: (error: any, context: CimStreamMonitorSetContext<CimStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n PerformanceProfile.logWebSocketCim(\r\n 'CimStream',\r\n context.nodeName,\r\n this.removeCimStreamDetailData(context.request),\r\n context.data,\r\n Net.getErrorMessage(error));\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private removeCimStreamDetailData(request: CimStreamRequestData): CimStreamRequestData {\r\n const skipKeys = ['data', 'keyProperties'];\r\n const requestRaw: any = request;\r\n const keys = Object.keys(requestRaw);\r\n const trimmedKeys = keys.filter(key => skipKeys.indexOf(key) < 0);\r\n if (keys.length !== trimmedKeys.length) {\r\n const copy: any = {};\r\n for (const key of trimmedKeys) {\r\n copy[key] = requestRaw[key];\r\n }\r\n\r\n return copy;\r\n }\r\n\r\n return request;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../packages/core/performance/performance-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAgB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAmB,SAAS,EAAsE,MAAM,oBAAoB,CAAC;AACpI,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAA8D,MAAM,2BAA2B,CAAC;AAEzH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,oCAAoC,EAAE,MAAM,6DAA6D,CAAC;AACnH,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AAKtG,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAqB5E;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACnB,MAAM,CAAC,WAAW,GAAG,oBAAoB,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAqB;IAEpC,QAAQ,GAA+B,IAAI,CAAC;IAC5C,GAAG,CAAM;IACT,8BAA8B,CAAiC;IAC/D,8BAA8B,CAAiC;IAC/D,YAAY,CAAe;IAC3B,gBAAgB,GAAgC,EAAE,CAAC;IACnD,oCAAoC,CAAuC;IAEnF;;OAEG;IACI,MAAM,KAAK,OAAO;QACrB,IAAI,kBAAkB,CAAC,QAAQ,EAAE;YAC7B,OAAO,kBAAkB,CAAC,QAAQ,CAAC;SACtC;QAED,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACvD,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAEM,MAAM,KAAK,QAAQ;QACtB,OAAO,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,kBAAkB,CAC5B,MAAc,EACd,KAAa,EACb,GAAW,EACX,GAAW,EACX,MAAe,EACf,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK;YACL,GAAG;YACH,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,eAAe;YAChD,eAAe,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;SACnC,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,OAAO,CAAC,MAAc;QAChC,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,0BAA0B,CAAC,IAAI;SACxC,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAChC,MAAc,EACd,KAAa,EACb,GAAW,EACX,GAAW,EACX,MAAc,EACd,MAAc,EACd,UAA4C,EAC5C,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK;YACL,GAAG;YACH,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,QAAQ;YACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;SAChD,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CACzB,MAAc,EACd,KAAa,EACb,GAAW,EACX,GAAW,EACX,MAAc,EACd,MAAc,EACd,GAA8B,EAC9B,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK;YACL,GAAG;YACH,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,QAAQ;YACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;SACzC,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAC3B,MAAc,EACd,KAAa,EACb,GAAW,EACX,GAAW,EACX,MAAc,EACd,MAAc,EACd,KAAmC,EACnC,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK;YACL,GAAG;YACH,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,QAAQ;YACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;SAC3C,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CACtB,MAAc,EACd,KAAa,EACb,GAAW,EACX,GAAW,EACX,MAAc,EACd,MAAc,EACd,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK;YACL,GAAG;YACH,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,QAAQ;YACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;SACpC,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,sBAAsB,CACjC,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,OAAgC,EAChC,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,aAAa;YAC5B,GAAG,EAAE,OAAO,CAAC,WAAW;YACxB,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,SAAS;YAC1C,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE;SACvH,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,eAAe,CAC1B,MAAc,EACd,QAAgB,EAChB,GAAyB,EACzB,OAAyB,EACzB,YAAqB;QACrB,MAAM,IAAI,GAA2B;YACjC,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,aAAa;YAC5B,GAAG,EAAE,OAAO,CAAC,WAAW;YACxB,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,SAAS;YAC1C,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE;SACnG,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEO,MAAM,CAAC,aAAa,CACxB,GAAW,EACX,IAAY,EACZ,QAA6G;QAC7G,MAAM,UAAU,GAAiE,EAAE,CAAC;QACpF,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;YAC5C,UAAU,CAAC,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC;mBAC7E,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;SACxE;QAED,UAAU,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACvB,UAAU,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;SAC3F;QAED,UAAU,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACvB,UAAU,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YACxF,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvB,UAAU,CAAC,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;aAClF;SACJ;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,GAAW,EAAE,IAAY;QAC3C,IAAI,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,EAAE;YAC1F,IAAI;gBACA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3B;YAAC,MAAM;gBACJ,OAAO,IAAI,CAAC;aACf;SACJ;QAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAChF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC9D,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAgB;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,KAAK,GAAiC,EAAE,CAAC;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,YAAY,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5E,IAAI,WAAmB,CAAC;YACxB,IAAI,QAAgB,CAAC;YACrB,IAAI,SAAiB,CAAC;YACtB,IAAI,WAAmB,CAAC;YACxB,IAAI,aAAkB,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjB,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAC/B,0BAA0B;4BAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC9B,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACvB,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;yBACvB;6BAAM,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;4BACtC,SAAS,GAAG,IAAI,CAAC;yBACpB;qBACJ;yBAAM;wBACH,UAAU,EAAE,CAAC;qBAChB;iBACJ;gBAED,UAAU,GAAG,CAAC,CAAC;gBACf,MAAM,oBAAoB,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjB,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;4BAClC,0BAA0B;4BAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC9B,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;yBAClC;6BAAM,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;4BAC1C,IAAI;gCACA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;6BACpC;4BAAC,MAAM;gCACJ,aAAa,GAAG,EAAE,CAAC;6BACtB;yBACJ;qBACJ;yBAAM;wBACH,UAAU,EAAE,CAAC;qBAChB;iBACJ;gBAED,MAAM,SAAS,GAA+B;oBAC1C,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,WAAW;iBACtB,CAAC;gBACF,IAAI,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,+BAA+B,CAAC,GAAG,CAAC,EAAE;oBAC3G,SAAS,CAAC,UAAU,GAAG,kBAAkB,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;iBAC/F;qBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;oBAChG,SAAS,CAAC,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;iBAClE;gBAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzB;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW;QAChE,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,CAAC,EAAE;YACZ,OAAO,IAAI,CAAC;SACf;QAED,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,EAAE;YACZ,OAAO,IAAI,CAAC;SACf;QAED,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,GAAQ;QAClB,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,OAAO,CAAC,GAAQ;QACnB,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,uBAAuB;QAC3B,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;YAED,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;SACpD;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW,CAAC,GAAQ;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;gBACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;qBAC/B,IAAI,CACD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EACxB,IAAI,CAAC,CAAC,CAAC,CAAC;qBACX,SAAS,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,oCAAoC,GAAG,IAAI,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC/F,IAAI,CAAC,8BAA8B,GAAG,IAAI,8BAA8B,CAAC,GAAG,CAAC,CAAC;oBAC9E,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CACxC,OAAO,CAAC,EAAE;wBACN,IAAI,OAAO,CAAC,IAAI,KAAK,0BAA0B,CAAC,IAAI,EAAE;4BAClD,8DAA8D;4BAC9D,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,EAAE;gCACnC,uEAAuE;gCACvE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;6BACrE;4BAED,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;yBACnB;wBAED,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE;4BACjC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;yBACnB;wBAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9D,CAAC,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;aACV;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;qBAC/B,IAAI,CACD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EACxB,IAAI,CAAC,CAAC,CAAC,CAAC;qBACX,SAAS,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,8BAA8B,GAAG,IAAI,8BAA8B,CAAC,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,CAAC;aACV;SACJ;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEM,cAAc;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,oCAAoC,EAAE;YAC3C,6EAA6E;YAC7E,mCAAmC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YAC1D,IAAI,KAAK,EAAE;gBACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACtB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAClC,IAAI,CAAC,oCAAoC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;qBACnF;iBACJ;aACJ;SACJ;QAED,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACxD,gBAAgB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACpE,SAAS,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;SAChE;IACL,CAAC;IAEO,GAAG,CAAC,OAA+B;QACvC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE;YACjC,OAAO;SACV;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAA6B;YACrC,GAAG,OAAO;YACV,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;SACjG,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACtB,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACzE,iBAAiB;YACjB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;SAC/D;aAAM;YACH,qBAAqB;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;SAC3C;IACL,CAAC;IAEO,SAAS,CAAC,OAA+B;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAA6B;YACrC,GAAG,OAAO;YACV,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;SACjG,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACtB,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACzE,iBAAiB;YACjB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;SAC/D;IACL,CAAC;IAEO,YAAY;QAChB,MAAM,iBAAiB,GAAG,SAAS,CAAC;QAEpC,IAAI,CAAC,kBAAkB,CAAC;YACpB,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,UAAU,EAAE,CAAC,OAAoB,EAAE,EAAE;gBACjC,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,8EAA8E,CAAC,CAAC;oBAC3G,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;iBACtB;gBAED,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YACD,cAAc,EAAE,CAAC,QAA2B,EAAE,EAAE;gBAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;oBACzD,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,+EAA+E,CAAC,CAAC;oBAC5G,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;iBACvB;gBAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;gBACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACzC,IAAI,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,GAAG,CAAC,EAAC;oBAChG,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1F,kBAAkB,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;iBAC1G;qBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;oBAChF,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzD,kBAAkB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;iBAC5F;qBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;oBACtC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC3E,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;iBAChG;qBAAM;oBACH,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;iBACpF;gBAED,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,YAAY,EAAE,CAAC,KAAgB,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;oBACnE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,4EAA4E,CAAC,CAAC;oBACzG,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;iBAClC;gBAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;gBACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACzC,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,GAAG,CAAC,EAAE;oBAC/F,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvF,kBAAkB,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;iBAChH;qBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;oBACjF,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzD,kBAAkB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;iBAClG;qBAAM;oBACH,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC1F;gBAED,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAEO,wBAAwB;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,gBAAgB,CAAC,kBAAkB,CAAC;YAChC,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,UAAU,EAAE,CAAC,QAAgB,EAAE,OAA0B,EAAE,OAAiC,EAAE,EAAE;gBAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;gBACtB,MAAM,OAAO,GAA+D;oBACxE,QAAQ;oBACR,OAAO;oBACP,OAAO;oBACP,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;iBACpE,CAAC;gBACF,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YACD,cAAc,EAAE,CAAC,QAAa,EAAE,OAAmE,EAAE,EAAE;gBACnG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;gBACzF,kBAAkB,CAAC,sBAAsB,CACrC,kBAAkB,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,CAAC,OAAO,EACvB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,YAAY,EAAE,CAAC,KAAU,EAAE,OAAmE,EAAE,EAAE;gBAC9F,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtC,kBAAkB,CAAC,sBAAsB,CACrC,kBAAkB,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,CAAC,OAAO,EACvB,OAAO,CAAC,IAAI,EACZ,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAEO,iBAAiB;QACrB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,SAAS,CAAC,kBAAkB,CAAC;YACzB,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,UAAU,EAAE,CACR,QAAgB,EAChB,YAA6C,EAC7C,OAA6B,EAC7B,MAAuB,EACvB,OAA0B,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAiD;oBAC1D,QAAQ;oBACR,YAAY;oBACZ,OAAO;oBACP,MAAM;oBACN,OAAO;oBACP,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;iBACpE,CAAC;gBACF,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YACD,cAAc,EAAE,CAAC,QAAa,EAAE,OAAqD,EAAE,EAAE;gBACrF,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;gBACzF,kBAAkB,CAAC,eAAe,CAC9B,WAAW,EACX,OAAO,CAAC,QAAQ,EAChB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,YAAY,EAAE,CAAC,KAAU,EAAE,OAAqD,EAAE,EAAE;gBAChF,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtC,kBAAkB,CAAC,eAAe,CAC9B,WAAW,EACX,OAAO,CAAC,QAAQ,EAChB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAC/C,OAAO,CAAC,IAAI,EACZ,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAEO,yBAAyB,CAAC,OAA6B;QAC3D,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAQ,OAAO,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;YACpC,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC;SACf;QAED,OAAO,OAAO,CAAC;IACnB,CAAC","file":"performance-profile.js","sourcesContent":["import { of, Subscription, throwError } from 'rxjs';\r\nimport { AjaxError, AjaxRequest, AjaxResponse } from 'rxjs/ajax';\r\nimport { filter, map, take } from 'rxjs/operators';\r\nimport { CimResultFormat, CimStream, CimStreamMonitorSetContext, CimStreamOptions, CimStreamRequestData } from '../data/cim-stream';\r\nimport { Http } from '../data/http';\r\nimport { Net } from '../data/net';\r\nimport { PowerShellCommand } from '../data/powershell';\r\nimport { PowerShellStream, PowerShellStreamMonitorSetContext, PowerShellStreamOptions } from '../data/powershell-stream';\r\nimport { WebsocketStreamDataRequestState } from '../data/websocket-stream';\r\nimport { Logging } from '../diagnostics/logging';\r\nimport { RpcObservablePerformanceClient } from '../rpc/performance/rpc-observable-performance-client';\r\nimport { RpcObservablePerformanceConfigClient } from '../rpc/performance/rpc-observable-performance-config-client';\r\nimport { RpcObservablePerformanceServer } from '../rpc/performance/rpc-observable-performance-server';\r\nimport { Rpc } from '../rpc/rpc';\r\nimport {\r\n PerformanceProfileData, PerformanceProfileDataCim, PerformanceProfileDataPowerShell, PerformanceProfileXhrFetch\r\n} from './performance-profile-data';\r\nimport { PerformanceProfileDataType } from './performance-profile-data-type';\r\nimport { PerformanceProfileDatabase } from './performance-profile-database';\r\nimport { PerformanceProfileRecord } from './performance-profile-record';\r\n\r\ninterface PowerShellStreamContext {\r\n id: number;\r\n start: number;\r\n progressStart: number;\r\n progressEnd?: number;\r\n count: number;\r\n itemCount: number;\r\n}\r\n\r\ninterface CimStreamContext {\r\n id: number;\r\n start: number;\r\n progressStart: number;\r\n progressEnd?: number;\r\n count: number;\r\n itemCount: number;\r\n}\r\n\r\n/**\r\n * Performance measurement class.\r\n */\r\nexport class PerformanceProfile {\r\n private static monitorName = 'PerformanceProfile';\r\n private static instance: PerformanceProfile;\r\n\r\n private database: PerformanceProfileDatabase = null;\r\n private rpc: Rpc;\r\n private rpcObservablePerformanceClient: RpcObservablePerformanceClient;\r\n private rpcObservablePerformanceServer: RpcObservablePerformanceServer;\r\n private subscription: Subscription;\r\n private moduleVersionMap: { [index: string]: string } = {};\r\n private rpcObservablePerformanceConfigClient: RpcObservablePerformanceConfigClient;\r\n\r\n /**\r\n * Gets the current PerformanceProfile instance.\r\n */\r\n public static get current(): PerformanceProfile {\r\n if (PerformanceProfile.instance) {\r\n return PerformanceProfile.instance;\r\n }\r\n\r\n PerformanceProfile.instance = new PerformanceProfile();\r\n return PerformanceProfile.instance;\r\n }\r\n\r\n public static get database(): PerformanceProfileDatabase {\r\n return PerformanceProfile.current.database;\r\n }\r\n\r\n /**\r\n * Record Route navigation performance measurement.\r\n */\r\n public static logRouteNavigation(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n target?: string,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.RouteNavigation,\r\n routeNavigation: { url, target }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record Null packet.\r\n */\r\n public static logNull(source: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: 0,\r\n end: 0,\r\n errorMessage: null,\r\n type: PerformanceProfileDataType.Null\r\n };\r\n PerformanceProfile.current.logAnyway(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for PowerShell.\r\n */\r\n private static logXhrFetchPowerShell(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n powershell: PerformanceProfileDataPowerShell,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, powershell }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for CIM.\r\n */\r\n private static logXhrFetchCim(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n cim: PerformanceProfileDataCim,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, cim }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for Batch.\r\n */\r\n private static logXhrFetchBatch(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n batch: PerformanceProfileXhrFetch[],\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, batch }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for general.\r\n */\r\n private static logXhrFetch(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record WebSocket performance measurement.\r\n */\r\n private static logWebSocketPowerShell(\r\n source: string,\r\n nodeName: string,\r\n command: string,\r\n context: PowerShellStreamContext,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: context.progressStart,\r\n end: context.progressEnd,\r\n errorMessage,\r\n type: PerformanceProfileDataType.WebSocket,\r\n webSocket: { nodeName, id: context.id, count: context.count, itemCount: context.itemCount, powershell: { command } }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record WebSocket performance measurement.\r\n */\r\n private static logWebSocketCim(\r\n source: string,\r\n nodeName: string,\r\n cim: CimStreamRequestData,\r\n context: CimStreamContext,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: context.progressStart,\r\n end: context.progressEnd,\r\n errorMessage,\r\n type: PerformanceProfileDataType.WebSocket,\r\n webSocket: { nodeName, id: context.id, count: context.count, itemCount: context.itemCount, cim }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n private static powershellApi(\r\n url: string,\r\n body: string,\r\n response: { completed?: string, sessionId?: string; properties?: { completed: string; sessionId: string; }; }): PerformanceProfileDataPowerShell {\r\n const powershell: { command?: string; sessionId?: string; completed?: string } = {};\r\n if (body && body.indexOf('\\\"properties\\\"') > 0) {\r\n powershell.command = PerformanceProfile.getBetween(body, ',\\\"command\\\":\\\"', '\\\",\\\"')\r\n || PerformanceProfile.getBetween(body, '\\\"script\\\":\\\"##', '##:');\r\n }\r\n\r\n powershell.completed = response && response.completed;\r\n if (!powershell.completed) {\r\n powershell.completed = response && response.properties && response.properties.completed;\r\n }\r\n\r\n powershell.sessionId = response && response.sessionId;\r\n if (!powershell.sessionId) {\r\n powershell.sessionId = response && response.properties && response.properties.sessionId;\r\n if (!powershell.sessionId) {\r\n powershell.sessionId = PerformanceProfile.getBetween(url, '/pssessions/', '?');\r\n }\r\n }\r\n\r\n return powershell;\r\n }\r\n\r\n private static cimApi(url: string, body: string): PerformanceProfileDataCim {\r\n if (url.indexOf('/features/cim/query') > 0 || url.indexOf('/services/WinREST/CIM/query') > 0) {\r\n try {\r\n return JSON.parse(body);\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n const namespaceName = PerformanceProfile.getBetween(url, '/namespaces/', '/classes/');\r\n const className = PerformanceProfile.getBetween(url, '/classes/', '/instances');\r\n return { namespace: namespaceName, className: className };\r\n }\r\n\r\n private static batchApi(body: string, response: string): PerformanceProfileXhrFetch[] {\r\n const delimiter = '\\x0d\\x0a';\r\n const batch: PerformanceProfileXhrFetch[] = [];\r\n let last = body.indexOf(delimiter);\r\n let separator = body.substring(0, last + 2);\r\n const bodySegments = body.split(separator);\r\n last = response.indexOf(delimiter);\r\n separator = response.substring(0, last + 2);\r\n const responseSegments = response.split(separator);\r\n if (bodySegments.length === responseSegments.length && bodySegments.length > 1) {\r\n let batchMethod: string;\r\n let batchUrl: string;\r\n let batchBody: string;\r\n let batchStatus: number;\r\n let batchResponse: any;\r\n for (let i = 1; i < bodySegments.length; i++) {\r\n const bodySegment = bodySegments[i];\r\n const responseSegment = responseSegments[i];\r\n const bodySegmentLines = bodySegment.split(delimiter);\r\n let emptyLines = 0;\r\n for (let j = 0; j < bodySegmentLines.length; j++) {\r\n const line = bodySegmentLines[j];\r\n if (line.length > 0) {\r\n if (emptyLines === 1 && !batchUrl) {\r\n // reached header segment.\r\n const query = line.split(' ');\r\n batchMethod = query[0];\r\n batchUrl = query[1];\r\n } else if (emptyLines >= 2 && !batchBody) {\r\n batchBody = line;\r\n }\r\n } else {\r\n emptyLines++;\r\n }\r\n }\r\n\r\n emptyLines = 0;\r\n const responseSegmentLines = responseSegment.split(delimiter);\r\n for (let j = 0; j < responseSegmentLines.length; j++) {\r\n const line = responseSegmentLines[j];\r\n if (line.length > 0) {\r\n if (emptyLines === 1 && !batchStatus) {\r\n // reached header segment.\r\n const query = line.split(' ');\r\n batchStatus = Number(query[1]);\r\n } else if (emptyLines >= 2 && !batchResponse) {\r\n try {\r\n batchResponse = JSON.parse(line);\r\n } catch {\r\n batchResponse = {};\r\n }\r\n }\r\n } else {\r\n emptyLines++;\r\n }\r\n }\r\n\r\n const batchItem: PerformanceProfileXhrFetch = {\r\n url: batchUrl,\r\n status: batchStatus,\r\n method: batchMethod\r\n };\r\n if (batchUrl.indexOf('/features/powershellApi/') > 0 || batchUrl.indexOf('/services/WinREST/PowerShell/') > 0) {\r\n batchItem.powershell = PerformanceProfile.powershellApi(batchUrl, batchBody, batchResponse);\r\n } else if (batchUrl.includes('/features/cim/query') || batchUrl.includes('/services/WinREST/CIM/')) {\r\n batchItem.cim = PerformanceProfile.cimApi(batchUrl, batchBody);\r\n }\r\n\r\n batch.push(batchItem);\r\n }\r\n }\r\n\r\n return batch;\r\n }\r\n\r\n private static getBetween(source: string, begin: string, end: string): string {\r\n let index0 = source.indexOf(begin);\r\n if (index0 < 0) {\r\n return null;\r\n }\r\n\r\n index0 += begin.length;\r\n const index1 = source.indexOf(end, index0);\r\n if (index1 < 0) {\r\n return null;\r\n }\r\n\r\n return source.substring(index0, index1);\r\n }\r\n\r\n public enable(rpc: Rpc): void {\r\n MsftSme.setPerformanceProfile(true);\r\n this.registerRpc(rpc);\r\n }\r\n\r\n public disable(rpc: Rpc): void {\r\n MsftSme.setPerformanceProfile(false);\r\n this.registerRpc(rpc);\r\n }\r\n\r\n private checkPerformanceProfile(): boolean {\r\n if (!MsftSme.getPerformanceProfile()) {\r\n if (this.database) {\r\n this.database.close();\r\n this.database = null;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!this.database) {\r\n this.database = new PerformanceProfileDatabase();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public registerRpc(rpc: Rpc): void {\r\n if (!this.rpc) {\r\n this.rpc = rpc;\r\n if (MsftSme.isShell()) {\r\n this.subscription = rpc.stateChanged\r\n .pipe(\r\n filter(active => active),\r\n take(1))\r\n .subscribe(() => {\r\n this.rpcObservablePerformanceConfigClient = new RpcObservablePerformanceConfigClient(this.rpc);\r\n this.rpcObservablePerformanceServer = new RpcObservablePerformanceServer(rpc);\r\n this.rpcObservablePerformanceServer.register(\r\n request => {\r\n if (request.type === PerformanceProfileDataType.Null) {\r\n // The packet is null packet and retain only the version data.\r\n if (request.sourceVersion === '0.2.0') {\r\n // this version can support config command when on/off switch was used.\r\n this.moduleVersionMap[request.sourceName] = request.sourceVersion;\r\n }\r\n\r\n return of(null);\r\n }\r\n\r\n if (!this.checkPerformanceProfile()) {\r\n return of(null);\r\n }\r\n\r\n return this.database.write(request).pipe(map(() => null));\r\n });\r\n });\r\n } else {\r\n this.subscription = rpc.stateChanged\r\n .pipe(\r\n filter(active => active),\r\n take(1))\r\n .subscribe(() => {\r\n this.rpcObservablePerformanceClient = new RpcObservablePerformanceClient(rpc);\r\n });\r\n }\r\n }\r\n\r\n this.updateMonitors();\r\n }\r\n\r\n public updateMonitors(): void {\r\n const enabled = this.checkPerformanceProfile();\r\n if (this.rpcObservablePerformanceConfigClient) {\r\n // enable/disable the performance profile data collection to current modules.\r\n // but these must be version 0.2.0.\r\n const items = this.rpc.rpcManager.getCurrentRpcOutbound();\r\n if (items) {\r\n for (const item of items) {\r\n if (this.moduleVersionMap[item.name]) {\r\n this.rpcObservablePerformanceConfigClient.config({ enabled }, item).subscribe();\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (enabled) {\r\n this.registerHttp();\r\n this.registerPowerShellStream();\r\n this.registerCimStream();\r\n } else {\r\n Http.unregisterMonitors(PerformanceProfile.monitorName);\r\n PowerShellStream.unregisterMonitors(PerformanceProfile.monitorName);\r\n CimStream.unregisterMonitors(PerformanceProfile.monitorName);\r\n }\r\n }\r\n\r\n private log(message: PerformanceProfileData): void {\r\n if (!this.checkPerformanceProfile()) {\r\n return;\r\n }\r\n\r\n const self = MsftSme.self();\r\n const record: PerformanceProfileRecord = {\r\n ...message,\r\n ...{ sessionId: self.Init.sessionId, timestamp: Date.now(), moduleName: self.Init.moduleName }\r\n };\r\n\r\n if (!record.errorMessage) {\r\n delete record['errorMessage'];\r\n }\r\n\r\n if (this.rpc && this.rpc.stateActive && this.rpcObservablePerformanceClient) {\r\n // send to shell.\r\n this.rpcObservablePerformanceClient.log(record).subscribe();\r\n } else {\r\n // write to database.\r\n this.database.write(record).subscribe();\r\n }\r\n }\r\n\r\n private logAnyway(message: PerformanceProfileData): void {\r\n const self = MsftSme.self();\r\n const record: PerformanceProfileRecord = {\r\n ...message,\r\n ...{ sessionId: self.Init.sessionId, timestamp: Date.now(), moduleName: self.Init.moduleName }\r\n };\r\n\r\n if (!record.errorMessage) {\r\n delete record['errorMessage'];\r\n }\r\n\r\n if (this.rpc && this.rpc.stateActive && this.rpcObservablePerformanceClient) {\r\n // send to shell.\r\n this.rpcObservablePerformanceClient.log(record).subscribe();\r\n }\r\n }\r\n\r\n private registerHttp(): void {\r\n const startPropertyName = '_start_';\r\n\r\n Http.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (request: AjaxRequest) => {\r\n if (!request) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxRequest object.');\r\n return of(request);\r\n }\r\n\r\n request[startPropertyName] = Date.now();\r\n return of(request);\r\n },\r\n successMonitor: (response: AjaxResponse<any>) => {\r\n if (!response || !response.request || !response.request.url) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxResponse object.');\r\n return of(response);\r\n }\r\n\r\n const request = response.request;\r\n const url = request.url;\r\n const method = request.method;\r\n const end = Date.now();\r\n const start = request[startPropertyName];\r\n if (url.indexOf('/features/powershellApi/') > 0 || url.indexOf('/services/WinREST/PowerShell/') > 0){\r\n const powershell = PerformanceProfile.powershellApi(url, request.body, response.response);\r\n PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, response.status, powershell);\r\n } else if (url.includes('/features/cim/') || url.includes('/services/WinREST/CIM')) {\r\n const cim = PerformanceProfile.cimApi(url, request.body);\r\n PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, response.status, cim);\r\n } else if (url.indexOf('/api/batch') > 0) {\r\n const batch = PerformanceProfile.batchApi(request.body, response.response);\r\n PerformanceProfile.logXhrFetchBatch('Http', start, end, url, method, response.status, batch);\r\n } else {\r\n PerformanceProfile.logXhrFetch('Http', start, end, url, method, response.status);\r\n }\r\n\r\n return of(response);\r\n },\r\n errorMonitor: (error: AjaxError) => {\r\n if (!error || !error.response || !error.request || !error.request.url) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxError object.');\r\n return throwError(() => error);\r\n }\r\n\r\n const request = error.request;\r\n const url = request.url;\r\n const method = request.method;\r\n const end = Date.now();\r\n const start = request[startPropertyName];\r\n const message = Net.getErrorMessage(error);\r\n if (url.indexOf('features/powershellApi') > 0 || url.indexOf('/services/WinREST/PowerShell/') > 0) {\r\n const powershell = PerformanceProfile.powershellApi(url, request.body, error.response);\r\n PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, error.status, powershell, message);\r\n } else if (url.includes('/features/cim/') || url.includes('/services/WinREST/CIM/')) {\r\n const cim = PerformanceProfile.cimApi(url, request.body);\r\n PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, error.status, cim, message);\r\n } else {\r\n PerformanceProfile.logXhrFetch('Http', start, end, url, method, error.status, message);\r\n }\r\n\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private registerPowerShellStream(): void {\r\n let masterId = 1;\r\n PowerShellStream.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (nodeName: string, command: PowerShellCommand, options?: PowerShellStreamOptions) => {\r\n const start = Date.now();\r\n const id = masterId++;\r\n const context: PowerShellStreamMonitorSetContext<PowerShellStreamContext> = {\r\n nodeName,\r\n command,\r\n options,\r\n data: { id, start, progressStart: start, count: 0, itemCount: 0 }\r\n };\r\n return of(context);\r\n },\r\n successMonitor: (response: any, context: PowerShellStreamMonitorSetContext<PowerShellStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n context.data.count++;\r\n context.data.itemCount += (response && response.results && response.results.length || 1);\r\n PerformanceProfile.logWebSocketPowerShell(\r\n 'PowerShellStream',\r\n context.nodeName,\r\n context.command.command,\r\n context.data);\r\n context.data.progressStart = Date.now();\r\n return of(response);\r\n },\r\n errorMonitor: (error: any, context: PowerShellStreamMonitorSetContext<PowerShellStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n PerformanceProfile.logWebSocketPowerShell(\r\n 'PowerShellStream',\r\n context.nodeName,\r\n context.command.command,\r\n context.data,\r\n Net.getErrorMessage(error));\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private registerCimStream(): void {\r\n let masterId = 1;\r\n CimStream.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (\r\n nodeName: string,\r\n requestState: WebsocketStreamDataRequestState,\r\n request: CimStreamRequestData,\r\n format: CimResultFormat,\r\n options?: CimStreamOptions) => {\r\n const start = Date.now();\r\n const id = masterId++;\r\n const context: CimStreamMonitorSetContext<CimStreamContext> = {\r\n nodeName,\r\n requestState,\r\n request,\r\n format,\r\n options,\r\n data: { id, start, progressStart: start, count: 0, itemCount: 0 }\r\n };\r\n return of(context);\r\n },\r\n successMonitor: (response: any, context: CimStreamMonitorSetContext<CimStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n context.data.count++;\r\n context.data.itemCount += (response && response.results && response.results.length || 1);\r\n PerformanceProfile.logWebSocketCim(\r\n 'CimStream',\r\n context.nodeName,\r\n this.removeCimStreamDetailData(context.request),\r\n context.data);\r\n context.data.progressStart = Date.now();\r\n return of(response);\r\n },\r\n errorMonitor: (error: any, context: CimStreamMonitorSetContext<CimStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n PerformanceProfile.logWebSocketCim(\r\n 'CimStream',\r\n context.nodeName,\r\n this.removeCimStreamDetailData(context.request),\r\n context.data,\r\n Net.getErrorMessage(error));\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private removeCimStreamDetailData(request: CimStreamRequestData): CimStreamRequestData {\r\n const skipKeys = ['data', 'keyProperties'];\r\n const requestRaw: any = request;\r\n const keys = Object.keys(requestRaw);\r\n const trimmedKeys = keys.filter(key => skipKeys.indexOf(key) < 0);\r\n if (keys.length !== trimmedKeys.length) {\r\n const copy: any = {};\r\n for (const key of trimmedKeys) {\r\n copy[key] = requestRaw[key];\r\n }\r\n\r\n return copy;\r\n }\r\n\r\n return request;\r\n }\r\n}\r\n"]}