@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
|
@@ -1,3 +1,319 @@
|
|
|
1
1
|
export {};
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=performance-profile-record.js.map
|
|
4
|
+
|
|
5
|
+
// SIG // Begin signature block
|
|
6
|
+
// SIG // MIIoUAYJKoZIhvcNAQcCoIIoQTCCKD0CAQExDzANBglg
|
|
7
|
+
// SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
|
|
8
|
+
// SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
|
|
9
|
+
// SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
|
|
10
|
+
// SIG // QJWPV1boVrNVd03THqUONdM5g52LJ9lJrvJCQekwTQ+g
|
|
11
|
+
// SIG // gg2FMIIGAzCCA+ugAwIBAgITMwAAA64tNVHIU49VHQAA
|
|
12
|
+
// SIG // AAADrjANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
|
|
13
|
+
// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
|
|
14
|
+
// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
|
|
15
|
+
// SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
|
|
16
|
+
// SIG // aWduaW5nIFBDQSAyMDExMB4XDTIzMTExNjE5MDg1OVoX
|
|
17
|
+
// SIG // DTI0MTExNDE5MDg1OVowdDELMAkGA1UEBhMCVVMxEzAR
|
|
18
|
+
// SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
|
|
19
|
+
// SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
|
|
20
|
+
// SIG // bjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
|
|
21
|
+
// SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
|
22
|
+
// SIG // 9CD8pjY3wxCoPmMhOkow7ycCltfqYnqk4wGNApzh2dTY
|
|
23
|
+
// SIG // +YqxozWTzJUOB38VxsgFQmXBFhOMdrGYGpvO9kdbNPkw
|
|
24
|
+
// SIG // HpTrW6hZqFuLLiRwGKEx4ZM5zVSqbHJuX2fPfUJ0Xmb+
|
|
25
|
+
// SIG // VrVsGw/BwBV2zz0rVtiSgqj3GeeGOsG7llfWyrSjyJqm
|
|
26
|
+
// SIG // 5DHE3o04BAI/NuhkHOv04euiqJGvHFCL8+fXvyD9OAxq
|
|
27
|
+
// SIG // 4fcJKtoyBb0PBA3oMNQeCsiUyLO+voZqVTOUsAWY0bN5
|
|
28
|
+
// SIG // YjkK4nq5DVaNdVrrowd5AX9gmz6D/TJTssns6pDCG00Y
|
|
29
|
+
// SIG // +Dh3ipWpnVmkhYcByyUSEKX3PLC8DkiAQQIDAQABo4IB
|
|
30
|
+
// SIG // gjCCAX4wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYB
|
|
31
|
+
// SIG // BQUHAwMwHQYDVR0OBBYEFIcf73Spl4cHOFoll27H9COd
|
|
32
|
+
// SIG // 4fE/MFQGA1UdEQRNMEukSTBHMS0wKwYDVQQLEyRNaWNy
|
|
33
|
+
// SIG // b3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQx
|
|
34
|
+
// SIG // FjAUBgNVBAUTDTIzMDAxMis1MDE4MzYwHwYDVR0jBBgw
|
|
35
|
+
// SIG // FoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0w
|
|
36
|
+
// SIG // SzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
|
|
37
|
+
// SIG // L3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDEx
|
|
38
|
+
// SIG // LTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYB
|
|
39
|
+
// SIG // BQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
|
|
40
|
+
// SIG // a2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDEx
|
|
41
|
+
// SIG // LTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3
|
|
42
|
+
// SIG // DQEBCwUAA4ICAQBqyWA1Eu7PKNMjaaxl0V7gJ0XBysUo
|
|
43
|
+
// SIG // xZluMHJXFE2LEGZIZ2zMLYVjOnAGG/4dluRjSrZZo/8v
|
|
44
|
+
// SIG // wk4Xt8v6NBB9ofo8H1P/XidHytWTv9lg9MYu++6lPmu5
|
|
45
|
+
// SIG // fCozD3cI2NLZPW2BBhGX2D0R8tQBj0FbmZRuIucpiQ7D
|
|
46
|
+
// SIG // K3CHKlfKcc7MP8pPzuMv55Tox8+KFQD1NG6+bfbYA/BN
|
|
47
|
+
// SIG // PBkg4tyOh+exbaHfcNuodDJUIjq9dF6oa+Yjy0u0pUMI
|
|
48
|
+
// SIG // /B1t+8m6rJo0KSoZlrpesYl0jRhpt+hmqx8uENXoGJcY
|
|
49
|
+
// SIG // ZVJ5N2Skq90LViKNRhi9N4U+e8c4y9uXyomUF/6viCPJ
|
|
50
|
+
// SIG // 7huTNEJo75ehIJba+IWd3txUEc0R3y6DT6txC6cW1nR/
|
|
51
|
+
// SIG // LTbo9I/8fQq538G5IvJ+e5iSiOSVVkVk0i5m03Awy5E2
|
|
52
|
+
// SIG // ZSS4PVdQSCcFxmN4tpEfYuR7AAy/GJVtIDFlUpSgdXok
|
|
53
|
+
// SIG // pSui5hYtK1R9enXXvo+U/xGkLRc+qp4De3dZbzu7pOq7
|
|
54
|
+
// SIG // V/jCyhuCw0bEIAU4urCGIip7TI6GBRzD7yPzjFIqeZY7
|
|
55
|
+
// SIG // S4rVW5BRn2oEqpm8Su6yTIQvMIk8x2pwYNUa2339Z4gW
|
|
56
|
+
// SIG // 5xW21eFA5mLpo7NRSKRQms5OgAA18aCgqOU7Ds0h6q/Y
|
|
57
|
+
// SIG // B4BmEAtoTMl/TBiyKaMGAlEcdy+5FIhmzojMGjCCB3ow
|
|
58
|
+
// SIG // ggVioAMCAQICCmEOkNIAAAAAAAMwDQYJKoZIhvcNAQEL
|
|
59
|
+
// SIG // BQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
|
|
60
|
+
// SIG // aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
|
|
61
|
+
// SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMT
|
|
62
|
+
// SIG // KU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
|
|
63
|
+
// SIG // cml0eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcw
|
|
64
|
+
// SIG // ODIxMDkwOVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgT
|
|
65
|
+
// SIG // Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
|
|
66
|
+
// SIG // BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYG
|
|
67
|
+
// SIG // A1UEAxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0Eg
|
|
68
|
+
// SIG // MjAxMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
|
|
69
|
+
// SIG // ggIBAKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCq
|
|
70
|
+
// SIG // uAY4GgRJun/DDB7dN2vGEtgL8DjCmQawyDnVARQxQtOJ
|
|
71
|
+
// SIG // DXlkh36UYCRsr55JnOloXtLfm1OyCizDr9mpK656Ca/X
|
|
72
|
+
// SIG // llnKYBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3WraPPL
|
|
73
|
+
// SIG // bfM6XKEW9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5
|
|
74
|
+
// SIG // pUkp5w2+oBN3vpQ97/vjK1oQH01WKKJ6cuASOrdJXtjt
|
|
75
|
+
// SIG // 7UORg9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7La4zWMW3
|
|
76
|
+
// SIG // Pv4y07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwP
|
|
77
|
+
// SIG // rRkjhMv0ugOGjfdf8NBSv4yUh7zAIXQlXxgotswnKDgl
|
|
78
|
+
// SIG // mDlKNs98sZKuHCOnqWbsYR9q4ShJnV+I4iVd0yFLPlLE
|
|
79
|
+
// SIG // tVc/JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9
|
|
80
|
+
// SIG // G9RVS+c5oQ/pI0m8GLhEfEXkwcNyeuBy5yTfv0aZxe/C
|
|
81
|
+
// SIG // HFfbg43sTUkwp6uO3+xbn6/83bBm4sGXgXvt1u1L50kp
|
|
82
|
+
// SIG // pxMopqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9A
|
|
83
|
+
// SIG // N0/B4YVEicQJTMXUpUMvdJX3bvh4IFgsE11glZo+TzOE
|
|
84
|
+
// SIG // 2rCIF96eTvSWsLxGoGyY0uDWiIwLAgMBAAGjggHtMIIB
|
|
85
|
+
// SIG // 6TAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k
|
|
86
|
+
// SIG // 5VAF04KqFzc3IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAwe
|
|
87
|
+
// SIG // CgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB
|
|
88
|
+
// SIG // /wQFMAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kUBU7h
|
|
89
|
+
// SIG // 6qfHMdEjiTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDov
|
|
90
|
+
// SIG // L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVj
|
|
91
|
+
// SIG // dHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNy
|
|
92
|
+
// SIG // bDBeBggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0
|
|
93
|
+
// SIG // dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMv
|
|
94
|
+
// SIG // TWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNydDCB
|
|
95
|
+
// SIG // nwYDVR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYI
|
|
96
|
+
// SIG // KwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNv
|
|
97
|
+
// SIG // bS9wa2lvcHMvZG9jcy9wcmltYXJ5Y3BzLmh0bTBABggr
|
|
98
|
+
// SIG // BgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABp
|
|
99
|
+
// SIG // AGMAeQBfAHMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkq
|
|
100
|
+
// SIG // hkiG9w0BAQsFAAOCAgEAZ/KGpZjgVHkaLtPYdGcimwuW
|
|
101
|
+
// SIG // EeFjkplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79H
|
|
102
|
+
// SIG // qaPzadtjvyI1pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS
|
|
103
|
+
// SIG // 0LD9a+M+By4pm+Y9G6XUtR13lDni6WTJRD14eiPzE32m
|
|
104
|
+
// SIG // kHSDjfTLJgJGKsKKELukqQUMm+1o+mgulaAqPyprWElj
|
|
105
|
+
// SIG // HwlpblqYluSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMO
|
|
106
|
+
// SIG // r5kol5hNDj0L8giJ1h/DMhji8MUtzluetEk5CsYKwsat
|
|
107
|
+
// SIG // ruWy2dsViFFFWDgycScaf7H0J/jeLDogaZiyWYlobm+n
|
|
108
|
+
// SIG // t3TDQAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVA
|
|
109
|
+
// SIG // KmWjw11SYobDHWM2l4bf2vP48hahmifhzaWX0O5dY0Hj
|
|
110
|
+
// SIG // Wwechz4GdwbRBrF1HxS+YWG18NzGGwS+30HHDiju3mUv
|
|
111
|
+
// SIG // 7Jf2oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3
|
|
112
|
+
// SIG // HjXG0qKin3p6IvpIlR+r+0cjgPWe+L9rt0uX4ut1eBrs
|
|
113
|
+
// SIG // 6jeZeRhL/9azI2h15q/6/IvrC4DqaTuv/DDtBEyO3991
|
|
114
|
+
// SIG // bWORPdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYib
|
|
115
|
+
// SIG // V3FWTkhFwELJm3ZbCoBIa/15n8G9bW1qyVJzEw16UM0x
|
|
116
|
+
// SIG // ghojMIIaHwIBATCBlTB+MQswCQYDVQQGEwJVUzETMBEG
|
|
117
|
+
// SIG // A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
|
|
118
|
+
// SIG // ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
|
|
119
|
+
// SIG // MSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5n
|
|
120
|
+
// SIG // IFBDQSAyMDExAhMzAAADri01UchTj1UdAAAAAAOuMA0G
|
|
121
|
+
// SIG // CWCGSAFlAwQCAQUAoIGuMBkGCSqGSIb3DQEJAzEMBgor
|
|
122
|
+
// SIG // BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE
|
|
123
|
+
// SIG // AYI3AgEVMC8GCSqGSIb3DQEJBDEiBCD5/CWSgO20q5jE
|
|
124
|
+
// SIG // 9cywOo35jXuKXsiKQFeXyAD/OS+b/TBCBgorBgEEAYI3
|
|
125
|
+
// SIG // AgEMMTQwMqAUgBIATQBpAGMAcgBvAHMAbwBmAHShGoAY
|
|
126
|
+
// SIG // aHR0cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3
|
|
127
|
+
// SIG // DQEBAQUABIIBACuTm3QDjPBEnjGh6TuuHvf8tNLHNbQ0
|
|
128
|
+
// SIG // BrBmWd890sArDdB9EETeSjsqi5Aesi3obTK48h9NbcLh
|
|
129
|
+
// SIG // rJ1w83AO8db1BxUfoQdZ3pqVDcb3wcSRC7dimAFQJCMB
|
|
130
|
+
// SIG // zubVyn2aaJy+hIwcouezBj965crlSEJ/0UXzEP81U7zm
|
|
131
|
+
// SIG // 9f2i+Nt1wbbtDNUcM1fQxUvOst0RO00M3HQvc2T1CJTl
|
|
132
|
+
// SIG // 50+aqHdAt1w1QqVa4darm5CbyyH473vVsEeSMR5U9Lt5
|
|
133
|
+
// SIG // RBLHJKNgG/xm29MuJJ03G9snf0pW5u2mbjBt12DAy+rj
|
|
134
|
+
// SIG // CHlG9sz/oUVlmDPlyidAsYKua4cpntD3HQFnB8FsoRva
|
|
135
|
+
// SIG // I7WhghetMIIXqQYKKwYBBAGCNwMDATGCF5kwgheVBgkq
|
|
136
|
+
// SIG // hkiG9w0BBwKggheGMIIXggIBAzEPMA0GCWCGSAFlAwQC
|
|
137
|
+
// SIG // AQUAMIIBWgYLKoZIhvcNAQkQAQSgggFJBIIBRTCCAUEC
|
|
138
|
+
// SIG // AQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQg
|
|
139
|
+
// SIG // 1J0iseBYo6sG2w3JVGazUlyV4so6I0xnQIB+tmBJJIMC
|
|
140
|
+
// SIG // BmbrdbdKvxgTMjAyNDA5MjYwMDAwNTMuNzkzWjAEgAIB
|
|
141
|
+
// SIG // 9KCB2aSB1jCB0zELMAkGA1UEBhMCVVMxEzARBgNVBAgT
|
|
142
|
+
// SIG // Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
|
|
143
|
+
// SIG // BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsG
|
|
144
|
+
// SIG // A1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9u
|
|
145
|
+
// SIG // cyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBF
|
|
146
|
+
// SIG // U046NjUxQS0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jv
|
|
147
|
+
// SIG // c29mdCBUaW1lLVN0YW1wIFNlcnZpY2WgghH7MIIHKDCC
|
|
148
|
+
// SIG // BRCgAwIBAgITMwAAAfWZCZS88cZQjAABAAAB9TANBgkq
|
|
149
|
+
// SIG // hkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UE
|
|
150
|
+
// SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
|
|
151
|
+
// SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYw
|
|
152
|
+
// SIG // JAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg
|
|
153
|
+
// SIG // MjAxMDAeFw0yNDA3MjUxODMxMDFaFw0yNTEwMjIxODMx
|
|
154
|
+
// SIG // MDFaMIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
|
|
155
|
+
// SIG // aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
|
|
156
|
+
// SIG // ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL
|
|
157
|
+
// SIG // EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExp
|
|
158
|
+
// SIG // bWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo2
|
|
159
|
+
// SIG // NTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0
|
|
160
|
+
// SIG // IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcN
|
|
161
|
+
// SIG // AQEBBQADggIPADCCAgoCggIBAMzvdHBUE1nf1j/OCE+y
|
|
162
|
+
// SIG // TCFtX0C+tbHX4JoZX09J72BG9pL5DRdO92cI73rklqLd
|
|
163
|
+
// SIG // /Oy4xNEwohvd3uiNB8yBUAZ28Rj/1jwVIqxau1hOUQLL
|
|
164
|
+
// SIG // oTX2FC/jyG/YyatwsFsSAn8Obf6U8iDh4yr6NZUDk1mc
|
|
165
|
+
// SIG // qYq/6bGcBBO8trlgD22SUxaynp+Ue98dh28cuHltQ3Jl
|
|
166
|
+
// SIG // 48ptsBVr9dLAR+NGoyX3vjpMHE3aGK2NypKTf0UEo3sn
|
|
167
|
+
// SIG // CtG4Y6NAhmCGGvmTAGqNEjUf0dSdWOrC5IgiTt2kK20t
|
|
168
|
+
// SIG // Us+5fv6iYMvH8hGTDQ+TLOwtLBGjr6AR4lkqUzOL3NMQ
|
|
169
|
+
// SIG // ywpnOjxr9NwrVrtiosqqy/AQAdRGMjkoSNyE+/WqwyA6
|
|
170
|
+
// SIG // y/nXvdRX45kmwWOY/h70tJd3V5Iz9x6J/G++JVsIpBdK
|
|
171
|
+
// SIG // 8xKxdJ95IVQLrMe0ptaBhvtOoc/VwMt1qLvk+knuqGuS
|
|
172
|
+
// SIG // w4kID031kf4/RTZPCbtOqEn04enNN1dLpZWtCMMvh81J
|
|
173
|
+
// SIG // flpmMRS1ND4ml7JoLnTcFap+dc6/gYt1zyfOcFrsuhhk
|
|
174
|
+
// SIG // +5wQ5lzc0zZMyvfAwUI0zmm0F1GfPOGG/QxTXIoJnlU2
|
|
175
|
+
// SIG // JMlF2eobHHfDcquOQNw925Pp157KICtWe82Y+l2xn7e8
|
|
176
|
+
// SIG // YDmL73lOqdPn67YWxezF7/ouanA/R3xZjquFWB3r1XrG
|
|
177
|
+
// SIG // G+j9AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUVeB8W/VK
|
|
178
|
+
// SIG // NKBw8CWSXttosXtgdQEwHwYDVR0jBBgwFoAUn6cVXQBe
|
|
179
|
+
// SIG // Yl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO
|
|
180
|
+
// SIG // aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j
|
|
181
|
+
// SIG // cmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy
|
|
182
|
+
// SIG // MDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggr
|
|
183
|
+
// SIG // BgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
|
|
184
|
+
// SIG // L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0
|
|
185
|
+
// SIG // YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/
|
|
186
|
+
// SIG // BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNV
|
|
187
|
+
// SIG // HQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAHMM
|
|
188
|
+
// SIG // ZlT2gPcR337qJtEzkqdobKbn9RtHB1vylxwLoZ6VvP0r
|
|
189
|
+
// SIG // 5auY/WiiP/PxunxiEDK9M5aWrvI8vNyOM3JRnSY5eUtN
|
|
190
|
+
// SIG // ksQ5VCmsLVr4H+4nWtOj4I3kDNXl+C7reG2z309BRKe+
|
|
191
|
+
// SIG // xu+oYcrF8UyTR7+cvn8E4VHoonJYoWcKnGTKWuOpvqFe
|
|
192
|
+
// SIG // ooE1OiNBJ53qLTKhbNEN8x4FVa+Fl45xtgXJ5IqeNnnc
|
|
193
|
+
// SIG // oP/Yl3M6kwaxJL089FJZbaRRmkJy86vjaPFRIKtFBu1t
|
|
194
|
+
// SIG // RC2RoZpsRZhwAcE0+rDyRVevA3y6AtIgfUG2/VWfJr20
|
|
195
|
+
// SIG // 1eSbSEgZJU7lQJRJM14vSyIzZsfpJ3QXyj/HcRv8W0V6
|
|
196
|
+
// SIG // bUA0A2grEuqIC5MC4B+s0rPrpfVpsyNBfMyJm4Z2YVM4
|
|
197
|
+
// SIG // iB4XhaOB/maKIz2HIEyuv925Emzmm5kBX/eQfAenuVql
|
|
198
|
+
// SIG // 20ubPTnTHVJVtYEyNa+bvlgMB9ihu3cZ3qE23/42Jd01
|
|
199
|
+
// SIG // LT+wB6cnJNnNJ7p/0NAsnKWvUFB/w8tNZOrUKJjVxo4r
|
|
200
|
+
// SIG // 4NvwRnIGSdB8PAuilXpRCd9cS6BNtZvfjRIEigkaBRNS
|
|
201
|
+
// SIG // 5Jmt9UsiGsp23WBG/LDpWcpzHZvMj5XQ8LheeLyYhAK4
|
|
202
|
+
// SIG // 63AzV3ugaG2VIk1kir79QyWnUdUlAjvzndtRoFPoWarv
|
|
203
|
+
// SIG // nSoIygGHXkyL4vUdq7S2MIIHcTCCBVmgAwIBAgITMwAA
|
|
204
|
+
// SIG // ABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCB
|
|
205
|
+
// SIG // iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
|
|
206
|
+
// SIG // b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
|
|
207
|
+
// SIG // Y3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWlj
|
|
208
|
+
// SIG // cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
|
|
209
|
+
// SIG // IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgz
|
|
210
|
+
// SIG // MjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
|
|
211
|
+
// SIG // aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
|
|
212
|
+
// SIG // ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
|
|
213
|
+
// SIG // Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCC
|
|
214
|
+
// SIG // AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOTh
|
|
215
|
+
// SIG // pkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2
|
|
216
|
+
// SIG // AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYj
|
|
217
|
+
// SIG // DLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFE
|
|
218
|
+
// SIG // yHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2
|
|
219
|
+
// SIG // vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6O
|
|
220
|
+
// SIG // U8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUo
|
|
221
|
+
// SIG // veO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvr
|
|
222
|
+
// SIG // g0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdb
|
|
223
|
+
// SIG // Z2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZ
|
|
224
|
+
// SIG // nkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZN
|
|
225
|
+
// SIG // N3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEz
|
|
226
|
+
// SIG // OUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMY
|
|
227
|
+
// SIG // ctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5
|
|
228
|
+
// SIG // C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6
|
|
229
|
+
// SIG // bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17a
|
|
230
|
+
// SIG // j54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkr
|
|
231
|
+
// SIG // BgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQq
|
|
232
|
+
// SIG // p1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cV
|
|
233
|
+
// SIG // XQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwr
|
|
234
|
+
// SIG // BgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDov
|
|
235
|
+
// SIG // L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1Jl
|
|
236
|
+
// SIG // cG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMI
|
|
237
|
+
// SIG // MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
|
|
238
|
+
// SIG // DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQY
|
|
239
|
+
// SIG // MBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRP
|
|
240
|
+
// SIG // ME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNv
|
|
241
|
+
// SIG // bS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8y
|
|
242
|
+
// SIG // MDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYI
|
|
243
|
+
// SIG // KwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
|
|
244
|
+
// SIG // bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt
|
|
245
|
+
// SIG // MjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3h
|
|
246
|
+
// SIG // LB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnX
|
|
247
|
+
// SIG // wnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03d
|
|
248
|
+
// SIG // mLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27Y
|
|
249
|
+
// SIG // P0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfak
|
|
250
|
+
// SIG // Vqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8
|
|
251
|
+
// SIG // F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4s
|
|
252
|
+
// SIG // a3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6
|
|
253
|
+
// SIG // MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1A
|
|
254
|
+
// SIG // PMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lU
|
|
255
|
+
// SIG // ZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtq
|
|
256
|
+
// SIG // RRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4K
|
|
257
|
+
// SIG // u+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLB
|
|
258
|
+
// SIG // gqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr
|
|
259
|
+
// SIG // 4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp
|
|
260
|
+
// SIG // e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQ
|
|
261
|
+
// SIG // tB1VM1izoXBm8qGCA1YwggI+AgEBMIIBAaGB2aSB1jCB
|
|
262
|
+
// SIG // 0zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
|
|
263
|
+
// SIG // b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
|
|
264
|
+
// SIG // Y3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWlj
|
|
265
|
+
// SIG // cm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVk
|
|
266
|
+
// SIG // MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NjUxQS0w
|
|
267
|
+
// SIG // NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l
|
|
268
|
+
// SIG // LVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVACbA
|
|
269
|
+
// SIG // CruPDW0eWEYN1kgUAso83ZL2oIGDMIGApH4wfDELMAkG
|
|
270
|
+
// SIG // A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
|
|
271
|
+
// SIG // BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
|
|
272
|
+
// SIG // dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0
|
|
273
|
+
// SIG // IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEL
|
|
274
|
+
// SIG // BQACBQDqnoWkMCIYDzIwMjQwOTI1MTI1MDQ0WhgPMjAy
|
|
275
|
+
// SIG // NDA5MjYxMjUwNDRaMHQwOgYKKwYBBAGEWQoEATEsMCow
|
|
276
|
+
// SIG // CgIFAOqehaQCAQAwBwIBAAICHWwwBwIBAAICE6YwCgIF
|
|
277
|
+
// SIG // AOqf1yQCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYB
|
|
278
|
+
// SIG // BAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDAN
|
|
279
|
+
// SIG // BgkqhkiG9w0BAQsFAAOCAQEARhzBWyduMRCtBnc/0Bc+
|
|
280
|
+
// SIG // mhC4p8vWOrtkE47AXf+DFKtLkyodgKJ501XC/2p0COkf
|
|
281
|
+
// SIG // JBmMML1zL+062SYHwPThRwpp2VzucTuTVZzo6dd2CN9Z
|
|
282
|
+
// SIG // R2Qw4OjdYnC1z4dvbedsnfbYjh3RkwgT6iWJZfbp9GQz
|
|
283
|
+
// SIG // Y7cgRPnmhwAJRzo75L8XUzECRsEvzP6GquRDW1BHn60S
|
|
284
|
+
// SIG // gpBoSenwP6uoP3vqe1crJE5lUaLBTyGq3kCSd4kJxwMY
|
|
285
|
+
// SIG // HWmIVYcxG5ZtcC2Ehwy/PXCa+Q4l3L6732Q2pskTchkM
|
|
286
|
+
// SIG // giba39+CwgDTCADrURC9Md+9RsXwlDBopBs0aKs1rf8V
|
|
287
|
+
// SIG // fdtg0rr09j9GjzGCBA0wggQJAgEBMIGTMHwxCzAJBgNV
|
|
288
|
+
// SIG // BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
|
|
289
|
+
// SIG // VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
|
|
290
|
+
// SIG // Q29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBU
|
|
291
|
+
// SIG // aW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB9ZkJlLzxxlCM
|
|
292
|
+
// SIG // AAEAAAH1MA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG
|
|
293
|
+
// SIG // 9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkE
|
|
294
|
+
// SIG // MSIEIM+bv43AynWOtyR5OHob34hBPi665WQ1y1/fjOub
|
|
295
|
+
// SIG // pTERMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQg
|
|
296
|
+
// SIG // wdby0hcIdPSEruJHRL+P7YPXkdWJPMOce4+Rk4amjzUw
|
|
297
|
+
// SIG // gZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
|
|
298
|
+
// SIG // V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
|
|
299
|
+
// SIG // A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
|
|
300
|
+
// SIG // VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx
|
|
301
|
+
// SIG // MAITMwAAAfWZCZS88cZQjAABAAAB9TAiBCAUH2w5nWYM
|
|
302
|
+
// SIG // wcrWx65mb+jz/bxnmiOIevhetvNh+NdSKzANBgkqhkiG
|
|
303
|
+
// SIG // 9w0BAQsFAASCAgANCGIHvkrthC0pwj5A51rkMWygkDd0
|
|
304
|
+
// SIG // 12wRtYkoieX6eOEkbO9OFKaAVbEchsc2QuZK3potOB2d
|
|
305
|
+
// SIG // L0SBva2b007ZIBacxZi5CYo2nCECERAwoNbLpYbNwmls
|
|
306
|
+
// SIG // ZleALmNtlP1InzB63E8nU9mFLncKzqcWcnreqVSWNRZ9
|
|
307
|
+
// SIG // ix9Kh9mM/NCC+NYinqE2hLcn4jCAUVpmalBauQxtcdb8
|
|
308
|
+
// SIG // HPEzJmiUV00L0Pit/1g/ateoQ70Ep3+BXHbi0MxDpidu
|
|
309
|
+
// SIG // BQaCdCAaYCSK/Q2kHI0z1Biteg4ia8RhlrgEu1G2YvFk
|
|
310
|
+
// SIG // wVqQCuZ5VXNHhUzdtVUs8OlUmVRI3KNoVs0R4bQXXaZk
|
|
311
|
+
// SIG // /RL9ORXJNw33qRIM1UDXWIepr/C/WnFICyHyRvvbjqwq
|
|
312
|
+
// SIG // vxNiL6VapxoBkfpW783wH5ya0U5BZiQyE8XI1+AFOA4I
|
|
313
|
+
// SIG // 0x3DeMI5Eio/Z4YYyQ+yizZktjwh80H2lF9sCc8qztGF
|
|
314
|
+
// SIG // 0N5VBIeQqXcoP+FABypeEvq9UmOEsveSO7igj1dA8trV
|
|
315
|
+
// SIG // w6TbgISYPNkrGpRerOUN2EyhkWtZnKKfiQM2/EszzBSj
|
|
316
|
+
// SIG // 9mdN2xYp9/UiCZ0Lc1DBeq3ktOas+ezIcFm76VoTnbHm
|
|
317
|
+
// SIG // adXU2hB3zdbWeYA4UlYRf9ucVrqr4seBA/bOMdtWC3or
|
|
318
|
+
// SIG // 7xWJOClc+hfoeJFBxWHsE8O0RPC8hUhQcjeEXg==
|
|
319
|
+
// SIG // End signature block
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/core/performance/performance-profile.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAKjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAqB5E;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAE5C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,8BAA8B,CAAiC;IACvE,OAAO,CAAC,8BAA8B,CAAiC;IACvE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,oCAAoC,CAAuC;IAEnF;;OAEG;IACH,WAAkB,OAAO,IAAI,kBAAkB,CAO9C;IAED,WAAkB,QAAQ,IAAI,0BAA0B,CAEvD;IAED;;OAEG;WACW,kBAAkB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAYhC;;OAEG;WACW,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAW3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoBpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAmB1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B,OAAO,CAAC,MAAM,CAAC,aAAa;IA0B5B,OAAO,CAAC,MAAM,CAAC,MAAM;IAcrB,OAAO,CAAC,MAAM,CAAC,QAAQ;IA2EvB,OAAO,CAAC,MAAM,CAAC,UAAU;IAelB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAKtB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAK9B,OAAO,CAAC,uBAAuB;IAiBxB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IA4C3B,cAAc,IAAI,IAAI;IA0B7B,OAAO,CAAC,GAAG;IAwBX,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,YAAY;IAmEpB,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,iBAAiB;IA+CzB,OAAO,CAAC,yBAAyB;CAgBpC","file":"performance-profile.d.ts","sourcesContent":["import { of, Subscription, throwError } from 'rxjs';\r\nimport { AjaxError, AjaxRequest, AjaxResponse } from 'rxjs/ajax';\r\nimport { filter, map, take } from 'rxjs/operators';\r\nimport { CimResultFormat, CimStream, CimStreamMonitorSetContext, CimStreamOptions, CimStreamRequestData } from '../data/cim-stream';\r\nimport { Http } from '../data/http';\r\nimport { Net } from '../data/net';\r\nimport { PowerShellCommand } from '../data/powershell';\r\nimport { PowerShellStream, PowerShellStreamMonitorSetContext, PowerShellStreamOptions } from '../data/powershell-stream';\r\nimport { WebsocketStreamDataRequestState } from '../data/websocket-stream';\r\nimport { Logging } from '../diagnostics/logging';\r\nimport { RpcObservablePerformanceClient } from '../rpc/performance/rpc-observable-performance-client';\r\nimport { RpcObservablePerformanceConfigClient } from '../rpc/performance/rpc-observable-performance-config-client';\r\nimport { RpcObservablePerformanceServer } from '../rpc/performance/rpc-observable-performance-server';\r\nimport { Rpc } from '../rpc/rpc';\r\nimport {\r\n PerformanceProfileData, PerformanceProfileDataCim, PerformanceProfileDataPowerShell, PerformanceProfileXhrFetch\r\n} from './performance-profile-data';\r\nimport { PerformanceProfileDataType } from './performance-profile-data-type';\r\nimport { PerformanceProfileDatabase } from './performance-profile-database';\r\nimport { PerformanceProfileRecord } from './performance-profile-record';\r\n\r\ninterface PowerShellStreamContext {\r\n id: number;\r\n start: number;\r\n progressStart: number;\r\n progressEnd?: number;\r\n count: number;\r\n itemCount: number;\r\n}\r\n\r\ninterface CimStreamContext {\r\n id: number;\r\n start: number;\r\n progressStart: number;\r\n progressEnd?: number;\r\n count: number;\r\n itemCount: number;\r\n}\r\n\r\n/**\r\n * Performance measurement class.\r\n */\r\nexport class PerformanceProfile {\r\n private static monitorName = 'PerformanceProfile';\r\n private static instance: PerformanceProfile;\r\n\r\n private database: PerformanceProfileDatabase = null;\r\n private rpc: Rpc;\r\n private rpcObservablePerformanceClient: RpcObservablePerformanceClient;\r\n private rpcObservablePerformanceServer: RpcObservablePerformanceServer;\r\n private subscription: Subscription;\r\n private moduleVersionMap: { [index: string]: string } = {};\r\n private rpcObservablePerformanceConfigClient: RpcObservablePerformanceConfigClient;\r\n\r\n /**\r\n * Gets the current PerformanceProfile instance.\r\n */\r\n public static get current(): PerformanceProfile {\r\n if (PerformanceProfile.instance) {\r\n return PerformanceProfile.instance;\r\n }\r\n\r\n PerformanceProfile.instance = new PerformanceProfile();\r\n return PerformanceProfile.instance;\r\n }\r\n\r\n public static get database(): PerformanceProfileDatabase {\r\n return PerformanceProfile.current.database;\r\n }\r\n\r\n /**\r\n * Record Route navigation performance measurement.\r\n */\r\n public static logRouteNavigation(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n target?: string,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.RouteNavigation,\r\n routeNavigation: { url, target }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record Null packet.\r\n */\r\n public static logNull(source: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: 0,\r\n end: 0,\r\n errorMessage: null,\r\n type: PerformanceProfileDataType.Null\r\n };\r\n PerformanceProfile.current.logAnyway(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for PowerShell.\r\n */\r\n private static logXhrFetchPowerShell(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n powershell: PerformanceProfileDataPowerShell,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, powershell }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for CIM.\r\n */\r\n private static logXhrFetchCim(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n cim: PerformanceProfileDataCim,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, cim }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for Batch.\r\n */\r\n private static logXhrFetchBatch(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n batch: PerformanceProfileXhrFetch[],\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status, batch }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record XHR or Fetch performance measurement for general.\r\n */\r\n private static logXhrFetch(\r\n source: string,\r\n start: number,\r\n end: number,\r\n url: string,\r\n method: string,\r\n status: number,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start,\r\n end,\r\n errorMessage,\r\n type: PerformanceProfileDataType.XhrFetch,\r\n xhrFetch: { url, method, status }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record WebSocket performance measurement.\r\n */\r\n private static logWebSocketPowerShell(\r\n source: string,\r\n nodeName: string,\r\n command: string,\r\n context: PowerShellStreamContext,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: context.progressStart,\r\n end: context.progressEnd,\r\n errorMessage,\r\n type: PerformanceProfileDataType.WebSocket,\r\n webSocket: { nodeName, id: context.id, count: context.count, itemCount: context.itemCount, powershell: { command } }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n /**\r\n * Record WebSocket performance measurement.\r\n */\r\n private static logWebSocketCim(\r\n source: string,\r\n nodeName: string,\r\n cim: CimStreamRequestData,\r\n context: CimStreamContext,\r\n errorMessage?: string): void {\r\n const data: PerformanceProfileData = {\r\n source,\r\n start: context.progressStart,\r\n end: context.progressEnd,\r\n errorMessage,\r\n type: PerformanceProfileDataType.WebSocket,\r\n webSocket: { nodeName, id: context.id, count: context.count, itemCount: context.itemCount, cim }\r\n };\r\n PerformanceProfile.current.log(data);\r\n }\r\n\r\n private static powershellApi(\r\n url: string,\r\n body: string,\r\n response: { completed?: string, sessionId?: string; properties?: { completed: string; sessionId: string; }; }): PerformanceProfileDataPowerShell {\r\n const powershell: { command?: string; sessionId?: string; completed?: string } = {};\r\n if (body && body.indexOf('\\\"properties\\\"') > 0) {\r\n powershell.command = PerformanceProfile.getBetween(body, ',\\\"command\\\":\\\"', '\\\",\\\"')\r\n || PerformanceProfile.getBetween(body, '\\\"script\\\":\\\"##', '##:');\r\n }\r\n\r\n powershell.completed = response && response.completed;\r\n if (!powershell.completed) {\r\n powershell.completed = response && response.properties && response.properties.completed;\r\n }\r\n\r\n powershell.sessionId = response && response.sessionId;\r\n if (!powershell.sessionId) {\r\n powershell.sessionId = response && response.properties && response.properties.sessionId;\r\n if (!powershell.sessionId) {\r\n powershell.sessionId = PerformanceProfile.getBetween(url, 'features/powershellApi/pssessions/', '?');\r\n }\r\n }\r\n\r\n return powershell;\r\n }\r\n\r\n private static cimApi(url: string, body: string): PerformanceProfileDataCim {\r\n if (url.indexOf('/features/cim/query') > 0) {\r\n try {\r\n return JSON.parse(body);\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n const namespaceName = PerformanceProfile.getBetween(url, '/namespaces/', '/classes/');\r\n const className = PerformanceProfile.getBetween(url, '/classes/', '/instances');\r\n return { namespace: namespaceName, className: className };\r\n }\r\n\r\n private static batchApi(body: string, response: string): PerformanceProfileXhrFetch[] {\r\n const delimiter = '\\x0d\\x0a';\r\n const batch: PerformanceProfileXhrFetch[] = [];\r\n let last = body.indexOf(delimiter);\r\n let separator = body.substring(0, last + 2);\r\n const bodySegments = body.split(separator);\r\n last = response.indexOf(delimiter);\r\n separator = response.substring(0, last + 2);\r\n const responseSegments = response.split(separator);\r\n if (bodySegments.length === responseSegments.length && bodySegments.length > 1) {\r\n let batchMethod: string;\r\n let batchUrl: string;\r\n let batchBody: string;\r\n let batchStatus: number;\r\n let batchResponse: any;\r\n for (let i = 1; i < bodySegments.length; i++) {\r\n const bodySegment = bodySegments[i];\r\n const responseSegment = responseSegments[i];\r\n const bodySegmentLines = bodySegment.split(delimiter);\r\n let emptyLines = 0;\r\n for (let j = 0; j < bodySegmentLines.length; j++) {\r\n const line = bodySegmentLines[j];\r\n if (line.length > 0) {\r\n if (emptyLines === 1 && !batchUrl) {\r\n // reached header segment.\r\n const query = line.split(' ');\r\n batchMethod = query[0];\r\n batchUrl = query[1];\r\n } else if (emptyLines >= 2 && !batchBody) {\r\n batchBody = line;\r\n }\r\n } else {\r\n emptyLines++;\r\n }\r\n }\r\n\r\n emptyLines = 0;\r\n const responseSegmentLines = responseSegment.split(delimiter);\r\n for (let j = 0; j < responseSegmentLines.length; j++) {\r\n const line = responseSegmentLines[j];\r\n if (line.length > 0) {\r\n if (emptyLines === 1 && !batchStatus) {\r\n // reached header segment.\r\n const query = line.split(' ');\r\n batchStatus = Number(query[1]);\r\n } else if (emptyLines >= 2 && !batchResponse) {\r\n try {\r\n batchResponse = JSON.parse(line);\r\n } catch {\r\n batchResponse = {};\r\n }\r\n }\r\n } else {\r\n emptyLines++;\r\n }\r\n }\r\n\r\n const batchItem: PerformanceProfileXhrFetch = {\r\n url: batchUrl,\r\n status: batchStatus,\r\n method: batchMethod\r\n };\r\n if (batchUrl.indexOf('/features/powershellApi/') > 0) {\r\n batchItem.powershell = PerformanceProfile.powershellApi(batchUrl, batchBody, batchResponse);\r\n } else if (batchUrl.includes('/features/cim/query')) {\r\n batchItem.cim = PerformanceProfile.cimApi(batchUrl, batchBody);\r\n }\r\n\r\n batch.push(batchItem);\r\n }\r\n }\r\n\r\n return batch;\r\n }\r\n\r\n private static getBetween(source: string, begin: string, end: string): string {\r\n let index0 = source.indexOf(begin);\r\n if (index0 < 0) {\r\n return null;\r\n }\r\n\r\n index0 += begin.length;\r\n const index1 = source.indexOf(end, index0);\r\n if (index1 < 0) {\r\n return null;\r\n }\r\n\r\n return source.substring(index0, index1 - index0);\r\n }\r\n\r\n public enable(rpc: Rpc): void {\r\n MsftSme.setPerformanceProfile(true);\r\n this.registerRpc(rpc);\r\n }\r\n\r\n public disable(rpc: Rpc): void {\r\n MsftSme.setPerformanceProfile(false);\r\n this.registerRpc(rpc);\r\n }\r\n\r\n private checkPerformanceProfile(): boolean {\r\n if (!MsftSme.getPerformanceProfile()) {\r\n if (this.database) {\r\n this.database.close();\r\n this.database = null;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!this.database) {\r\n this.database = new PerformanceProfileDatabase();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public registerRpc(rpc: Rpc): void {\r\n if (!this.rpc) {\r\n this.rpc = rpc;\r\n if (MsftSme.isShell()) {\r\n this.subscription = rpc.stateChanged\r\n .pipe(\r\n filter(active => active),\r\n take(1))\r\n .subscribe(() => {\r\n this.rpcObservablePerformanceConfigClient = new RpcObservablePerformanceConfigClient(this.rpc);\r\n this.rpcObservablePerformanceServer = new RpcObservablePerformanceServer(rpc);\r\n this.rpcObservablePerformanceServer.register(\r\n request => {\r\n if (request.type === PerformanceProfileDataType.Null) {\r\n // The packet is null packet and retain only the version data.\r\n if (request.sourceVersion === '0.2.0') {\r\n // this version can support config command when on/off switch was used.\r\n this.moduleVersionMap[request.sourceName] = request.sourceVersion;\r\n }\r\n\r\n return of(null);\r\n }\r\n\r\n if (!this.checkPerformanceProfile()) {\r\n return of(null);\r\n }\r\n\r\n return this.database.write(request).pipe(map(() => null));\r\n });\r\n });\r\n } else {\r\n this.subscription = rpc.stateChanged\r\n .pipe(\r\n filter(active => active),\r\n take(1))\r\n .subscribe(() => {\r\n this.rpcObservablePerformanceClient = new RpcObservablePerformanceClient(rpc);\r\n });\r\n }\r\n }\r\n\r\n this.updateMonitors();\r\n }\r\n\r\n public updateMonitors(): void {\r\n const enabled = this.checkPerformanceProfile();\r\n if (this.rpcObservablePerformanceConfigClient) {\r\n // enable/disable the performance profile data collection to current modules.\r\n // but these must be version 0.2.0.\r\n const items = this.rpc.rpcManager.getCurrentRpcOutbound();\r\n if (items) {\r\n for (const item of items) {\r\n if (this.moduleVersionMap[item.name]) {\r\n this.rpcObservablePerformanceConfigClient.config({ enabled }, item).subscribe();\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (enabled) {\r\n this.registerHttp();\r\n this.registerPowerShellStream();\r\n this.registerCimStream();\r\n } else {\r\n Http.unregisterMonitors(PerformanceProfile.monitorName);\r\n PowerShellStream.unregisterMonitors(PerformanceProfile.monitorName);\r\n CimStream.unregisterMonitors(PerformanceProfile.monitorName);\r\n }\r\n }\r\n\r\n private log(message: PerformanceProfileData): void {\r\n if (!this.checkPerformanceProfile()) {\r\n return;\r\n }\r\n\r\n const self = MsftSme.self();\r\n const record: PerformanceProfileRecord = {\r\n ...message,\r\n ...{ sessionId: self.Init.sessionId, timestamp: Date.now(), moduleName: self.Init.moduleName }\r\n };\r\n\r\n if (!record.errorMessage) {\r\n delete record['errorMessage'];\r\n }\r\n\r\n if (this.rpc && this.rpc.stateActive && this.rpcObservablePerformanceClient) {\r\n // send to shell.\r\n this.rpcObservablePerformanceClient.log(record).subscribe();\r\n } else {\r\n // write to database.\r\n this.database.write(record).subscribe();\r\n }\r\n }\r\n\r\n private logAnyway(message: PerformanceProfileData): void {\r\n const self = MsftSme.self();\r\n const record: PerformanceProfileRecord = {\r\n ...message,\r\n ...{ sessionId: self.Init.sessionId, timestamp: Date.now(), moduleName: self.Init.moduleName }\r\n };\r\n\r\n if (!record.errorMessage) {\r\n delete record['errorMessage'];\r\n }\r\n\r\n if (this.rpc && this.rpc.stateActive && this.rpcObservablePerformanceClient) {\r\n // send to shell.\r\n this.rpcObservablePerformanceClient.log(record).subscribe();\r\n }\r\n }\r\n\r\n private registerHttp(): void {\r\n const startPropertyName = '_start_';\r\n\r\n Http.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (request: AjaxRequest) => {\r\n if (!request) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxRequest object.');\r\n return of(request);\r\n }\r\n\r\n request[startPropertyName] = Date.now();\r\n return of(request);\r\n },\r\n successMonitor: (response: AjaxResponse<any>) => {\r\n if (!response || !response.request || !response.request.url) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxResponse object.');\r\n return of(response);\r\n }\r\n\r\n const request = response.request;\r\n const url = request.url;\r\n const method = request.method;\r\n const end = Date.now();\r\n const start = request[startPropertyName];\r\n if (url.indexOf('/features/powershellApi/') > 0) {\r\n const powershell = PerformanceProfile.powershellApi(url, request.body, response.response);\r\n PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, response.status, powershell);\r\n } else if (url.includes('/features/cim/')) {\r\n const cim = PerformanceProfile.cimApi(url, request.body);\r\n PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, response.status, cim);\r\n } else if (url.indexOf('/api/batch') > 0) {\r\n const batch = PerformanceProfile.batchApi(request.body, response.response);\r\n PerformanceProfile.logXhrFetchBatch('Http', start, end, url, method, response.status, batch);\r\n } else {\r\n PerformanceProfile.logXhrFetch('Http', start, end, url, method, response.status);\r\n }\r\n\r\n return of(response);\r\n },\r\n errorMonitor: (error: AjaxError) => {\r\n if (!error || !error.response || !error.request || !error.request.url) {\r\n Logging.logWarning('Http', 'Http performance profile measurement error to access the AjaxError object.');\r\n return throwError(() => error);\r\n }\r\n\r\n const request = error.request;\r\n const url = request.url;\r\n const method = request.method;\r\n const end = Date.now();\r\n const start = request[startPropertyName];\r\n const message = Net.getErrorMessage(error);\r\n if (url.indexOf('features/powershellApi') > 0) {\r\n const powershell = PerformanceProfile.powershellApi(url, request.body, error.response);\r\n PerformanceProfile.logXhrFetchPowerShell('Http', start, end, url, method, error.status, powershell, message);\r\n } else if (url.includes('/features/cim/')) {\r\n const cim = PerformanceProfile.cimApi(url, request.body);\r\n PerformanceProfile.logXhrFetchCim('Http', start, end, url, method, error.status, cim, message);\r\n } else {\r\n PerformanceProfile.logXhrFetch('Http', start, end, url, method, error.status, message);\r\n }\r\n\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private registerPowerShellStream(): void {\r\n let masterId = 1;\r\n PowerShellStream.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (nodeName: string, command: PowerShellCommand, options?: PowerShellStreamOptions) => {\r\n const start = Date.now();\r\n const id = masterId++;\r\n const context: PowerShellStreamMonitorSetContext<PowerShellStreamContext> = {\r\n nodeName,\r\n command,\r\n options,\r\n data: { id, start, progressStart: start, count: 0, itemCount: 0 }\r\n };\r\n return of(context);\r\n },\r\n successMonitor: (response: any, context: PowerShellStreamMonitorSetContext<PowerShellStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n context.data.count++;\r\n context.data.itemCount += (response && response.results && response.results.length || 1);\r\n PerformanceProfile.logWebSocketPowerShell(\r\n 'PowerShellStream',\r\n context.nodeName,\r\n context.command.command,\r\n context.data);\r\n context.data.progressStart = Date.now();\r\n return of(response);\r\n },\r\n errorMonitor: (error: any, context: PowerShellStreamMonitorSetContext<PowerShellStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n PerformanceProfile.logWebSocketPowerShell(\r\n 'PowerShellStream',\r\n context.nodeName,\r\n context.command.command,\r\n context.data,\r\n Net.getErrorMessage(error));\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private registerCimStream(): void {\r\n let masterId = 1;\r\n CimStream.registerMonitorSet({\r\n name: PerformanceProfile.monitorName,\r\n preMonitor: (\r\n nodeName: string,\r\n requestState: WebsocketStreamDataRequestState,\r\n request: CimStreamRequestData,\r\n format: CimResultFormat,\r\n options?: CimStreamOptions) => {\r\n const start = Date.now();\r\n const id = masterId++;\r\n const context: CimStreamMonitorSetContext<CimStreamContext> = {\r\n nodeName,\r\n requestState,\r\n request,\r\n format,\r\n options,\r\n data: { id, start, progressStart: start, count: 0, itemCount: 0 }\r\n };\r\n return of(context);\r\n },\r\n successMonitor: (response: any, context: CimStreamMonitorSetContext<CimStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n context.data.count++;\r\n context.data.itemCount += (response && response.results && response.results.length || 1);\r\n PerformanceProfile.logWebSocketCim(\r\n 'CimStream',\r\n context.nodeName,\r\n this.removeCimStreamDetailData(context.request),\r\n context.data);\r\n context.data.progressStart = Date.now();\r\n return of(response);\r\n },\r\n errorMonitor: (error: any, context: CimStreamMonitorSetContext<CimStreamContext>) => {\r\n context.data.progressEnd = Date.now();\r\n PerformanceProfile.logWebSocketCim(\r\n 'CimStream',\r\n context.nodeName,\r\n this.removeCimStreamDetailData(context.request),\r\n context.data,\r\n Net.getErrorMessage(error));\r\n return throwError(() => error);\r\n }\r\n });\r\n }\r\n\r\n private removeCimStreamDetailData(request: CimStreamRequestData): CimStreamRequestData {\r\n const skipKeys = ['data', 'keyProperties'];\r\n const requestRaw: any = request;\r\n const keys = Object.keys(requestRaw);\r\n const trimmedKeys = keys.filter(key => skipKeys.indexOf(key) < 0);\r\n if (keys.length !== trimmedKeys.length) {\r\n const copy: any = {};\r\n for (const key of trimmedKeys) {\r\n copy[key] = requestRaw[key];\r\n }\r\n\r\n return copy;\r\n }\r\n\r\n return request;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/core/performance/performance-profile.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAKjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAqB5E;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAE5C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,8BAA8B,CAAiC;IACvE,OAAO,CAAC,8BAA8B,CAAiC;IACvE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,oCAAoC,CAAuC;IAEnF;;OAEG;IACH,WAAkB,OAAO,IAAI,kBAAkB,CAO9C;IAED,WAAkB,QAAQ,IAAI,0BAA0B,CAEvD;IAED;;OAEG;WACW,kBAAkB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAYhC;;OAEG;WACW,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAW3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoBpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAmB1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B,OAAO,CAAC,MAAM,CAAC,aAAa;IA0B5B,OAAO,CAAC,MAAM,CAAC,MAAM;IAcrB,OAAO,CAAC,MAAM,CAAC,QAAQ;IA2EvB,OAAO,CAAC,MAAM,CAAC,UAAU;IAelB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAKtB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAK9B,OAAO,CAAC,uBAAuB;IAiBxB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IA4C3B,cAAc,IAAI,IAAI;IA0B7B,OAAO,CAAC,GAAG;IAwBX,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,YAAY;IAmEpB,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,iBAAiB;IA+CzB,OAAO,CAAC,yBAAyB;CAgBpC","file":"performance-profile.d.ts","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"]}
|