@vc-shell/framework 1.1.44 → 1.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/core/plugins/modularity/loader.ts +120 -74
- package/core/services/app-bar-mobile-buttons-service.ts +1 -1
- package/dist/core/plugins/modularity/loader.d.ts.map +1 -1
- package/dist/core/services/app-bar-mobile-buttons-service.d.ts +1 -1
- package/dist/core/services/app-bar-mobile-buttons-service.d.ts.map +1 -1
- package/dist/framework.js +33347 -295
- package/dist/index.css +1 -9
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/locales/de.json +0 -84
- package/dist/locales/en.json +0 -84
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeRouteResolver.d.ts.map +1 -1
- package/dist/shared/components/change-password-button/change-password-button.vue.d.ts.map +1 -1
- package/dist/shared/components/logout-button/logout-button.vue.d.ts.map +1 -1
- package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +2 -2
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +6 -6
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-hint/vc-hint.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/icons/index.d.ts +0 -26
- package/dist/ui/components/atoms/vc-icon/icons/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts +0 -5
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +0 -20
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue.d.ts +36 -0
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue.d.ts +17 -0
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +16 -2381
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-form/vc-form.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-desktop.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-header/vc-table-header.vue.d.ts.map +1 -1
- package/dist/vendor-boolbase-Cp9L0GAZ.js +25 -0
- package/dist/vendor-cheerio-HN9zIPZn.js +3135 -0
- package/dist/vendor-cheerio-select-5Ry0HvBq.js +306 -0
- package/dist/vendor-core-js-l0sNRNKZ.js +1 -0
- package/dist/vendor-css-select-DRIZ9kfZ.js +966 -0
- package/dist/vendor-css-what-DuPJ1HEF.js +448 -0
- package/dist/vendor-cypress-signalr-mock-BKdBJpdt.js +778 -0
- package/dist/vendor-date-fns-515YWkk-.js +6724 -0
- package/dist/vendor-dom-serializer-nQMsqjYW.js +286 -0
- package/dist/vendor-dom7-CJLPMwy5.js +941 -0
- package/dist/vendor-domelementtype-CjSzQey5.js +53 -0
- package/dist/vendor-domhandler-9z8cS16a.js +484 -0
- package/dist/vendor-dompurify-CRFzu7ib.js +1336 -0
- package/dist/vendor-domutils-Bc-Opz-v.js +981 -0
- package/dist/vendor-entities-Bfsx4xOQ.js +636 -0
- package/dist/vendor-floating-ui-core-wV8u8QP4.js +511 -0
- package/dist/vendor-floating-ui-dom-DDnRPs17.js +706 -0
- package/dist/vendor-floating-ui-utils-OMIFy1QU.js +296 -0
- package/dist/vendor-floating-ui-vue-D-tCDAMm.js +167 -0
- package/dist/vendor-fontsource-plus-jakarta-sans.css +1 -0
- package/dist/vendor-headlessui-vue-CY9FRgTb.js +83 -0
- package/dist/vendor-htmlparser2-B1dhFPOs.js +1426 -0
- package/dist/vendor-iconify-vue-DfRGgyNu.js +1840 -0
- package/dist/vendor-intlify-core-base-BuknsFQe.js +1876 -0
- package/dist/vendor-intlify-message-compiler-CuOQDWx1.js +1508 -0
- package/dist/vendor-intlify-shared-Cz4YRMuC.js +241 -0
- package/dist/vendor-iso-639-1-BJCk9DvE.js +819 -0
- package/dist/vendor-linkify-it-CKUf4vsc.js +830 -0
- package/dist/vendor-linkifyjs-BfyGgbCh.js +1756 -0
- package/dist/vendor-lodash-es-BySUOlwf.js +18333 -0
- package/dist/vendor-markdown-it-D-apazHa.js +6000 -0
- package/dist/vendor-markdown-it-task-lists-rxMVH6Ku.js +131 -0
- package/dist/vendor-mdurl-BNh2CCgT.js +537 -0
- package/dist/vendor-microsoft-applicationinsights-analytics-js-kG3lLg8X.js +1275 -0
- package/dist/vendor-microsoft-applicationinsights-cfgsync-js-C0uQkiQq.js +591 -0
- package/dist/vendor-microsoft-applicationinsights-channel-js-Dyd_PXA3.js +2153 -0
- package/dist/vendor-microsoft-applicationinsights-common-CfmP1_Qr.js +2470 -0
- package/dist/vendor-microsoft-applicationinsights-core-js-Cq4YSEvZ.js +6589 -0
- package/dist/vendor-microsoft-applicationinsights-dependencies-js-C56OBFr4.js +1510 -0
- package/dist/vendor-microsoft-applicationinsights-properties-js-CBJTBawx.js +761 -0
- package/dist/vendor-microsoft-applicationinsights-shims-CX8sJgar.js +70 -0
- package/dist/vendor-microsoft-applicationinsights-web-pim2ri-g.js +667 -0
- package/dist/vendor-microsoft-dynamicproto-js-CFBBUu9p.js +520 -0
- package/dist/vendor-microsoft-signalr-dUnlRsGm.js +3339 -0
- package/dist/vendor-moment-Mki5YqAR.js +5679 -0
- package/dist/vendor-nevware21-ts-async-CLMApQ9E.js +395 -0
- package/dist/vendor-nevware21-ts-utils-e8v8Jty3.js +1160 -0
- package/dist/vendor-normalize-css.css +1 -0
- package/dist/vendor-nth-check-Bx8TxtJt.js +157 -0
- package/dist/vendor-orderedmap-dGG6uMFJ.js +137 -0
- package/dist/vendor-parse5-Bt2NhSzR.js +8432 -0
- package/dist/vendor-parse5-htmlparser2-tree-adapter-BUUtKzf8.js +216 -0
- package/dist/vendor-popperjs-core-Cr2byIky.js +1790 -0
- package/dist/vendor-prettier-B4PaeWRQ.js +98 -0
- package/dist/vendor-prosemirror-commands-BH9lWGpW.js +561 -0
- package/dist/vendor-prosemirror-dropcursor-CeyPcxrA.js +146 -0
- package/dist/vendor-prosemirror-gapcursor-U8UoUJII.js +236 -0
- package/dist/vendor-prosemirror-history-BDaJkvNx.js +414 -0
- package/dist/vendor-prosemirror-keymap-BbWvIWmH.js +128 -0
- package/dist/vendor-prosemirror-markdown-gB0PXBbz.js +866 -0
- package/dist/vendor-prosemirror-model-BZu3WVcD.js +3463 -0
- package/dist/vendor-prosemirror-schema-list-Bl9NpKA7.js +158 -0
- package/dist/vendor-prosemirror-state-BvL9Pxph.js +1003 -0
- package/dist/vendor-prosemirror-tables-17qAnviK.js +2159 -0
- package/dist/vendor-prosemirror-transform-CE9VV3qg.js +2156 -0
- package/dist/vendor-prosemirror-view-CU2WTHT7.js +5811 -0
- package/dist/vendor-punycode-js-iAs5RxMf.js +441 -0
- package/dist/vendor-rope-sequence-BdXDKoGt.js +207 -0
- package/dist/vendor-semver-CVLMK-S4.js +2702 -0
- package/dist/vendor-ssr-window-s6OpKa3O.js +150 -0
- package/dist/vendor-swiper-CdiyNHVt.js +5679 -0
- package/dist/vendor-swiper.css +1 -0
- package/dist/vendor-tanstack-virtual-core-l0sNRNKZ.js +1 -0
- package/dist/vendor-tanstack-vue-virtual-l0sNRNKZ.js +1 -0
- package/dist/vendor-tippy-js-DWFe2TfK.js +1647 -0
- package/dist/vendor-tiptap-core-NfwGfaQk.js +4910 -0
- package/dist/vendor-tiptap-extension-blockquote-jmWBTtsI.js +57 -0
- package/dist/vendor-tiptap-extension-bold-p5frh4ak.js +97 -0
- package/dist/vendor-tiptap-extension-bubble-menu-KUhZSfrs.js +218 -0
- package/dist/vendor-tiptap-extension-bullet-list-COmZRoSB.js +73 -0
- package/dist/vendor-tiptap-extension-code-block-DyTARZss.js +221 -0
- package/dist/vendor-tiptap-extension-code-jVv6CXpX.js +75 -0
- package/dist/vendor-tiptap-extension-document-DssuotYs.js +13 -0
- package/dist/vendor-tiptap-extension-dropcursor-BoO0Qv91.js +26 -0
- package/dist/vendor-tiptap-extension-floating-menu-CrO8CN5w.js +165 -0
- package/dist/vendor-tiptap-extension-gapcursor-KpsWEoMD.js +30 -0
- package/dist/vendor-tiptap-extension-hard-break-ldOzhSvf.js +68 -0
- package/dist/vendor-tiptap-extension-heading-CKz2llX0.js +77 -0
- package/dist/vendor-tiptap-extension-history-DeKZ2VQ9.js +48 -0
- package/dist/vendor-tiptap-extension-horizontal-rule-CAjWRyDS.js +92 -0
- package/dist/vendor-tiptap-extension-image-ZagcEYuk.js +76 -0
- package/dist/vendor-tiptap-extension-italic-CM4xdznY.js +96 -0
- package/dist/vendor-tiptap-extension-link-Z-AMC4Ri.js +414 -0
- package/dist/vendor-tiptap-extension-list-item-BJi5QpXc.js +37 -0
- package/dist/vendor-tiptap-extension-ordered-list-C_TMrfBE.js +97 -0
- package/dist/vendor-tiptap-extension-paragraph-CQw0E0Au.js +39 -0
- package/dist/vendor-tiptap-extension-placeholder-BBNVKfa_.js +66 -0
- package/dist/vendor-tiptap-extension-strike-DUyMYX1Z.js +79 -0
- package/dist/vendor-tiptap-extension-table-cell-CoDIMPA5.js +47 -0
- package/dist/vendor-tiptap-extension-table-header-DvbGHnmw.js +47 -0
- package/dist/vendor-tiptap-extension-table-row-D1uqN5Aj.js +26 -0
- package/dist/vendor-tiptap-extension-table-tKS4MOM4.js +354 -0
- package/dist/vendor-tiptap-extension-text-DtRBhKB2.js +12 -0
- package/dist/vendor-tiptap-extension-underline-DqaSFp_P.js +50 -0
- package/dist/vendor-tiptap-markdown-7-PCADTU.js +1017 -0
- package/dist/vendor-tiptap-pm-l0sNRNKZ.js +1 -0
- package/dist/vendor-tiptap-starter-kit-CDSV_Zuu.js +88 -0
- package/dist/vendor-tiptap-vue-3-DZg2fjq_.js +268 -0
- package/dist/vendor-truncate-html-3qQY0Djo.js +196 -0
- package/dist/vendor-uc-micro-jjt6LQ65.js +23 -0
- package/dist/vendor-vee-validate-i18n-v_gHjRmD.js +154 -0
- package/dist/vendor-vee-validate-rules-DzV3VY3N.js +536 -0
- package/dist/vendor-vue-currency-input-DGAkEFBO.js +545 -0
- package/dist/vendor-vue-demi-l0sNRNKZ.js +1 -0
- package/dist/vendor-vue-devtools-api-DXYR8qBG.js +169 -0
- package/dist/vendor-vue-i18n-Co752uk3.js +1897 -0
- package/dist/vendor-vue3-application-insights-CYWFCr_J.js +119 -0
- package/dist/vendor-vue3-touch-events-BJEAiSa3.js +416 -0
- package/dist/vendor-vuepic-vue-datepicker-BSWXRSiu.js +5019 -0
- package/dist/vendor-vuepic-vue-datepicker.css +1 -0
- package/dist/vendor-vueuse-components-l1bL12mE.js +339 -0
- package/dist/vendor-vueuse-core-DGcJOmwG.js +7743 -0
- package/dist/vendor-vueuse-shared-_mOXsFuM.js +1568 -0
- package/dist/vendor-w3c-keyname-BOm2dtJm.js +121 -0
- package/package.json +22 -11
- package/shared/components/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue +3 -3
- package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +2 -1
- package/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeRouteResolver.ts +1 -0
- package/shared/components/change-password-button/change-password-button.vue +1 -2
- package/shared/components/logout-button/logout-button.vue +1 -2
- package/shared/components/notifications/components/notification-container/index.ts +1 -1
- package/shared/components/notifications/core/notification.ts +1 -1
- package/shared/components/settings-menu-item/settings-menu-item.vue +1 -0
- package/shared/components/sidebar/sidebar.vue +2 -2
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +2 -1
- package/ui/components/atoms/vc-hint/vc-hint.vue +2 -0
- package/ui/components/atoms/vc-icon/composables/use-icon.ts +1 -1
- package/ui/components/atoms/vc-icon/icons/MenuBurgerIcon.vue +18 -14
- package/ui/components/atoms/vc-icon/icons/index.ts +1 -27
- package/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue +7 -11
- package/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue +37 -31
- package/ui/components/atoms/vc-icon/vc-icon-examples.vue +1 -1
- package/ui/components/atoms/vc-icon/vc-icon.stories.ts +4 -5
- package/ui/components/atoms/vc-icon/vc-icon.vue +33 -163
- package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +22 -70
- package/ui/components/atoms/vc-icon/vc-material-icon.vue +28 -59
- package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +2 -3
- package/ui/components/molecules/vc-editor/_internal/vc-editor-button.vue +103 -0
- package/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue +252 -0
- package/ui/components/molecules/vc-editor/vc-editor.stories.ts +1 -4
- package/ui/components/molecules/vc-editor/vc-editor.vue +666 -360
- package/ui/components/molecules/vc-form/vc-form.vue +7 -5
- package/ui/components/molecules/vc-input/vc-input.vue +1 -1
- package/ui/components/molecules/vc-pagination/vc-pagination.vue +4 -17
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarMobileActions.vue +1 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/MenuSidebar.vue +1 -3
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +1 -4
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +1 -3
- package/ui/components/organisms/vc-app/vc-app.backupsb.ts +214 -214
- package/ui/components/organisms/vc-app/vc-app.vue +3 -5
- package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +3 -10
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/mobile/vc-blade-toolbar-mobile.vue +1 -1
- package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-desktop.vue +2 -2
- package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue +2 -2
- package/ui/components/organisms/vc-blade/vc-blade.vue +4 -5
- package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +1 -3
- package/ui/components/organisms/vc-table/_internal/vc-table-header/vc-table-header.vue +1 -2
- package/ui/components/organisms/vc-table/composables/useTableState.ts +5 -5
- package/dist/apl-B2DGVGxc.js +0 -76
- package/dist/asciiarmor-2LVJmxlE.js +0 -34
- package/dist/asn1-jKiBa2Ya.js +0 -95
- package/dist/asterisk-DS281yxp.js +0 -271
- package/dist/brainfuck-C_p9pTT8.js +0 -34
- package/dist/clike-DGTaUp48.js +0 -620
- package/dist/clojure-CCKyeQKf.js +0 -800
- package/dist/cmake-CuaCgAKt.js +0 -28
- package/dist/cobol-BlTKFDRj.js +0 -72
- package/dist/coffeescript-BVCvwO8I.js +0 -179
- package/dist/commonlisp-D_kxz07b.js +0 -75
- package/dist/crystal-D309uH6_.js +0 -217
- package/dist/css-BkF-NPzE.js +0 -1553
- package/dist/cypher-BMq4Fwjl.js +0 -68
- package/dist/d-BZcgY6La.js +0 -127
- package/dist/diff-Cg9d_RX2.js +0 -18
- package/dist/dockerfile-DIy8NleC.js +0 -194
- package/dist/dtd-CtLokQ-U.js +0 -84
- package/dist/dylan-QYeExnWK.js +0 -234
- package/dist/ebnf-DUPDuY4r.js +0 -78
- package/dist/ecl-CiXN-g_D.js +0 -121
- package/dist/eiffel-yQhjl4T1.js +0 -110
- package/dist/elm-CNT9vbN0.js +0 -108
- package/dist/erlang-CFOYdy9e.js +0 -487
- package/dist/factor-DDOC7X6P.js +0 -65
- package/dist/fcl-CPC2WYrI.js +0 -103
- package/dist/forth-BmxRyE9S.js +0 -60
- package/dist/fortran-9bvPyrOW.js +0 -442
- package/dist/gas-cpmYfFX2.js +0 -183
- package/dist/gherkin-CJuwpceU.js +0 -34
- package/dist/groovy-DZeT_VM-.js +0 -146
- package/dist/haskell-Bvt3Qq1t.js +0 -375
- package/dist/haxe-70NVW1pR.js +0 -359
- package/dist/http-D9LttvKF.js +0 -44
- package/dist/idl-B6TRFYjl.js +0 -947
- package/dist/index-4DWvmoYg.js +0 -71
- package/dist/index-52o7mJaX.js +0 -156
- package/dist/index-B0KatioT.js +0 -98
- package/dist/index-BP3W8zuk.js +0 -268
- package/dist/index-BykT5L1A.js +0 -148134
- package/dist/index-CfXo9hsG.js +0 -75
- package/dist/index-Ch37pBUt.js +0 -308
- package/dist/index-D2KGkAYT.js +0 -93
- package/dist/index-D83zQom_.js +0 -58
- package/dist/index-DuQrVLbu.js +0 -134
- package/dist/index-_fdMid5h.js +0 -288
- package/dist/index-a1wO-owY.js +0 -545
- package/dist/index-crMpNSFe.js +0 -611
- package/dist/index-dmBRpHHY.js +0 -137
- package/dist/index-kBdB14Fz.js +0 -341
- package/dist/index-uBhy41le.js +0 -249
- package/dist/index-zZrijNsr.js +0 -299
- package/dist/javascript-C2yteZeJ.js +0 -691
- package/dist/jinja2-DnB6dQmV.js +0 -154
- package/dist/julia-DpvXAuO6.js +0 -241
- package/dist/livescript-CanGTf8u.js +0 -272
- package/dist/lua-XplVlWi_.js +0 -217
- package/dist/mathematica-jaRHnSxC.js +0 -35
- package/dist/mbox-BctzC1hL.js +0 -76
- package/dist/mirc-CFBPAOaF.js +0 -72
- package/dist/mllike-BSnXJBGA.js +0 -272
- package/dist/modelica-vUgVs--1.js +0 -93
- package/dist/mscgen-Cpl0NYLN.js +0 -104
- package/dist/mumps-CQoS1kWX.js +0 -25
- package/dist/nginx-zDPm3Z74.js +0 -89
- package/dist/nsis-fePjrhq7.js +0 -62
- package/dist/ntriples-CsNjv2QF.js +0 -79
- package/dist/octave-C8PmmSRH.js +0 -143
- package/dist/oz-Ce8aN8oE.js +0 -151
- package/dist/pascal-De0D6mP7.js +0 -77
- package/dist/perl-B4bSCe1C.js +0 -915
- package/dist/pig-D24Z8EXi.js +0 -54
- package/dist/powershell-DkYVfTzP.js +0 -249
- package/dist/properties-Dn9wna3M.js +0 -26
- package/dist/protobuf-BPIjwpzm.js +0 -49
- package/dist/pug-CwAQJzGR.js +0 -248
- package/dist/puppet-nyd4dhjf.js +0 -45
- package/dist/python-BkR3uSy8.js +0 -313
- package/dist/q-DXjKs-tC.js +0 -83
- package/dist/r-LKEuhEGI.js +0 -104
- package/dist/rpm-IznJm2Xc.js +0 -57
- package/dist/ruby-CcYfvIk6.js +0 -228
- package/dist/sas-7E8yHoCW.js +0 -105
- package/dist/scheme-DjibxsNh.js +0 -124
- package/dist/shared/modules/dynamic/components/fields/storybook/common/args.d.ts +0 -113
- package/dist/shared/modules/dynamic/components/fields/storybook/common/args.d.ts.map +0 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/common/templates.d.ts +0 -3
- package/dist/shared/modules/dynamic/components/fields/storybook/common/templates.d.ts.map +0 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts +0 -102
- package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts.map +0 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/utils/sourceHighlighter.d.ts +0 -4
- package/dist/shared/modules/dynamic/components/fields/storybook/utils/sourceHighlighter.d.ts.map +0 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/utils/sourceTransform.d.ts +0 -3
- package/dist/shared/modules/dynamic/components/fields/storybook/utils/sourceTransform.d.ts.map +0 -1
- package/dist/shell-C0C2sNA_.js +0 -182
- package/dist/sieve-Bwz7vjP5.js +0 -72
- package/dist/simple-mode-B0dvCdAA.js +0 -89
- package/dist/smalltalk-Bhddl2pB.js +0 -48
- package/dist/solr-BNlsLglM.js +0 -41
- package/dist/sparql-FarWu_Gb.js +0 -197
- package/dist/spreadsheet-C-cy4P5N.js +0 -49
- package/dist/sql-CfG5lQ3l.js +0 -282
- package/dist/stex-Du4h4KAU.js +0 -129
- package/dist/stylus-CAdqWld3.js +0 -250
- package/dist/swift-DSxqR9R6.js +0 -230
- package/dist/tcl-xfoLljhY.js +0 -81
- package/dist/textile-D1AWE-pc.js +0 -295
- package/dist/tiddlywiki-5wqsXtSk.js +0 -155
- package/dist/tiki-__Kn3CeS.js +0 -181
- package/dist/toml-BHiuTcfn.js +0 -49
- package/dist/troff-D2UO-fKf.js +0 -35
- package/dist/ttcn-Bsa4sfRm.js +0 -123
- package/dist/ttcn-cfg-Bac_acMi.js +0 -88
- package/dist/turtle-xwJUxoPV.js +0 -80
- package/dist/ui/components/atoms/vc-icon/icons/AppWindowIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/AppWindowIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ArrowLeftIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ArrowLeftIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ArrowRightIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ArrowRightIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/BellIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/BellIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ChevronDownIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ChevronDownIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ChevronLeftIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ChevronLeftIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ChevronRightIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ChevronRightIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ChevronUpIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ChevronUpIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/CircleDotsIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/CircleDotsIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/CrossSignIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/CrossSignIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/DoubleArrowLeftIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/DoubleArrowLeftIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/DoubleArrowRightIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/DoubleArrowRightIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/FulfillmentCentersIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/FulfillmentCentersIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/GridDotsIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/GridDotsIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/LogoutIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/LogoutIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/MinusSignIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/MinusSignIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/OffersIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/OffersIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/OrdersIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/OrdersIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/PeopleIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/PeopleIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/PlusSignIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/PlusSignIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ProductsIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ProductsIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ProfileIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ProfileIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/SearchIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/SearchIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/SettingsBoltIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/SettingsBoltIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/ShoppingCardIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/ShoppingCardIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/VendorSwitchIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/VendorSwitchIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/icons/VertDotsIcon.vue.d.ts +0 -7
- package/dist/ui/components/atoms/vc-icon/icons/VertDotsIcon.vue.d.ts.map +0 -1
- package/dist/vb-c2kQGd6-.js +0 -74
- package/dist/vbscript-1f_Dhg5H.js +0 -324
- package/dist/velocity-DJd0pTTC.js +0 -96
- package/dist/verilog-CiS1jyi5.js +0 -262
- package/dist/vhdl-T9HkrbI2.js +0 -106
- package/dist/webidl-CjfDENEo.js +0 -155
- package/dist/xquery-BUQdORAS.js +0 -422
- package/dist/yacas-C0absKBh.js +0 -73
- package/dist/z80-Pki2zAjW.js +0 -61
- package/shared/modules/dynamic/components/fields/storybook/Button.stories.ts +0 -186
- package/shared/modules/dynamic/components/fields/storybook/Card.stories.ts +0 -175
- package/shared/modules/dynamic/components/fields/storybook/Checkbox.stories.ts +0 -185
- package/shared/modules/dynamic/components/fields/storybook/ContentField.stories.ts +0 -245
- package/shared/modules/dynamic/components/fields/storybook/EditorField.stories.ts +0 -192
- package/shared/modules/dynamic/components/fields/storybook/Fieldset.stories.ts +0 -347
- package/shared/modules/dynamic/components/fields/storybook/GalleryField.stories.ts +0 -239
- package/shared/modules/dynamic/components/fields/storybook/ImageField.stories.ts +0 -186
- package/shared/modules/dynamic/components/fields/storybook/InputCurrency.stories.ts +0 -281
- package/shared/modules/dynamic/components/fields/storybook/InputField.stories.ts +0 -312
- package/shared/modules/dynamic/components/fields/storybook/MultivalueField.stories.ts +0 -361
- package/shared/modules/dynamic/components/fields/storybook/RadioButtonGroup.stories.ts +0 -224
- package/shared/modules/dynamic/components/fields/storybook/RatingField.stories.ts +0 -131
- package/shared/modules/dynamic/components/fields/storybook/SelectField.stories.ts +0 -666
- package/shared/modules/dynamic/components/fields/storybook/StatusField.stories.ts +0 -202
- package/shared/modules/dynamic/components/fields/storybook/SwitchField.stories.ts +0 -178
- package/shared/modules/dynamic/components/fields/storybook/TextareaField.stories.ts +0 -203
- package/shared/modules/dynamic/components/fields/storybook/VideoField.stories.ts +0 -92
- package/shared/modules/dynamic/components/fields/storybook/common/args.ts +0 -130
- package/shared/modules/dynamic/components/fields/storybook/common/templates.ts +0 -8
- package/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.ts +0 -54
- package/shared/modules/dynamic/components/fields/storybook/utils/sourceHighlighter.ts +0 -16
- package/shared/modules/dynamic/components/fields/storybook/utils/sourceTransform.ts +0 -41
- package/ui/components/atoms/vc-icon/icons/AppWindowIcon.vue +0 -15
- package/ui/components/atoms/vc-icon/icons/ArrowLeftIcon.vue +0 -20
- package/ui/components/atoms/vc-icon/icons/ArrowRightIcon.vue +0 -13
- package/ui/components/atoms/vc-icon/icons/BellIcon.vue +0 -14
- package/ui/components/atoms/vc-icon/icons/ChevronDownIcon.vue +0 -13
- package/ui/components/atoms/vc-icon/icons/ChevronLeftIcon.vue +0 -13
- package/ui/components/atoms/vc-icon/icons/ChevronRightIcon.vue +0 -13
- package/ui/components/atoms/vc-icon/icons/ChevronUpIcon.vue +0 -13
- package/ui/components/atoms/vc-icon/icons/CircleDotsIcon.vue +0 -16
- package/ui/components/atoms/vc-icon/icons/CrossSignIcon.vue +0 -20
- package/ui/components/atoms/vc-icon/icons/DoubleArrowLeftIcon.vue +0 -14
- package/ui/components/atoms/vc-icon/icons/DoubleArrowRightIcon.vue +0 -14
- package/ui/components/atoms/vc-icon/icons/FulfillmentCentersIcon.vue +0 -27
- package/ui/components/atoms/vc-icon/icons/GridDotsIcon.vue +0 -22
- package/ui/components/atoms/vc-icon/icons/LogoutIcon.vue +0 -13
- package/ui/components/atoms/vc-icon/icons/MinusSignIcon.vue +0 -14
- package/ui/components/atoms/vc-icon/icons/OffersIcon.vue +0 -23
- package/ui/components/atoms/vc-icon/icons/OrdersIcon.vue +0 -19
- package/ui/components/atoms/vc-icon/icons/PeopleIcon.vue +0 -21
- package/ui/components/atoms/vc-icon/icons/PlusSignIcon.vue +0 -20
- package/ui/components/atoms/vc-icon/icons/ProductsIcon.vue +0 -23
- package/ui/components/atoms/vc-icon/icons/ProfileIcon.vue +0 -18
- package/ui/components/atoms/vc-icon/icons/SearchIcon.vue +0 -14
- package/ui/components/atoms/vc-icon/icons/SettingsBoltIcon.vue +0 -21
- package/ui/components/atoms/vc-icon/icons/ShoppingCardIcon.vue +0 -16
- package/ui/components/atoms/vc-icon/icons/VendorSwitchIcon.vue +0 -26
- package/ui/components/atoms/vc-icon/icons/VertDotsIcon.vue +0 -19
|
@@ -0,0 +1,1510 @@
|
|
|
1
|
+
import { d as dynamicProto } from './vendor-microsoft-dynamicproto-js-CFBBUu9p.js';
|
|
2
|
+
import { G as urlGetAbsoluteUrl, I as dataSanitizeUrl, J as urlGetCompleteUrl, d as dateTimeUtilsDuration, K as Extensions, m as msToTimeSpan, L as correlationIdCanIncludeCorrelationHeader, y as RequestHeaders, o as PropertiesPluginIdentifier, e as createTelemetryItem, R as RemoteDependencyData, D as DisabledPropertyName, w as isInternalApplicationInsightsEndpoint, N as dateTimeUtilsNow, p as createDistributedTraceContextFromTrace, O as correlationIdGetCorrelationContext } from './vendor-microsoft-applicationinsights-common-CfmP1_Qr.js';
|
|
3
|
+
import { T as mathRound, P as objKeys, i as isNullOrUndefined, d as arrForEach, x as objForEachKey, w as isString, D as isNumber, S as objFreeze, B as getGlobal, c as isWebWorker, e as dumpObj, N as strSubstr, af as strSplit, r as isFunction, a as getPerformance, s as scheduleTimeout, h as strIndexOf, K as strTrim } from './vendor-nevware21-ts-utils-e8v8Jty3.js';
|
|
4
|
+
import { U as normalizeJsName, m as mergeEvtNamespace, e as createUniqueNamespace, g as getLocation, o as onConfigChange, i as createProcessTelemetryContext, V as InstrumentFunc, W as formatTraceParent, X as createTraceParent, _ as _throwInternal, w as isXhrSupported, E as getIEVersion, a as getExceptionName, t as generateW3CId, Y as InstrumentProto, B as BaseTelemetryPlugin, j as eventOn } from './vendor-microsoft-applicationinsights-core-js-Cq4YSEvZ.js';
|
|
5
|
+
import { _ as __extendsFn, c as strShimPrototype, a as __assignFn } from './vendor-microsoft-applicationinsights-shims-CX8sJgar.js';
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.3.9
|
|
9
|
+
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// ###################################################################################################################################################
|
|
14
|
+
// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###
|
|
15
|
+
// ###################################################################################################################################################
|
|
16
|
+
// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)
|
|
17
|
+
// as when using "short" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.
|
|
18
|
+
var STR_DURATION = "duration";
|
|
19
|
+
var STR_PROPERTIES = "properties";
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.3.9
|
|
23
|
+
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// @skip-file-minify
|
|
28
|
+
// ##############################################################
|
|
29
|
+
// AUTO GENERATED FILE: This file is Auto Generated during build.
|
|
30
|
+
// ##############################################################
|
|
31
|
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
32
|
+
// Note: DON'T Export these const from the package as we are still targeting ES5 which can result in a mutable variables that someone could change!!!
|
|
33
|
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
34
|
+
var _DYN_REQUEST_URL = "requestUrl"; // Count: 11
|
|
35
|
+
var _DYN_LENGTH = "length"; // Count: 8
|
|
36
|
+
var _DYN_TRACE_ID = "traceID"; // Count: 8
|
|
37
|
+
var _DYN_SPAN_ID = "spanID"; // Count: 8
|
|
38
|
+
var _DYN_TRACE_FLAGS = "traceFlags"; // Count: 11
|
|
39
|
+
var _DYN_CONTEXT = "context"; // Count: 5
|
|
40
|
+
var _DYN_ABORTED = "aborted"; // Count: 6
|
|
41
|
+
var _DYN__ADD_HOOK = "_addHook"; // Count: 4
|
|
42
|
+
var _DYN_CORE = "core"; // Count: 7
|
|
43
|
+
var _DYN_INCLUDE_CORRELATION_0 = "includeCorrelationHeaders"; // Count: 4
|
|
44
|
+
var _DYN_GET_ABSOLUTE_URL = "getAbsoluteUrl"; // Count: 3
|
|
45
|
+
var _DYN_HEADERS = "headers"; // Count: 7
|
|
46
|
+
var _DYN_REQUEST_HEADERS = "requestHeaders"; // Count: 13
|
|
47
|
+
var _DYN_SET_REQUEST_HEADER = "setRequestHeader"; // Count: 3
|
|
48
|
+
var _DYN_TRACK_DEPENDENCY_DAT1 = "trackDependencyDataInternal"; // Count: 2
|
|
49
|
+
var _DYN_START_TIME = "startTime"; // Count: 5
|
|
50
|
+
var _DYN_TO_LOWER_CASE = "toLowerCase"; // Count: 6
|
|
51
|
+
var _DYN_ENABLE_REQUEST_HEADE2 = "enableRequestHeaderTracking"; // Count: 3
|
|
52
|
+
var _DYN_ENABLE_AJAX_ERROR_ST3 = "enableAjaxErrorStatusText"; // Count: 2
|
|
53
|
+
var _DYN_ENABLE_AJAX_PERF_TRA4 = "enableAjaxPerfTracking"; // Count: 2
|
|
54
|
+
var _DYN_MAX_AJAX_CALLS_PER_V5 = "maxAjaxCallsPerView"; // Count: 2
|
|
55
|
+
var _DYN_EXCLUDE_REQUEST_FROM6 = "excludeRequestFromAutoTrackingPatterns"; // Count: 2
|
|
56
|
+
var _DYN_DISABLE_AJAX_TRACKIN7 = "disableAjaxTracking"; // Count: 3
|
|
57
|
+
var _DYN_AJAX_PERF_LOOKUP_DEL8 = "ajaxPerfLookupDelay"; // Count: 2
|
|
58
|
+
var _DYN_DISABLE_FETCH_TRACKI9 = "disableFetchTracking"; // Count: 2
|
|
59
|
+
var _DYN_ENABLE_RESPONSE_HEAD10 = "enableResponseHeaderTracking"; // Count: 2
|
|
60
|
+
var _DYN_STATUS = "status"; // Count: 11
|
|
61
|
+
var _DYN_STATUS_TEXT = "statusText"; // Count: 7
|
|
62
|
+
var _DYN_HEADER_MAP = "headerMap"; // Count: 5
|
|
63
|
+
var _DYN_REQUEST_SENT_TIME = "requestSentTime"; // Count: 9
|
|
64
|
+
var _DYN_GET_TRACE_ID = "getTraceId"; // Count: 3
|
|
65
|
+
var _DYN_GET_TRACE_FLAGS = "getTraceFlags"; // Count: 3
|
|
66
|
+
var _DYN_METHOD = "method"; // Count: 8
|
|
67
|
+
var _DYN_ERROR_STATUS_TEXT = "errorStatusText"; // Count: 3
|
|
68
|
+
var _DYN_STATE_CHANGE_ATTACHE11 = "stateChangeAttached"; // Count: 2
|
|
69
|
+
var _DYN_RESPONSE_TEXT = "responseText"; // Count: 6
|
|
70
|
+
var _DYN_RESPONSE_FINISHED_TI12 = "responseFinishedTime"; // Count: 7
|
|
71
|
+
var _DYN__CREATE_TRACK_ITEM = "CreateTrackItem"; // Count: 3
|
|
72
|
+
var _DYN_GET_ALL_RESPONSE_HEA13 = "getAllResponseHeaders"; // Count: 2
|
|
73
|
+
var _DYN_GET_PART_APROPS = "getPartAProps"; // Count: 3
|
|
74
|
+
var _DYN_PERF_MARK = "perfMark"; // Count: 4
|
|
75
|
+
var _DYN_PERF_TIMING = "perfTiming"; // Count: 3
|
|
76
|
+
var _DYN_AJAX_DIAGNOSTICS_MES14 = "ajaxDiagnosticsMessage"; // Count: 3
|
|
77
|
+
var _DYN_CORRELATION_CONTEXT = "correlationContext"; // Count: 3
|
|
78
|
+
var _DYN_AJAX_TOTAL_DURATION = "ajaxTotalDuration"; // Count: 3
|
|
79
|
+
var _DYN_EVENT_TRACE_CTX = "eventTraceCtx"; // Count: 3
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.3.9
|
|
83
|
+
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
/** @ignore */
|
|
87
|
+
function _calcPerfDuration(resourceEntry, start, end) {
|
|
88
|
+
var result = 0;
|
|
89
|
+
var from = resourceEntry[start];
|
|
90
|
+
var to = resourceEntry[end];
|
|
91
|
+
if (from && to) {
|
|
92
|
+
result = dateTimeUtilsDuration(from, to);
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
/** @ignore */
|
|
97
|
+
function _setPerfDuration(props, name, resourceEntry, start, end) {
|
|
98
|
+
var result = 0;
|
|
99
|
+
var value = _calcPerfDuration(resourceEntry, start, end);
|
|
100
|
+
if (value) {
|
|
101
|
+
result = _setPerfValue(props, name, msToTimeSpan(value));
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
/** @ignore */
|
|
106
|
+
function _setPerfValue(props, name, value) {
|
|
107
|
+
var strPerf = "ajaxPerf";
|
|
108
|
+
var result = 0;
|
|
109
|
+
if (props && name && value) {
|
|
110
|
+
var perfData = props[strPerf] = (props[strPerf] || {});
|
|
111
|
+
perfData[name] = value;
|
|
112
|
+
result = 1;
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
/** @ignore */
|
|
117
|
+
function _populatePerfData(ajaxData, dependency) {
|
|
118
|
+
/*
|
|
119
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API
|
|
120
|
+
* | -startTime
|
|
121
|
+
* | -redirectStart
|
|
122
|
+
* | | -redirectEnd
|
|
123
|
+
* | | | -fetchStart
|
|
124
|
+
* | | | | -domainLookupStart
|
|
125
|
+
* | | | | |- domainLookupEnd
|
|
126
|
+
* | | | | | | -connectStart
|
|
127
|
+
* | | | | | | | -secureConnectionStart
|
|
128
|
+
* | | | | | | | | -connectEnd
|
|
129
|
+
* | | | | | | | | | -requestStart
|
|
130
|
+
* | | | | | | | | | | | -responseStart
|
|
131
|
+
* | | | | | | | | | | | | | -responseEnd
|
|
132
|
+
* +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+
|
|
133
|
+
* |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |
|
|
134
|
+
* |-------------------networkConnect----------------|
|
|
135
|
+
* | |---------sentRequest--------|
|
|
136
|
+
* |------------------------------------perfTotal-----------------------------------|
|
|
137
|
+
*/
|
|
138
|
+
var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];
|
|
139
|
+
var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};
|
|
140
|
+
var propsSet = 0;
|
|
141
|
+
var strName = "name";
|
|
142
|
+
var strStart = "Start";
|
|
143
|
+
var strEnd = "End";
|
|
144
|
+
var strDomainLookup = "domainLookup";
|
|
145
|
+
var strConnect = "connect";
|
|
146
|
+
var strRedirect = "redirect";
|
|
147
|
+
var strRequest = "request";
|
|
148
|
+
var strResponse = "response";
|
|
149
|
+
var strStartTime = "startTime";
|
|
150
|
+
var strDomainLookupStart = strDomainLookup + strStart;
|
|
151
|
+
var strDomainLookupEnd = strDomainLookup + strEnd;
|
|
152
|
+
var strConnectStart = strConnect + strStart;
|
|
153
|
+
var strConnectEnd = strConnect + strEnd;
|
|
154
|
+
var strRequestStart = strRequest + strStart;
|
|
155
|
+
var strRequestEnd = strRequest + strEnd;
|
|
156
|
+
var strResponseStart = strResponse + strStart;
|
|
157
|
+
var strResponseEnd = strResponse + strEnd;
|
|
158
|
+
var strRedirectStart = strRedirect + strStart;
|
|
159
|
+
var strRedirectEnd = strRedirect = strEnd;
|
|
160
|
+
var strTransferSize = "transferSize";
|
|
161
|
+
var strEncodedBodySize = "encodedBodySize";
|
|
162
|
+
var strDecodedBodySize = "decodedBodySize";
|
|
163
|
+
var strServerTiming = "serverTiming";
|
|
164
|
+
if (resourceEntry) {
|
|
165
|
+
// redirect
|
|
166
|
+
propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);
|
|
167
|
+
// domainLookup
|
|
168
|
+
propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);
|
|
169
|
+
// connect
|
|
170
|
+
propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);
|
|
171
|
+
// request
|
|
172
|
+
propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);
|
|
173
|
+
// response
|
|
174
|
+
propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);
|
|
175
|
+
// Network connection time
|
|
176
|
+
propsSet |= _setPerfDuration(props, "networkConnect", resourceEntry, strStartTime, strConnectEnd);
|
|
177
|
+
// Sent Request
|
|
178
|
+
propsSet |= _setPerfDuration(props, "sentRequest", resourceEntry, strRequestStart, strResponseEnd);
|
|
179
|
+
// PerfTotal / Duration
|
|
180
|
+
var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];
|
|
181
|
+
if (!duration) {
|
|
182
|
+
duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;
|
|
183
|
+
}
|
|
184
|
+
propsSet |= _setPerfValue(props, STR_DURATION, duration);
|
|
185
|
+
propsSet |= _setPerfValue(props, "perfTotal", duration);
|
|
186
|
+
var serverTiming = resourceEntry[strServerTiming];
|
|
187
|
+
if (serverTiming) {
|
|
188
|
+
var server_1 = {};
|
|
189
|
+
arrForEach(serverTiming, function (value, idx) {
|
|
190
|
+
var name = normalizeJsName(value[strName] || "" + idx);
|
|
191
|
+
var newValue = server_1[name] || {};
|
|
192
|
+
objForEachKey(value, function (key, val) {
|
|
193
|
+
if (key !== strName && isString(val) || isNumber(val)) {
|
|
194
|
+
if (newValue[key]) {
|
|
195
|
+
val = newValue[key] + ";" + val;
|
|
196
|
+
}
|
|
197
|
+
if (val || !isString(val)) {
|
|
198
|
+
// Only set the value if it has a value and it's not an empty string
|
|
199
|
+
newValue[key] = val;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
server_1[name] = newValue;
|
|
204
|
+
});
|
|
205
|
+
propsSet |= _setPerfValue(props, strServerTiming, server_1);
|
|
206
|
+
}
|
|
207
|
+
propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);
|
|
208
|
+
propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);
|
|
209
|
+
propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {
|
|
213
|
+
propsSet |= _setPerfValue(props, "missing", ajaxData.perfAttempts);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (propsSet) {
|
|
217
|
+
dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
var XHRMonitoringState = /** @class */ (function () {
|
|
221
|
+
function XHRMonitoringState() {
|
|
222
|
+
var self = this;
|
|
223
|
+
self.openDone = false;
|
|
224
|
+
self.setRequestHeaderDone = false;
|
|
225
|
+
self.sendDone = false;
|
|
226
|
+
self.abortDone = false;
|
|
227
|
+
// <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>
|
|
228
|
+
self[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = false;
|
|
229
|
+
}
|
|
230
|
+
return XHRMonitoringState;
|
|
231
|
+
}());
|
|
232
|
+
var ajaxRecord = /** @class */ (function () {
|
|
233
|
+
function ajaxRecord(traceId, spanId, logger, traceCtx) {
|
|
234
|
+
var self = this;
|
|
235
|
+
var _logger = logger;
|
|
236
|
+
var strResponseText = "responseText";
|
|
237
|
+
// Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of
|
|
238
|
+
// this.XXXX = null
|
|
239
|
+
self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;
|
|
240
|
+
self.completed = false;
|
|
241
|
+
self.requestHeadersSize = null;
|
|
242
|
+
self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;
|
|
243
|
+
self.responseReceivingDuration = null;
|
|
244
|
+
self.callbackDuration = null;
|
|
245
|
+
self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;
|
|
246
|
+
self[_DYN_ABORTED /* @min:%2eaborted */] = 0;
|
|
247
|
+
self.pageUrl = null;
|
|
248
|
+
self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;
|
|
249
|
+
self.requestSize = 0;
|
|
250
|
+
self[_DYN_METHOD /* @min:%2emethod */] = null;
|
|
251
|
+
self[_DYN_STATUS /* @min:%2estatus */] = null;
|
|
252
|
+
self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;
|
|
253
|
+
self.responseStartedTime = null;
|
|
254
|
+
self[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = null;
|
|
255
|
+
self.callbackFinishedTime = null;
|
|
256
|
+
self.endTime = null;
|
|
257
|
+
self.xhrMonitoringState = new XHRMonitoringState();
|
|
258
|
+
self.clientFailure = 0;
|
|
259
|
+
self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;
|
|
260
|
+
self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;
|
|
261
|
+
self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();
|
|
262
|
+
if (traceCtx) {
|
|
263
|
+
self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = {
|
|
264
|
+
traceId: traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),
|
|
265
|
+
spanId: traceCtx.getSpanId(),
|
|
266
|
+
traceFlags: traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]()
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;
|
|
271
|
+
}
|
|
272
|
+
dynamicProto(ajaxRecord, self, function (self) {
|
|
273
|
+
self.getAbsoluteUrl = function () {
|
|
274
|
+
return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;
|
|
275
|
+
};
|
|
276
|
+
self.getPathName = function () {
|
|
277
|
+
return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;
|
|
278
|
+
};
|
|
279
|
+
self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {
|
|
280
|
+
var _a;
|
|
281
|
+
// round to 3 decimal points
|
|
282
|
+
self.ajaxTotalDuration = mathRound(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;
|
|
283
|
+
if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {
|
|
284
|
+
return null;
|
|
285
|
+
}
|
|
286
|
+
var dependency = (_a = {
|
|
287
|
+
id: "|" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + self[_DYN_SPAN_ID /* @min:%2espanID */],
|
|
288
|
+
target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](),
|
|
289
|
+
name: self.getPathName(),
|
|
290
|
+
type: ajaxType,
|
|
291
|
+
startTime: null,
|
|
292
|
+
duration: self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],
|
|
293
|
+
success: (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,
|
|
294
|
+
responseCode: (+(self[_DYN_STATUS /* @min:%2estatus */]))
|
|
295
|
+
},
|
|
296
|
+
_a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },
|
|
297
|
+
_a);
|
|
298
|
+
var props = dependency[STR_PROPERTIES];
|
|
299
|
+
if (self[_DYN_ABORTED /* @min:%2eaborted */]) {
|
|
300
|
+
props[_DYN_ABORTED /* @min:%2eaborted */] = true;
|
|
301
|
+
}
|
|
302
|
+
if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {
|
|
303
|
+
// Set the correct dependency start time
|
|
304
|
+
dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();
|
|
305
|
+
dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);
|
|
306
|
+
}
|
|
307
|
+
// Add Ajax perf details if available
|
|
308
|
+
_populatePerfData(self, dependency);
|
|
309
|
+
if (enableRequestHeaderTracking) {
|
|
310
|
+
if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {
|
|
311
|
+
props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (getResponse) {
|
|
315
|
+
var response = getResponse();
|
|
316
|
+
if (response) {
|
|
317
|
+
// enrich dependency target with correlation context from the server
|
|
318
|
+
var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];
|
|
319
|
+
if (correlationContext) {
|
|
320
|
+
dependency.correlationContext = /* dependency.target + " | " + */ correlationContext;
|
|
321
|
+
}
|
|
322
|
+
if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {
|
|
323
|
+
if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {
|
|
324
|
+
props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {
|
|
328
|
+
if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {
|
|
329
|
+
var responseType = response.type;
|
|
330
|
+
if (responseType === "" || responseType === "text") {
|
|
331
|
+
props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + " - " + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];
|
|
332
|
+
}
|
|
333
|
+
if (responseType === "json") {
|
|
334
|
+
props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + " - " + JSON.stringify(response.response) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {
|
|
338
|
+
props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || "";
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
return dependency;
|
|
344
|
+
};
|
|
345
|
+
self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {
|
|
346
|
+
var partA = null;
|
|
347
|
+
var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];
|
|
348
|
+
if (traceCtx && (traceCtx.traceId || traceCtx.spanId)) {
|
|
349
|
+
partA = {};
|
|
350
|
+
var traceExt = partA[Extensions.TraceExt] = {
|
|
351
|
+
traceID: traceCtx.traceId,
|
|
352
|
+
parentID: traceCtx.spanId
|
|
353
|
+
};
|
|
354
|
+
if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {
|
|
355
|
+
traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return partA;
|
|
359
|
+
};
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.
|
|
363
|
+
// Removed Stub for ajaxRecord.prototype.getPathName.
|
|
364
|
+
// Removed Stub for ajaxRecord.prototype.CreateTrackItem.
|
|
365
|
+
// Removed Stub for ajaxRecord.prototype.getPartAProps.
|
|
366
|
+
// This is a workaround for an IE bug when using dynamicProto() with classes that don't have any
|
|
367
|
+
// non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
|
|
368
|
+
ajaxRecord.__ieDyn=1;
|
|
369
|
+
|
|
370
|
+
return ajaxRecord;
|
|
371
|
+
}());
|
|
372
|
+
|
|
373
|
+
/*
|
|
374
|
+
* Application Insights JavaScript SDK - Dependencies Plugin, 3.3.9
|
|
375
|
+
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
376
|
+
*/
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
var _a;
|
|
380
|
+
// const AJAX_MONITOR_PREFIX = "ai.ajxmn.";
|
|
381
|
+
var strDiagLog = "diagLog";
|
|
382
|
+
var AJAX_DATA_CONTAINER = "_ajaxData";
|
|
383
|
+
var STR_FETCH = "fetch";
|
|
384
|
+
var ERROR_HEADER = "Failed to monitor XMLHttpRequest";
|
|
385
|
+
var ERROR_PREFIX = ", monitoring data for this ajax call ";
|
|
386
|
+
var ERROR_POSTFIX = ERROR_PREFIX + "may be incorrect.";
|
|
387
|
+
var ERROR_NOT_SENT = ERROR_PREFIX + "won't be sent.";
|
|
388
|
+
var CORRELATION_HEADER_ERROR = "Failed to get Request-Context correlation header as it may be not included in the response or not accessible.";
|
|
389
|
+
var CUSTOM_REQUEST_CONTEXT_ERROR = "Failed to add custom defined request context as configured call back may missing a null check.";
|
|
390
|
+
var FAILED_TO_CALCULATE_DURATION_ERROR = "Failed to calculate the duration of the ";
|
|
391
|
+
// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)
|
|
392
|
+
var _markCount = 0;
|
|
393
|
+
/** @Ignore */
|
|
394
|
+
function _supportsFetch() {
|
|
395
|
+
var _global = getGlobal();
|
|
396
|
+
if (!_global ||
|
|
397
|
+
isNullOrUndefined(_global.Request) ||
|
|
398
|
+
isNullOrUndefined(_global.Request[strShimPrototype]) ||
|
|
399
|
+
isNullOrUndefined(_global[STR_FETCH])) {
|
|
400
|
+
return null;
|
|
401
|
+
}
|
|
402
|
+
return _global[STR_FETCH];
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Determines whether ajax monitoring can be enabled on this document
|
|
406
|
+
* @returns True if Ajax monitoring is supported on this page, otherwise false
|
|
407
|
+
* @ignore
|
|
408
|
+
*/
|
|
409
|
+
function _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {
|
|
410
|
+
var _a;
|
|
411
|
+
var result = false;
|
|
412
|
+
if (isXhrSupported()) {
|
|
413
|
+
var proto = XMLHttpRequest[strShimPrototype];
|
|
414
|
+
result = !isNullOrUndefined(proto) &&
|
|
415
|
+
!isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive
|
|
416
|
+
!isNullOrUndefined(proto.send) &&
|
|
417
|
+
!isNullOrUndefined(proto.abort);
|
|
418
|
+
}
|
|
419
|
+
var ieVer = getIEVersion();
|
|
420
|
+
if (ieVer && ieVer < 9) {
|
|
421
|
+
result = false;
|
|
422
|
+
}
|
|
423
|
+
if (result) {
|
|
424
|
+
// Disable if the XmlHttpRequest can't be extended or hooked
|
|
425
|
+
try {
|
|
426
|
+
var xhr = new XMLHttpRequest();
|
|
427
|
+
var xhrData = {
|
|
428
|
+
xh: [],
|
|
429
|
+
i: (_a = {},
|
|
430
|
+
_a[ajaxDataId] = {},
|
|
431
|
+
_a)
|
|
432
|
+
};
|
|
433
|
+
xhr[AJAX_DATA_CONTAINER] = xhrData;
|
|
434
|
+
// Check that we can update the prototype
|
|
435
|
+
var theOpen = XMLHttpRequest[strShimPrototype].open;
|
|
436
|
+
XMLHttpRequest[strShimPrototype].open = theOpen;
|
|
437
|
+
}
|
|
438
|
+
catch (e) {
|
|
439
|
+
// We can't decorate the xhr object so disable monitoring
|
|
440
|
+
result = false;
|
|
441
|
+
_throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to enable XMLHttpRequest monitoring, extension is not supported", {
|
|
442
|
+
exception: dumpObj(e)
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return result;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Internal helper to fetch the SDK instance tracking data for this XHR request
|
|
450
|
+
* @param xhr
|
|
451
|
+
* @param ajaxDataId
|
|
452
|
+
* @returns
|
|
453
|
+
*/
|
|
454
|
+
var _getAjaxData = function (xhr, ajaxDataId) {
|
|
455
|
+
if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {
|
|
456
|
+
return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];
|
|
457
|
+
}
|
|
458
|
+
return null;
|
|
459
|
+
};
|
|
460
|
+
/**
|
|
461
|
+
* @ignore
|
|
462
|
+
* Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers
|
|
463
|
+
* that might cause an issue if multiple values are populated.
|
|
464
|
+
* @param xhr - The instrumented XHR instance
|
|
465
|
+
*/
|
|
466
|
+
var _addSharedXhrHeaders = function (xhr, name, value) {
|
|
467
|
+
if (xhr) {
|
|
468
|
+
var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;
|
|
469
|
+
if (headers) {
|
|
470
|
+
headers.push({
|
|
471
|
+
n: name,
|
|
472
|
+
v: value
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
};
|
|
477
|
+
var _isHeaderSet = function (xhr, name) {
|
|
478
|
+
var isPresent = false;
|
|
479
|
+
if (xhr) {
|
|
480
|
+
var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;
|
|
481
|
+
if (headers) {
|
|
482
|
+
arrForEach(headers, function (header) {
|
|
483
|
+
if (header.n === name) {
|
|
484
|
+
isPresent = true;
|
|
485
|
+
return -1;
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
return isPresent;
|
|
491
|
+
};
|
|
492
|
+
/** @Ignore */
|
|
493
|
+
function _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {
|
|
494
|
+
var result = "";
|
|
495
|
+
try {
|
|
496
|
+
var ajaxData = _getAjaxData(xhr, ajaxDataId);
|
|
497
|
+
if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {
|
|
498
|
+
result += "(url: '" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + "')";
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
catch (e) {
|
|
502
|
+
// eslint-disable-next-line no-empty
|
|
503
|
+
}
|
|
504
|
+
return result;
|
|
505
|
+
}
|
|
506
|
+
/** @ignore */
|
|
507
|
+
function _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {
|
|
508
|
+
_throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);
|
|
509
|
+
}
|
|
510
|
+
/** @ignore */
|
|
511
|
+
function _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {
|
|
512
|
+
_throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);
|
|
513
|
+
}
|
|
514
|
+
/** @Ignore */
|
|
515
|
+
function _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {
|
|
516
|
+
// tslint:disable-next-line
|
|
517
|
+
return function (callDetails) {
|
|
518
|
+
var _a;
|
|
519
|
+
_throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {},
|
|
520
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES14 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(callDetails.inst, ajaxMonitorInstance._ajaxDataId),
|
|
521
|
+
_a.exception = dumpObj(callDetails.err),
|
|
522
|
+
_a));
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
function _indexOf(value, match) {
|
|
526
|
+
if (value && match) {
|
|
527
|
+
return strIndexOf(value, match);
|
|
528
|
+
}
|
|
529
|
+
return -1;
|
|
530
|
+
}
|
|
531
|
+
function _addHandler(container, id, theFunc) {
|
|
532
|
+
var theHandler = {
|
|
533
|
+
id: id,
|
|
534
|
+
fn: theFunc
|
|
535
|
+
};
|
|
536
|
+
container.push(theHandler);
|
|
537
|
+
return {
|
|
538
|
+
remove: function () {
|
|
539
|
+
arrForEach(container, function (initializer, idx) {
|
|
540
|
+
if (initializer.id === theHandler.id) {
|
|
541
|
+
container.splice(idx, 1);
|
|
542
|
+
return -1;
|
|
543
|
+
}
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
function _processDependencyContainer(core, container, details, message) {
|
|
549
|
+
var result = true;
|
|
550
|
+
arrForEach(container, function (theFunc, idx) {
|
|
551
|
+
try {
|
|
552
|
+
if (theFunc.fn.call(null, details) === false) {
|
|
553
|
+
result = false;
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
catch (e) {
|
|
557
|
+
_throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Dependency " + message + " [#" + idx + "] failed: " + getExceptionName(e), { exception: dumpObj(e) }, true);
|
|
558
|
+
}
|
|
559
|
+
});
|
|
560
|
+
return result;
|
|
561
|
+
}
|
|
562
|
+
function _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {
|
|
563
|
+
var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];
|
|
564
|
+
var result = true;
|
|
565
|
+
if (initializersCount > 0) {
|
|
566
|
+
var details = {
|
|
567
|
+
core: core,
|
|
568
|
+
xhr: xhr,
|
|
569
|
+
input: input,
|
|
570
|
+
init: init,
|
|
571
|
+
traceId: ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],
|
|
572
|
+
spanId: ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],
|
|
573
|
+
traceFlags: ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],
|
|
574
|
+
context: ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},
|
|
575
|
+
aborted: !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */]
|
|
576
|
+
};
|
|
577
|
+
result = _processDependencyContainer(core, listeners, details, "listener");
|
|
578
|
+
ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details.traceId;
|
|
579
|
+
ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details.spanId;
|
|
580
|
+
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
581
|
+
ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];
|
|
582
|
+
}
|
|
583
|
+
return result;
|
|
584
|
+
}
|
|
585
|
+
var BLOB_CORE = "*.blob.core.";
|
|
586
|
+
var DfltAjaxCorrelationHeaderExDomains = objFreeze([
|
|
587
|
+
BLOB_CORE + "windows.net",
|
|
588
|
+
BLOB_CORE + "chinacloudapi.cn",
|
|
589
|
+
BLOB_CORE + "cloudapi.de",
|
|
590
|
+
BLOB_CORE + "usgovcloudapi.net"
|
|
591
|
+
]);
|
|
592
|
+
var _internalExcludeEndpoints = [
|
|
593
|
+
/https:\/\/[^\/]*(\.pipe\.aria|aria\.pipe|events\.data|collector\.azure)\.[^\/]+\/(OneCollector\/1|Collector\/3)\.0/i
|
|
594
|
+
];
|
|
595
|
+
var _defaultConfig = objFreeze((_a = {},
|
|
596
|
+
_a[_DYN_MAX_AJAX_CALLS_PER_V5 /* @min:maxAjaxCallsPerView */] = 500,
|
|
597
|
+
_a[_DYN_DISABLE_AJAX_TRACKIN7 /* @min:disableAjaxTracking */] = false,
|
|
598
|
+
_a[_DYN_DISABLE_FETCH_TRACKI9 /* @min:disableFetchTracking */] = false,
|
|
599
|
+
_a[_DYN_EXCLUDE_REQUEST_FROM6 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,
|
|
600
|
+
_a.disableCorrelationHeaders = false,
|
|
601
|
+
_a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,
|
|
602
|
+
_a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,
|
|
603
|
+
_a.correlationHeaderDomains = undefined,
|
|
604
|
+
_a.correlationHeaderExcludePatterns = undefined,
|
|
605
|
+
_a.appId = undefined,
|
|
606
|
+
_a.enableCorsCorrelation = false,
|
|
607
|
+
_a[_DYN_ENABLE_REQUEST_HEADE2 /* @min:enableRequestHeaderTracking */] = false,
|
|
608
|
+
_a[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:enableResponseHeaderTracking */] = false,
|
|
609
|
+
_a[_DYN_ENABLE_AJAX_ERROR_ST3 /* @min:enableAjaxErrorStatusText */] = false,
|
|
610
|
+
_a[_DYN_ENABLE_AJAX_PERF_TRA4 /* @min:enableAjaxPerfTracking */] = false,
|
|
611
|
+
_a.maxAjaxPerfLookupAttempts = 3,
|
|
612
|
+
_a[_DYN_AJAX_PERF_LOOKUP_DEL8 /* @min:ajaxPerfLookupDelay */] = 25,
|
|
613
|
+
_a.ignoreHeaders = [
|
|
614
|
+
"Authorization",
|
|
615
|
+
"X-API-Key",
|
|
616
|
+
"WWW-Authenticate"
|
|
617
|
+
],
|
|
618
|
+
_a.addRequestContext = undefined,
|
|
619
|
+
_a.addIntEndpoints = true,
|
|
620
|
+
_a));
|
|
621
|
+
var AjaxMonitor = /** @class */ (function (_super) {
|
|
622
|
+
__extendsFn(AjaxMonitor, _super);
|
|
623
|
+
function AjaxMonitor() {
|
|
624
|
+
var _this = _super.call(this) || this;
|
|
625
|
+
_this.identifier = AjaxMonitor.identifier;
|
|
626
|
+
_this.priority = 120;
|
|
627
|
+
var _fetchInitialized; // fetch monitoring initialized
|
|
628
|
+
var _xhrInitialized; // XHR monitoring initialized
|
|
629
|
+
var _currentWindowHost;
|
|
630
|
+
var _extensionConfig;
|
|
631
|
+
var _enableRequestHeaderTracking;
|
|
632
|
+
var _enableAjaxErrorStatusText;
|
|
633
|
+
var _trackAjaxAttempts;
|
|
634
|
+
var _context;
|
|
635
|
+
var _isUsingW3CHeaders;
|
|
636
|
+
var _isUsingAIHeaders;
|
|
637
|
+
var _markPrefix;
|
|
638
|
+
var _enableAjaxPerfTracking;
|
|
639
|
+
var _maxAjaxCallsPerView;
|
|
640
|
+
var _enableResponseHeaderTracking;
|
|
641
|
+
var _disabledUrls;
|
|
642
|
+
var _disableAjaxTracking;
|
|
643
|
+
var _disableFetchTracking;
|
|
644
|
+
var _excludeRequestFromAutoTrackingPatterns;
|
|
645
|
+
var _addRequestContext;
|
|
646
|
+
var _evtNamespace;
|
|
647
|
+
var _ajaxDataId;
|
|
648
|
+
var _dependencyHandlerId;
|
|
649
|
+
var _dependencyListeners;
|
|
650
|
+
var _dependencyInitializers;
|
|
651
|
+
var _ignoreHeaders;
|
|
652
|
+
var _maxAjaxPerfLookupAttempts;
|
|
653
|
+
var _ajaxPerfLookupDelay;
|
|
654
|
+
var _distributedTracingMode;
|
|
655
|
+
var _appId;
|
|
656
|
+
var _polyfillInitialized;
|
|
657
|
+
dynamicProto(AjaxMonitor, _this, function (_self, _base) {
|
|
658
|
+
var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];
|
|
659
|
+
_initDefaults();
|
|
660
|
+
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
661
|
+
if (!_self.isInitialized()) {
|
|
662
|
+
_base.initialize(config, core, extensions, pluginChain);
|
|
663
|
+
_evtNamespace = mergeEvtNamespace(createUniqueNamespace("ajax"), core && core.evtNamespace && core.evtNamespace());
|
|
664
|
+
_populateDefaults(config);
|
|
665
|
+
_instrumentXhr();
|
|
666
|
+
_instrumentFetch();
|
|
667
|
+
_populateContext();
|
|
668
|
+
}
|
|
669
|
+
};
|
|
670
|
+
_self._doTeardown = function () {
|
|
671
|
+
_initDefaults();
|
|
672
|
+
};
|
|
673
|
+
_self.trackDependencyData = function (dependency, properties) {
|
|
674
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);
|
|
675
|
+
};
|
|
676
|
+
_self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {
|
|
677
|
+
// Test Hook to allow the overriding of the location host
|
|
678
|
+
var currentWindowHost = _self["_currentWindowHost"] || _currentWindowHost;
|
|
679
|
+
if (_processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init)) {
|
|
680
|
+
if (input || input === "") { // Fetch
|
|
681
|
+
if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
682
|
+
if (!init) {
|
|
683
|
+
init = {};
|
|
684
|
+
}
|
|
685
|
+
// init headers override original request headers
|
|
686
|
+
// so, if they exist use only them, otherwise use request's because they should have been applied in the first place
|
|
687
|
+
// not using original request headers will result in them being lost
|
|
688
|
+
var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));
|
|
689
|
+
if (_isUsingAIHeaders) {
|
|
690
|
+
var id = "|" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];
|
|
691
|
+
headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);
|
|
692
|
+
if (_enableRequestHeaderTracking) {
|
|
693
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
var appId = _appId || (_context && _context.appId());
|
|
697
|
+
if (appId) {
|
|
698
|
+
headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);
|
|
699
|
+
if (_enableRequestHeaderTracking) {
|
|
700
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
if (_isUsingW3CHeaders) {
|
|
704
|
+
var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
705
|
+
if (isNullOrUndefined(traceFlags)) {
|
|
706
|
+
traceFlags = 0x01;
|
|
707
|
+
}
|
|
708
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));
|
|
709
|
+
headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);
|
|
710
|
+
if (_enableRequestHeaderTracking) {
|
|
711
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
init[_DYN_HEADERS /* @min:%2eheaders */] = headers;
|
|
715
|
+
}
|
|
716
|
+
return init;
|
|
717
|
+
}
|
|
718
|
+
else if (xhr) { // XHR
|
|
719
|
+
if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {
|
|
720
|
+
if (_isUsingAIHeaders) {
|
|
721
|
+
if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {
|
|
722
|
+
var id = "|" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + "." + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];
|
|
723
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);
|
|
724
|
+
if (_enableRequestHeaderTracking) {
|
|
725
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
_throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, "Unable to set [" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + "] as it has already been set by another instance");
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
var appId = _appId || (_context && _context.appId());
|
|
733
|
+
if (appId) {
|
|
734
|
+
if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {
|
|
735
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);
|
|
736
|
+
if (_enableRequestHeaderTracking) {
|
|
737
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
else {
|
|
741
|
+
_throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, "Unable to set [" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + "] as it has already been set by another instance");
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
if (_isUsingW3CHeaders) {
|
|
745
|
+
var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];
|
|
746
|
+
if (isNullOrUndefined(traceFlags)) {
|
|
747
|
+
traceFlags = 0x01;
|
|
748
|
+
}
|
|
749
|
+
if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {
|
|
750
|
+
var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));
|
|
751
|
+
xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);
|
|
752
|
+
if (_enableRequestHeaderTracking) {
|
|
753
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
else {
|
|
757
|
+
_throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, "Unable to set [" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + "] as it has already been set by another instance");
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
return xhr;
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return undefined;
|
|
765
|
+
};
|
|
766
|
+
_self[_DYN_TRACK_DEPENDENCY_DAT1 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {
|
|
767
|
+
if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {
|
|
768
|
+
// Hack since expected format in w3c mode is |abc.def.
|
|
769
|
+
// Non-w3c format is |abc.def
|
|
770
|
+
// @todo Remove if better solution is available, e.g. handle in portal
|
|
771
|
+
if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */
|
|
772
|
+
|| _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)
|
|
773
|
+
&& typeof dependency.id === "string" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== ".") {
|
|
774
|
+
dependency.id += ".";
|
|
775
|
+
}
|
|
776
|
+
if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {
|
|
777
|
+
dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();
|
|
778
|
+
}
|
|
779
|
+
var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);
|
|
780
|
+
_self[_DYN_CORE /* @min:%2ecore */].track(item);
|
|
781
|
+
}
|
|
782
|
+
else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {
|
|
783
|
+
_throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, "Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.", true);
|
|
784
|
+
}
|
|
785
|
+
++_trackAjaxAttempts;
|
|
786
|
+
};
|
|
787
|
+
_self.addDependencyListener = function (dependencyListener) {
|
|
788
|
+
return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);
|
|
789
|
+
};
|
|
790
|
+
_self.addDependencyInitializer = function (dependencyInitializer) {
|
|
791
|
+
return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);
|
|
792
|
+
};
|
|
793
|
+
function _initDefaults() {
|
|
794
|
+
var location = getLocation();
|
|
795
|
+
_fetchInitialized = false; // fetch monitoring initialized
|
|
796
|
+
_xhrInitialized = false; // XHR monitoring initialized
|
|
797
|
+
_polyfillInitialized = false; // polyfill monitoring initialized
|
|
798
|
+
_currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();
|
|
799
|
+
_extensionConfig = null;
|
|
800
|
+
_enableRequestHeaderTracking = false;
|
|
801
|
+
_enableAjaxErrorStatusText = false;
|
|
802
|
+
_trackAjaxAttempts = 0;
|
|
803
|
+
_context = null;
|
|
804
|
+
_isUsingW3CHeaders = false;
|
|
805
|
+
_isUsingAIHeaders = false;
|
|
806
|
+
_markPrefix = null;
|
|
807
|
+
_enableAjaxPerfTracking = false;
|
|
808
|
+
_maxAjaxCallsPerView = 0;
|
|
809
|
+
_enableResponseHeaderTracking = false;
|
|
810
|
+
_disabledUrls = {};
|
|
811
|
+
_disableAjaxTracking = false;
|
|
812
|
+
_disableFetchTracking = false;
|
|
813
|
+
_excludeRequestFromAutoTrackingPatterns = null;
|
|
814
|
+
_addRequestContext = null;
|
|
815
|
+
_evtNamespace = null;
|
|
816
|
+
_dependencyHandlerId = 0;
|
|
817
|
+
_dependencyListeners = [];
|
|
818
|
+
_dependencyInitializers = [];
|
|
819
|
+
_ajaxDataId = createUniqueNamespace("ajaxData");
|
|
820
|
+
_self._ajaxDataId = _ajaxDataId;
|
|
821
|
+
_ignoreHeaders = null;
|
|
822
|
+
_maxAjaxPerfLookupAttempts = 1;
|
|
823
|
+
_ajaxPerfLookupDelay = 1;
|
|
824
|
+
_distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;
|
|
825
|
+
_appId = null;
|
|
826
|
+
}
|
|
827
|
+
function _populateDefaults(config) {
|
|
828
|
+
_self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {
|
|
829
|
+
var config = details.cfg;
|
|
830
|
+
var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);
|
|
831
|
+
_extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);
|
|
832
|
+
_distributedTracingMode = _extensionConfig.distributedTracingMode;
|
|
833
|
+
_enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE2 /* @min:%2eenableRequestHeaderTracking */];
|
|
834
|
+
_enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST3 /* @min:%2eenableAjaxErrorStatusText */];
|
|
835
|
+
_enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA4 /* @min:%2eenableAjaxPerfTracking */];
|
|
836
|
+
_maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V5 /* @min:%2emaxAjaxCallsPerView */];
|
|
837
|
+
_excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM6 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);
|
|
838
|
+
_addRequestContext = _extensionConfig.addRequestContext;
|
|
839
|
+
_isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;
|
|
840
|
+
_isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;
|
|
841
|
+
if (_enableAjaxPerfTracking) {
|
|
842
|
+
_markPrefix = _ajaxDataId;
|
|
843
|
+
}
|
|
844
|
+
_disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN7 /* @min:%2edisableAjaxTracking */];
|
|
845
|
+
_maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;
|
|
846
|
+
_ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL8 /* @min:%2eajaxPerfLookupDelay */];
|
|
847
|
+
_ignoreHeaders = _extensionConfig.ignoreHeaders;
|
|
848
|
+
_appId = _extensionConfig.appId;
|
|
849
|
+
}));
|
|
850
|
+
}
|
|
851
|
+
function _populateContext() {
|
|
852
|
+
var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);
|
|
853
|
+
if (propExt) {
|
|
854
|
+
_context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
// discard the header if it's defined as ignoreHeaders in ICorrelationConfig
|
|
858
|
+
function _canIncludeHeaders(header) {
|
|
859
|
+
var rlt = true;
|
|
860
|
+
if (header || _ignoreHeaders) {
|
|
861
|
+
arrForEach(_ignoreHeaders, (function (key) {
|
|
862
|
+
if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {
|
|
863
|
+
rlt = false;
|
|
864
|
+
return -1;
|
|
865
|
+
}
|
|
866
|
+
}));
|
|
867
|
+
}
|
|
868
|
+
return rlt;
|
|
869
|
+
}
|
|
870
|
+
// Fetch Stuff
|
|
871
|
+
function _instrumentFetch() {
|
|
872
|
+
var fetch = _supportsFetch();
|
|
873
|
+
if (!fetch) {
|
|
874
|
+
return;
|
|
875
|
+
}
|
|
876
|
+
var global = getGlobal();
|
|
877
|
+
var isPolyfill = fetch.polyfill;
|
|
878
|
+
_self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {
|
|
879
|
+
_disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI9 /* @min:%2edisableFetchTracking */];
|
|
880
|
+
_enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:%2eenableResponseHeaderTracking */];
|
|
881
|
+
if (!_disableFetchTracking && !_fetchInitialized) {
|
|
882
|
+
_addHook(InstrumentFunc(global, STR_FETCH, {
|
|
883
|
+
ns: _evtNamespace,
|
|
884
|
+
// Add request hook
|
|
885
|
+
req: function (callDetails, input, init) {
|
|
886
|
+
var fetchData;
|
|
887
|
+
if (!_disableFetchTracking && _fetchInitialized &&
|
|
888
|
+
!_isDisabledRequest(null, input, init) &&
|
|
889
|
+
// If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates
|
|
890
|
+
!(isPolyfill && _xhrInitialized)) {
|
|
891
|
+
var ctx = callDetails.ctx();
|
|
892
|
+
fetchData = _createFetchRecord(input, init);
|
|
893
|
+
var newInit = _self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);
|
|
894
|
+
if (newInit !== init) {
|
|
895
|
+
callDetails.set(1, newInit);
|
|
896
|
+
}
|
|
897
|
+
ctx.data = fetchData;
|
|
898
|
+
}
|
|
899
|
+
},
|
|
900
|
+
rsp: function (callDetails, input) {
|
|
901
|
+
if (!_disableFetchTracking) {
|
|
902
|
+
var fetchData_1 = callDetails.ctx().data;
|
|
903
|
+
if (fetchData_1) {
|
|
904
|
+
// Replace the result with the new promise from this code
|
|
905
|
+
callDetails.rslt = callDetails.rslt.then(function (response) {
|
|
906
|
+
_reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {
|
|
907
|
+
var _a;
|
|
908
|
+
var ajaxResponse = (_a = {
|
|
909
|
+
statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */],
|
|
910
|
+
headerMap: null
|
|
911
|
+
},
|
|
912
|
+
_a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),
|
|
913
|
+
_a);
|
|
914
|
+
if (_enableResponseHeaderTracking && response) {
|
|
915
|
+
var responseHeaderMap_1 = {};
|
|
916
|
+
response.headers.forEach(function (value, name) {
|
|
917
|
+
if (_canIncludeHeaders(name)) {
|
|
918
|
+
responseHeaderMap_1[name] = value;
|
|
919
|
+
}
|
|
920
|
+
});
|
|
921
|
+
ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;
|
|
922
|
+
}
|
|
923
|
+
return ajaxResponse;
|
|
924
|
+
});
|
|
925
|
+
return response;
|
|
926
|
+
})
|
|
927
|
+
.catch(function (reason) {
|
|
928
|
+
_reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null);
|
|
929
|
+
throw reason;
|
|
930
|
+
});
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
// Create an error callback to report any hook errors
|
|
935
|
+
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to monitor Window.fetch" + ERROR_POSTFIX)
|
|
936
|
+
}, true, isWebWorker()));
|
|
937
|
+
_fetchInitialized = true;
|
|
938
|
+
}
|
|
939
|
+
else if (isPolyfill && !_polyfillInitialized) {
|
|
940
|
+
// If fetch is a polyfill we need to capture the request to ensure that we correctly track
|
|
941
|
+
// disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop
|
|
942
|
+
// of reporting ourselves, for example React Native uses a polyfill for fetch
|
|
943
|
+
// Note: Polyfill implementations that don't support the "polyfill" tag are not supported
|
|
944
|
+
// the workaround is to add a polyfill property to your fetch implementation before initializing
|
|
945
|
+
// App Insights
|
|
946
|
+
_addHook(InstrumentFunc(global, STR_FETCH, {
|
|
947
|
+
ns: _evtNamespace,
|
|
948
|
+
req: function (callDetails, input, init) {
|
|
949
|
+
// Just call so that we record any disabled URL
|
|
950
|
+
_isDisabledRequest(null, input, init);
|
|
951
|
+
}
|
|
952
|
+
}));
|
|
953
|
+
_polyfillInitialized = true;
|
|
954
|
+
}
|
|
955
|
+
}));
|
|
956
|
+
if (isPolyfill) {
|
|
957
|
+
// retag the instrumented fetch with the same polyfill settings this is mostly for testing
|
|
958
|
+
// But also supports multiple App Insights usages
|
|
959
|
+
global[STR_FETCH].polyfill = isPolyfill;
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
function _hookProto(target, funcName, callbacks) {
|
|
963
|
+
_addHook(InstrumentProto(target, funcName, callbacks));
|
|
964
|
+
}
|
|
965
|
+
function _instrumentXhr() {
|
|
966
|
+
if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
969
|
+
_self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {
|
|
970
|
+
_disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN7 /* @min:%2edisableAjaxTracking */];
|
|
971
|
+
_enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE2 /* @min:%2eenableRequestHeaderTracking */];
|
|
972
|
+
if (!_disableAjaxTracking && !_xhrInitialized) {
|
|
973
|
+
// Instrument open
|
|
974
|
+
_hookProto(XMLHttpRequest, "open", {
|
|
975
|
+
ns: _evtNamespace,
|
|
976
|
+
req: function (callDetails, method, url, async) {
|
|
977
|
+
if (!_disableAjaxTracking) {
|
|
978
|
+
var xhr = callDetails.inst;
|
|
979
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
980
|
+
if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {
|
|
981
|
+
if (!ajaxData || !ajaxData.xhrMonitoringState.openDone) {
|
|
982
|
+
// Only create a single ajaxData (even when multiple AI instances are running)
|
|
983
|
+
ajaxData = _openHandler(xhr, method, url, async);
|
|
984
|
+
}
|
|
985
|
+
// always attach to the on ready state change (required for handling multiple instances)
|
|
986
|
+
_attachToOnReadyStateChange(xhr, ajaxData);
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
},
|
|
990
|
+
hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + ".open" + ERROR_POSTFIX)
|
|
991
|
+
});
|
|
992
|
+
// Instrument send
|
|
993
|
+
_hookProto(XMLHttpRequest, "send", {
|
|
994
|
+
ns: _evtNamespace,
|
|
995
|
+
req: function (callDetails, context) {
|
|
996
|
+
if (!_disableAjaxTracking) {
|
|
997
|
+
var xhr = callDetails.inst;
|
|
998
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
999
|
+
if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState.sendDone) {
|
|
1000
|
+
_createMarkId("xhr", ajaxData);
|
|
1001
|
+
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
1002
|
+
_self[_DYN_INCLUDE_CORRELATION_0 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);
|
|
1003
|
+
ajaxData.xhrMonitoringState.sendDone = true;
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
},
|
|
1007
|
+
hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)
|
|
1008
|
+
});
|
|
1009
|
+
// Instrument abort
|
|
1010
|
+
_hookProto(XMLHttpRequest, "abort", {
|
|
1011
|
+
ns: _evtNamespace,
|
|
1012
|
+
req: function (callDetails) {
|
|
1013
|
+
if (!_disableAjaxTracking) {
|
|
1014
|
+
var xhr = callDetails.inst;
|
|
1015
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
1016
|
+
if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState.abortDone) {
|
|
1017
|
+
ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;
|
|
1018
|
+
ajaxData.xhrMonitoringState.abortDone = true;
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
},
|
|
1022
|
+
hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + ".abort" + ERROR_POSTFIX)
|
|
1023
|
+
});
|
|
1024
|
+
// Instrument setRequestHeader
|
|
1025
|
+
_hookProto(XMLHttpRequest, "setRequestHeader", {
|
|
1026
|
+
ns: _evtNamespace,
|
|
1027
|
+
req: function (callDetails, header, value) {
|
|
1028
|
+
if (!_disableAjaxTracking) {
|
|
1029
|
+
var xhr = callDetails.inst;
|
|
1030
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
1031
|
+
if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {
|
|
1032
|
+
_addSharedXhrHeaders(xhr, header, value);
|
|
1033
|
+
if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {
|
|
1034
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
},
|
|
1039
|
+
hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + ".setRequestHeader" + ERROR_POSTFIX)
|
|
1040
|
+
});
|
|
1041
|
+
_xhrInitialized = true;
|
|
1042
|
+
}
|
|
1043
|
+
}));
|
|
1044
|
+
}
|
|
1045
|
+
function _isDisabledRequest(xhr, request, init) {
|
|
1046
|
+
var isDisabled = false;
|
|
1047
|
+
var theUrl = ((!isString(request) ? (request || {}).url || "" : request) || "")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();
|
|
1048
|
+
// check excludeRequestFromAutoTrackingPatterns before stripping off any query string
|
|
1049
|
+
arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {
|
|
1050
|
+
var theRegex = regex;
|
|
1051
|
+
if (isString(regex)) {
|
|
1052
|
+
theRegex = new RegExp(regex);
|
|
1053
|
+
}
|
|
1054
|
+
if (!isDisabled) {
|
|
1055
|
+
isDisabled = theRegex.test(theUrl);
|
|
1056
|
+
}
|
|
1057
|
+
});
|
|
1058
|
+
// if request url matches with exclude regex pattern, return true and no need to check for headers
|
|
1059
|
+
if (isDisabled) {
|
|
1060
|
+
return isDisabled;
|
|
1061
|
+
}
|
|
1062
|
+
var idx = _indexOf(theUrl, "?");
|
|
1063
|
+
var idx2 = _indexOf(theUrl, "#");
|
|
1064
|
+
if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {
|
|
1065
|
+
idx = idx2;
|
|
1066
|
+
}
|
|
1067
|
+
if (idx !== -1) {
|
|
1068
|
+
// Strip off any Query string
|
|
1069
|
+
theUrl = theUrl.substring(0, idx);
|
|
1070
|
+
}
|
|
1071
|
+
// check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector
|
|
1072
|
+
if (!isNullOrUndefined(xhr)) {
|
|
1073
|
+
// Look on the XMLHttpRequest of the URL string value
|
|
1074
|
+
isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;
|
|
1075
|
+
}
|
|
1076
|
+
else if (!isNullOrUndefined(request)) { // fetch
|
|
1077
|
+
// Look for DisabledPropertyName in either Request or RequestInit
|
|
1078
|
+
isDisabled = (typeof request === "object" ? request[DisabledPropertyName] === true : false) ||
|
|
1079
|
+
(init ? init[DisabledPropertyName] === true : false);
|
|
1080
|
+
}
|
|
1081
|
+
// Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing
|
|
1082
|
+
if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {
|
|
1083
|
+
isDisabled = true;
|
|
1084
|
+
}
|
|
1085
|
+
if (isDisabled) {
|
|
1086
|
+
// Add the disabled url if not present
|
|
1087
|
+
if (!_disabledUrls[theUrl]) {
|
|
1088
|
+
_disabledUrls[theUrl] = 1;
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
else {
|
|
1092
|
+
// Check to see if the url is listed as disabled
|
|
1093
|
+
if (_disabledUrls[theUrl]) {
|
|
1094
|
+
isDisabled = true;
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
return isDisabled;
|
|
1098
|
+
}
|
|
1099
|
+
/// <summary>Verifies that particular instance of XMLHttpRequest needs to be monitored</summary>
|
|
1100
|
+
/// <param name="excludeAjaxDataValidation">Optional parameter. True if ajaxData must be excluded from verification</param>
|
|
1101
|
+
/// <returns type="bool">True if instance needs to be monitored, otherwise false</returns>
|
|
1102
|
+
function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {
|
|
1103
|
+
var ajaxValidation = true;
|
|
1104
|
+
var initialized = _xhrInitialized;
|
|
1105
|
+
if (!isNullOrUndefined(xhr)) {
|
|
1106
|
+
ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);
|
|
1107
|
+
}
|
|
1108
|
+
// checking to see that all interested functions on xhr were instrumented
|
|
1109
|
+
return initialized
|
|
1110
|
+
// checking on ajaxData to see that it was not removed in user code
|
|
1111
|
+
&& ajaxValidation;
|
|
1112
|
+
}
|
|
1113
|
+
function _getDistributedTraceCtx() {
|
|
1114
|
+
var distributedTraceCtx = null;
|
|
1115
|
+
if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {
|
|
1116
|
+
distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);
|
|
1117
|
+
}
|
|
1118
|
+
// Fall back
|
|
1119
|
+
if (!distributedTraceCtx && _context && _context.telemetryTrace) {
|
|
1120
|
+
distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);
|
|
1121
|
+
}
|
|
1122
|
+
return distributedTraceCtx;
|
|
1123
|
+
}
|
|
1124
|
+
function _openHandler(xhr, method, url, async) {
|
|
1125
|
+
var _a;
|
|
1126
|
+
var distributedTraceCtx = _getDistributedTraceCtx();
|
|
1127
|
+
var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();
|
|
1128
|
+
var spanID = strSubstr(generateW3CId(), 0, 16);
|
|
1129
|
+
var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });
|
|
1130
|
+
var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});
|
|
1131
|
+
var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));
|
|
1132
|
+
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();
|
|
1133
|
+
ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;
|
|
1134
|
+
ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;
|
|
1135
|
+
ajaxData.xhrMonitoringState.openDone = true;
|
|
1136
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};
|
|
1137
|
+
ajaxData.async = async;
|
|
1138
|
+
ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;
|
|
1139
|
+
return ajaxData;
|
|
1140
|
+
}
|
|
1141
|
+
function _attachToOnReadyStateChange(xhr, ajaxData) {
|
|
1142
|
+
ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE11 /* @min:%2estateChangeAttached */] = eventOn(xhr, "readystatechange", function () {
|
|
1143
|
+
var _a;
|
|
1144
|
+
try {
|
|
1145
|
+
if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {
|
|
1146
|
+
_onAjaxComplete(xhr);
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
catch (e) {
|
|
1150
|
+
var exceptionText = dumpObj(e);
|
|
1151
|
+
// ignore messages with c00c023f, as this a known IE9 XHR abort issue
|
|
1152
|
+
if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), "c00c023f") === -1) {
|
|
1153
|
+
_throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + " 'readystatechange' event handler" + ERROR_POSTFIX, (_a = {},
|
|
1154
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES14 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),
|
|
1155
|
+
_a.exception = exceptionText,
|
|
1156
|
+
_a));
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
}, _evtNamespace);
|
|
1160
|
+
}
|
|
1161
|
+
function _getResponseText(xhr) {
|
|
1162
|
+
try {
|
|
1163
|
+
var responseType = xhr.responseType;
|
|
1164
|
+
if (responseType === "" || responseType === "text") {
|
|
1165
|
+
// As per the specification responseText is only valid if the type is an empty string or "text"
|
|
1166
|
+
return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];
|
|
1167
|
+
}
|
|
1168
|
+
}
|
|
1169
|
+
catch (e) {
|
|
1170
|
+
// This shouldn't happen because of the above check -- but just in case, so just ignore
|
|
1171
|
+
}
|
|
1172
|
+
return null;
|
|
1173
|
+
}
|
|
1174
|
+
function _onAjaxComplete(xhr) {
|
|
1175
|
+
var ajaxData = _getAjaxData(xhr, _ajaxDataId);
|
|
1176
|
+
ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
1177
|
+
ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];
|
|
1178
|
+
function _reportXhrError(e, failedProps) {
|
|
1179
|
+
var errorProps = failedProps || {};
|
|
1180
|
+
errorProps["ajaxDiagnosticsMessage"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);
|
|
1181
|
+
if (e) {
|
|
1182
|
+
errorProps["exception"] = dumpObj(e);
|
|
1183
|
+
}
|
|
1184
|
+
_throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + "ajax call" + ERROR_NOT_SENT, errorProps);
|
|
1185
|
+
}
|
|
1186
|
+
_findPerfResourceEntry("xmlhttprequest", ajaxData, function () {
|
|
1187
|
+
try {
|
|
1188
|
+
var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */]("Ajax", _enableRequestHeaderTracking, function () {
|
|
1189
|
+
var _a;
|
|
1190
|
+
var ajaxResponse = (_a = {
|
|
1191
|
+
statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */],
|
|
1192
|
+
headerMap: null
|
|
1193
|
+
},
|
|
1194
|
+
_a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),
|
|
1195
|
+
_a.type = xhr.responseType,
|
|
1196
|
+
_a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),
|
|
1197
|
+
_a.response = xhr.response,
|
|
1198
|
+
_a);
|
|
1199
|
+
if (_enableResponseHeaderTracking) {
|
|
1200
|
+
var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA13 /* @min:%2egetAllResponseHeaders */]();
|
|
1201
|
+
if (headers) {
|
|
1202
|
+
// xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null
|
|
1203
|
+
// the regex converts the header string into an array of individual headers
|
|
1204
|
+
var arr = strTrim(headers).split(/[\r\n]+/);
|
|
1205
|
+
var responseHeaderMap_2 = {};
|
|
1206
|
+
arrForEach(arr, function (line) {
|
|
1207
|
+
var parts = line.split(": ");
|
|
1208
|
+
var header = parts.shift();
|
|
1209
|
+
var value = parts.join(": ");
|
|
1210
|
+
if (_canIncludeHeaders(header)) {
|
|
1211
|
+
responseHeaderMap_2[header] = value;
|
|
1212
|
+
}
|
|
1213
|
+
});
|
|
1214
|
+
ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
return ajaxResponse;
|
|
1218
|
+
});
|
|
1219
|
+
var properties = void 0;
|
|
1220
|
+
try {
|
|
1221
|
+
if (!!_addRequestContext) {
|
|
1222
|
+
properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
catch (e) {
|
|
1226
|
+
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);
|
|
1227
|
+
}
|
|
1228
|
+
if (dependency) {
|
|
1229
|
+
if (properties !== undefined) {
|
|
1230
|
+
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assignFn(__assignFn({}, dependency.properties), properties);
|
|
1231
|
+
}
|
|
1232
|
+
var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();
|
|
1233
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);
|
|
1234
|
+
}
|
|
1235
|
+
else {
|
|
1236
|
+
_reportXhrError(null, {
|
|
1237
|
+
requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],
|
|
1238
|
+
responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */]
|
|
1239
|
+
});
|
|
1240
|
+
}
|
|
1241
|
+
}
|
|
1242
|
+
finally {
|
|
1243
|
+
// cleanup telemetry data
|
|
1244
|
+
try {
|
|
1245
|
+
var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });
|
|
1246
|
+
var ajaxDataCntr = (xhrRequestData.i || {});
|
|
1247
|
+
if (ajaxDataCntr[_ajaxDataId]) {
|
|
1248
|
+
ajaxDataCntr[_ajaxDataId] = null;
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
catch (e) {
|
|
1252
|
+
// May throw in environments that prevent extension or freeze xhr
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
}, function (e) {
|
|
1256
|
+
_reportXhrError(e, null);
|
|
1257
|
+
});
|
|
1258
|
+
}
|
|
1259
|
+
function _getAjaxCorrelationContext(xhr) {
|
|
1260
|
+
var _a;
|
|
1261
|
+
try {
|
|
1262
|
+
var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA13 /* @min:%2egetAllResponseHeaders */]();
|
|
1263
|
+
if (responseHeadersString !== null) {
|
|
1264
|
+
var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);
|
|
1265
|
+
if (index !== -1) {
|
|
1266
|
+
var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);
|
|
1267
|
+
return correlationIdGetCorrelationContext(responseHeader);
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1271
|
+
catch (e) {
|
|
1272
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},
|
|
1273
|
+
_a[_DYN_AJAX_DIAGNOSTICS_MES14 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),
|
|
1274
|
+
_a.exception = dumpObj(e),
|
|
1275
|
+
_a));
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
function _createMarkId(type, ajaxData) {
|
|
1279
|
+
if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {
|
|
1280
|
+
var performance_1 = getPerformance();
|
|
1281
|
+
if (performance_1 && isFunction(performance_1.mark)) {
|
|
1282
|
+
_markCount++;
|
|
1283
|
+
var markId = _markPrefix + type + "#" + _markCount;
|
|
1284
|
+
performance_1.mark(markId);
|
|
1285
|
+
var entries = performance_1.getEntriesByName(markId);
|
|
1286
|
+
if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {
|
|
1287
|
+
ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];
|
|
1288
|
+
}
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {
|
|
1293
|
+
var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];
|
|
1294
|
+
var performance = getPerformance();
|
|
1295
|
+
var maxAttempts = _maxAjaxPerfLookupAttempts;
|
|
1296
|
+
var retryDelay = _ajaxPerfLookupDelay;
|
|
1297
|
+
var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];
|
|
1298
|
+
var attempt = 0;
|
|
1299
|
+
(function locateResourceTiming() {
|
|
1300
|
+
try {
|
|
1301
|
+
if (performance && perfMark) {
|
|
1302
|
+
attempt++;
|
|
1303
|
+
var perfTiming = null;
|
|
1304
|
+
var entries = performance.getEntries();
|
|
1305
|
+
for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {
|
|
1306
|
+
var entry = entries[lp];
|
|
1307
|
+
if (entry) {
|
|
1308
|
+
if (entry.entryType === "resource") {
|
|
1309
|
+
if (entry.initiatorType === initiatorType &&
|
|
1310
|
+
(_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {
|
|
1311
|
+
perfTiming = entry;
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
else if (entry.entryType === "mark" && entry.name === perfMark.name) {
|
|
1315
|
+
// We hit the start event
|
|
1316
|
+
ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;
|
|
1317
|
+
break;
|
|
1318
|
+
}
|
|
1319
|
+
if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {
|
|
1320
|
+
// Fallback to try and reduce the time spent looking for the perf entry
|
|
1321
|
+
break;
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
if (!perfMark || // - we don't have a perfMark or
|
|
1327
|
+
ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or
|
|
1328
|
+
attempt >= maxAttempts || // - we have tried too many attempts or
|
|
1329
|
+
ajaxData.async === false) { // - this is a sync request
|
|
1330
|
+
if (perfMark && isFunction(performance.clearMarks)) {
|
|
1331
|
+
// Remove the mark so we don't fill up the performance resources too much
|
|
1332
|
+
performance.clearMarks(perfMark.name);
|
|
1333
|
+
}
|
|
1334
|
+
ajaxData.perfAttempts = attempt;
|
|
1335
|
+
// just continue and report the track event
|
|
1336
|
+
trackCallback();
|
|
1337
|
+
}
|
|
1338
|
+
else {
|
|
1339
|
+
// We need to wait for the browser to populate the window.performance entry
|
|
1340
|
+
// This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,
|
|
1341
|
+
// this is a scheduling issue for the browser implementation
|
|
1342
|
+
scheduleTimeout(locateResourceTiming, retryDelay);
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
catch (e) {
|
|
1346
|
+
reportError(e);
|
|
1347
|
+
}
|
|
1348
|
+
})();
|
|
1349
|
+
}
|
|
1350
|
+
function _createFetchRecord(input, init) {
|
|
1351
|
+
var _a;
|
|
1352
|
+
var distributedTraceCtx = _getDistributedTraceCtx();
|
|
1353
|
+
var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();
|
|
1354
|
+
var spanID = strSubstr(generateW3CId(), 0, 16);
|
|
1355
|
+
var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());
|
|
1356
|
+
ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();
|
|
1357
|
+
ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();
|
|
1358
|
+
ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;
|
|
1359
|
+
var requestUrl;
|
|
1360
|
+
if (input instanceof Request) {
|
|
1361
|
+
requestUrl = (input || {}).url || "";
|
|
1362
|
+
}
|
|
1363
|
+
else {
|
|
1364
|
+
requestUrl = input;
|
|
1365
|
+
}
|
|
1366
|
+
if (requestUrl === "") {
|
|
1367
|
+
var location_1 = getLocation();
|
|
1368
|
+
if (location_1 && location_1.href) {
|
|
1369
|
+
requestUrl = strSplit(location_1.href, "#")[0];
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = requestUrl;
|
|
1373
|
+
var method = "GET";
|
|
1374
|
+
if (init && init[_DYN_METHOD /* @min:%2emethod */]) {
|
|
1375
|
+
method = init[_DYN_METHOD /* @min:%2emethod */];
|
|
1376
|
+
}
|
|
1377
|
+
else if (input && input instanceof Request) {
|
|
1378
|
+
method = input[_DYN_METHOD /* @min:%2emethod */];
|
|
1379
|
+
}
|
|
1380
|
+
ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;
|
|
1381
|
+
var requestHeaders = {};
|
|
1382
|
+
if (_enableRequestHeaderTracking) {
|
|
1383
|
+
var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));
|
|
1384
|
+
headers.forEach(function (value, key) {
|
|
1385
|
+
if (_canIncludeHeaders(key)) {
|
|
1386
|
+
requestHeaders[key] = value;
|
|
1387
|
+
}
|
|
1388
|
+
});
|
|
1389
|
+
}
|
|
1390
|
+
ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;
|
|
1391
|
+
_createMarkId(STR_FETCH, ajaxData);
|
|
1392
|
+
return ajaxData;
|
|
1393
|
+
}
|
|
1394
|
+
function _getFailedFetchDiagnosticsMessage(input) {
|
|
1395
|
+
var result = "";
|
|
1396
|
+
try {
|
|
1397
|
+
if (!isNullOrUndefined(input)) {
|
|
1398
|
+
if (typeof (input) === "string") {
|
|
1399
|
+
result += "(url: '".concat(input, "')");
|
|
1400
|
+
}
|
|
1401
|
+
else {
|
|
1402
|
+
result += "(url: '".concat(input.url, "')");
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
catch (e) {
|
|
1407
|
+
_throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, "Failed to grab failed fetch diagnostics message", { exception: dumpObj(e) });
|
|
1408
|
+
}
|
|
1409
|
+
return result;
|
|
1410
|
+
}
|
|
1411
|
+
function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {
|
|
1412
|
+
if (!ajaxData) {
|
|
1413
|
+
return;
|
|
1414
|
+
}
|
|
1415
|
+
function _reportFetchError(msgId, e, failedProps) {
|
|
1416
|
+
var errorProps = failedProps || {};
|
|
1417
|
+
errorProps["fetchDiagnosticsMessage"] = _getFailedFetchDiagnosticsMessage(input);
|
|
1418
|
+
if (e) {
|
|
1419
|
+
errorProps["exception"] = dumpObj(e);
|
|
1420
|
+
}
|
|
1421
|
+
_throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + "fetch call" + ERROR_NOT_SENT, errorProps);
|
|
1422
|
+
}
|
|
1423
|
+
ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();
|
|
1424
|
+
ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;
|
|
1425
|
+
_findPerfResourceEntry(STR_FETCH, ajaxData, function () {
|
|
1426
|
+
var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */]("Fetch", _enableRequestHeaderTracking, getResponse);
|
|
1427
|
+
var properties;
|
|
1428
|
+
try {
|
|
1429
|
+
if (!!_addRequestContext) {
|
|
1430
|
+
properties = _addRequestContext({ status: status, request: input, response: response });
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
catch (e) {
|
|
1434
|
+
_throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);
|
|
1435
|
+
}
|
|
1436
|
+
if (dependency) {
|
|
1437
|
+
if (properties !== undefined) {
|
|
1438
|
+
dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assignFn(__assignFn({}, dependency.properties), properties);
|
|
1439
|
+
}
|
|
1440
|
+
var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();
|
|
1441
|
+
_reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);
|
|
1442
|
+
}
|
|
1443
|
+
else {
|
|
1444
|
+
_reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {
|
|
1445
|
+
requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],
|
|
1446
|
+
responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI12 /* @min:%2eresponseFinishedTime */]
|
|
1447
|
+
});
|
|
1448
|
+
}
|
|
1449
|
+
}, function (e) {
|
|
1450
|
+
_reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);
|
|
1451
|
+
});
|
|
1452
|
+
}
|
|
1453
|
+
function _getFetchCorrelationContext(response) {
|
|
1454
|
+
if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {
|
|
1455
|
+
try {
|
|
1456
|
+
var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);
|
|
1457
|
+
return correlationIdGetCorrelationContext(responseHeader);
|
|
1458
|
+
}
|
|
1459
|
+
catch (e) {
|
|
1460
|
+
_throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {
|
|
1461
|
+
fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),
|
|
1462
|
+
exception: dumpObj(e)
|
|
1463
|
+
});
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {
|
|
1468
|
+
var result = true;
|
|
1469
|
+
var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];
|
|
1470
|
+
if (initializersCount > 0) {
|
|
1471
|
+
var details = {
|
|
1472
|
+
item: dependency,
|
|
1473
|
+
properties: properties,
|
|
1474
|
+
sysProperties: systemProperties,
|
|
1475
|
+
context: ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,
|
|
1476
|
+
aborted: ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false
|
|
1477
|
+
};
|
|
1478
|
+
result = _processDependencyContainer(core, initializers, details, "initializer");
|
|
1479
|
+
}
|
|
1480
|
+
if (result) {
|
|
1481
|
+
_self[_DYN_TRACK_DEPENDENCY_DAT1 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);
|
|
1482
|
+
}
|
|
1483
|
+
}
|
|
1484
|
+
});
|
|
1485
|
+
return _this;
|
|
1486
|
+
}
|
|
1487
|
+
// Removed Stub for AjaxMonitor.prototype.initialize.
|
|
1488
|
+
AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {
|
|
1489
|
+
this.processNext(item, itemCtx);
|
|
1490
|
+
};
|
|
1491
|
+
// Removed Stub for AjaxMonitor.prototype.trackDependencyData.
|
|
1492
|
+
// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.
|
|
1493
|
+
// Removed Stub for AjaxMonitor.prototype.addDependencyListener.
|
|
1494
|
+
/**
|
|
1495
|
+
* Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.
|
|
1496
|
+
* It is called after the dependency call has completed and any available performance details are available. A dependency
|
|
1497
|
+
* initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency
|
|
1498
|
+
* request so that it doesn't count against the `maxAjaxCallsPerView`.
|
|
1499
|
+
* @param dependencyInitializer - The Dependency Telemetry Initializer function
|
|
1500
|
+
* @returns - A IDependencyInitializerHandler to enable the initializer to be removed
|
|
1501
|
+
*/
|
|
1502
|
+
AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {
|
|
1503
|
+
return null;
|
|
1504
|
+
};
|
|
1505
|
+
// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.
|
|
1506
|
+
AjaxMonitor.identifier = "AjaxDependencyPlugin";
|
|
1507
|
+
return AjaxMonitor;
|
|
1508
|
+
}(BaseTelemetryPlugin));
|
|
1509
|
+
|
|
1510
|
+
export { AjaxMonitor as A };
|