@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.
- package/angular/assets/strings/cs-CZ/strings.json +1 -1
- package/angular/assets/strings/de-DE/strings.json +1 -1
- package/angular/assets/strings/es-ES/strings.json +1 -1
- package/angular/assets/strings/fr-FR/strings.json +1 -1
- package/angular/assets/strings/hu-HU/strings.json +1 -1
- package/angular/assets/strings/id-ID/strings.json +1 -1
- package/angular/assets/strings/it-IT/strings.json +1 -1
- package/angular/assets/strings/ja-JP/strings.json +1 -1
- package/angular/assets/strings/ko-KR/strings.json +1 -1
- package/angular/assets/strings/nl-NL/strings.json +1 -1
- package/angular/assets/strings/pl-PL/strings.json +1 -1
- package/angular/assets/strings/pt-BR/strings.json +1 -1
- package/angular/assets/strings/pt-PT/strings.json +1 -1
- package/angular/assets/strings/ru-RU/strings.json +1 -1
- package/angular/assets/strings/strings.json +1 -1
- package/angular/assets/strings/sv-SE/strings.json +1 -1
- package/angular/assets/strings/tr-TR/strings.json +1 -1
- package/angular/assets/strings/zh-CN/strings.json +1 -1
- package/angular/assets/strings/zh-TW/strings.json +1 -1
- package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
- package/angular/esm2020/src/controls/copilot/copilot.component.mjs +55 -0
- package/angular/esm2020/src/controls/copilot/copilot.module.mjs +25 -0
- package/angular/esm2020/src/controls/copilot/index.mjs +3 -0
- package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -9
- package/angular/esm2020/src/controls/details/details.component.mjs +62 -25
- package/angular/esm2020/src/controls/details/details.module.mjs +5 -1
- package/angular/esm2020/src/controls/dialog/dialog.component.mjs +35 -23
- package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
- package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
- package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
- package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
- package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
- package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
- package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
- package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
- package/angular/esm2020/src/controls/guided-panel/guided-pane/guided-pane.component.mjs +12 -3
- package/angular/esm2020/src/controls/index.mjs +4 -1
- package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
- package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
- package/angular/esm2020/src/controls/summary/index.mjs +4 -0
- package/angular/esm2020/src/controls/summary/summary-item.mjs +83 -0
- package/angular/esm2020/src/controls/summary/summary.component.mjs +391 -0
- package/angular/esm2020/src/controls/summary/summary.module.mjs +37 -0
- package/angular/esm2020/src/controls/summary-group/index.mjs +3 -0
- package/angular/esm2020/src/controls/summary-group/summary-group.component.mjs +84 -0
- package/angular/esm2020/src/controls/summary-group/summary-group.module.mjs +33 -0
- package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
- package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
- package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
- package/angular/esm2020/src/data/index.mjs +2 -1
- package/angular/esm2020/src/generated/strings.mjs +1 -1
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +1798 -597
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +1679 -597
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
- package/angular/src/controls/copilot/copilot.component.d.ts +31 -0
- package/angular/src/controls/copilot/copilot.module.d.ts +8 -0
- package/angular/src/controls/copilot/index.d.ts +2 -0
- package/angular/src/controls/details/details.component.d.ts +5 -1
- package/angular/src/controls/details/details.module.d.ts +3 -2
- package/angular/src/controls/dialog/dialog.component.d.ts +5 -1
- package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
- package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
- package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
- package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
- package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
- package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
- package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
- package/angular/src/controls/guided-panel/guided-pane/guided-pane.component.d.ts +4 -0
- package/angular/src/controls/index.d.ts +3 -0
- package/angular/src/controls/summary/index.d.ts +3 -0
- package/angular/src/controls/summary/summary-item.d.ts +105 -0
- package/angular/src/controls/summary/summary.component.d.ts +82 -0
- package/angular/src/controls/summary/summary.module.d.ts +11 -0
- package/angular/src/controls/summary-group/index.d.ts +3 -0
- package/angular/src/controls/summary-group/summary-group.component.d.ts +57 -0
- package/angular/src/controls/summary-group/summary-group.module.d.ts +10 -0
- package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
- package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
- package/angular/src/data/index.d.ts +1 -0
- package/angular/src/generated/strings.d.ts +11 -0
- package/core/async/cancellation.js +316 -0
- package/core/async/index.js +312 -0
- package/core/async/progress.js +312 -0
- package/core/azure/azure-constants.js +316 -0
- package/core/azure/azure-logging.js +316 -0
- package/core/azure/azure-manager.js +316 -0
- package/core/azure/models/aadAppConfig-data.js +312 -0
- package/core/azure/models/azureArcStatusEnum.js +315 -0
- package/core/azure/models/azureTokenResult-data.js +315 -0
- package/core/azure/resources/deployment-operation-request-body.js +316 -0
- package/core/azure/resources/deployment-operation-response.js +312 -0
- package/core/azure/resources/location-data.js +316 -0
- package/core/azure/resources/resource-group-data.js +316 -0
- package/core/azure/resources/subscription-data.js +316 -0
- package/core/base/data-store/browser-storage-data-store.js +312 -0
- package/core/base/data-store/cached-data-store.js +316 -0
- package/core/base/data-store/data-store.js +312 -0
- package/core/base/data-store/local-data-store.js +312 -0
- package/core/base/data-store/memory-data-store.js +312 -0
- package/core/base/data-store/session-data-store.js +316 -0
- package/core/base/date/date-like.js +315 -0
- package/core/base/date/date-range.js +316 -0
- package/core/base/date/date-time.js +312 -0
- package/core/base/date/date-type.js +312 -0
- package/core/base/date/time-unit.js +316 -0
- package/core/base/decorators/base.js +316 -0
- package/core/base/decorators/debounce.decorators.js +316 -0
- package/core/base/decorators/delay.decorator.js +312 -0
- package/core/base/decorators/yield.decorator.js +312 -0
- package/core/base/environment.js +316 -0
- package/core/base/json.js +316 -0
- package/core/base/msft-sme.mock.js +315 -0
- package/core/base/polyfills/array.js +316 -0
- package/core/base/polyfills/string.js +316 -0
- package/core/base/rxjs-lifetime-manager.js +312 -0
- package/core/base/utilities.js +312 -0
- package/core/base/versioned-object.js +316 -0
- package/core/copilot/copilot-extension-service.d.ts +49 -0
- package/core/copilot/copilot-extension-service.d.ts.map +1 -0
- package/core/copilot/copilot-extension-service.js +446 -0
- package/core/copilot/copilot-extension-service.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.d.ts +19 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.js +344 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-child-service.d.ts +15 -0
- package/core/copilot/copilot-iframe/iframe-child-service.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-child-service.js +337 -0
- package/core/copilot/copilot-iframe/iframe-child-service.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.d.ts +4 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.js +319 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-type.d.ts +4 -0
- package/core/copilot/copilot-iframe/iframe-message-type.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-type.js +319 -0
- package/core/copilot/copilot-iframe/iframe-message-type.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message.d.ts +6 -0
- package/core/copilot/copilot-iframe/iframe-message.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message.js +315 -0
- package/core/copilot/copilot-iframe/iframe-message.js.map +1 -0
- package/core/data/accessibility-manager.js +316 -0
- package/core/data/active-directory/active-directory.js +312 -0
- package/core/data/active-directory/models/account-info.js +316 -0
- package/core/data/active-directory/models/active-directory-search-options.js +312 -0
- package/core/data/active-directory/models/search-type.js +315 -0
- package/core/data/animation.js +312 -0
- package/core/data/app-context.js +316 -0
- package/core/data/asset-manager.js +316 -0
- package/core/data/base64-array-buffer.js +312 -0
- package/core/data/batch-connection.js +316 -0
- package/core/data/cim-connection.js +312 -0
- package/core/data/cim-stream.js +312 -0
- package/core/data/cim.js +316 -0
- package/core/data/column-picker.js +315 -0
- package/core/data/cookie.js +316 -0
- package/core/data/core-environment.js +312 -0
- package/core/data/crypto.js +312 -0
- package/core/data/deployment-share.js +316 -0
- package/core/data/disposable.js +316 -0
- package/core/data/electron.js +316 -0
- package/core/data/error-extended.js +316 -0
- package/core/data/extension-broker/dialog-listener.js +312 -0
- package/core/data/extension-broker/extension-broker.js +316 -0
- package/core/data/extension-broker/extension-listener.js +316 -0
- package/core/data/extension-broker/model/extension-broker-request-payload.js +316 -0
- package/core/data/extension-broker/model/extension-broker-response-error.js +315 -0
- package/core/data/extension-broker/model/extension-broker-response-payload.js +316 -0
- package/core/data/extension-broker/model/extension-entries.js +315 -0
- package/core/data/extension-broker/model/extension-instance.js +316 -0
- package/core/data/extension-broker/model/extension-rect.js +316 -0
- package/core/data/extension-broker/model/extension-search-options.js +316 -0
- package/core/data/extension-broker/service-listener.js +315 -0
- package/core/data/extension-broker/worker-listener.js +315 -0
- package/core/data/extension-broker/worker-set.js +316 -0
- package/core/data/file-transfer.js +316 -0
- package/core/data/gateway-connection.js +316 -0
- package/core/data/gateway-status.js +316 -0
- package/core/data/gateway-url-builder.js +316 -0
- package/core/data/gateway-url-translator.js +316 -0
- package/core/data/gateway-urls.js +316 -0
- package/core/data/globalization.js +315 -0
- package/core/data/http-constants.js +316 -0
- package/core/data/http.js +316 -0
- package/core/data/jobs/jobs-manager.js +316 -0
- package/core/data/jobs/models/job-credentials.js +312 -0
- package/core/data/jobs/models/job-node.js +316 -0
- package/core/data/jobs/models/job-paginated-response.js +312 -0
- package/core/data/jobs/models/job-pagination-options.js +316 -0
- package/core/data/jobs/models/job.js +316 -0
- package/core/data/jobs/models/node-job.js +316 -0
- package/core/data/jobs/models/powershell-job.js +312 -0
- package/core/data/language.js +312 -0
- package/core/data/lifetime-data.js +316 -0
- package/core/data/localization-manager.js +316 -0
- package/core/data/native-q.js +312 -0
- package/core/data/net.d.ts.map +1 -1
- package/core/data/net.js +317 -1
- package/core/data/net.js.map +1 -1
- package/core/data/node-connection.d.ts.map +1 -1
- package/core/data/node-connection.js +316 -0
- package/core/data/node-connection.js.map +1 -1
- package/core/data/node-extension-install.js +316 -0
- package/core/data/powershell-alternate.js +316 -0
- package/core/data/powershell-batch.js +312 -0
- package/core/data/powershell-connection.js +312 -0
- package/core/data/powershell-crypto.js +316 -0
- package/core/data/powershell-stream.js +315 -0
- package/core/data/powershell.js +316 -0
- package/core/data/query-cache.js +312 -0
- package/core/data/resource-cache.js +312 -0
- package/core/data/schedule-reboot.js +315 -0
- package/core/data/settings-manager.js +316 -0
- package/core/data/settings-manger.mock.js +315 -0
- package/core/data/sme-extension.js +312 -0
- package/core/data/ssh-stream.js +316 -0
- package/core/data/units.js +312 -0
- package/core/data/uri-builder.js +316 -0
- package/core/data/wdac-operations.js +315 -0
- package/core/data/websocket-stream.js +316 -0
- package/core/diagnostics/error-monitor.js +316 -0
- package/core/diagnostics/log-level.js +316 -0
- package/core/diagnostics/log-record.js +312 -0
- package/core/diagnostics/logging-constants.js +316 -0
- package/core/diagnostics/logging.js +316 -0
- package/core/diagnostics/logging.mock.js +316 -0
- package/core/diagnostics/sme-web-telemetry-models.js +316 -0
- package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
- package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
- package/core/diagnostics/sme-web-telemetry.js +339 -15
- package/core/diagnostics/sme-web-telemetry.js.map +1 -1
- package/core/diagnostics/telemetry-control-type.js +316 -0
- package/core/diagnostics/telemetry-options.js +316 -0
- package/core/diagnostics/telemetry-record.js +316 -0
- package/core/dom/dom.js +316 -0
- package/core/frame/frame-connection.js +316 -0
- package/core/frame/frame-connection.mock.js +316 -0
- package/core/frame/shell-navigation-connection.js +316 -0
- package/core/generated/powershell-scripts.d.ts.map +1 -1
- package/core/generated/powershell-scripts.js +313 -1
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/generated/strings.js +312 -0
- package/core/host/host-core-manager.js +316 -0
- package/core/host/host-core-message-type.js +316 -0
- package/core/host/host-core-messages.js +312 -0
- package/core/index.d.ts +48 -25
- package/core/index.d.ts.map +1 -1
- package/core/index.js +351 -18
- package/core/index.js.map +1 -1
- package/core/manifest/environment-modules.d.ts +3 -1
- package/core/manifest/environment-modules.d.ts.map +1 -1
- package/core/manifest/environment-modules.js +314 -0
- package/core/manifest/environment-modules.js.map +1 -1
- package/core/manifest/manifest-loader.js +312 -0
- package/core/manifest/module-schema.json +3 -1
- package/core/notification/client-notification-instance.js +316 -0
- package/core/notification/client-notification.js +316 -0
- package/core/notification/notification-connection.js +316 -0
- package/core/notification/notification-link-type.js +312 -0
- package/core/notification/notification-manager.js +312 -0
- package/core/notification/notification-message.js +312 -0
- package/core/notification/notification-state.js +316 -0
- package/core/notification/notification.js +312 -0
- package/core/notification/powershell-notification.js +316 -0
- package/core/notification/socket-signalr.js +312 -0
- package/core/notification/work-item-connection.js +312 -0
- package/core/notification/work-item-manager.js +316 -0
- package/core/notification/work-item-request.js +315 -0
- package/core/performance/performance-profile-data-type.js +315 -0
- package/core/performance/performance-profile-data.js +315 -0
- package/core/performance/performance-profile-database.js +315 -0
- package/core/performance/performance-profile-record.js +316 -0
- package/core/performance/performance-profile.d.ts.map +1 -1
- package/core/performance/performance-profile.js +325 -9
- package/core/performance/performance-profile.js.map +1 -1
- package/core/performance/performance-tracker.js +312 -0
- package/core/polyfills.js +316 -0
- package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +219 -0
- package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +221 -1
- package/core/rpc/alive/rpc-alive-client.js +312 -0
- package/core/rpc/alive/rpc-alive-handler.js +312 -0
- package/core/rpc/alive/rpc-alive-model.js +316 -0
- package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
- package/core/rpc/alive/rpc-observable-alive-client.js +316 -0
- package/core/rpc/alive/rpc-observable-alive-model.js +315 -0
- package/core/rpc/alive/rpc-observable-alive-server.js +315 -0
- package/core/rpc/azure/rpc-azure-model.js +312 -0
- package/core/rpc/azure/rpc-azure-request-client.js +312 -0
- package/core/rpc/azure/rpc-azure-request-handler.js +316 -0
- package/core/rpc/azure/rpc-azure-request-subject-server.js +316 -0
- package/core/rpc/azure/rpc-azure-response-client.js +316 -0
- package/core/rpc/azure/rpc-azure-response-handler.js +312 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.d.ts +24 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.js +343 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts +24 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.js +343 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts +14 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.js +332 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.d.ts +55 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.js +334 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.d.ts +14 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.js +333 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.js.map +1 -0
- package/core/rpc/credssp/rpc-credssp-model.js +315 -0
- package/core/rpc/credssp/rpc-credssp-request-client.js +316 -0
- package/core/rpc/credssp/rpc-credssp-request-handler.js +316 -0
- package/core/rpc/credssp/rpc-credssp-request-subject-server.js +316 -0
- package/core/rpc/credssp/rpc-credssp-response-client.js +316 -0
- package/core/rpc/credssp/rpc-credssp-response-handler.js +316 -0
- package/core/rpc/dialog/rpc-dialog-client.js +312 -0
- package/core/rpc/dialog/rpc-dialog-handler.js +315 -0
- package/core/rpc/dialog/rpc-dialog-model.js +316 -0
- package/core/rpc/dialog/rpc-dialog-subject-server.js +316 -0
- package/core/rpc/electron/rpc-electron-model.js +316 -0
- package/core/rpc/electron/rpc-electron-request-client.js +316 -0
- package/core/rpc/electron/rpc-electron-request-handler.js +315 -0
- package/core/rpc/electron/rpc-electron-request-subject-server.js +316 -0
- package/core/rpc/electron/rpc-electron-response-client.js +312 -0
- package/core/rpc/electron/rpc-electron-response-handler.js +315 -0
- package/core/rpc/elevate/rpc-observable-elevate-client.js +315 -0
- package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
- package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +316 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +316 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-model.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-client.js +316 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-server.js +315 -0
- package/core/rpc/forward/rpc-forward-auto-client.js +315 -0
- package/core/rpc/forward/rpc-forward-down-client.js +315 -0
- package/core/rpc/forward/rpc-forward-down-handler.js +316 -0
- package/core/rpc/forward/rpc-forward-model.js +316 -0
- package/core/rpc/forward/rpc-forward-up-client.js +312 -0
- package/core/rpc/forward/rpc-forward-up-handler.js +316 -0
- package/core/rpc/forward/rpc-forward-up-subject-server.js +316 -0
- package/core/rpc/log/rpc-log-client.js +316 -0
- package/core/rpc/log/rpc-log-handler.js +312 -0
- package/core/rpc/log/rpc-log-model.js +316 -0
- package/core/rpc/log/rpc-log-subject-server.js +316 -0
- package/core/rpc/notification/rpc-notification-client.js +316 -0
- package/core/rpc/notification/rpc-notification-handler.js +312 -0
- package/core/rpc/notification/rpc-notification-model.js +316 -0
- package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
- package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
- package/core/rpc/overlay/rpc-overlay-close-handler.js +316 -0
- package/core/rpc/overlay/rpc-overlay-model.js +312 -0
- package/core/rpc/overlay/rpc-overlay-open-client.js +312 -0
- package/core/rpc/overlay/rpc-overlay-open-handler.js +316 -0
- package/core/rpc/overlay/rpc-overlay-open-subject-server.js +316 -0
- package/core/rpc/performance/rpc-observable-performance-client.js +315 -0
- package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-config-server.js +316 -0
- package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
- package/core/rpc/report/rpc-report-client.js +316 -0
- package/core/rpc/report/rpc-report-handler.js +315 -0
- package/core/rpc/report/rpc-report-model.js +315 -0
- package/core/rpc/report/rpc-report-subject-server.js +312 -0
- package/core/rpc/rpc-base.d.ts +4 -0
- package/core/rpc/rpc-base.d.ts.map +1 -1
- package/core/rpc/rpc-base.js +316 -0
- package/core/rpc/rpc-base.js.map +1 -1
- package/core/rpc/rpc-channel.js +316 -0
- package/core/rpc/rpc-forwarder.js +312 -0
- package/core/rpc/rpc-inbound-client.js +315 -0
- package/core/rpc/rpc-inbound.js +312 -0
- package/core/rpc/rpc-manager.js +316 -0
- package/core/rpc/rpc-module-subject-server.js +316 -0
- package/core/rpc/rpc-observable-client.js +316 -0
- package/core/rpc/rpc-observable-request.js +316 -0
- package/core/rpc/rpc-observable-result.js +316 -0
- package/core/rpc/rpc-observable-server.js +316 -0
- package/core/rpc/rpc-outbound-client.js +316 -0
- package/core/rpc/rpc-outbound.js +315 -0
- package/core/rpc/rpc-subject-server.js +316 -0
- package/core/rpc/rpc.js +316 -0
- package/core/rpc/seek/rpc-seek-client.js +316 -0
- package/core/rpc/seek/rpc-seek-handler.js +315 -0
- package/core/rpc/seek/rpc-seek-model.js +315 -0
- package/core/rpc/settings/rpc-settings-client.js +312 -0
- package/core/rpc/settings/rpc-settings-handler.js +315 -0
- package/core/rpc/settings/rpc-settings-model.js +315 -0
- package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +316 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +316 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +315 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +315 -0
- package/core/rpc/sme-extension/rpc-sme-extension-model.js +316 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +316 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +316 -0
- package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +316 -0
- package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-handler.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-subject-server.js +316 -0
- package/core/rpc/update-data/rpc-update-data-client.js +316 -0
- package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
- package/core/rpc/update-data/rpc-update-data-model.js +312 -0
- package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-client.js +316 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-model.js +315 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-server.js +316 -0
- package/core/rpc/work-item/rpc-work-item-client.js +315 -0
- package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
- package/core/rpc/work-item/rpc-work-item-model.js +316 -0
- package/core/rpc/work-item/rpc-work-item-subject-server.js +316 -0
- package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
- package/core/rpc/work-item-find/rpc-work-item-find-handler.js +315 -0
- package/core/rpc/work-item-find/rpc-work-item-find-model.js +316 -0
- package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
- package/core/security/active-connection.js +315 -0
- package/core/security/authorization-manager.js +315 -0
- package/core/security/connection-manager-settings/common-connection-settings.js +316 -0
- package/core/security/connection-manager-settings/connection-settings.js +315 -0
- package/core/security/connection-manager.js +316 -0
- package/core/security/connection-stream.js +316 -0
- package/core/security/connection.js +312 -0
- package/core/security/credssp-manager.js +315 -0
- package/core/security/sign-on-manager.js +316 -0
- package/core/security/tag-manager.js +315 -0
- package/core/security/tool-condition-validator.js +316 -0
- package/core/security/tool-connection-query.js +312 -0
- package/core/security/user-principal.js +312 -0
- package/core/shared/cluster-inventory/cluster-inventory-cache.js +316 -0
- package/core/shared/cluster-inventory/cluster-inventory.js +315 -0
- package/core/shared/cluster-inventory/cluster-node-inventory.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory-cache.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory-detail.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory.js +316 -0
- package/core/shared/inventory-query-caches.js +316 -0
- package/core/shared/server-inventory/server-inventory-cache.d.ts.map +1 -1
- package/core/shared/server-inventory/server-inventory-cache.js +313 -0
- package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
- package/core/shared/server-inventory/server-inventory-detail-cache.js +315 -0
- package/core/shared/server-inventory/server-inventory-detail.js +316 -0
- package/core/shared/server-inventory/server-inventory.d.ts +8 -0
- package/core/shared/server-inventory/server-inventory.d.ts.map +1 -1
- package/core/shared/server-inventory/server-inventory.js +320 -0
- package/core/shared/server-inventory/server-inventory.js.map +1 -1
- package/core/shared/shared-cache.js +312 -0
- package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
- package/core/shared/tool-inventory/tool-inventory.js +316 -0
- package/core/special.js +316 -0
- package/core/test-utilities/accessibility-tester.js +316 -0
- package/core/test-utilities/console.mock.js +316 -0
- package/core/test-utilities/jasmine-axe-matcher.js +316 -0
- package/core/test-utilities/wait-async.js +315 -0
- package/core/test.js +312 -0
- package/core/testing.js +316 -0
- package/core/workflow/persistent-local-storage.js +316 -0
- package/core/workflow/persistent-work-item-apply-state.js +316 -0
- package/core/workflow/persistent-work-item-state.js +316 -0
- package/core/workflow/persistent-work-item.js +316 -0
- package/core/workflow/persistent-workflow-builder.js +316 -0
- package/core/workflow/persistent-workflow-context.js +315 -0
- package/core/workflow/persistent-workflow-runner.js +316 -0
- package/core/workflow/persistent-workflow-snapshot.js +315 -0
- package/core/workflow/persistent-workflow-store.js +312 -0
- package/core/workflow/persistent-workflow.js +312 -0
- package/package.json +7 -6
- package/styles/css/main-v2.css +1 -1
- package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
- package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
- package/tools/build/webpack/index-html.transform.js +312 -0
- package/tools/build/webpack/shell.index-html.transform.js +316 -0
- package/tools/build/webpack/shell.webpack.config.js +312 -0
- package/tools/build/webpack/webpack.config.js +312 -0
- package/tools/code-formatter/.eslintrc.base.json +2 -1
- package/tools/code-formatter/lint.js +316 -0
- package/tools/code-formatter/utilities.d.ts.map +1 -1
- package/tools/code-formatter/utilities.js +313 -1
- package/tools/code-formatter/utilities.js.map +1 -1
- package/tools/gulp-doc-generator/index.js +316 -0
- package/tools/gulp-manifest-resource/index.js +315 -0
- package/tools/gulp-manifest-validator/index.js +316 -0
- package/tools/gulp-merge-json-in-folders/index.js +316 -0
- package/tools/gulp-merge-json-in-folders/json-merge.js +316 -0
- package/tools/gulp-ps-cim/index.js +316 -0
- package/tools/gulp-ps-code/index.d.ts.map +1 -1
- package/tools/gulp-ps-code/index.js +326 -2
- package/tools/gulp-ps-code/index.js.map +1 -1
- package/tools/gulp-ps-code/ps-code-convert.js +316 -0
- package/tools/gulp-ps-manifest/index.js +312 -0
- package/tools/gulp-ps-module/index.d.ts.map +1 -1
- package/tools/gulp-ps-module/index.js +328 -3
- package/tools/gulp-ps-module/index.js.map +1 -1
- package/tools/gulp-ps-resjson/index.js +316 -0
- package/tools/gulp-resjson/index.js +312 -0
- package/tools/gulp-resjson/resjson-convert.js +316 -0
- package/tools/gulp-schema-form/index.js +312 -0
- package/tools/gulp-svg-code/index.js +316 -0
- package/tools/gulp-svg-code/svg-code-convert.js +312 -0
- package/tools/gulp-update-notes-resource/index.js +312 -0
- package/tools/module-template/build/increment-package-version.ps1 +219 -0
- package/tools/module-template/build/pipelines/ci-build.yml +5 -5
- package/tools/module-template/build/pipelines/pull-request.yml +4 -4
- package/tools/module-template/build/push-incremented-version.ps1 +218 -1
- package/tools/module-template/build/update-powershell-code.ps1 +216 -0
- package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
- package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
- package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
- package/tools/module-template/gulpfile.ts/common/test.ts +2 -3
- package/tools/module-template/gulpfile.ts/common/utilities.ts +40 -12
- package/tools/pack-nuget/index.d.ts.map +1 -1
- package/tools/pack-nuget/index.js +325 -3
- package/tools/pack-nuget/index.js.map +1 -1
- package/tools/scripts/Invoke-PesterTest.ps1 +218 -0
- package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
- package/tools/scripts/Search-NonAsciiText.ps1 +219 -0
- package/tools/scripts/package-information/README.md +3 -0
- package/tools/scripts/package-information/ms-logo.png +0 -0
- package/tools/test-runner/index.js +316 -0
- package/tools/utilities/index.js +312 -0
- package/tools/wac-cli/src/angular15/configs/angular-json-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +316 -0
- package/tools/wac-cli/src/angular15/configs/package-json-config.js +316 -0
- package/tools/wac-cli/src/angular15/configs/replace-config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +316 -0
- package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +316 -0
- package/tools/wac-cli/src/angular15/main.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
- package/tools/wac-cli/src/angular15/utils/command-runner.js +316 -0
- package/tools/wac-cli/src/angular15/utils/file-comparison.js +316 -0
- package/tools/wac-cli/src/angular15/utils/file-replacement.js +315 -0
- package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
- package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
- package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
- package/tools/wac-cli/src/angular15/utils/relative-path.js +316 -0
- package/tools/wac-cli/src/angular15/utils/remove-item.js +316 -0
- package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
- package/tools/wac-cli/src/angular15/utils/update-shell-references.js +312 -0
- package/tools/wac-cli/src/common.js +316 -0
- package/tools/wac-cli/src/create/main.js +316 -0
- package/tools/wac-cli/src/eslint/main.js +312 -0
- package/tools/wac-cli/src/index.js +316 -0
- package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
- package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +312 -0
- package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +316 -0
- package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
- package/tools/wac-cli/src/upgrade/file-updater.js +316 -0
- package/tools/wac-cli/src/upgrade/get-files.js +312 -0
- package/tools/wac-cli/src/upgrade/main.js +316 -0
- package/tools/wac-cli/src/upgrade/models/error-result.js +316 -0
- package/tools/wac-cli/src/upgrade/models/updater-interface.js +316 -0
- package/tools/wac-cli/src/upgrade/package-updater.js +316 -0
- package/tools/wac-cli/templates/wac-template/package.json +1 -1
- package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
- package/tools/wac-cli/templates/wac-template/src/karma.conf.js +317 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +218 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +218 -1
- package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
- package/core/data/extension-broker/snap-in-listener.js +0 -73
- package/core/data/extension-broker/snap-in-listener.js.map +0 -1
- 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, '
|
|
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
|
|
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":"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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, '/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"]}
|