ember-native-devtools 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/bin/devtools.js +95 -0
  2. package/download/chrome-devtools-frontend.appspot.com/robots.txt/index.html +4 -0
  3. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/3d-center.svg +1 -0
  4. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/3d-pan.svg +1 -0
  5. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/3d-rotate.svg +1 -0
  6. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/Images.js +259 -0
  7. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-back.svg +1 -0
  8. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-bottom.png +0 -0
  9. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-front.svg +1 -0
  10. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-left.png +0 -0
  11. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-right.png +0 -0
  12. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/accelerometer-top.png +0 -0
  13. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/account-box.svg +1 -0
  14. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-center.svg +1 -0
  15. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-end.svg +1 -0
  16. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-space-around.svg +1 -0
  17. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-space-between.svg +1 -0
  18. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-space-evenly.svg +1 -0
  19. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-start.svg +1 -0
  20. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-content-stretch.svg +1 -0
  21. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-baseline.svg +1 -0
  22. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-center.svg +1 -0
  23. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-end.svg +1 -0
  24. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-start.svg +1 -0
  25. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-items-stretch.svg +1 -0
  26. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-center.svg +1 -0
  27. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-end.svg +1 -0
  28. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-start.svg +1 -0
  29. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/align-self-stretch.svg +1 -0
  30. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-back.svg +1 -0
  31. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-down.svg +1 -0
  32. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-drop-down-dark.svg +1 -0
  33. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-drop-down-light.svg +1 -0
  34. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-forward.svg +1 -0
  35. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-up-down-circle.svg +1 -0
  36. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-up-down.svg +1 -0
  37. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/arrow-up.svg +1 -0
  38. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bell.svg +1 -0
  39. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bezier-curve-filled.svg +1 -0
  40. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bin.svg +1 -0
  41. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bottom-panel-close.svg +1 -0
  42. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bottom-panel-open.svg +1 -0
  43. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/brackets.svg +1 -0
  44. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/breakpoint-circle.svg +1 -0
  45. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/breakpoint-crossed-filled.svg +1 -0
  46. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/breakpoint-crossed.svg +1 -0
  47. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/brush-filled.svg +1 -0
  48. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/brush.svg +1 -0
  49. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bug.svg +1 -0
  50. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/bundle.svg +1 -0
  51. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/calendar-today.svg +1 -0
  52. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/check-circle.svg +1 -0
  53. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/check-double.svg +1 -0
  54. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/checker.svg +1 -0
  55. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/checkmark.svg +1 -0
  56. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-double-right.svg +1 -0
  57. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-down.svg +1 -0
  58. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-left-dot.svg +1 -0
  59. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-left.svg +1 -0
  60. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-right.svg +1 -0
  61. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chevron-up.svg +1 -0
  62. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chromeLeft.avif +0 -0
  63. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chromeMiddle.avif +0 -0
  64. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/chromeRight.avif +0 -0
  65. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/class.svg +1 -0
  66. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/clear-list.svg +1 -0
  67. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/clear.svg +1 -0
  68. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cloud.svg +1 -0
  69. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/code-circle.svg +1 -0
  70. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/code.svg +1 -0
  71. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/colon.svg +1 -0
  72. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/color-picker-filled.svg +1 -0
  73. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/color-picker.svg +1 -0
  74. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/console-conditional-breakpoint.svg +1 -0
  75. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/console-logpoint.svg +1 -0
  76. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cookie.svg +1 -0
  77. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/copy.svg +1 -0
  78. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/corporate-fare.svg +1 -0
  79. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/credit-card.svg +1 -0
  80. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cross-circle-filled.svg +1 -0
  81. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cross-circle.svg +1 -0
  82. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cross.svg +1 -0
  83. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/cssoverview_icons_2x.avif +0 -0
  84. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/custom-typography.svg +1 -0
  85. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/database.svg +1 -0
  86. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/deployed.svg +1 -0
  87. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/device-fold.svg +1 -0
  88. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/devices.svg +1 -0
  89. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/devtools.svg +1 -0
  90. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-bottom.svg +1 -0
  91. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-left.svg +1 -0
  92. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-right.svg +1 -0
  93. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dock-window.svg +1 -0
  94. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/document.svg +1 -0
  95. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dog-paw.svg +1 -0
  96. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dots-horizontal.svg +1 -0
  97. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/dots-vertical.svg +1 -0
  98. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/download.svg +1 -0
  99. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/edit.svg +1 -0
  100. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/empty.svg +1 -0
  101. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/errorWave.svg +1 -0
  102. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/exclamation.svg +1 -0
  103. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/experiment-check.svg +1 -0
  104. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/experiment.svg +1 -0
  105. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/extension.svg +1 -0
  106. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/eye.svg +1 -0
  107. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-document.svg +1 -0
  108. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-fetch-xhr.svg +1 -0
  109. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-font.svg +1 -0
  110. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-generic.svg +1 -0
  111. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-image.svg +1 -0
  112. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-json.svg +1 -0
  113. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-manifest.svg +1 -0
  114. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-media.svg +1 -0
  115. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-script.svg +1 -0
  116. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-snippet.svg +1 -0
  117. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-stylesheet.svg +1 -0
  118. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-wasm.svg +1 -0
  119. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/file-websocket.svg +1 -0
  120. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/filter-clear.svg +1 -0
  121. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/filter-filled.svg +1 -0
  122. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/filter.svg +1 -0
  123. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flex-direction.svg +1 -0
  124. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flex-no-wrap.svg +1 -0
  125. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flex-wrap.svg +1 -0
  126. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/flow.svg +1 -0
  127. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/fold-more.svg +1 -0
  128. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/folder.svg +1 -0
  129. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/frame-crossed.svg +1 -0
  130. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/frame-icon.svg +1 -0
  131. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/frame.svg +1 -0
  132. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/gear-filled.svg +1 -0
  133. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/gear.svg +1 -0
  134. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/gears.svg +1 -0
  135. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/globe.svg +1 -0
  136. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/google.svg +1 -0
  137. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/goto-filled.svg +1 -0
  138. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/heap-snapshot.svg +1 -0
  139. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/heap-snapshots.svg +1 -0
  140. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/help.svg +1 -0
  141. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/hover.svg +1 -0
  142. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/iframe-crossed.svg +1 -0
  143. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/iframe.svg +1 -0
  144. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/import.svg +1 -0
  145. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/indeterminate-question-box.svg +1 -0
  146. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/info-filled.svg +1 -0
  147. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/info.svg +1 -0
  148. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-cross-filled.svg +1 -0
  149. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-exclamation-filled.svg +1 -0
  150. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-questionmark-filled.svg +1 -0
  151. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/issue-text-filled.svg +1 -0
  152. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-center.svg +1 -0
  153. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-end.svg +1 -0
  154. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-space-around.svg +1 -0
  155. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-space-between.svg +1 -0
  156. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-space-evenly.svg +1 -0
  157. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-content-start.svg +1 -0
  158. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-center.svg +1 -0
  159. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-end.svg +1 -0
  160. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-start.svg +1 -0
  161. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/justify-items-stretch.svg +1 -0
  162. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/keyboard-arrow-right.svg +1 -0
  163. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/keyboard-pen.svg +1 -0
  164. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/keyboard.svg +1 -0
  165. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/large-arrow-right-filled.svg +1 -0
  166. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/layers-filled.svg +1 -0
  167. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/layers.svg +1 -0
  168. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/left-panel-close.svg +1 -0
  169. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/left-panel-open.svg +1 -0
  170. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lightbulb-spark.svg +1 -0
  171. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lightbulb.svg +1 -0
  172. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lighthouse_logo.svg +1 -0
  173. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/list.svg +1 -0
  174. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/location-on.svg +1 -0
  175. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/lock.svg +1 -0
  176. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/match-case.svg +1 -0
  177. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/match-whole-word.svg +1 -0
  178. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/memory.svg +1 -0
  179. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/minus.svg +1 -0
  180. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/mop.svg +1 -0
  181. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/mouse.svg +1 -0
  182. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/navigationControls.png +0 -0
  183. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/navigationControls_2x.png +0 -0
  184. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/network-settings.svg +1 -0
  185. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/nodeIcon.avif +0 -0
  186. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/open-externally.svg +1 -0
  187. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/pause.svg +1 -0
  188. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/pen-spark.svg +1 -0
  189. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/performance.svg +1 -0
  190. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/person.svg +1 -0
  191. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/play.svg +1 -0
  192. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/plus.svg +1 -0
  193. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/policy.svg +1 -0
  194. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/popoverArrows.png +0 -0
  195. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/popup.svg +1 -0
  196. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/preview_feature_video_thumbnail.svg +1 -0
  197. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/profile.svg +1 -0
  198. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/psychiatry.svg +1 -0
  199. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/record-start.svg +1 -0
  200. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/record-stop.svg +1 -0
  201. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/redo.svg +1 -0
  202. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/refresh.svg +1 -0
  203. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/regular-expression.svg +1 -0
  204. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/replace.svg +1 -0
  205. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/replay.svg +1 -0
  206. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/report.svg +1 -0
  207. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resizeDiagonal.svg +1 -0
  208. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resizeHorizontal.svg +1 -0
  209. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resizeVertical.svg +1 -0
  210. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/resume.svg +1 -0
  211. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/review.svg +1 -0
  212. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/right-panel-close.svg +1 -0
  213. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/right-panel-open.svg +1 -0
  214. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/scissors.svg +1 -0
  215. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/screen-rotation.svg +1 -0
  216. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/search.svg +1 -0
  217. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/select-element.svg +1 -0
  218. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/send.svg +1 -0
  219. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/shadow.svg +1 -0
  220. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/small-status-dot.svg +1 -0
  221. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/snippet.svg +1 -0
  222. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/spark-info.svg +1 -0
  223. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/spark.svg +1 -0
  224. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/star.svg +1 -0
  225. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step-into.svg +1 -0
  226. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step-out.svg +1 -0
  227. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step-over.svg +1 -0
  228. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/step.svg +1 -0
  229. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/stop.svg +1 -0
  230. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/symbol.svg +1 -0
  231. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/sync.svg +1 -0
  232. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/table.svg +1 -0
  233. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/thumb-down.svg +1 -0
  234. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/thumb-up.svg +1 -0
  235. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/toolbarResizerVertical.png +0 -0
  236. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/top-panel-close.svg +1 -0
  237. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/top-panel-open.svg +1 -0
  238. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/touch-app.svg +1 -0
  239. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/touchCursor.png +0 -0
  240. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/touchCursor_2x.png +0 -0
  241. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-bottom-right.svg +1 -0
  242. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-down.svg +1 -0
  243. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-left.svg +1 -0
  244. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-right.svg +1 -0
  245. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/triangle-up.svg +1 -0
  246. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/tune.svg +1 -0
  247. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/undo.svg +1 -0
  248. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/warning-filled.svg +1 -0
  249. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/warning.svg +1 -0
  250. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/watch.svg +1 -0
  251. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/whatsnew.avif +0 -0
  252. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/width.svg +1 -0
  253. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/Images/zoom-in.svg +1 -0
  254. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/common/common.js +1 -0
  255. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/dom_extension/dom_extension.js +1 -0
  256. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/host/host.js +1 -0
  257. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/i18n/i18n.js +1 -0
  258. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/i18n/locales/en-US.json +1 -0
  259. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/platform/platform.js +1 -0
  260. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/protocol_client/protocol_client.js +1 -0
  261. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/root/root.js +1 -0
  262. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/core/sdk/sdk.js +1 -0
  263. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/devtools_app.html +18 -0
  264. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/devtools_compatibility.js +1774 -0
  265. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ember_app.html +26 -0
  266. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/devtools_app/devtools_app.js +1 -0
  267. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
  268. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/formatter_worker/formatter_worker.js +1 -0
  269. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  270. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  271. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/inspector/inspector.js +1 -0
  272. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/inspector_main/inspector_main.js +1 -0
  273. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
  274. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/main/main.js +1 -0
  275. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/shell/shell.js +1 -0
  276. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  277. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
  278. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/inspector.html +18 -0
  279. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/autofill_manager/autofill_manager.js +1 -0
  280. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/bindings/bindings.js +1 -0
  281. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/breakpoints/breakpoints.js +1 -0
  282. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/cpu_profile/cpu_profile.js +1 -0
  283. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/crux-manager/crux-manager.js +1 -0
  284. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/emulation/emulation.js +1 -0
  285. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/extensions/extensions.js +1 -0
  286. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/formatter/formatter.js +1 -0
  287. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/har/har.js +1 -0
  288. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
  289. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/issues_manager/issues_manager.js +1 -0
  290. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/javascript_metadata/javascript_metadata.js +1 -0
  291. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/live-metrics/live-metrics.js +1 -0
  292. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
  293. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
  294. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/logs/logs.js +1 -0
  295. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/persistence/persistence.js +1 -0
  296. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/source_map_scopes/source_map_scopes.js +1 -0
  297. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/text_utils/text_utils.js +1 -0
  298. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/timeline_model/timeline_model.js +1 -0
  299. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/extras/extras.js +1 -0
  300. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/handlers/handlers.js +1 -0
  301. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/helpers/helpers.js +1 -0
  302. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/insights/insights.js +1 -0
  303. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/core/core.js +1 -0
  304. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/graph/graph.js +1 -0
  305. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/lantern.js +1 -0
  306. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/metrics/metrics.js +1 -0
  307. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/simulation/simulation.js +1 -0
  308. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/lantern/types/types.js +1 -0
  309. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/root-causes/root-causes.js +1 -0
  310. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/trace.js +1 -0
  311. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/trace/types/types.js +1 -0
  312. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/workspace/workspace.js +1 -0
  313. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/models/workspace_diff/workspace_diff.js +1 -0
  314. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/accessibility/accessibility.js +1 -0
  315. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/animation/animation.js +1 -0
  316. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/application.js +41 -0
  317. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/components/components.js +614 -0
  318. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/preloading/components/components.js +292 -0
  319. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/application/preloading/helper/helper.js +1 -0
  320. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/autofill/autofill.js +88 -0
  321. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/browser_debugger/browser_debugger.js +1 -0
  322. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/changes/changes.js +1 -0
  323. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/console/console.js +6 -0
  324. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/console_counters/console_counters.js +1 -0
  325. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/coverage/coverage.js +1 -0
  326. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/css_overview/components/components.js +23 -0
  327. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/css_overview/css_overview.js +147 -0
  328. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/developer_resources/developer_resources.js +1 -0
  329. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/elements/components/components.js +272 -0
  330. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/elements/elements.js +8 -0
  331. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/emulation/components/components.js +39 -0
  332. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/emulation/emulation.js +1 -0
  333. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/event_listeners/event_listeners.js +1 -0
  334. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/explain/explain.js +203 -0
  335. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/freestyler/freestyler.js +177 -0
  336. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/issues/components/components.js +14 -0
  337. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/issues/issues.js +1 -0
  338. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/layer_viewer/layer_viewer.js +1 -0
  339. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/layers/layers.js +1 -0
  340. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/lighthouse/lighthouse.js +64 -0
  341. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/linear_memory_inspector/components/components.js +177 -0
  342. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
  343. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/media/media.js +25 -0
  344. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/mobile_throttling/mobile_throttling.js +1 -0
  345. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/network/components/components.js +315 -0
  346. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/network/forward/forward.js +1 -0
  347. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/network/network.js +1 -0
  348. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/performance_monitor/performance_monitor.js +1 -0
  349. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/profiler/profiler.js +8 -0
  350. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/protocol_monitor/components/components.js +180 -0
  351. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/protocol_monitor/protocol_monitor.js +1 -0
  352. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/components/components.js +714 -0
  353. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/controllers/controllers.js +1 -0
  354. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/converters/converters.js +1 -0
  355. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/extensions/extensions.js +1 -0
  356. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/injected/injected.generated.js +1 -0
  357. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/models/models.js +1 -0
  358. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/recorder.js +120 -0
  359. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/recorder/util/util.js +1 -0
  360. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/screencast/screencast.js +1 -0
  361. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/search/search.js +1 -0
  362. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/security/security.js +1 -0
  363. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/sensors/sensors.js +1 -0
  364. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/components/components.js +23 -0
  365. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/emulation/components/components.js +222 -0
  366. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/emulation/emulation.js +1 -0
  367. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/emulation/utils/utils.js +1 -0
  368. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/settings/settings.js +130 -0
  369. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/snippets/snippets.js +1 -0
  370. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/sources/components/components.js +162 -0
  371. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/sources/sources.js +14 -0
  372. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/components/components.js +623 -0
  373. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/components/insights/insights.js +85 -0
  374. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/extensions/extensions.js +1 -0
  375. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/overlays/components/components.js +52 -0
  376. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/overlays/overlays.js +1 -0
  377. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/timeline.js +4 -0
  378. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/timeline/utils/utils.js +1 -0
  379. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/utils/utils.js +1 -0
  380. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  381. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/web_audio/web_audio.js +23 -0
  382. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/panels/webauthn/webauthn.js +6 -0
  383. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/puppeteer/puppeteer.js +1 -0
  384. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/trace_bounds/trace_bounds.js +1 -0
  385. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/tracing/tracing.js +1 -0
  386. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/services/window_bounds/window_bounds.js +1 -0
  387. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/setup-ember-extension.js +160 -0
  388. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/acorn/acorn.js +1 -0
  389. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/chromium/client-variations/client-variations.js +1 -0
  390. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/angular.js +2 -0
  391. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/codemirror.js +2 -0
  392. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/cpp.js +2 -0
  393. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/java.js +2 -0
  394. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/legacy.js +2 -0
  395. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/less.js +2 -0
  396. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/markdown.js +2 -0
  397. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/php.js +2 -0
  398. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/python.js +2 -0
  399. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/sass.js +2 -0
  400. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/svelte.js +2 -0
  401. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/vue.js +2 -0
  402. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/wast.js +2 -0
  403. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/chunk/xml.js +2 -0
  404. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/codemirror.next/codemirror.next.js +2 -0
  405. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/csp_evaluator/csp_evaluator.js +194 -0
  406. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/diff/diff.js +1 -0
  407. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/i18n/i18n.js +1 -0
  408. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/intl-messageformat/intl-messageformat.js +15 -0
  409. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/lighthouse/lighthouse-dt-bundle.js +2137 -0
  410. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/lighthouse/report/report.js +39 -0
  411. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/lit/lit.js +110 -0
  412. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/marked/marked.js +1 -0
  413. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer/debug/index.html +4 -0
  414. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer/puppeteer.js +378 -0
  415. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer-replay/lighthouse/index.html +4 -0
  416. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer-replay/puppeteer/index.html +4 -0
  417. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
  418. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/third_party/wasmparser/wasmparser.js +1 -0
  419. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/adorners/adorners.js +3 -0
  420. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/buttons/buttons.js +11 -0
  421. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/chrome_link/chrome_link.js +5 -0
  422. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/code_highlighter/code_highlighter.js +1 -0
  423. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/data_grid/data_grid.js +69 -0
  424. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/dialogs/dialogs.js +81 -0
  425. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/diff_view/diff_view.js +8 -0
  426. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/expandable_list/expandable_list.js +17 -0
  427. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/helpers/helpers.js +1 -0
  428. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/highlighting/highlighting.js +1 -0
  429. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/icon_button/icon_button.js +12 -0
  430. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/input/input.js +1 -0
  431. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/issue_counter/issue_counter.js +9 -0
  432. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
  433. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/linkifier/linkifier.js +1 -0
  434. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/markdown_view/markdown_view.js +41 -0
  435. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/menus/menus.js +73 -0
  436. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/node_text/node_text.js +3 -0
  437. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/panel_feedback/panel_feedback.js +37 -0
  438. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
  439. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/render_coordinator/render_coordinator.js +1 -0
  440. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/report_view/report_view.js +21 -0
  441. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/request_link_icon/request_link_icon.js +8 -0
  442. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/settings/settings.js +16 -0
  443. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/split_view/split_view.js +9 -0
  444. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/srgb_overlay/srgb_overlay.js +6 -0
  445. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/suggestion_input/suggestion_input.js +29 -0
  446. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/switch/switch.js +10 -0
  447. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/text_editor/text_editor.js +1 -0
  448. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/text_prompt/text_prompt.js +3 -0
  449. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/components/tree_outline/tree_outline.js +30 -0
  450. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/color_picker/color_picker.js +1 -0
  451. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/cookie_table/cookie_table.js +1 -0
  452. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/data_grid/data_grid.js +1 -0
  453. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/inline_editor/inline_editor.js +46 -0
  454. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/object_ui/object_ui.js +9 -0
  455. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/perf_ui/perf_ui.js +59 -0
  456. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/quick_open/quick_open.js +1 -0
  457. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/source_frame/source_frame.js +1 -0
  458. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/components/utils/utils.js +1 -0
  459. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/legacy.js +3 -0
  460. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/legacy/theme_support/theme_support.js +1 -0
  461. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/lit-html/lit-html.js +1 -0
  462. package/download/chrome-devtools-frontend.appspot.com/serve_file/@abb728f8afc6a86cc66b1313f5056728ce422ddd/ui/visual_logging/visual_logging.js +1 -0
  463. package/download/googlechrome.github.io/lighthouse/scorecalc/calc.js +838 -0
  464. package/download/googlechrome.github.io/lighthouse/scorecalc/index.html +78 -0
  465. package/download/googlechrome.github.io/lighthouse/scorecalc/style.css +554 -0
  466. package/download/wicg.github.io/attribution-reporting-api/validate-headers/index.html +104 -0
  467. package/download/wicg.github.io/attribution-reporting-api/validate-headers.js +1 -0
  468. package/package.json +31 -0
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as n from"../../core/sdk/sdk.js";import*as i from"./web-vitals-injected/spec/spec.js";const s="DevTools Performance Metrics";let a;class o{static#e;static async get(){if(!this.#e){const e=new URL("./web-vitals-injected/web-vitals-injected.generated.js",import.meta.url),t=await fetch(e);this.#e=await t.text()}return this.#e}}class r extends e.ObjectWrapper.ObjectWrapper{#t;#n;#i;#s;#a;#o;#r=[];#c=new e.Mutex.Mutex;constructor(){super(),n.TargetManager.TargetManager.instance().observeTargets(this)}static instance(e={forceNew:null}){const{forceNew:t}=e;return a&&!t||(a=new r),a}get lcpValue(){return this.#s}get clsValue(){return this.#a}get inpValue(){return this.#o}get interactions(){return this.#r}async#d(e,t){if(!this.#t)return null;const i=this.#t.model(n.RuntimeModel.RuntimeModel);if(!i)return null;const s=this.#t.model(n.DOMModel.DOMModel);if(!s)return null;const{result:a}=await this.#t.runtimeAgent().invoke_evaluate({expression:`window.getNodeForIndex(${e})`,contextId:t});if(!a)return null;const o=i.createRemoteObject(a);return s.pushObjectAsNodeToFrontend(o)}async#l(e,t){const n=t.backendNodeId(),i=await e.pushNodesByBackendIdsToFrontend(new Set([n]));return i?.get(n)||void 0}async#u(e){const t=e.data;this.lcpValue?.node&&(this.lcpValue.node=await this.#l(t,this.lcpValue.node));for(const e of this.interactions)e.node&&(e.node=await this.#l(t,e.node));this.dispatchEventToListeners("status",{lcp:this.#s,cls:this.#a,inp:this.#o,interactions:this.#r})}async#h(e,t){switch(e.name){case"LCP":{const n={value:e.value};if(void 0!==e.nodeIndex){const i=await this.#d(e.nodeIndex,t);i&&(n.node=i)}this.#s=n;break}case"CLS":{const t={value:e.value};this.#a=t;break}case"INP":{const t={value:e.value};this.#o=t;break}case"Interaction":{const n=e;if(void 0!==e.nodeIndex){const i=await this.#d(e.nodeIndex,t);i&&(n.node=i)}this.#r.push(n);break}case"reset":this.#s=void 0,this.#a=void 0,this.#o=void 0,this.#r=[]}this.dispatchEventToListeners("status",{lcp:this.#s,cls:this.#a,inp:this.#o,interactions:this.#r})}#m(e){if(!this.#t)return null;const t=this.#t.model(n.RuntimeModel.RuntimeModel),i=this.#t.model(n.ResourceTreeModel.ResourceTreeModel);if(!t||!i)return null;const s=t.executionContext(e);if(!s)return null;const a=s.frameId;if(!a)return null;const o=i.frameForId(a);return o||null}async#p(e){const{data:t}=e;if(t.name!==i.EVENT_BINDING_NAME)return;const n=this.#m(t.executionContextId);if(!n?.isMainFrame())return;const s=JSON.parse(t.payload);if("reset"===s.name)this.#i=t.executionContextId;else if(this.#i!==t.executionContextId)return;await this.#c.run((async()=>{await this.#h(s,t.executionContextId)}))}targetAdded(e){e===n.TargetManager.TargetManager.instance().primaryPageTarget()&&this.#g(e)}targetRemoved(e){e===n.TargetManager.TargetManager.instance().primaryPageTarget()&&this.#v()}async#g(e){if(t.InspectorFrontendHost.isUnderTest())return;if(this.#t)return;const a=e.model(n.DOMModel.DOMModel);if(!a)return;a.addEventListener(n.DOMModel.Events.DocumentUpdated,this.#u,this);const r=e.model(n.RuntimeModel.RuntimeModel);if(!r)return;r.addEventListener(n.RuntimeModel.Events.BindingCalled,this.#p,this),await r.addBinding({name:i.EVENT_BINDING_NAME,executionContextName:s});const c=await o.get();this.#t=e;const{identifier:d}=await e.pageAgent().invoke_addScriptToEvaluateOnNewDocument({source:c,worldName:s,runImmediately:!0});this.#n=d}async#v(){if(!this.#t)return;const e=this.#t.model(n.RuntimeModel.RuntimeModel);e&&(await e.removeBinding({name:i.EVENT_BINDING_NAME}),e.removeEventListener(n.RuntimeModel.Events.BindingCalled,this.#p,this));const t=this.#t.model(n.DOMModel.DOMModel);t&&t.removeEventListener(n.DOMModel.Events.DocumentUpdated,this.#u,this),this.#n&&await this.#t.pageAgent().invoke_removeScriptToEvaluateOnNewDocument({identifier:this.#n}),this.#t=void 0}}export{r as LiveMetrics};
@@ -0,0 +1 @@
1
+ const o="__chromium_devtools_metrics_reporter";export{o as EVENT_BINDING_NAME};
@@ -0,0 +1 @@
1
+ !function(){"use strict";let e=-1;const t=()=>e,n=t=>{addEventListener("pageshow",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},r=()=>{const e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},a=()=>{const e=r();return e&&e.activationStart||0},i=(e,n)=>{const i=r();let o="navigate";return t()>=0?o="back-forward-cache":i&&(document.prerendering||a()>0?o="prerender":document.wasDiscarded?o="restore":i.type&&(o=i.type.replace(/_/g,"-"))),{name:e,value:void 0===n?-1:n,rating:"good",delta:0,entries:[],id:`v4-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:o}},o=(e,t,n)=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const r=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},s=(e,t,n,r)=>{let a,i;return o=>{t.value>=0&&(o||r)&&(i=t.value-(a||0),(i||void 0===a)&&(a=t.value,t.delta=i,t.rating=((e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good")(t.value,n),e(t)))}},c=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},l=e=>{document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&e()}))},d=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const m=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{"hidden"===document.visibilityState&&u>-1&&(u="visibilitychange"===e.type?e.timeStamp:0,g())},h=()=>{addEventListener("visibilitychange",p,!0),addEventListener("prerenderingchange",p,!0)},g=()=>{removeEventListener("visibilitychange",p,!0),removeEventListener("prerenderingchange",p,!0)},f=()=>(u<0&&(u=m(),h(),n((()=>{setTimeout((()=>{u=m(),h()}),0)}))),{get firstHiddenTime(){return u}}),v=e=>{document.prerendering?addEventListener("prerenderingchange",(()=>e()),!0):e()},T=[1800,3e3],y=(e,t)=>{t=t||{},v((()=>{const r=f();let l,d=i("FCP");const u=o("paint",(e=>{e.forEach((e=>{"first-contentful-paint"===e.name&&(u.disconnect(),e.startTime<r.firstHiddenTime&&(d.value=Math.max(e.startTime-a(),0),d.entries.push(e),l(!0)))}))}));u&&(l=s(e,d,T,t.reportAllChanges),n((n=>{d=i("FCP"),l=s(e,d,T,t.reportAllChanges),c((()=>{d.value=performance.now()-n.timeStamp,l(!0)}))})))}))},E=[.1,.25];let S=0,b=1/0,C=0;const L=e=>{e.forEach((e=>{e.interactionId&&(b=Math.min(b,e.interactionId),C=Math.max(C,e.interactionId),S=C?(C-b)/7+1:0)}))};let I;const w=[],M=new Map;let D=0;const P=[],x=e=>{if(P.forEach((t=>t(e))),!e.interactionId&&"first-input"!==e.entryType)return;const t=w[w.length-1],n=M.get(e.interactionId);if(n||w.length<10||e.duration>t.latency){if(n)e.duration>n.latency?(n.entries=[e],n.latency=e.duration):e.duration===n.latency&&e.startTime===n.entries[0].startTime&&n.entries.push(e);else{const t={id:e.interactionId,latency:e.duration,entries:[e]};M.set(t.id,t),w.push(t)}w.sort(((e,t)=>t.latency-e.latency)),w.length>10&&w.splice(10).forEach((e=>M.delete(e.id)))}},F=e=>{const t=self.requestIdleCallback||self.setTimeout;let n=-1;return e=d(e),"hidden"===document.visibilityState?e():(n=t(e),l(e)),n},k=[200,500],A=(e,t)=>{"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},v((()=>{"interactionCount"in performance||I||(I=o("event",L,{type:"event",buffered:!0,durationThreshold:0}));let r,a=i("INP");const c=e=>{F((()=>{e.forEach(x);const t=(()=>{const e=Math.min(w.length-1,Math.floor(((I?S:performance.interactionCount||0)-D)/50));return w[e]})();t&&t.latency!==a.value&&(a.value=t.latency,a.entries=t.entries,r())}))},d=o("event",c,{durationThreshold:t.durationThreshold??40});r=s(e,a,k,t.reportAllChanges),d&&(d.observe({type:"first-input",buffered:!0}),l((()=>{c(d.takeRecords()),r(!0)})),n((()=>{D=0,w.length=0,M.clear(),a=i("INP"),r=s(e,a,k,t.reportAllChanges)})))})))},_=[2500,4e3],B={},O=[800,1800],N=e=>{document.prerendering?v((()=>N(e))):"complete"!==document.readyState?addEventListener("load",(()=>N(e)),!0):setTimeout(e,0)};let j,R,q,H;const z={passive:!0,capture:!0},W=new Date,$=(e,t)=>{j||(j=t,R=e,q=new Date,V(removeEventListener),J())},J=()=>{if(R>=0&&R<q-W){const e={entryType:"first-input",name:j.type,target:j.target,cancelable:j.cancelable,startTime:j.timeStamp,processingStart:j.timeStamp+R};H.forEach((function(t){t(e)})),H=[]}},U=e=>{if(e.cancelable){const t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?((e,t)=>{const n=()=>{$(e,t),a()},r=()=>{a()},a=()=>{removeEventListener("pointerup",n,z),removeEventListener("pointercancel",r,z)};addEventListener("pointerup",n,z),addEventListener("pointercancel",r,z)})(t,e):$(t,e)}},V=e=>{["mousedown","keydown","touchstart","pointerdown"].forEach((t=>e(t,U,z)))},G=[100,300],K=e=>{if("loading"===document.readyState)return"loading";{const t=r();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}}return"complete"},Q=e=>{const t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},X=(e,t)=>{let n="";try{for(;e&&9!==e.nodeType;){const r=e,a=r.id?"#"+r.id:Q(r)+(r.classList&&r.classList.value&&r.classList.value.trim()&&r.classList.value.trim().length?"."+r.classList.value.trim().replace(/\s+/g,"."):"");if(n.length+a.length>(t||100)-1)return n||a;if(n=n?a+">"+n:a,r.id)break;e=r.parentNode}}catch(e){}return n};let Y,Z,ee=[],te=[];const ne=new WeakMap,re=new Map;let ae=-1;const ie=e=>{ee=ee.concat(e),oe()},oe=()=>{ae<0&&(ae=F(se))},se=()=>{re.size>10&&re.forEach(((e,t)=>{M.has(t)||re.delete(t)}));const e=w.map((e=>ne.get(e.entries[0]))),t=te.length-50;te=te.filter(((n,r)=>r>=t||e.includes(n)));const n=new Set;for(let e=0;e<te.length;e++){const t=te[e];ce(t.startTime,t.processingEnd).forEach((e=>{n.add(e)}))}for(let e=0;e<50;e++){const t=ee[ee.length-1-e];if(!t||t.startTime<Z)break;n.add(t)}ee=Array.from(n),ae=-1};P.push((e=>{e.interactionId&&e.target&&!re.has(e.interactionId)&&re.set(e.interactionId,e.target)}),(e=>{const t=e.startTime+e.duration;let n;Z=Math.max(Z,e.processingEnd);for(let r=te.length-1;r>=0;r--){const a=te[r];if(Math.abs(t-a.renderTime)<=8){n=a,n.startTime=Math.min(e.startTime,n.startTime),n.processingStart=Math.min(e.processingStart,n.processingStart),n.processingEnd=Math.max(e.processingEnd,n.processingEnd),n.entries.push(e);break}}n||(n={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:t,entries:[e]},te.push(n)),(e.interactionId||"first-input"===e.entryType)&&ne.set(e,n),oe()}));const ce=(e,t)=>{const n=[];for(let r,a=0;r=ee[a];a++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n};var le=Object.freeze({__proto__:null,onCLS:(e,t)=>{((e,t)=>{t=t||{},y(d((()=>{let r,a=i("CLS",0),d=0,u=[];const m=e=>{e.forEach((e=>{if(!e.hadRecentInput){const t=u[0],n=u[u.length-1];d&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(d+=e.value,u.push(e)):(d=e.value,u=[e])}})),d>a.value&&(a.value=d,a.entries=u,r())},p=o("layout-shift",m);p&&(r=s(e,a,E,t.reportAllChanges),l((()=>{m(p.takeRecords()),r(!0)})),n((()=>{d=0,a=i("CLS",0),r=s(e,a,E,t.reportAllChanges),c((()=>r()))})),setTimeout(r,0))})))})((t=>{const n=(e=>{let t={};if(e.entries.length){const r=e.entries.reduce(((e,t)=>e&&e.value>t.value?e:t));if(r&&r.sources&&r.sources.length){const e=(n=r.sources).find((e=>e.node&&1===e.node.nodeType))||n[0];e&&(t={largestShiftTarget:X(e.node),largestShiftTime:r.startTime,largestShiftValue:r.value,largestShiftSource:e,largestShiftEntry:r,loadState:K(r.startTime)})}}var n;return Object.assign(e,{attribution:t})})(t);e(n)}),t)},onFCP:(e,n)=>{y((n=>{const a=(e=>{let n={timeToFirstByte:0,firstByteToFCP:e.value,loadState:K(t())};if(e.entries.length){const t=r(),a=e.entries[e.entries.length-1];if(t){const r=t.activationStart||0,i=Math.max(0,t.responseStart-r);n={timeToFirstByte:i,firstByteToFCP:e.value-i,loadState:K(e.entries[0].startTime),navigationEntry:t,fcpEntry:a}}}return Object.assign(e,{attribution:n})})(n);e(a)}),n)},onINP:(e,t)=>{Y||(Y=o("long-animation-frame",ie)),A((t=>{const n=(e=>{const t=e.entries[0],n=ne.get(t),r=t.processingStart,a=n.processingEnd,i=n.entries.sort(((e,t)=>e.processingStart-t.processingStart)),o=ce(t.startTime,a),s=e.entries.find((e=>e.target)),c=s&&s.target||re.get(t.interactionId),l=[t.startTime+t.duration,a].concat(o.map((e=>e.startTime+e.duration))),d=Math.max.apply(Math,l),u={interactionTarget:X(c),interactionTargetElement:c,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:d,processedEventEntries:i,longAnimationFrameEntries:o,inputDelay:r-t.startTime,processingDuration:a-r,presentationDelay:Math.max(d-a,0),loadState:K(t.startTime)};return Object.assign(e,{attribution:u})})(t);e(n)}),t)},onLCP:(e,t)=>{((e,t)=>{t=t||{},v((()=>{const r=f();let u,m=i("LCP");const p=e=>{t.reportAllChanges||(e=e.slice(-1)),e.forEach((e=>{e.startTime<r.firstHiddenTime&&(m.value=Math.max(e.startTime-a(),0),m.entries=[e],u())}))},h=o("largest-contentful-paint",p);if(h){u=s(e,m,_,t.reportAllChanges);const r=d((()=>{B[m.id]||(p(h.takeRecords()),h.disconnect(),B[m.id]=!0,u(!0))}));["keydown","click"].forEach((e=>{addEventListener(e,(()=>F(r)),!0)})),l(r),n((n=>{m=i("LCP"),u=s(e,m,_,t.reportAllChanges),c((()=>{m.value=performance.now()-n.timeStamp,B[m.id]=!0,u(!0)}))}))}}))})((t=>{const n=(e=>{let t={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:e.value};if(e.entries.length){const n=r();if(n){const r=n.activationStart||0,a=e.entries[e.entries.length-1],i=a.url&&performance.getEntriesByType("resource").filter((e=>e.name===a.url))[0],o=Math.max(0,n.responseStart-r),s=Math.max(o,i?(i.requestStart||i.startTime)-r:0),c=Math.max(s,i?i.responseEnd-r:0),l=Math.max(c,a.startTime-r);t={element:X(a.element),timeToFirstByte:o,resourceLoadDelay:s-o,resourceLoadDuration:c-s,elementRenderDelay:l-c,navigationEntry:n,lcpEntry:a},a.url&&(t.url=a.url),i&&(t.lcpResourceEntry=i)}}return Object.assign(e,{attribution:t})})(t);e(n)}),t)},onTTFB:(e,t)=>{((e,t)=>{t=t||{};let o=i("TTFB"),c=s(e,o,O,t.reportAllChanges);N((()=>{const l=r();l&&(o.value=Math.max(l.responseStart-a(),0),o.entries=[l],c(!0),n((()=>{o=i("TTFB",0),c=s(e,o,O,t.reportAllChanges),c(!0)})))}))})((t=>{const n=(e=>{let t={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0};if(e.entries.length){const n=e.entries[0],r=n.activationStart||0,a=Math.max((n.workerStart||n.fetchStart)-r,0),i=Math.max(n.domainLookupStart-r,0),o=Math.max(n.connectStart-r,0),s=Math.max(n.connectEnd-r,0);t={waitingDuration:a,cacheDuration:i-a,dnsDuration:o-i,connectionDuration:s-o,requestDuration:e.value-s,navigationEntry:n}}return Object.assign(e,{attribution:t})})(t);e(n)}),t)},CLSThresholds:E,FCPThresholds:T,INPThresholds:k,LCPThresholds:_,TTFBThresholds:O,onFID:(e,t)=>{((e,t)=>{t=t||{},v((()=>{const r=f();let a,c=i("FID");const u=e=>{e.startTime<r.firstHiddenTime&&(c.value=e.processingStart-e.startTime,c.entries.push(e),a(!0))},m=e=>{e.forEach(u)},p=o("first-input",m);a=s(e,c,G,t.reportAllChanges),p&&(l(d((()=>{m(p.takeRecords()),p.disconnect()}))),n((()=>{var n;c=i("FID"),a=s(e,c,G,t.reportAllChanges),H=[],R=-1,j=null,V(addEventListener),n=u,H.push(n),J()})))}))})((t=>{const n=(e=>{const t=e.entries[0],n={eventTarget:X(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:K(t.startTime)};return Object.assign(e,{attribution:n})})(t);e(n)}),t)},FIDThresholds:G});var de=Object.freeze({__proto__:null,onEachInteraction:function(e){const t=new PerformanceObserver((t=>{const n=t.getEntries(),r=new Map,a=n.filter((e=>"interactionId"in e)).filter((e=>e.interactionId));for(const e of a){const t=r.get(e.interactionId)||[];t.push(e),r.set(e.interactionId,t)}for(const[t,n]of r.entries()){const r=n.reduce(((e,t)=>e.duration>=t.duration?e:t)),a=r.duration,i=n.find((e=>e.target));e({attribution:{interactionTargetElement:i?.target??null,interactionTime:r.startTime,interactionType:r.name.startsWith("key")?"keyboard":"pointer",interactionId:t},entries:n,value:a})}}));t.observe({type:"first-input",buffered:!1}),t.observe({type:"event",durationThreshold:0,buffered:!1})}});const ue="__chromium_devtools_metrics_reporter",{onLCP:me,onCLS:pe,onINP:he}=le,{onEachInteraction:ge}=de;function fe(e){const t=JSON.stringify(e);window[ue](t)}const ve=[];function Te(e){const t=ve.length;return ve.push(e),t}window.getNodeForIndex=e=>ve[e],fe({name:"reset"}),n((()=>{fe({name:"reset"})})),me((e=>{const t={name:"LCP",value:e.value},n=e.attribution.lcpEntry?.element;n&&(t.nodeIndex=Te(n)),fe(t)}),{reportAllChanges:!0}),pe((e=>{fe({name:"CLS",value:e.value})}),{reportAllChanges:!0}),he((e=>{const t={name:"INP",value:e.value,interactionType:e.attribution.interactionType},n=e.attribution.interactionTargetElement;n&&(t.nodeIndex=Te(n)),fe(t)}),{reportAllChanges:!0}),ge((e=>{const t={name:"Interaction",duration:e.value,interactionId:e.attribution.interactionId,interactionType:e.attribution.interactionType},n=e.attribution.interactionTargetElement;n&&(t.nodeIndex=Te(n)),fe(t)}))}();
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/sdk/sdk.js";import*as s from"../../core/i18n/i18n.js";import*as r from"../../core/platform/platform.js";const n={anonymous:"<anonymous>"},o=s.i18n.registerUIStrings("models/logs/NetworkLog.ts",n),a=s.i18n.getLocalizedString.bind(void 0,o);let i;class d extends e.ObjectWrapper.ObjectWrapper{requestsInternal;sentNetworkRequests;receivedNetworkResponses;requestsSet;requestsMap;pageLoadForManager;isRecording;modelListeners;initiatorData;unresolvedPreflightRequests;constructor(){super(),this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet=new Set,this.requestsMap=new Map,this.pageLoadForManager=new Map,this.isRecording=!0,this.modelListeners=new WeakMap,this.initiatorData=new WeakMap,t.TargetManager.TargetManager.instance().observeModels(t.NetworkManager.NetworkManager,this);const s=e.Settings.Settings.instance().moduleSetting("network-log.record-log");s.addChangeListener((()=>{!e.Settings.Settings.instance().moduleSetting("network-log.preserve-log").get()&&s.get()&&this.reset(!0),this.setIsRecording(s.get())}),this),this.unresolvedPreflightRequests=new Map}static instance(){return i||(i=new d),i}static removeInstance(){i=void 0}modelAdded(e){const s=[];s.push(e.addEventListener(t.NetworkManager.Events.RequestStarted,this.onRequestStarted,this)),s.push(e.addEventListener(t.NetworkManager.Events.RequestUpdated,this.onRequestUpdated,this)),s.push(e.addEventListener(t.NetworkManager.Events.RequestRedirected,this.onRequestRedirect,this)),s.push(e.addEventListener(t.NetworkManager.Events.RequestFinished,this.onRequestUpdated,this)),s.push(e.addEventListener(t.NetworkManager.Events.MessageGenerated,this.networkMessageGenerated.bind(this,e))),s.push(e.addEventListener(t.NetworkManager.Events.ResponseReceived,this.onResponseReceived,this));const r=e.target().model(t.ResourceTreeModel.ResourceTreeModel);r&&(s.push(r.addEventListener(t.ResourceTreeModel.Events.WillReloadPage,this.willReloadPage,this)),s.push(r.addEventListener(t.ResourceTreeModel.Events.PrimaryPageChanged,this.onPrimaryPageChanged,this)),s.push(r.addEventListener(t.ResourceTreeModel.Events.Load,this.onLoad,this)),s.push(r.addEventListener(t.ResourceTreeModel.Events.DOMContentLoaded,this.onDOMContentLoaded.bind(this,r)))),this.modelListeners.set(e,s)}modelRemoved(e){this.removeNetworkManagerListeners(e)}removeNetworkManagerListeners(t){e.EventTarget.removeEventListeners(this.modelListeners.get(t)||[])}setIsRecording(e){this.isRecording!==e&&(this.isRecording=e,e?t.TargetManager.TargetManager.instance().observeModels(t.NetworkManager.NetworkManager,this):(t.TargetManager.TargetManager.instance().unobserveModels(t.NetworkManager.NetworkManager,this),t.TargetManager.TargetManager.instance().models(t.NetworkManager.NetworkManager).forEach(this.removeNetworkManagerListeners.bind(this))))}requestForURL(e){return this.requestsInternal.find((t=>t.url()===e))||null}originalRequestForURL(e){return this.sentNetworkRequests.find((t=>t.url===e))||null}originalResponseForURL(e){return this.receivedNetworkResponses.find((t=>t.url===e))||null}requests(){return this.requestsInternal}requestByManagerAndId(e,s){for(let r=this.requestsInternal.length-1;r>=0;r--){const n=this.requestsInternal[r];if(s===n.requestId()&&e===t.NetworkManager.NetworkManager.forRequest(n))return n}return null}requestByManagerAndURL(e,s){for(const r of this.requestsInternal)if(s===r.url()&&e===t.NetworkManager.NetworkManager.forRequest(r))return r;return null}initializeInitiatorSymbolIfNeeded(e){let t=this.initiatorData.get(e);return t||(t={info:null,chain:null,request:void 0},this.initiatorData.set(e,t),t)}static initiatorInfoForRequest(e,t){const s=t||{info:null,chain:null,request:void 0};let o,i,d="other",u=r.DevToolsPath.EmptyUrlString,l=null,g=null,h=null;const c=e.initiator(),q=e.redirectSource();if(q)d="redirect",u=q.url();else if(c)if("parser"===c.type)d="parser",u=c.url?c.url:u,o=c.lineNumber,i=c.columnNumber;else if("script"===c.type){for(let e=c.stack;e;){const t=e.callFrames.length?e.callFrames[0]:null;if(t){d="script",u=t.url||a(n.anonymous),o=t.lineNumber,i=t.columnNumber,l=t.scriptId;break}e=e.parent}!c.stack&&c.url&&(d="script",u=c.url,o=c.lineNumber),c.stack?.callFrames?.length&&(g=c.stack)}else"preload"===c.type?d="preload":"preflight"===c.type?(d="preflight",h=e.preflightInitiatorRequest()):"SignedExchange"===c.type&&(d="signedExchange",u=c.url||r.DevToolsPath.EmptyUrlString);return s.info={type:d,url:u,lineNumber:o,columnNumber:i,scriptId:l,stack:g,initiatorRequest:h},s.info}initiatorInfoForRequest(e){const t=this.initializeInitiatorSymbolIfNeeded(e);return t.info?t.info:d.initiatorInfoForRequest(e,t)}initiatorGraphForRequest(e){const s=new Map,r=t.NetworkManager.NetworkManager.forRequest(e);for(const n of this.requestsInternal){if(r===t.NetworkManager.NetworkManager.forRequest(n)&&this.initiatorChain(n).has(e)){const e=this.initiatorRequest(n);e&&s.set(n,e)}}return{initiators:this.initiatorChain(e),initiated:s}}initiatorChain(e){const t=this.initializeInitiatorSymbolIfNeeded(e);let s=t.chain;if(s)return s;s=new Set;let r=e;for(;r;){const e=this.initializeInitiatorSymbolIfNeeded(r);if(e.chain){s=s.union(e.chain);break}if(s.has(r))break;s.add(r),r=this.initiatorRequest(r)}return t.chain=s,s}initiatorRequest(e){const s=this.initializeInitiatorSymbolIfNeeded(e);if(void 0!==s.request)return s.request;const r=this.initiatorInfoForRequest(e).url,n=t.NetworkManager.NetworkManager.forRequest(e);return s.request=n?this.requestByManagerAndURL(n,r):null,s.request}willReloadPage(){e.Settings.Settings.instance().moduleSetting("network-log.preserve-log").get()||this.reset(!0)}onPrimaryPageChanged(s){const r=s.data.frame,n=r.resourceTreeModel().target().model(t.NetworkManager.NetworkManager);if(!n||r.resourceTreeModel().target().parentTarget()?.type()===t.Target.Type.Frame)return;if(r.url!==r.unreachableUrl()&&e.ParsedURL.schemeIs(r.url,"chrome-error:"))return;const o=e.Settings.Settings.instance().moduleSetting("network-log.preserve-log").get(),a=this.requestsInternal,i=this.requestsInternal.filter((e=>t.NetworkManager.NetworkManager.forRequest(e)===n)),d=this.requestsSet;this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet=new Set,this.requestsMap.clear(),this.unresolvedPreflightRequests.clear(),this.dispatchEventToListeners(l.Reset,{clearIfPreserved:!o});let u=null;const g=[];for(const e of i)if("Activation"===s.data.type||e.loaderId===r.loaderId){if(!u){u=new t.PageLoad.PageLoad(e);let s=e.redirectSource();for(;s;)g.push(s),s=s.redirectSource()}g.push(e)}const h=[];for(const e of a){if(!e.initiatedByServiceWorker())continue;g.some((t=>t.url()===e.url()&&t.issueTime()<=e.issueTime()))&&h.push(e)}g.push(...h);for(const e of g)u?.bindRequest(e),d.delete(e),this.addRequest(e);if(o)for(const e of d)this.addRequest(e,!0),e.preserved=!0;u&&this.pageLoadForManager.set(n,u)}addRequest(e,t){this.requestsInternal.push(e),this.requestsSet.add(e);const s=this.requestsMap.get(e.requestId());s?s.push(e):this.requestsMap.set(e.requestId(),[e]),this.tryResolvePreflightRequests(e),this.dispatchEventToListeners(l.RequestAdded,{request:e,preserveLog:t})}removeRequest(e){const t=this.requestsInternal.indexOf(e);t>-1&&this.requestsInternal.splice(t,1),this.requestsSet.delete(e),this.requestsMap.delete(e.requestId()),this.dispatchEventToListeners(l.RequestRemoved,{request:e})}tryResolvePreflightRequests(e){if(e.isPreflightRequest()){const t=e.initiator();if(t&&t.requestId){const[s]=this.requestsForId(t.requestId);s?(e.setPreflightInitiatorRequest(s),s.setPreflightRequest(e)):this.unresolvedPreflightRequests.set(t.requestId,e)}}else{const t=this.unresolvedPreflightRequests.get(e.requestId());if(t){this.unresolvedPreflightRequests.delete(e.requestId()),e.setPreflightRequest(t),t.setPreflightInitiatorRequest(e);const s=this.initiatorData.get(t);s&&(s.info=null),this.dispatchEventToListeners(l.RequestUpdated,{request:t})}}}importRequests(e){this.reset(!0),this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet.clear(),this.requestsMap.clear(),this.unresolvedPreflightRequests.clear();for(const t of e)this.addRequest(t)}onRequestStarted(e){const{request:s,originalRequest:r}=e.data;r&&this.sentNetworkRequests.push(r),this.requestsSet.add(s);const n=t.NetworkManager.NetworkManager.forRequest(s),o=n?this.pageLoadForManager.get(n):null;o&&o.bindRequest(s),this.addRequest(s)}onResponseReceived(e){const t=e.data.response;this.receivedNetworkResponses.push(t)}onRequestUpdated(e){const t=e.data;this.requestsSet.has(t)&&(t.isPreflightRequest()&&"UnexpectedPrivateNetworkAccess"===t.corsErrorStatus()?.corsError?this.removeRequest(t):this.dispatchEventToListeners(l.RequestUpdated,{request:t}))}onRequestRedirect(e){this.initiatorData.delete(e.data)}onDOMContentLoaded(e,s){const r=e.target().model(t.NetworkManager.NetworkManager),n=r?this.pageLoadForManager.get(r):null;n&&(n.contentLoadTime=s.data)}onLoad(e){const s=e.data.resourceTreeModel.target().model(t.NetworkManager.NetworkManager),r=s?this.pageLoadForManager.get(s):null;r&&(r.loadTime=e.data.loadTime)}reset(e){this.requestsInternal=[],this.sentNetworkRequests=[],this.receivedNetworkResponses=[],this.requestsSet.clear(),this.requestsMap.clear(),this.unresolvedPreflightRequests.clear();const s=new Set(t.TargetManager.TargetManager.instance().models(t.NetworkManager.NetworkManager));for(const e of this.pageLoadForManager.keys())s.has(e)||this.pageLoadForManager.delete(e);this.dispatchEventToListeners(l.Reset,{clearIfPreserved:e})}networkMessageGenerated(e,s){const{message:r,warning:n,requestId:o}=s.data,a=new t.ConsoleModel.ConsoleMessage(e.target().model(t.RuntimeModel.RuntimeModel),"network",n?"warning":"info",r);this.associateConsoleMessageWithRequest(a,o),e.target().model(t.ConsoleModel.ConsoleModel)?.addMessage(a)}associateConsoleMessageWithRequest(e,s){const r=e.target(),n=r?r.model(t.NetworkManager.NetworkManager):null;if(!n)return;const o=this.requestByManagerAndId(n,s);if(!o)return;u.set(e,o);const a=o.initiator();a&&(e.stackTrace=a.stack||void 0,a.url&&(e.url=a.url,e.line=a.lineNumber||0))}static requestForConsoleMessage(e){return u.get(e)||null}requestsForId(e){return this.requestsMap.get(e)||[]}}const u=new WeakMap;var l;!function(e){e.Reset="Reset",e.RequestAdded="RequestAdded",e.RequestUpdated="RequestUpdated",e.RequestRemoved="RequestRemoved"}(l||(l={}));var g=Object.freeze({__proto__:null,NetworkLog:d,get Events(){return l}});const h=new WeakMap;let c=null;class q{constructor(){t.TargetManager.TargetManager.instance().observeModels(t.LogModel.LogModel,this)}static instance({forceNew:e}={forceNew:!1}){return c&&!e||(c=new q),c}modelAdded(e){const t=[];t.push(e.addEventListener("EntryAdded",this.logEntryAdded,this)),h.set(e,t)}modelRemoved(t){const s=h.get(t);s&&e.EventTarget.removeEventListeners(s)}logEntryAdded(e){const{logModel:s,entry:r}=e.data,n=s.target(),o={url:r.url,line:r.lineNumber,parameters:[r.text,...r.args??[]],stackTrace:r.stackTrace,timestamp:r.timestamp,workerId:r.workerId,category:r.category,affectedResources:r.networkRequestId?{requestId:r.networkRequestId}:void 0},a=new t.ConsoleModel.ConsoleMessage(n.model(t.RuntimeModel.RuntimeModel),r.source,r.level,r.text,o);r.networkRequestId&&d.instance().associateConsoleMessageWithRequest(a,r.networkRequestId);const i=n.model(t.ConsoleModel.ConsoleModel);if("worker"===a.source){const e=a.workerId||"";if(t.TargetManager.TargetManager.instance().targetById(e))return;window.setTimeout((()=>{t.TargetManager.TargetManager.instance().targetById(e)||i?.addMessage(a)}),1e3)}else i?.addMessage(a)}}var R=Object.freeze({__proto__:null,LogManager:q});class M extends e.ResolverBase.ResolverBase{networkListener=null;networkLog;constructor(e=d.instance()){super(),this.networkLog=e}getForId(e){const t=this.networkLog.requestsForId(e);return t.length>0?t[0]:null}onRequestAdded(e){const{request:t}=e.data,s=t.backendRequestId();s&&this.onResolve(s,t)}startListening(){this.networkListener||(this.networkListener=this.networkLog.addEventListener(l.RequestAdded,this.onRequestAdded,this))}stopListening(){this.networkListener&&(e.EventTarget.removeEventListeners([this.networkListener]),this.networkListener=null)}}var p=Object.freeze({__proto__:null,RequestResolver:M});export{R as LogManager,g as NetworkLog,p as RequestResolver};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as s from"../../core/sdk/sdk.js";import*as r from"../bindings/bindings.js";import*as n from"../text_utils/text_utils.js";import*as i from"../workspace/workspace.js";import*as o from"../../core/platform/platform.js";import*as a from"../../core/i18n/i18n.js";import*as d from"../../ui/legacy/components/utils/utils.js";import*as l from"../breakpoints/breakpoints.js";import*as c from"../../ui/components/icon_button/icon_button.js";import*as h from"../../ui/legacy/legacy.js";import*as u from"../../ui/visual_logging/visual_logging.js";const p={unableToReadFilesWithThis:"`PlatformFileSystem` cannot read files."},m=a.i18n.registerUIStrings("models/persistence/PlatformFileSystem.ts",p),g=a.i18n.getLocalizedString.bind(void 0,m);class f{pathInternal;typeInternal;constructor(e,t){this.pathInternal=e,this.typeInternal=t}getMetadata(e){return Promise.resolve(null)}initialFilePaths(){return[]}initialGitFolders(){return[]}path(){return this.pathInternal}embedderPath(){throw new Error("Not implemented")}type(){return this.typeInternal}async createFile(e,t){return Promise.resolve(null)}deleteFile(e){return Promise.resolve(!1)}deleteDirectoryRecursively(e){return Promise.resolve(!1)}requestFileBlob(e){return Promise.resolve(null)}async requestFileContent(e){return{error:g(p.unableToReadFilesWithThis)}}setFileContent(e,t,s){throw new Error("Not implemented")}renameFile(e,t,s){s(!1)}addExcludedFolder(e){}removeExcludedFolder(e){}fileSystemRemoved(){}isFileExcluded(e){return!1}excludedFolders(){return new Set}searchInPath(e,t){return Promise.resolve([])}indexContent(e){queueMicrotask((()=>{e.done()}))}mimeFromPath(e){throw new Error("Not implemented")}canExcludeFolder(e){return!1}contentType(e){throw new Error("Not implemented")}tooltipForURL(e){throw new Error("Not implemented")}supportsAutomapping(){throw new Error("Not implemented")}}var S=Object.freeze({__proto__:null,PlatformFileSystem:f});const y={fileSystemErrorS:"File system error: {PH1}",blobCouldNotBeLoaded:"Blob could not be loaded.",cantReadFileSS:"Can't read file: {PH1}: {PH2}",linkedToS:"Linked to {PH1}"},P=a.i18n.registerUIStrings("models/persistence/IsolatedFileSystem.ts",y),v=a.i18n.getLocalizedString.bind(void 0,P);class F extends f{manager;embedderPathInternal;domFileSystem;excludedFoldersSetting;excludedFoldersInternal;excludedEmbedderFolders=[];initialFilePathsInternal=new Set;initialGitFoldersInternal=new Set;fileLocks=new Map;constructor(t,s,r,n,i){super(s,i),this.manager=t,this.embedderPathInternal=r,this.domFileSystem=n,this.excludedFoldersSetting=e.Settings.Settings.instance().createLocalSetting("workspace-excluded-folders",{}),this.excludedFoldersInternal=new Set(this.excludedFoldersSetting.get()[s]||[])}static async create(e,s,r,n,i,o){const a=t.InspectorFrontendHost.InspectorFrontendHostInstance.isolatedFileSystem(i,o);if(!a)return null;const d=new F(e,s,r,a,n);return d.initializeFilePaths().then((()=>d)).catch((e=>(console.error(e),null)))}static errorMessage(e){return v(y.fileSystemErrorS,{PH1:e.message})}serializedFileOperation(e,t){const s=Promise.resolve(this.fileLocks.get(e)).then((()=>t.call(null)));return this.fileLocks.set(e,s),s}getMetadata(t){const{promise:s,resolve:r}=o.PromiseUtilities.promiseWithResolvers();return this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,(function(e){e.getMetadata(r,n)}),n),s;function n(e){const s=F.errorMessage(e);console.error(s+" when getting file metadata '"+t),r(null)}}initialFilePaths(){return[...this.initialFilePathsInternal]}initialGitFolders(){return[...this.initialGitFoldersInternal]}embedderPath(){return this.embedderPathInternal}initializeFilePaths(){return new Promise((s=>{let r=1;const n=function(i){for(let s=0;s<i.length;++s){const o=i[s];if(o.isDirectory){if(o.fullPath.endsWith("/.git")){const t=o.fullPath.lastIndexOf("/"),s=e.ParsedURL.ParsedURL.substr(o.fullPath,1,t);this.initialGitFoldersInternal.add(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(s))}if(this.isFileExcluded(e.ParsedURL.ParsedURL.concatenate(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(o.fullPath),"/"))){const s=e.ParsedURL.ParsedURL.concatenate(this.path(),e.ParsedURL.ParsedURL.rawPathToEncodedPathString(o.fullPath));this.excludedEmbedderFolders.push(e.ParsedURL.ParsedURL.urlToRawPathString(s,t.Platform.isWin()));continue}++r,this.requestEntries(o.fullPath,n)}else{if(this.isFileExcluded(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(o.fullPath)))continue;this.initialFilePathsInternal.add(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(e.ParsedURL.ParsedURL.substr(o.fullPath,1)))}}0==--r&&s()}.bind(this);this.requestEntries(o.DevToolsPath.EmptyRawPathString,n)}))}async createFoldersIfNotExist(e){let t=await new Promise((t=>this.domFileSystem.root.getDirectory(e,void 0,t,(()=>t(null)))));if(t)return t;const s=e.split("/");let r="";for(const e of s)if(r=r+"/"+e,t=await this.innerCreateFolderIfNeeded(r),!t)return null;return t}innerCreateFolderIfNeeded(e){return new Promise((t=>{this.domFileSystem.root.getDirectory(e,{create:!0},(e=>t(e)),(s=>{const r=F.errorMessage(s);console.error(r+" trying to create directory '"+e+"'"),t(null)}))}))}async createFile(t,s){const r=await this.createFoldersIfNotExist(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t));if(!r)return null;const n=await this.serializedFileOperation(t,function s(n,i){return new Promise((o=>{const a=e.ParsedURL.ParsedURL.concatenate(n,(i||"").toString());r.getFile(a,{create:!0,exclusive:!0},o,(e=>{if("InvalidModificationError"===e.name)return void o(s.call(this,n,i?i+1:1));const r=F.errorMessage(e);console.error(r+" when testing if file exists '"+this.path()+"/"+t+"/"+a+"'"),o(null)}))}))}.bind(this,s||"NewFile"));return n?e.ParsedURL.ParsedURL.rawPathToEncodedPathString(e.ParsedURL.ParsedURL.substr(n.fullPath,1)):null}deleteFile(t){const{promise:s,resolve:r}=o.PromiseUtilities.promiseWithResolvers();return this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,function(e){e.remove(n,i.bind(this))}.bind(this),i.bind(this)),s;function n(){r(!0)}function i(e){const s=F.errorMessage(e);console.error(s+" when deleting file '"+this.path()+"/"+t+"'"),r(!1)}}deleteDirectoryRecursively(t){const{promise:s,resolve:r}=o.PromiseUtilities.promiseWithResolvers();return this.domFileSystem.root.getDirectory(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,function(e){e.removeRecursively(n,i.bind(this))}.bind(this),i.bind(this)),s;function n(){r(!0)}function i(e){const s=F.errorMessage(e);console.error(s+" when deleting directory '"+this.path()+"/"+t+"'"),r(!1)}}requestFileBlob(t){return new Promise((s=>{function r(e){if("NotFoundError"===e.name)return void s(null);const r=F.errorMessage(e);console.error(r+" when getting content for file '"+this.path()+"/"+t+"'"),s(null)}this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,(e=>{e.file(s,r.bind(this))}),r.bind(this))}))}requestFileContent(e){return this.serializedFileOperation(e,(()=>this.innerRequestFileContent(e)))}async innerRequestFileContent(t){const s=await this.requestFileBlob(t);if(!s)return{error:v(y.blobCouldNotBeLoaded)};const r=function(t,s){if(s.type)return s.type;const r=e.ParsedURL.ParsedURL.extractExtension(t),n=e.ResourceType.ResourceType.mimeFromExtension(r);if(n)return n;return k.has(r)?"application/octet-stream":"text/plain"}(t,s);try{return o.MimeType.isTextType(r)?new n.ContentData.ContentData(await s.text(),!1,r):new n.ContentData.ContentData(await e.Base64.encode(s),!0,r)}catch(e){return{error:v(y.cantReadFileSS,{PH1:t,PH2:e.message})}}}async setFileContent(s,r,n){let i;t.userMetrics.actionTaken(t.UserMetrics.Action.FileSavedInWorkspace);function o(e){e.createWriter(a.bind(this),d.bind(this))}async function a(e){let t;e.onerror=d.bind(this),e.onwriteend=function(){e.onwriteend=i,e.truncate(t.size)},t=n?await(await fetch(`data:application/octet-stream;base64,${r}`)).blob():new Blob([r],{type:"text/plain"}),e.write(t)}function d(e){const t=F.errorMessage(e);console.error(t+" when setting content for file '"+this.path()+"/"+s+"'"),i(void 0)}this.serializedFileOperation(s,(()=>{const t=new Promise((e=>{i=e}));return this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(s),{create:!0},o.bind(this),d.bind(this)),t}))}renameFile(t,s,r){if(!(s=s?e.ParsedURL.ParsedURL.trim(s):s)||-1!==s.indexOf("/"))return void r(!1);let n,i;function o(e){i=e,i.getFile(s,void 0,a,d.bind(this))}function a(e){r(!1)}function d(e){"NotFoundError"===e.name?n.moveTo(i,s,l,c.bind(this)):r(!1)}function l(e){r(!0,e.name)}function c(e){const n=F.errorMessage(e);console.error(n+" when renaming file '"+this.path()+"/"+t+"' to '"+s+"'"),r(!1)}this.domFileSystem.root.getFile(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t),void 0,function(e){if(e.name===s)return void r(!1);n=e,n.getParent(o.bind(this),c.bind(this))}.bind(this),c.bind(this))}readDirectory(e,t){const s=e.createReader();let r=[];function n(s){const r=F.errorMessage(s);console.error(r+" when reading directory '"+e.fullPath+"'"),t([])}s.readEntries((function e(i){var o;i.length?(r=r.concat((o=i,Array.prototype.slice.call(o||[],0))),s.readEntries(e,n)):t(r.sort())}),n)}requestEntries(e,t){this.domFileSystem.root.getDirectory(e,void 0,function(e){this.readDirectory(e,t)}.bind(this),(function(s){const r=F.errorMessage(s);console.error(r+" when requesting entry '"+e+"'"),t([])}))}saveExcludedFolders(){const e=this.excludedFoldersSetting.get();e[this.path()]=[...this.excludedFoldersInternal],this.excludedFoldersSetting.set(e)}addExcludedFolder(e){this.excludedFoldersInternal.add(e),this.saveExcludedFolders(),this.manager.dispatchEventToListeners(M.ExcludedFolderAdded,e)}removeExcludedFolder(e){this.excludedFoldersInternal.delete(e),this.saveExcludedFolders(),this.manager.dispatchEventToListeners(M.ExcludedFolderRemoved,e)}fileSystemRemoved(){const e=this.excludedFoldersSetting.get();delete e[this.path()],this.excludedFoldersSetting.set(e)}isFileExcluded(t){if(this.excludedFoldersInternal.has(t))return!0;const s=this.manager.workspaceFolderExcludePatternSetting().asRegExp();return Boolean(s&&s.test(e.ParsedURL.ParsedURL.encodedPathToRawPathString(t)))}excludedFolders(){return this.excludedFoldersInternal}searchInPath(s,r){return new Promise((n=>{const i=this.manager.registerCallback((function(t){n(t.map((t=>e.ParsedURL.ParsedURL.rawPathToUrlString(t)))),r.incrementWorked(1)}));t.InspectorFrontendHost.InspectorFrontendHostInstance.searchInPath(i,this.embedderPathInternal,s)}))}indexContent(e){e.setTotalWork(1);const s=this.manager.registerProgress(e);t.InspectorFrontendHost.InspectorFrontendHostInstance.indexPath(s,this.embedderPathInternal,JSON.stringify(this.excludedEmbedderFolders))}mimeFromPath(t){return e.ResourceType.ResourceType.mimeFromURL(t)||"text/plain"}canExcludeFolder(e){return Boolean(e)&&"overrides"!==this.type()}contentType(t){const s=e.ParsedURL.ParsedURL.extractExtension(t);return w.has(s)?e.ResourceType.resourceTypes.Stylesheet:C.has(s)?e.ResourceType.resourceTypes.Document:I.has(s)?e.ResourceType.resourceTypes.Image:U.has(s)?e.ResourceType.resourceTypes.Script:k.has(s)?e.ResourceType.resourceTypes.Other:e.ResourceType.resourceTypes.Document}tooltipForURL(s){const r=o.StringUtilities.trimMiddle(e.ParsedURL.ParsedURL.urlToRawPathString(s,t.Platform.isWin()),150);return v(y.linkedToS,{PH1:r})}supportsAutomapping(){return"overrides"!==this.type()}}const w=new Set(["css","scss","sass","less"]),C=new Set(["htm","html","asp","aspx","phtml","jsp"]),U=new Set(["asp","aspx","c","cc","cljs","coffee","cpp","cs","dart","java","js","jsp","jsx","h","m","mjs","mm","py","sh","ts","tsx","ls"]),I=new Set(["jpeg","jpg","svg","gif","webp","png","ico","tiff","tif","bmp"]),k=new Set(["cmd","com","exe","a","ar","iso","tar","bz2","gz","lz","lzma","z","7z","apk","arc","cab","dmg","jar","pak","rar","zip","3gp","aac","aiff","flac","m4a","mmf","mp3","ogg","oga","raw","sln","wav","wma","webm","mkv","flv","vob","ogv","gifv","avi","mov","qt","mp4","m4p","m4v","mpg","mpeg","jpeg","jpg","gif","webp","png","ico","tiff","tif","bmp"]);var R=Object.freeze({__proto__:null,IsolatedFileSystem:F,BinaryExtensions:k});const x={unableToAddFilesystemS:"Unable to add filesystem: {PH1}"},L=a.i18n.registerUIStrings("models/persistence/IsolatedFileSystemManager.ts",x),b=a.i18n.getLocalizedString.bind(void 0,L);let T;class E extends e.ObjectWrapper.ObjectWrapper{fileSystemsInternal;callbacks;progresses;workspaceFolderExcludePatternSettingInternal;fileSystemRequestResolve;fileSystemsLoadedPromise;constructor(){super(),this.fileSystemsInternal=new Map,this.callbacks=new Map,this.progresses=new Map,t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemRemoved,this.onFileSystemRemoved,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemAdded,(e=>{this.onFileSystemAdded(e)}),this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemFilesChangedAddedRemoved,this.onFileSystemFilesChanged,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.IndexingTotalWorkCalculated,this.onIndexingTotalWorkCalculated,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.IndexingWorked,this.onIndexingWorked,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.IndexingDone,this.onIndexingDone,this),t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.SearchCompleted,this.onSearchCompleted,this);const s=["/Thumbs.db$","/ehthumbs.db$","/Desktop.ini$","/\\$RECYCLE.BIN/"],r=["/\\.DS_Store$","/\\.Trashes$","/\\.Spotlight-V100$","/\\.AppleDouble$","/\\.LSOverride$","/Icon$","/\\._.*$"],n=["/.*~$"];let i=["/node_modules/","/bower_components/","/\\.devtools","/\\.git/","/\\.sass-cache/","/\\.hg/","/\\.idea/","/\\.svn/","/\\.cache/","/\\.project/"];i=t.Platform.isWin()?i.concat(s):t.Platform.isMac()?i.concat(r):i.concat(n);const o=i.join("|");this.workspaceFolderExcludePatternSettingInternal=e.Settings.Settings.instance().createRegExpSetting("workspace-folder-exclude-pattern",o,t.Platform.isWin()?"i":""),this.fileSystemRequestResolve=null,this.fileSystemsLoadedPromise=this.requestFileSystems()}static instance(e={forceNew:null}){const{forceNew:t}=e;return T&&!t||(T=new E),T}static removeInstance(){T=null}requestFileSystems(){let e;const s=new Promise((t=>{e=t}));return t.InspectorFrontendHost.InspectorFrontendHostInstance.events.addEventListener(t.InspectorFrontendHostAPI.Events.FileSystemsLoaded,(function(e){const t=e.data,s=[];for(let e=0;e<t.length;++e)s.push(this.innerAddFileSystem(t[e],!1));Promise.all(s).then(r)}),this),t.InspectorFrontendHost.InspectorFrontendHostInstance.requestFileSystems(),s;function r(t){e(t.filter((e=>Boolean(e))))}}addFileSystem(e){return t.userMetrics.actionTaken("overrides"===e?t.UserMetrics.Action.OverrideTabAddFolder:t.UserMetrics.Action.WorkspaceTabAddFolder),new Promise((s=>{this.fileSystemRequestResolve=s,t.InspectorFrontendHost.InspectorFrontendHostInstance.addFileSystem(e||"")}))}removeFileSystem(e){t.userMetrics.actionTaken("overrides"===e.type()?t.UserMetrics.Action.OverrideTabRemoveFolder:t.UserMetrics.Action.WorkspaceTabRemoveFolder),t.InspectorFrontendHost.InspectorFrontendHostInstance.removeFileSystem(e.embedderPath())}waitForFileSystems(){return this.fileSystemsLoadedPromise}innerAddFileSystem(t,s){const r=t.fileSystemPath,n=e.ParsedURL.ParsedURL.rawPathToUrlString(t.fileSystemPath);return F.create(this,n,r,t.type,t.fileSystemName,t.rootURL).then(function(e){if(!e)return null;this.fileSystemsInternal.set(n,e),s&&this.dispatchEventToListeners(M.FileSystemAdded,e);return e}.bind(this))}addPlatformFileSystem(e,t){this.fileSystemsInternal.set(e,t),this.dispatchEventToListeners(M.FileSystemAdded,t)}onFileSystemAdded(t){const{errorMessage:s,fileSystem:r}=t.data;if(s){if("<selection cancelled>"!==s&&e.Console.Console.instance().error(b(x.unableToAddFilesystemS,{PH1:s})),!this.fileSystemRequestResolve)return;this.fileSystemRequestResolve.call(null,null),this.fileSystemRequestResolve=null}else r&&this.innerAddFileSystem(r,!0).then((e=>{this.fileSystemRequestResolve&&(this.fileSystemRequestResolve.call(null,e),this.fileSystemRequestResolve=null)}))}onFileSystemRemoved(t){const s=t.data,r=e.ParsedURL.ParsedURL.rawPathToUrlString(s),n=this.fileSystemsInternal.get(r);n&&(this.fileSystemsInternal.delete(r),n.fileSystemRemoved(),this.dispatchEventToListeners(M.FileSystemRemoved,n))}onFileSystemFilesChanged(t){const s={changed:r.call(this,t.data.changed),added:r.call(this,t.data.added),removed:r.call(this,t.data.removed)};function r(t){const s=new o.MapUtilities.Multimap;for(const r of t){const t=e.ParsedURL.ParsedURL.rawPathToUrlString(r);for(const n of this.fileSystemsInternal.keys()){const i=this.fileSystemsInternal.get(n);if(i&&i.isFileExcluded(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(r)))continue;const o=n.endsWith("/")?n:n+"/";t.startsWith(o)&&s.set(n,t)}}return s}this.dispatchEventToListeners(M.FileSystemFilesChanged,s)}fileSystems(){return[...this.fileSystemsInternal.values()]}fileSystem(e){return this.fileSystemsInternal.get(e)||null}workspaceFolderExcludePatternSetting(){return this.workspaceFolderExcludePatternSettingInternal}registerCallback(e){const t=++j;return this.callbacks.set(t,e),t}registerProgress(e){const t=++j;return this.progresses.set(t,e),t}onIndexingTotalWorkCalculated(e){const{requestId:t,totalWork:s}=e.data,r=this.progresses.get(t);r&&r.setTotalWork(s)}onIndexingWorked(e){const{requestId:s,worked:r}=e.data,n=this.progresses.get(s);n&&(n.incrementWorked(r),n.isCanceled()&&(t.InspectorFrontendHost.InspectorFrontendHostInstance.stopIndexing(s),this.onIndexingDone(e)))}onIndexingDone(e){const{requestId:t}=e.data,s=this.progresses.get(t);s&&(s.done(),this.progresses.delete(t))}onSearchCompleted(e){const{requestId:t,files:s}=e.data,r=this.callbacks.get(t);r&&(r.call(null,s),this.callbacks.delete(t))}}var M;!function(e){e.FileSystemAdded="FileSystemAdded",e.FileSystemRemoved="FileSystemRemoved",e.FileSystemFilesChanged="FileSystemFilesChanged",e.ExcludedFolderAdded="ExcludedFolderAdded",e.ExcludedFolderRemoved="ExcludedFolderRemoved"}(M||(M={}));let j=0;var W=Object.freeze({__proto__:null,IsolatedFileSystemManager:E,get Events(){return M}});class A{isolatedFileSystemManager;workspace;eventListeners;boundFileSystems;constructor(e,t){this.isolatedFileSystemManager=e,this.workspace=t,this.eventListeners=[this.isolatedFileSystemManager.addEventListener(M.FileSystemAdded,this.onFileSystemAdded,this),this.isolatedFileSystemManager.addEventListener(M.FileSystemRemoved,this.onFileSystemRemoved,this),this.isolatedFileSystemManager.addEventListener(M.FileSystemFilesChanged,this.fileSystemFilesChanged,this)],this.boundFileSystems=new Map,this.isolatedFileSystemManager.waitForFileSystems().then(this.onFileSystemsLoaded.bind(this))}static projectId(e){return e}static relativePath(t){const s=t.project().fileSystemBaseURL;return e.ParsedURL.ParsedURL.split(e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t.url(),s.length),"/")}static tooltipForUISourceCode(e){return e.project().fileSystemInternal.tooltipForURL(e.url())}static fileSystemType(e){return e.fileSystemInternal.type()}static fileSystemSupportsAutomapping(e){return e.fileSystemInternal.supportsAutomapping()}static completeURL(t,s){const r=t;return e.ParsedURL.ParsedURL.concatenate(r.fileSystemBaseURL,s)}static fileSystemPath(e){return e}fileSystemManager(){return this.isolatedFileSystemManager}onFileSystemsLoaded(e){for(const t of e)this.addFileSystem(t)}onFileSystemAdded(e){const t=e.data;this.addFileSystem(t)}addFileSystem(e){const t=new O(this,e,this.workspace);this.boundFileSystems.set(e.path(),t)}onFileSystemRemoved(e){const t=e.data,s=this.boundFileSystems.get(t.path());s&&s.dispose(),this.boundFileSystems.delete(t.path())}fileSystemFilesChanged(e){const t=e.data;for(const e of t.changed.keysArray()){const s=this.boundFileSystems.get(e);s&&t.changed.get(e).forEach((e=>s.fileChanged(e)))}for(const e of t.added.keysArray()){const s=this.boundFileSystems.get(e);s&&t.added.get(e).forEach((e=>s.fileChanged(e)))}for(const e of t.removed.keysArray()){const s=this.boundFileSystems.get(e);s&&t.removed.get(e).forEach((e=>s.removeUISourceCode(e)))}}dispose(){e.EventTarget.removeEventListeners(this.eventListeners);for(const e of this.boundFileSystems.values())e.dispose(),this.boundFileSystems.delete(e.fileSystemInternal.path())}}class O extends i.Workspace.ProjectStore{fileSystemInternal;fileSystemBaseURL;fileSystemParentURL;fileSystemWorkspaceBinding;fileSystemPathInternal;creatingFilesGuard;constructor(t,s,r){const n=s.path(),o=A.projectId(n);console.assert(!r.project(o));const a=n.substr(n.lastIndexOf("/")+1);super(r,o,i.Workspace.projectTypes.FileSystem,a),this.fileSystemInternal=s,this.fileSystemBaseURL=e.ParsedURL.ParsedURL.concatenate(this.fileSystemInternal.path(),"/"),this.fileSystemParentURL=e.ParsedURL.ParsedURL.substr(this.fileSystemBaseURL,0,n.lastIndexOf("/")+1),this.fileSystemWorkspaceBinding=t,this.fileSystemPathInternal=n,this.creatingFilesGuard=new Set,r.addProject(this),this.populate()}fileSystemPath(){return this.fileSystemPathInternal}fileSystem(){return this.fileSystemInternal}mimeType(e){return this.fileSystemInternal.mimeFromPath(e.url())}initialGitFolders(){return this.fileSystemInternal.initialGitFolders().map((t=>e.ParsedURL.ParsedURL.concatenate(this.fileSystemPathInternal,"/",t)))}filePathForUISourceCode(t){return e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t.url(),this.fileSystemPathInternal.length)}isServiceProject(){return!1}requestMetadata(e){const t=B.get(e);if(t)return t;const s=this.filePathForUISourceCode(e),r=this.fileSystemInternal.getMetadata(s).then((function(e){if(!e)return null;return new i.UISourceCode.UISourceCodeMetadata(e.modificationTime,e.size)}));return B.set(e,r),r}requestFileBlob(e){return this.fileSystemInternal.requestFileBlob(this.filePathForUISourceCode(e))}requestFileContent(e){const t=this.filePathForUISourceCode(e);return this.fileSystemInternal.requestFileContent(t)}canSetFileContent(){return!0}async setFileContent(e,t,s){const r=this.filePathForUISourceCode(e);await this.fileSystemInternal.setFileContent(r,t,s)}fullDisplayName(e){const t=e.project().fileSystemParentURL;return e.url().substring(t.length)}canRename(){return!0}rename(t,s,r){if(s===t.name())return void r(!0,t.name(),t.url(),t.contentType());let n=this.filePathForUISourceCode(t);this.fileSystemInternal.renameFile(n,s,function(s,i){if(!s||!i)return void r(!1,i);console.assert(Boolean(i));const o=n.lastIndexOf("/"),a=e.ParsedURL.ParsedURL.substr(n,0,o);n=e.ParsedURL.ParsedURL.encodedFromParentPathAndName(a,i),n=e.ParsedURL.ParsedURL.substr(n,1);const d=e.ParsedURL.ParsedURL.concatenate(this.fileSystemBaseURL,n),l=this.fileSystemInternal.contentType(i);this.renameUISourceCode(t,i),r(!0,i,d,l)}.bind(this))}async searchInFileContent(e,t,s,r){const i=this.filePathForUISourceCode(e),o=await this.fileSystemInternal.requestFileContent(i);return n.TextUtils.performSearchInContentData(o,t,s,r)}async findFilesMatchingSearchRequest(e,t,s){let r=t.map((e=>e.url()));const n=e.queries().slice();n.length||n.push(""),s.setTotalWork(n.length);for(const t of n){const n=await this.fileSystemInternal.searchInPath(e.isRegex()?"":t,s);n.sort(o.StringUtilities.naturalOrderComparator),r=o.ArrayUtilities.intersectOrdered(r,n,o.StringUtilities.naturalOrderComparator),s.incrementWorked(1)}const i=new Map;for(const e of r){const t=this.uiSourceCodeForURL(e);t&&i.set(t,null)}return s.done(),i}indexContent(e){this.fileSystemInternal.indexContent(e)}populate(){const e=this.fileSystemInternal.initialFilePaths();if(0===e.length)return;const s=performance.now();(function r(n){const i=Math.min(n+1e3,e.length);for(let t=n;t<i;++t)this.addFile(e[t]);i<e.length?window.setTimeout(r.bind(this,i),100):"filesystem"===this.type()&&t.userMetrics.workspacesPopulated(performance.now()-s)}).call(this,0)}excludeFolder(t){let s=e.ParsedURL.ParsedURL.sliceUrlToEncodedPathString(t,this.fileSystemBaseURL.length);s.startsWith("/")||(s=e.ParsedURL.ParsedURL.prepend("/",s)),s.endsWith("/")||(s=e.ParsedURL.ParsedURL.concatenate(s,"/")),this.fileSystemInternal.addExcludedFolder(s);for(const e of this.uiSourceCodes())e.url().startsWith(t)&&this.removeUISourceCode(e.url())}canExcludeFolder(e){return this.fileSystemInternal.canExcludeFolder(e)}canCreateFile(){return!0}async createFile(e,t,s,r){const n=this.fileSystemPathInternal+e+(e.endsWith("/")?"":"/")+t;this.creatingFilesGuard.add(n);const i=await this.fileSystemInternal.createFile(e,t);if(!i)return null;const o=this.addFile(i,s,r);return this.creatingFilesGuard.delete(n),o}deleteFile(e){const t=this.filePathForUISourceCode(e);this.fileSystemInternal.deleteFile(t).then((t=>{t&&this.removeUISourceCode(e.url())}))}deleteDirectoryRecursively(e){return this.fileSystemInternal.deleteDirectoryRecursively(e)}remove(){this.fileSystemWorkspaceBinding.isolatedFileSystemManager.removeFileSystem(this.fileSystemInternal)}addFile(t,s,r){const n=this.fileSystemInternal.contentType(t),i=this.createUISourceCode(e.ParsedURL.ParsedURL.concatenate(this.fileSystemBaseURL,t),n);return void 0!==s&&i.setContent(s,Boolean(r)),this.addUISourceCode(i),i}fileChanged(e){if(this.creatingFilesGuard.has(e))return;const t=this.uiSourceCodeForURL(e);if(t)B.delete(t),t.checkContentUpdated();else{const t=this.fileSystemInternal.contentType(e);this.addUISourceCode(this.createUISourceCode(e,t))}}tooltipForURL(e){return this.fileSystemInternal.tooltipForURL(e)}dispose(){this.removeProject()}}const B=new WeakMap;var H=Object.freeze({__proto__:null,FileSystemWorkspaceBinding:A,FileSystem:O});let N;const D=["chromewebstore.google.com","chrome.google.com"];class q extends e.ObjectWrapper.ObjectWrapper{bindings;originalResponseContentPromises;savingForOverrides;savingSymbol;enabledSetting;workspace;networkUISourceCodeForEncodedPath;interceptionHandlerBound;updateInterceptionThrottler;projectInternal;activeProject;activeInternal;enabled;eventDescriptors;#e=new Map;#t=new WeakMap;#s;#r;constructor(t){super(),this.bindings=new WeakMap,this.originalResponseContentPromises=new WeakMap,this.savingForOverrides=new WeakSet,this.savingSymbol=Symbol("SavingForOverrides"),this.enabledSetting=e.Settings.Settings.instance().moduleSetting("persistence-network-overrides-enabled"),this.enabledSetting.addChangeListener(this.enabledChanged,this),this.workspace=t,this.networkUISourceCodeForEncodedPath=new Map,this.interceptionHandlerBound=this.interceptionHandler.bind(this),this.updateInterceptionThrottler=new e.Throttler.Throttler(50),this.#s=new e.Throttler.Throttler(50),this.#r=new Set,this.projectInternal=null,this.activeProject=null,this.activeInternal=!1,this.enabled=!1,this.workspace.addEventListener(i.Workspace.Events.ProjectAdded,(e=>{this.onProjectAdded(e.data)})),this.workspace.addEventListener(i.Workspace.Events.ProjectRemoved,(e=>{this.onProjectRemoved(e.data)})),se.instance().addNetworkInterceptor(this.canHandleNetworkUISourceCode.bind(this)),l.BreakpointManager.BreakpointManager.instance().addUpdateBindingsCallback(this.networkUISourceCodeAdded.bind(this)),this.eventDescriptors=[],this.enabledChanged(),s.TargetManager.TargetManager.instance().observeTargets(this)}targetAdded(){this.updateActiveProject()}targetRemoved(){this.updateActiveProject()}static instance(e={forceNew:null,workspace:null}){const{forceNew:t,workspace:s}=e;if(!N||t){if(!s)throw new Error("Missing workspace for NetworkPersistenceManager");N=new q(s)}return N}active(){return this.activeInternal}project(){return this.projectInternal}originalContentForUISourceCode(e){const t=this.bindings.get(e);if(!t)return null;const s=t.fileSystem;return this.originalResponseContentPromises.get(s)||null}async enabledChanged(){this.enabled!==this.enabledSetting.get()&&(this.enabled=this.enabledSetting.get(),this.enabled?(t.userMetrics.actionTaken(t.UserMetrics.Action.PersistenceNetworkOverridesEnabled),this.eventDescriptors=[i.Workspace.WorkspaceImpl.instance().addEventListener(i.Workspace.Events.UISourceCodeRenamed,(e=>{this.uiSourceCodeRenamedListener(e)})),i.Workspace.WorkspaceImpl.instance().addEventListener(i.Workspace.Events.UISourceCodeAdded,(e=>{this.uiSourceCodeAdded(e)})),i.Workspace.WorkspaceImpl.instance().addEventListener(i.Workspace.Events.UISourceCodeRemoved,(e=>{this.uiSourceCodeRemovedListener(e)})),i.Workspace.WorkspaceImpl.instance().addEventListener(i.Workspace.Events.WorkingCopyCommitted,(e=>this.onUISourceCodeWorkingCopyCommitted(e.data.uiSourceCode)))],await this.updateActiveProject()):(t.userMetrics.actionTaken(t.UserMetrics.Action.PersistenceNetworkOverridesDisabled),e.EventTarget.removeEventListeners(this.eventDescriptors),await this.updateActiveProject()),this.dispatchEventToListeners("LocalOverridesProjectUpdated",this.enabled))}async uiSourceCodeRenamedListener(e){const t=e.data.uiSourceCode;await this.onUISourceCodeRemoved(t),await this.onUISourceCodeAdded(t)}async uiSourceCodeRemovedListener(e){await this.onUISourceCodeRemoved(e.data)}async uiSourceCodeAdded(e){await this.onUISourceCodeAdded(e.data)}async updateActiveProject(){const e=this.activeInternal;if(this.activeInternal=Boolean(this.enabledSetting.get()&&s.TargetManager.TargetManager.instance().rootTarget()&&this.projectInternal),this.activeInternal!==e){if(this.activeInternal&&this.projectInternal){await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeAdded(e))));const e=this.workspace.projectsForType(i.Workspace.projectTypes.Network);for(const t of e)await Promise.all([...t.uiSourceCodes()].map((e=>this.networkUISourceCodeAdded(e))))}else this.projectInternal&&(await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeRemoved(e)))),this.networkUISourceCodeForEncodedPath.clear());se.instance().refreshAutomapping()}}encodedPathFromUrl(t,s){return e.ParsedURL.ParsedURL.rawPathToEncodedPathString(this.rawPathFromUrl(t,s))}rawPathFromUrl(t,s){if(!this.activeInternal&&!s||!this.projectInternal)return o.DevToolsPath.EmptyRawPathString;let r=e.ParsedURL.ParsedURL.urlWithoutHash(t.replace(/^https?:\/\//,""));r.endsWith("/")&&-1===r.indexOf("?")&&(r=e.ParsedURL.ParsedURL.concatenate(r,"index.html"));let n=q.encodeEncodedPathToLocalPathParts(r);const i=A.fileSystemPath(this.projectInternal.id()),a=n.join("/");if(i.length+a.length>200){const t=n[0],s=n[n.length-1],i=s?s.substr(0,10)+"-":"",d=e.ParsedURL.ParsedURL.extractExtension(r),l=d?"."+d.substr(0,10):"";n=[t,"longurls",i+o.StringUtilities.hashCode(a).toString(16)+l]}return e.ParsedURL.ParsedURL.join(n,"/")}static encodeEncodedPathToLocalPathParts(e){const s=[];for(const r of this.#n(e)){if(!r)continue;let e=encodeURI(r).replace(/[\/\*]/g,(e=>"%"+e[0].charCodeAt(0).toString(16).toUpperCase()));if(t.Platform.isWin()){e=e.replace(/[:\?]/g,(e=>"%"+e[0].charCodeAt(0).toString(16).toUpperCase())),_.has(e.toLowerCase())&&(e=e.split("").map((e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())).join(""));"."===e.charAt(e.length-1)&&(e=e.substr(0,e.length-1)+"%2E")}s.push(e)}return s}static#n(t){const s=(t=e.ParsedURL.ParsedURL.urlWithoutHash(t)).indexOf("?");if(-1===s)return t.split("/");if(0===s)return[t];const r=t.substr(s),n=t.substr(0,t.length-r.length).split("/");return n[n.length-1]+=r,n}fileUrlFromNetworkUrl(t,s){return this.projectInternal?e.ParsedURL.ParsedURL.concatenate(this.projectInternal.fileSystemPath(),"/",this.encodedPathFromUrl(t,s)):o.DevToolsPath.EmptyUrlString}getHeadersUISourceCodeFromUrl(t){const s=this.fileUrlFromNetworkUrl(t,!0),r=e.ParsedURL.ParsedURL.substring(s,0,s.lastIndexOf("/")),n=e.ParsedURL.ParsedURL.concatenate(r,"/",z);return i.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(n)}async getOrCreateHeadersUISourceCodeFromUrl(s){let r=this.getHeadersUISourceCodeFromUrl(s);if(!r&&this.projectInternal){const n=this.encodedPathFromUrl(s,!0),i=e.ParsedURL.ParsedURL.substring(n,0,n.lastIndexOf("/"));r=await this.projectInternal.createFile(i,z,""),t.userMetrics.actionTaken(t.UserMetrics.Action.HeaderOverrideFileCreated)}return r}decodeLocalPathToUrlPath(e){try{return unescape(e)}catch(e){console.error(e)}return e}async#i(e){const t=this.bindings.get(e),s=e.url().endsWith(z);if(t){const e=this.#o(t.network);await e.run(this.#a.bind(this,t))}else s&&this.dispatchEventToListeners("RequestsForHeaderOverridesFileChanged",e)}async#d(e){const t=this.bindings.get(e);t&&await this.#a(t)}#a(e){return this.bindings.delete(e.network),this.bindings.delete(e.fileSystem),se.instance().removeBinding(e)}async#l(e,t){const s=this.#o(e);await s.run((async()=>{const s=this.bindings.get(e);if(s){const{network:r,fileSystem:n}=s;if(e===r&&t===n)return;await this.#d(e),await this.#d(t)}await this.#c(e,t)}))}#o(t){let s=this.#t.get(t);return s||(s=new e.Mutex.Mutex,this.#t.set(t,s)),s}async#c(e,t){const s=new ue(e,t);this.bindings.set(e,s),this.bindings.set(t,s),await se.instance().addBinding(s);const r=this.savingForOverrides.has(e)?e:t,{content:n,isEncoded:i}=await r.requestContent();se.instance().syncContent(r,n||"",i)}onUISourceCodeWorkingCopyCommitted(e){this.saveUISourceCodeForOverrides(e),this.updateInterceptionPatterns()}isActiveHeaderOverrides(e){return!!this.enabledSetting.get()&&(e.url().endsWith(z)&&this.hasMatchingNetworkUISourceCodeForHeaderOverridesFile(e))}isUISourceCodeOverridable(e){return e.project().type()===i.Workspace.projectTypes.Network&&!q.isForbiddenNetworkUrl(e.url())}#h(e){return this.bindings.has(e)||this.savingForOverrides.has(e)}#u(e){return this.isUISourceCodeOverridable(e)&&!this.#h(e)&&!this.activeInternal&&!this.projectInternal}#p(e){return this.activeInternal&&this.isUISourceCodeOverridable(e)&&!this.#h(e)}async setupAndStartLocalOverrides(e){return this.#u(e)&&(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuSetup),await new Promise((e=>h.InspectorView.InspectorView.instance().displaySelectOverrideFolderInfobar(e))),await E.instance().addFileSystem("overrides")),this.project()?(this.enabledSetting.get()||(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuActivateDisabled),this.enabledSetting.set(!0),await this.once("LocalOverridesProjectUpdated")),this.#h(e)?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuOpenExistingFile):(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuSaveNewFile),e.commitWorkingCopy(),await this.saveUISourceCodeForOverrides(e)),!0):(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuAbandonSetup),!1)}async saveUISourceCodeForOverrides(t){if(!this.#p(t))return;this.savingForOverrides.add(t);let s=this.encodedPathFromUrl(t.url());const{content:r,isEncoded:n}=await t.requestContent(),i=s.lastIndexOf("/"),o=e.ParsedURL.ParsedURL.substring(s,i+1),a=e.ParsedURL.ParsedURL.encodedPathToRawPathString(o);s=e.ParsedURL.ParsedURL.substr(s,0,i),this.projectInternal&&await this.projectInternal.createFile(s,a,r??"",n),this.fileCreatedForTest(s,a),this.savingForOverrides.delete(t)}fileCreatedForTest(e,t){}patternForFileSystemUISourceCode(e){const t=A.relativePath(e);if(t.length<2)return"";if("longurls"===t[1]&&2!==t.length)return"file:"===t[0]?"file:///*":"http?://"+t[0]+"/*";const s=this.decodeLocalPathToUrlPath(this.decodeLocalPathToUrlPath(t.join("/")));return s.startsWith("file:/")?"file:///"+s.substring(6):"http?://"+s}isForbiddenFileUrl(e){const t=A.relativePath(e),s=this.decodeLocalPathToUrlPath(this.decodeLocalPathToUrlPath(t[0]||""));return"chrome:"===s||D.includes(s)}static isForbiddenNetworkUrl(t){const s=e.ParsedURL.ParsedURL.fromString(t);return!!s&&("chrome"===s.scheme||D.includes(s.host))}async onUISourceCodeAdded(e){await this.networkUISourceCodeAdded(e),await this.filesystemUISourceCodeAdded(e)}canHandleNetworkUISourceCode(t){return this.activeInternal&&!e.ParsedURL.schemeIs(t.url(),"snippet:")}async networkUISourceCodeAdded(t){if(t.project().type()!==i.Workspace.projectTypes.Network||!this.canHandleNetworkUISourceCode(t))return;const s=e.ParsedURL.ParsedURL.urlWithoutHash(t.url());this.networkUISourceCodeForEncodedPath.set(this.encodedPathFromUrl(s),t);const r=this.projectInternal.uiSourceCodeForURL(this.fileUrlFromNetworkUrl(s));r&&await this.#l(t,r),this.#m(t)}async filesystemUISourceCodeAdded(t){if(!this.activeInternal||t.project()!==this.projectInternal)return;this.updateInterceptionPatterns();const s=A.relativePath(t),r=this.networkUISourceCodeForEncodedPath.get(e.ParsedURL.ParsedURL.join(s,"/"));r&&await this.#l(r,t)}async#g(e){const t=(await e.requestContent()).content||"[]";let s=[];try{if(s=JSON.parse(t),!s.every($))throw"Type mismatch after parsing"}catch(t){return console.error("Failed to parse",e.url(),"for locally overriding headers."),[]}return s}#f(e){const t=this.decodeLocalPathToUrlPath(e);return{singlyDecodedPath:t,decodedPath:this.decodeLocalPathToUrlPath(t)}}async generateHeaderPatterns(t){const s=await this.#g(t),r=A.relativePath(t),n=e.ParsedURL.ParsedURL.slice(e.ParsedURL.ParsedURL.join(r,"/"),0,-z.length),{singlyDecodedPath:i,decodedPath:o}=this.#f(n);let a;return a=r.length>2&&"longurls"===r[1]&&s.length?this.#S(o,s,r[0]):o.startsWith("file:/")?this.#y(e.ParsedURL.ParsedURL.substring(o,6),s):this.#P(o,s),{...a,path:i}}#P(e,t){const s=new Set,r=[];for(const n of t){s.add("http?://"+e+n.applyTo),""===e&&(s.add("file:///"+n.applyTo),r.push({applyToRegex:new RegExp("^file:///"+V(e+n.applyTo)+"$"),headers:n.headers}));const{head:t,tail:i}=G(n.applyTo);i?(s.add("http?://"+e+t),r.push({applyToRegex:new RegExp(`^${V(e+t)}(${V(i)})?$`),headers:n.headers})):r.push({applyToRegex:new RegExp(`^${V(e+n.applyTo)}$`),headers:n.headers})}return{headerPatterns:s,overridesWithRegex:r}}#y(e,t){const s=new Set,r=[];for(const n of t)s.add("file:///"+e+n.applyTo),r.push({applyToRegex:new RegExp(`^file:/${V(e+n.applyTo)}$`),headers:n.headers});return{headerPatterns:s,overridesWithRegex:r}}#S(t,s,r){const n=new Set;let{decodedPath:i}=this.#f(e.ParsedURL.ParsedURL.concatenate(r,"/*"));const o=t.startsWith("file:/");o&&(t=e.ParsedURL.ParsedURL.substring(t,6),i=e.ParsedURL.ParsedURL.substring(i,6)),n.add((o?"file:///":"http?://")+i);const a=[];for(const e of s)a.push({applyToRegex:new RegExp(`^${o?"file:/":""}${V(t+e.applyTo)}$`),headers:e.headers});return{headerPatterns:n,overridesWithRegex:a}}async updateInterceptionPatternsForTests(){await this.#v()}updateInterceptionPatterns(){this.updateInterceptionThrottler.schedule(this.#v.bind(this))}async#v(){if(this.#e.clear(),!this.activeInternal||!this.projectInternal)return s.NetworkManager.MultitargetNetworkManager.instance().setInterceptionHandlerForPatterns([],this.interceptionHandlerBound);let e=new Set;for(const t of this.projectInternal.uiSourceCodes()){if(this.isForbiddenFileUrl(t))continue;const s=this.patternForFileSystemUISourceCode(t);if(t.name()===z){const{headerPatterns:s,path:r,overridesWithRegex:n}=await this.generateHeaderPatterns(t);s.size>0&&(e=new Set([...e,...s]),this.#e.set(r,n))}else e.add(s);const{head:r,tail:n}=G(s);n&&e.add(r)}return s.NetworkManager.MultitargetNetworkManager.instance().setInterceptionHandlerForPatterns(Array.from(e).map((e=>({urlPattern:e,requestStage:"Response"}))),this.interceptionHandlerBound)}async onUISourceCodeRemoved(e){await this.networkUISourceCodeRemoved(e),await this.filesystemUISourceCodeRemoved(e)}async networkUISourceCodeRemoved(e){e.project().type()===i.Workspace.projectTypes.Network&&(await this.#i(e),this.#t.delete(e),this.networkUISourceCodeForEncodedPath.delete(this.encodedPathFromUrl(e.url()))),this.#m(e)}#m(t){if(!this.projectInternal)return;const s=this.projectInternal,r=this.fileUrlFromNetworkUrl(t.url());for(let t=s.fileSystemPath().length;t<r.length;t++){if("/"!==r[t])continue;const n=e.ParsedURL.ParsedURL.concatenate(e.ParsedURL.ParsedURL.substring(r,0,t+1),".headers"),i=s.uiSourceCodeForURL(n);i&&(this.#r.add(i),this.#s.schedule(this.#F.bind(this)))}}#F(){for(const e of this.#r)this.dispatchEventToListeners("RequestsForHeaderOverridesFileChanged",e);return this.#r.clear(),Promise.resolve()}hasMatchingNetworkUISourceCodeForHeaderOverridesFile(t){const s=A.relativePath(t),r=e.ParsedURL.ParsedURL.slice(e.ParsedURL.ParsedURL.join(s,"/"),0,-z.length);for(const e of this.networkUISourceCodeForEncodedPath.keys())if(e.startsWith(r))return!0;return!1}async filesystemUISourceCodeRemoved(e){e.project()===this.projectInternal&&(this.updateInterceptionPatterns(),this.originalResponseContentPromises.delete(e),await this.#i(e))}async setProject(e){e!==this.projectInternal&&(this.projectInternal&&await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeRemoved(e)))),this.projectInternal=e,this.projectInternal&&await Promise.all([...this.projectInternal.uiSourceCodes()].map((e=>this.filesystemUISourceCodeAdded(e)))),await this.updateActiveProject(),this.dispatchEventToListeners("ProjectChanged",this.projectInternal))}async onProjectAdded(e){if(e.type()!==i.Workspace.projectTypes.FileSystem||"overrides"!==A.fileSystemType(e))return;A.fileSystemPath(e.id())&&(this.projectInternal&&this.projectInternal.remove(),await this.setProject(e))}async onProjectRemoved(e){for(const t of e.uiSourceCodes())await this.networkUISourceCodeRemoved(t);e===this.projectInternal&&await this.setProject(null)}mergeHeaders(e,t){const r=new o.MapUtilities.Multimap;for(const{name:e,value:s}of t)"set-cookie"!==e.toLowerCase()&&r.set(e.toLowerCase(),s);const n=new Set(r.keysArray());for(const{name:t,value:s}of e){const e=t.toLowerCase();n.has(e)||"set-cookie"===e||r.set(e,s)}const i=[];for(const e of r.keysArray())for(const t of r.get(e))i.push({name:e,value:t});const a=e.filter((e=>"set-cookie"===e.name.toLowerCase()))||[],d=t.filter((e=>"set-cookie"===e.name.toLowerCase())),l=s.NetworkManager.InterceptedRequest.mergeSetCookieHeaders(a,d);return i.push(...l),i}#w(e,t,s){const r=this.#e.get(e)||[];for(const e of r){const r=this.decodeLocalPathToUrlPath(this.rawPathFromUrl(t));e.applyToRegex.test(r)&&(s=this.mergeHeaders(s,e.headers))}return s}handleHeaderInterception(t){let s=t.responseHeaders||[];const r=this.rawPathFromUrl(t.request.url).split("/");let n=o.DevToolsPath.EmptyEncodedPathString;s=this.#w(n,t.request.url,s);for(const i of r)n=e.ParsedURL.ParsedURL.concatenate(n,i,"/"),s=this.#w(n,t.request.url,s);return s}async interceptionHandler(t){const s=t.request.method;if(!this.activeInternal||"OPTIONS"===s)return;const r=this.projectInternal,i=this.fileUrlFromNetworkUrl(t.request.url),o=r.uiSourceCodeForURL(i);let a=this.handleHeaderInterception(t);if(!o&&!a.length)return;a.length||(a=t.responseHeaders||[]);let{mimeType:d}=t.getMimeTypeAndCharset();if(!d){const s=e.ResourceType.resourceTypes[t.resourceType]||e.ResourceType.resourceTypes.Other;d=o?.mimeType()||"",e.ResourceType.ResourceType.fromMimeType(d)!==s&&(d=s.canonicalMimeType())}if(o){this.originalResponseContentPromises.set(o,t.responseBody().then((e=>n.ContentData.ContentData.isError(e)||!e.isTextContent?null:e.text)));const e=o.project(),s=await e.requestFileBlob(o);s&&t.continueRequestWithContent(new Blob([s],{type:d}),!1,a,!0)}else if(t.isRedirect())t.continueRequestWithContent(new Blob([],{type:d}),!0,a,!1);else{const e=await t.responseBody();if(!n.ContentData.ContentData.isError(e)){const s=e.isTextContent?e.text:e.base64;t.continueRequestWithContent(new Blob([s],{type:d}),!e.isTextContent,a,!1)}}}}const _=new Set(["con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"]),z=".headers";function $(e){return!!(e&&"string"==typeof e.applyTo&&e.headers&&e.headers.length&&Array.isArray(e.headers))&&e.headers.every((e=>"string"==typeof e.name&&"string"==typeof e.value))}function V(e){return o.StringUtilities.escapeCharacters(e,"[]{}()\\.^$+|-,?").replaceAll("*",".*")}function G(e){const t=e.lastIndexOf("/"),s=t>=0?e.slice(t+1):e,r=t>=0?e.slice(0,t+1):"",n=new RegExp("^"+V(s)+"$");return"*"!==s&&(n.test("index.html")||n.test("index.htm")||n.test("index.php"))?{head:r,tail:s}:{head:e}}var J=Object.freeze({__proto__:null,NetworkPersistenceManager:q,HEADERS_FILENAME:z,isHeaderOverride:$,escapeRegex:V,extractDirectoryIndex:G});const X={linkedToSourceMapS:"Linked to source map: {PH1}",linkedToS:"Linked to {PH1}"},Y=a.i18n.registerUIStrings("models/persistence/PersistenceUtils.ts",X),K=a.i18n.getLocalizedString.bind(void 0,Y);class Q{static tooltipForUISourceCode(e){const t=se.instance().binding(e);return t?e===t.network?A.tooltipForUISourceCode(t.fileSystem):t.network.contentType().isFromSourceMap()?K(X.linkedToSourceMapS,{PH1:o.StringUtilities.trimMiddle(t.network.url(),150)}):K(X.linkedToS,{PH1:o.StringUtilities.trimMiddle(t.network.url(),150)}):""}static iconForUISourceCode(t){const s=se.instance().binding(t);if(s){if(!e.ParsedURL.schemeIs(s.fileSystem.url(),"file:"))return null;const t=new c.Icon.Icon;return t.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},h.Tooltip.Tooltip.install(t,Q.tooltipForUISourceCode(s.network)),q.instance().project()===s.fileSystem.project()?t.classList.add("dot","purple"):t.classList.add("dot","green"),t}if(t.project().type()!==i.Workspace.projectTypes.FileSystem||!e.ParsedURL.schemeIs(t.url(),"file:"))return null;if(q.instance().isActiveHeaderOverrides(t)){const e=new c.Icon.Icon;return e.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},e.classList.add("dot","purple"),e}const r=new c.Icon.Icon;return r.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},h.Tooltip.Tooltip.install(r,Q.tooltipForUISourceCode(t)),r}}class Z extends e.ObjectWrapper.ObjectWrapper{constructor(e){super(),e.addEventListener(he.BindingCreated,this.bindingChanged,this),e.addEventListener(he.BindingRemoved,this.bindingChanged,this)}bindingChanged(e){const t=e.data;this.dispatchEventToListeners("LinkIconChanged",t.network)}linkIcon(e){return Q.iconForUISourceCode(e)}}var ee=Object.freeze({__proto__:null,PersistenceUtils:Q,LinkDecorator:Z});let te;class se extends e.ObjectWrapper.ObjectWrapper{workspace;breakpointManager;filePathPrefixesToBindingCount;subscribedBindingEventListeners;mapping;constructor(e,t){super(),this.workspace=e,this.breakpointManager=t,this.breakpointManager.addUpdateBindingsCallback(this.#C.bind(this)),this.filePathPrefixesToBindingCount=new re,this.subscribedBindingEventListeners=new o.MapUtilities.Multimap;const s=new Z(this);d.Linkifier.Linkifier.setLinkDecorator(s),this.mapping=new me(this.workspace,this.onStatusAdded.bind(this),this.onStatusRemoved.bind(this))}static instance(e={forceNew:null,workspace:null,breakpointManager:null}){const{forceNew:t,workspace:s,breakpointManager:r}=e;if(!te||t){if(!s||!r)throw new Error("Missing arguments for workspace");te=new se(s,r)}return te}addNetworkInterceptor(e){this.mapping.addNetworkInterceptor(e)}refreshAutomapping(){this.mapping.scheduleRemap()}async addBinding(e){await this.innerAddBinding(e)}async addBindingForTest(e){await this.innerAddBinding(e)}async removeBinding(e){await this.innerRemoveBinding(e)}async removeBindingForTest(e){await this.innerRemoveBinding(e)}#C(e){return e.project().type()!==i.Workspace.projectTypes.Network?Promise.resolve():this.mapping.computeNetworkStatus(e)}async innerAddBinding(e){ne.set(e.network,e),ne.set(e.fileSystem,e),e.fileSystem.forceLoadOnCheckContent(),e.network.addEventListener(i.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.fileSystem.addEventListener(i.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.network.addEventListener(i.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),e.fileSystem.addEventListener(i.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),this.filePathPrefixesToBindingCount.add(e.fileSystem.url()),await this.moveBreakpoints(e.fileSystem,e.network),console.assert(!e.fileSystem.isDirty()||!e.network.isDirty()),e.fileSystem.isDirty()?this.syncWorkingCopy(e.fileSystem):e.network.isDirty()?this.syncWorkingCopy(e.network):e.network.hasCommits()&&e.network.content()!==e.fileSystem.content()&&(e.network.setWorkingCopy(e.network.content()),this.syncWorkingCopy(e.network)),this.notifyBindingEvent(e.network),this.notifyBindingEvent(e.fileSystem),this.dispatchEventToListeners(he.BindingCreated,e)}async innerRemoveBinding(e){ne.get(e.network)===e&&(console.assert(ne.get(e.network)===ne.get(e.fileSystem),"ERROR: inconsistent binding for networkURL "+e.network.url()),ne.delete(e.network),ne.delete(e.fileSystem),e.network.removeEventListener(i.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.fileSystem.removeEventListener(i.UISourceCode.Events.WorkingCopyCommitted,this.onWorkingCopyCommitted,this),e.network.removeEventListener(i.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),e.fileSystem.removeEventListener(i.UISourceCode.Events.WorkingCopyChanged,this.onWorkingCopyChanged,this),this.filePathPrefixesToBindingCount.remove(e.fileSystem.url()),await this.breakpointManager.copyBreakpoints(e.network,e.fileSystem),this.notifyBindingEvent(e.network),this.notifyBindingEvent(e.fileSystem),this.dispatchEventToListeners(he.BindingRemoved,e))}onStatusAdded(e){const t=new ue(e.network,e.fileSystem);return ie.set(e,t),this.innerAddBinding(t)}async onStatusRemoved(e){const t=ie.get(e);await this.innerRemoveBinding(t)}onWorkingCopyChanged(e){const t=e.data;this.syncWorkingCopy(t)}syncWorkingCopy(e){const t=ne.get(e);if(!t||ae.has(t))return;const n=t.network===e?t.fileSystem:t.network;if(!e.isDirty())return ae.add(t),n.resetWorkingCopy(),ae.delete(t),void this.contentSyncedForTest();const i=r.NetworkProject.NetworkProject.targetForUISourceCode(t.network);if(i&&i.type()===s.Target.Type.Node){const t=e.workingCopy();n.requestContent().then((()=>{const e=se.rewrapNodeJSContent(n,n.workingCopy(),t);o.call(this,(()=>e))}))}else o.call(this,(()=>e.workingCopy()));function o(e){t&&ae.add(t),n.setWorkingCopyGetter(e),t&&ae.delete(t),this.contentSyncedForTest()}}onWorkingCopyCommitted(e){const t=e.data.uiSourceCode,s=e.data.content;this.syncContent(t,s,Boolean(e.data.encoded))}syncContent(e,t,n){const i=ne.get(e);if(!i||oe.has(i))return;const o=i.network===e?i.fileSystem:i.network,a=r.NetworkProject.NetworkProject.targetForUISourceCode(i.network);function d(e){i&&oe.add(i),o.setContent(e,n),i&&oe.delete(i),this.contentSyncedForTest()}a&&a.type()===s.Target.Type.Node?o.requestContent().then((e=>{const s=se.rewrapNodeJSContent(o,e.content||"",t);d.call(this,s)})):d.call(this,t)}static rewrapNodeJSContent(e,t,s){return e.project().type()===i.Workspace.projectTypes.FileSystem?(s.startsWith(de)&&s.endsWith(le)&&(s=s.substring(de.length,s.length-le.length)),t.startsWith(ce)&&(s=ce+s)):(s.startsWith(ce)&&(s=s.substring(ce.length)),t.startsWith(de)&&t.endsWith(le)&&(s=de+s+le)),s}contentSyncedForTest(){}async moveBreakpoints(e,t){const s=this.breakpointManager.breakpointLocationsForUISourceCode(e).map((e=>e.breakpoint));await Promise.all(s.map((async e=>(await e.remove(!1),this.breakpointManager.setBreakpoint(t,e.lineNumber(),e.columnNumber(),e.condition(),e.enabled(),e.isLogpoint(),"RESTORED")))))}hasUnsavedCommittedChanges(e){return!this.workspace.hasResourceContentTrackingExtensions()&&(!e.project().canSetFileContent()&&(!ne.has(e)&&Boolean(e.hasCommits())))}binding(e){return ne.get(e)||null}subscribeForBindingEvent(e,t){this.subscribedBindingEventListeners.set(e,t)}unsubscribeFromBindingEvent(e,t){this.subscribedBindingEventListeners.delete(e,t)}notifyBindingEvent(e){if(!this.subscribedBindingEventListeners.has(e))return;const t=Array.from(this.subscribedBindingEventListeners.get(e));for(const e of t)e.call(null)}fileSystem(e){const t=this.binding(e);return t?t.fileSystem:null}network(e){const t=this.binding(e);return t?t.network:null}filePathHasBindings(e){return this.filePathPrefixesToBindingCount.hasBindingPrefix(e)}}class re{prefixCounts;constructor(){this.prefixCounts=new Map}getPlatformCanonicalFilePath(s){return t.Platform.isWin()?e.ParsedURL.ParsedURL.toLowerCase(s):s}add(e){e=this.getPlatformCanonicalFilePath(e);let t="";for(const s of e.split("/")){t+=s+"/";const e=this.prefixCounts.get(t)||0;this.prefixCounts.set(t,e+1)}}remove(e){e=this.getPlatformCanonicalFilePath(e);let t="";for(const s of e.split("/")){t+=s+"/";const e=this.prefixCounts.get(t);1===e?this.prefixCounts.delete(t):void 0!==e&&this.prefixCounts.set(t,e-1)}}hasBindingPrefix(t){return(t=this.getPlatformCanonicalFilePath(t)).endsWith("/")||(t=e.ParsedURL.ParsedURL.concatenate(t,"/")),this.prefixCounts.has(t)}}const ne=new WeakMap,ie=new WeakMap,oe=new WeakSet,ae=new WeakSet,de="(function (exports, require, module, __filename, __dirname) { ",le="\n});",ce="#!/usr/bin/env node";var he;!function(e){e.BindingCreated="BindingCreated",e.BindingRemoved="BindingRemoved"}(he||(he={}));class ue{network;fileSystem;constructor(e,t){this.network=e,this.fileSystem=t}}var pe=Object.freeze({__proto__:null,PersistenceImpl:se,NodePrefix:de,NodeSuffix:le,NodeShebang:ce,get Events(){return he},PersistenceBinding:ue});class me{workspace;onStatusAdded;onStatusRemoved;statuses;fileSystemUISourceCodes;sweepThrottler;sourceCodeToProcessingPromiseMap;sourceCodeToAutoMappingStatusMap;sourceCodeToMetadataMap;filesIndex;projectFoldersIndex;activeFoldersIndex;interceptors;constructor(t,s,r){this.workspace=t,this.onStatusAdded=s,this.onStatusRemoved=r,this.statuses=new Set,this.fileSystemUISourceCodes=new Se,this.sweepThrottler=new e.Throttler.Throttler(100),this.sourceCodeToProcessingPromiseMap=new WeakMap,this.sourceCodeToAutoMappingStatusMap=new WeakMap,this.sourceCodeToMetadataMap=new WeakMap,this.filesIndex=new ge,this.projectFoldersIndex=new fe,this.activeFoldersIndex=new fe,this.interceptors=[],this.workspace.addEventListener(i.Workspace.Events.UISourceCodeAdded,(e=>this.onUISourceCodeAdded(e.data))),this.workspace.addEventListener(i.Workspace.Events.UISourceCodeRemoved,(e=>this.onUISourceCodeRemoved(e.data))),this.workspace.addEventListener(i.Workspace.Events.UISourceCodeRenamed,this.onUISourceCodeRenamed,this),this.workspace.addEventListener(i.Workspace.Events.ProjectAdded,(e=>this.onProjectAdded(e.data)),this),this.workspace.addEventListener(i.Workspace.Events.ProjectRemoved,(e=>this.onProjectRemoved(e.data)),this);for(const e of t.projects())this.onProjectAdded(e);for(const e of t.uiSourceCodes())this.onUISourceCodeAdded(e)}addNetworkInterceptor(e){this.interceptors.push(e),this.scheduleRemap()}scheduleRemap(){for(const e of this.statuses.values())this.clearNetworkStatus(e.network);this.scheduleSweep()}scheduleSweep(){this.sweepThrottler.schedule(function(){const e=this.workspace.projectsForType(i.Workspace.projectTypes.Network);for(const t of e)for(const e of t.uiSourceCodes())this.computeNetworkStatus(e);return this.onSweepHappenedForTest(),Promise.resolve()}.bind(this))}onSweepHappenedForTest(){}onProjectRemoved(e){for(const t of e.uiSourceCodes())this.onUISourceCodeRemoved(t);if(e.type()!==i.Workspace.projectTypes.FileSystem)return;const t=e;for(const e of t.initialGitFolders())this.projectFoldersIndex.removeFolder(e);this.projectFoldersIndex.removeFolder(t.fileSystemPath()),this.scheduleRemap()}onProjectAdded(e){if(e.type()!==i.Workspace.projectTypes.FileSystem)return;const t=e;for(const e of t.initialGitFolders())this.projectFoldersIndex.addFolder(e);this.projectFoldersIndex.addFolder(t.fileSystemPath());for(const t of e.uiSourceCodes())this.onUISourceCodeAdded(t);this.scheduleRemap()}onUISourceCodeAdded(e){const t=e.project();if(t.type()===i.Workspace.projectTypes.FileSystem){if(!A.fileSystemSupportsAutomapping(t))return;this.filesIndex.addPath(e.url()),this.fileSystemUISourceCodes.add(e),this.scheduleSweep()}else t.type()===i.Workspace.projectTypes.Network&&this.computeNetworkStatus(e)}onUISourceCodeRemoved(e){if(e.project().type()===i.Workspace.projectTypes.FileSystem){this.filesIndex.removePath(e.url()),this.fileSystemUISourceCodes.delete(e.url());const t=this.sourceCodeToAutoMappingStatusMap.get(e);t&&this.clearNetworkStatus(t.network)}else e.project().type()===i.Workspace.projectTypes.Network&&this.clearNetworkStatus(e)}onUISourceCodeRenamed(e){const{uiSourceCode:t,oldURL:s}=e.data;if(t.project().type()!==i.Workspace.projectTypes.FileSystem)return;this.filesIndex.removePath(s),this.fileSystemUISourceCodes.delete(s);const r=this.sourceCodeToAutoMappingStatusMap.get(t);r&&this.clearNetworkStatus(r.network),this.filesIndex.addPath(t.url()),this.fileSystemUISourceCodes.add(t),this.scheduleSweep()}computeNetworkStatus(t){const i=this.sourceCodeToProcessingPromiseMap.get(t);if(i)return i;if(this.sourceCodeToAutoMappingStatusMap.has(t))return Promise.resolve();if(this.interceptors.some((e=>e(t))))return Promise.resolve();if(e.ParsedURL.schemeIs(t.url(),"wasm:"))return Promise.resolve();const o=this.createBinding(t).then(async function(e){if(!e)return null;if(this.sourceCodeToProcessingPromiseMap.get(t)!==o)return null;if(e.network.contentType().isFromSourceMap()||!e.fileSystem.contentType().isTextType())return e;if(e.fileSystem.isDirty()&&(e.network.isDirty()||e.network.hasCommits()))return null;const[i,a]=(await Promise.all([e.fileSystem.requestContentData(),e.network.project().requestFileContent(e.network)])).map(n.ContentData.ContentData.asDeferredContent);if(null===i.content||null===a)return null;if(this.sourceCodeToProcessingPromiseMap.get(t)!==o)return null;const d=r.NetworkProject.NetworkProject.targetForUISourceCode(e.network);let l=!1;const c=i.content;if(d&&d.type()===s.Target.Type.Node){if(a.content){l=c===se.rewrapNodeJSContent(e.fileSystem,c,a.content)}}else a.content&&(l=c.trimEnd()===a.content.trimEnd());if(!l)return this.prevalidationFailedForTest(e),null;return e}.bind(this)).then(async function(e){if(this.sourceCodeToProcessingPromiseMap.get(t)!==o)return;if(!e)return this.onBindingFailedForTest(),void this.sourceCodeToProcessingPromiseMap.delete(t);if(this.sourceCodeToAutoMappingStatusMap.has(e.network)||this.sourceCodeToAutoMappingStatusMap.has(e.fileSystem))return void this.sourceCodeToProcessingPromiseMap.delete(t);if(this.statuses.add(e),this.sourceCodeToAutoMappingStatusMap.set(e.network,e),this.sourceCodeToAutoMappingStatusMap.set(e.fileSystem,e),e.exactMatch){const t=this.projectFoldersIndex.closestParentFolder(e.fileSystem.url());!!t&&this.activeFoldersIndex.addFolder(t)&&this.scheduleSweep()}await this.onStatusAdded.call(null,e),this.sourceCodeToProcessingPromiseMap.delete(t)}.bind(this));return this.sourceCodeToProcessingPromiseMap.set(t,o),o}prevalidationFailedForTest(e){}onBindingFailedForTest(){}clearNetworkStatus(e){if(this.sourceCodeToProcessingPromiseMap.has(e))return void this.sourceCodeToProcessingPromiseMap.delete(e);const t=this.sourceCodeToAutoMappingStatusMap.get(e);if(t){if(this.statuses.delete(t),this.sourceCodeToAutoMappingStatusMap.delete(t.network),this.sourceCodeToAutoMappingStatusMap.delete(t.fileSystem),t.exactMatch){const e=this.projectFoldersIndex.closestParentFolder(t.fileSystem.url());e&&this.activeFoldersIndex.removeFolder(e)}this.onStatusRemoved.call(null,t)}}async createBinding(t){const s=t.url();if(e.ParsedURL.schemeIs(s,"file:")||e.ParsedURL.schemeIs(s,"snippet:")){const e=this.fileSystemUISourceCodes.get(s);return e?new ye(t,e,!1):null}let r=e.ParsedURL.ParsedURL.extractPath(s);if(null===r)return null;r.endsWith("/")&&(r=e.ParsedURL.ParsedURL.concatenate(r,"index.html"));const n=this.filesIndex.similarFiles(r).map((e=>this.fileSystemUISourceCodes.get(e)));if(!n.length)return null;await Promise.all(n.concat(t).map((async e=>{this.sourceCodeToMetadataMap.set(e,await e.requestMetadata())})));const i=n.filter((e=>Boolean(this.activeFoldersIndex.closestParentFolder(e.url())))),o=this.sourceCodeToMetadataMap.get(t);if(!o||!o.modificationTime&&"number"!=typeof o.contentSize)return 1!==i.length?null:new ye(t,i[0],!1);let a=this.filterWithMetadata(i,o);return a.length||(a=this.filterWithMetadata(n,o)),1!==a.length?null:new ye(t,a[0],!0)}filterWithMetadata(e,t){return e.filter((e=>{const s=this.sourceCodeToMetadataMap.get(e);if(!s)return!1;const r=!t.modificationTime||!s.modificationTime||Math.abs(t.modificationTime.getTime()-s.modificationTime.getTime())<1e3,n=!t.contentSize||s.contentSize===t.contentSize;return r&&n}))}}class ge{#U=e.Trie.Trie.newArrayTrie();addPath(e){const t=e.split("/").reverse();this.#U.add(t)}removePath(e){const t=e.split("/").reverse();this.#U.remove(t)}similarFiles(e){const t=e.split("/").reverse(),s=this.#U.longestPrefix(t,!1);return 0===s.length?[]:this.#U.words(s).map((e=>e.reverse().join("/")))}}class fe{#I=e.Trie.Trie.newArrayTrie();#k=new Map;addFolder(e){const t=this.#R(e).split("/");this.#I.add(t);const s=t.join("/"),r=this.#k.get(s)??0;return this.#k.set(s,r+1),0===r}removeFolder(e){const t=this.#R(e).split("/"),s=t.join("/"),r=this.#k.get(s)??0;return!!r&&(r>1?(this.#k.set(s,r-1),!1):(this.#I.remove(t),this.#k.delete(s),!0))}closestParentFolder(e){const t=e.split("/");return this.#I.longestPrefix(t,!0).join("/")}#R(t){return t.endsWith("/")?e.ParsedURL.ParsedURL.substring(t,0,t.length-1):t}}class Se{sourceCodes;constructor(){this.sourceCodes=new Map}getPlatformCanonicalFileUrl(s){return t.Platform.isWin()?e.ParsedURL.ParsedURL.toLowerCase(s):s}add(e){const t=this.getPlatformCanonicalFileUrl(e.url());this.sourceCodes.set(t,e)}get(e){return e=this.getPlatformCanonicalFileUrl(e),this.sourceCodes.get(e)}delete(e){e=this.getPlatformCanonicalFileUrl(e),this.sourceCodes.delete(e)}}class ye{network;fileSystem;exactMatch;constructor(e,t,s){this.network=e,this.fileSystem=t,this.exactMatch=s}}var Pe=Object.freeze({__proto__:null,Automapping:me,AutomappingStatus:ye});const ve=new CSSStyleSheet;ve.replaceSync(".file-system-header{display:flex;flex-direction:row;align-items:center;flex:auto;margin:10px 0}.file-system-header-text{flex:1 0 auto}.add-button{margin-left:10px;align-self:flex-start}.file-system-list{flex:auto}.file-system-list-empty{flex:auto;height:30px;display:flex;align-items:center;justify-content:center;text-align:center}.file-system-list-item{padding:3px 5px;height:30px;display:flex;align-items:center;flex:auto 1 1}.file-system-value{flex:1 1 0}.list-item .file-system-value{white-space:nowrap;text-overflow:ellipsis;user-select:none;overflow:hidden}.file-system-edit-row{flex:none;display:flex;flex-direction:row;margin:6px 5px;align-items:center}.file-system-edit-row input{width:100%;text-align:inherit}\n/*# sourceURL=editFileSystemView.css */\n");const Fe={excludedFolders:"Excluded folders",add:"Add",none:"None",sViaDevtools:"{PH1} (via .devtools)",folderPath:"Folder path",enterAPath:"Enter a path",enterAUniquePath:"Enter a unique path"},we=a.i18n.registerUIStrings("models/persistence/EditFileSystemView.ts",Fe),Ce=a.i18n.getLocalizedString.bind(void 0,we);class Ue extends h.Widget.VBox{fileSystemPath;excludedFolders;eventListeners;excludedFoldersList;muteUpdate;excludedFolderEditor;constructor(e){super(!0),this.fileSystemPath=e,this.excludedFolders=[],this.eventListeners=[E.instance().addEventListener(M.ExcludedFolderAdded,this.update,this),E.instance().addEventListener(M.ExcludedFolderRemoved,this.update,this)];const t=this.contentElement.createChild("div","file-system-header");t.createChild("div","file-system-header-text").textContent=Ce(Fe.excludedFolders);const s=h.UIUtils.createTextButton(Ce(Fe.add),this.addExcludedFolderButtonClicked.bind(this),{className:"add-button",jslogContext:"settings.add-excluded-folder"});t.appendChild(s),this.excludedFoldersList=new h.ListWidget.ListWidget(this),this.excludedFoldersList.element.classList.add("file-system-list");const r=document.createElement("div");r.classList.add("file-system-list-empty"),r.textContent=Ce(Fe.none),this.excludedFoldersList.setEmptyPlaceholder(r),this.excludedFoldersList.show(this.contentElement),this.update()}dispose(){e.EventTarget.removeEventListeners(this.eventListeners)}getFileSystem(){return E.instance().fileSystem(this.fileSystemPath)}update(){if(!this.muteUpdate){this.excludedFoldersList.clear(),this.excludedFolders=[];for(const e of this.getFileSystem().excludedFolders().values())this.excludedFolders.push(e),this.excludedFoldersList.appendItem(e,!0)}}addExcludedFolderButtonClicked(){this.excludedFoldersList.addNewItem(0,"")}renderItem(e,t){const s=document.createElement("div");s.classList.add("file-system-list-item");const r=t?e:Ce(Fe.sViaDevtools,{PH1:e}),n=s.createChild("div","file-system-value");return n.textContent=r,h.Tooltip.Tooltip.install(n,r),s}removeItemRequested(e,t){this.getFileSystem().removeExcludedFolder(this.excludedFolders[t])}commitEdit(e,t,s){this.muteUpdate=!0,s||this.getFileSystem().removeExcludedFolder(e),this.getFileSystem().addExcludedFolder(this.normalizePrefix(t.control("path-prefix").value)),this.muteUpdate=!1,this.update()}beginEdit(e){const t=this.createExcludedFolderEditor();return t.control("path-prefix").value=e,t}createExcludedFolderEditor(){if(this.excludedFolderEditor)return this.excludedFolderEditor;const e=new h.ListWidget.Editor;this.excludedFolderEditor=e;const t=e.contentElement();t.createChild("div","file-system-edit-row").createChild("div","file-system-value").textContent=Ce(Fe.folderPath);return t.createChild("div","file-system-edit-row").createChild("div","file-system-value").appendChild(e.createInput("path-prefix","text","/path/to/folder/",function(e,t,s){const r=this.normalizePrefix(s.value.trim());if(!r)return{valid:!1,errorMessage:Ce(Fe.enterAPath)};const n=this.getFileSystem().excludedFolders().size;for(let e=0;e<n;++e)if(e!==t&&this.excludedFolders[e]===r)return{valid:!1,errorMessage:Ce(Fe.enterAUniquePath)};return{valid:!0,errorMessage:void 0}}.bind(this))),e}normalizePrefix(e){return e?e+("/"===e[e.length-1]?"":"/"):""}wasShown(){super.wasShown(),this.excludedFoldersList.registerCSSFiles([ve]),this.registerCSSFiles([ve])}}var Ie=Object.freeze({__proto__:null,EditFileSystemView:Ue});const ke={saveAs:"Save as...",saveImage:"Save image",showOverrides:"Show all overrides",overrideContent:"Override content",openInContainingFolder:"Open in containing folder",overrideSourceMappedFileWarning:"Override ‘{PH1}’ instead?",overrideSourceMappedFileExplanation:"‘{PH1}’ is a source mapped file and cannot be overridden.",saveWasmFailed:"Unable to save WASM module to disk. Most likely the module is too large."},Re=a.i18n.registerUIStrings("models/persistence/PersistenceActions.ts",ke),xe=a.i18n.getLocalizedString.bind(void 0,Re);var Le=Object.freeze({__proto__:null,ContextMenuProvider:class{appendApplicableItems(n,o,a){a.contentType().isDocumentOrScriptOrStyleSheet()?o.saveSection().appendItem(xe(ke.saveAs),(async function(){a instanceof i.UISourceCode.UISourceCode&&a.commitWorkingCopy();const t=a.contentURL();let n;const o=function(e){if(!(e instanceof i.UISourceCode.UISourceCode))return null;const t=r.NetworkProject.NetworkProject.targetForUISourceCode(e),n=t?.model(s.DebuggerModel.DebuggerModel);if(n){const t=r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().scriptFile(e,n);if(t?.script)return t.script}return r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().scriptsForUISourceCode(e)[0]??null}(a);if(o?.isWasm())try{const t=await o.getWasmBytecode();n={isEncoded:!0,content:await e.Base64.encode(t)}}catch(s){return console.error(`Unable to convert WASM byte code for ${t} to base64. Not saving to disk`,s.stack),void e.Console.Console.instance().error(xe(ke.saveWasmFailed),!1)}else n=await a.requestContent();await i.FileManager.FileManager.instance().save(t,n.content??"",!0,n.isEncoded),i.FileManager.FileManager.instance().close(t)}),{jslogContext:"save-as"}):a instanceof s.Resource.Resource&&a.contentType().isImage()&&o.saveSection().appendItem(xe(ke.saveImage),(async function(){const e=a,t=(await e.requestContent()).content||"",s=document.createElement("a");s.download=e.displayName,s.href="data:"+e.mimeType+";base64,"+t,s.click()}),{jslogContext:"save-image"});const d=i.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(a.contentURL()),l=q.instance(),c=d&&se.instance().binding(d),u=c?c.fileSystem.contentURL():a.contentURL();if(e.ParsedURL.schemeIs(u,"file:")){const s=e.ParsedURL.ParsedURL.urlToRawPathString(u,t.Platform.isWin());o.revealSection().appendItem(xe(ke.openInContainingFolder),(()=>t.InspectorFrontendHost.InspectorFrontendHostInstance.showItemInFolder(s)),{jslogContext:"open-in-containing-folder"})}if(a instanceof i.UISourceCode.UISourceCode&&a.project().type()===i.Workspace.projectTypes.FileSystem)return;let p=!0,m=()=>{};if(d&&l.isUISourceCodeOverridable(d))if(d.contentType().isFromSourceMap()){const e=this.getDeployedUiSourceCode(d);e&&(p=!1,m=this.redirectOverrideToDeployedUiSourceCode.bind(this,e,d))}else p=!1,m=this.handleOverrideContent.bind(this,d,a);o.overrideSection().appendItem(xe(ke.overrideContent),m,{disabled:p,jslogContext:"override-content"}),a instanceof s.NetworkRequest.NetworkRequest&&o.overrideSection().appendItem(xe(ke.showOverrides),(async()=>{await h.ViewManager.ViewManager.instance().showView("navigator-overrides"),t.userMetrics.actionTaken(t.UserMetrics.Action.ShowAllOverridesFromNetworkContextMenu)}),{jslogContext:"show-overrides"})}async handleOverrideContent(r,n){const o=q.instance();await o.setupAndStartLocalOverrides(r)&&await e.Revealer.reveal(r),n instanceof s.NetworkRequest.NetworkRequest?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentFromNetworkContextMenu):n instanceof i.UISourceCode.UISourceCode&&t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentFromSourcesContextMenu),r.isFetchXHR()?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideFetchXHR):n.contentType().isScript()?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideScript):n.contentType().isDocument()?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideDocument):n.contentType().isStyleSheet()?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideStyleSheet):n.contentType().isImage()?t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideImage):n.contentType().isFont()&&t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideFont)}async redirectOverrideToDeployedUiSourceCode(e,s){t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuSourceMappedWarning);const n=e.url(),i=r.ResourceUtils.displayNameForURL(n),o=s.url(),a=r.ResourceUtils.displayNameForURL(o),d=xe(ke.overrideSourceMappedFileWarning,{PH1:i})+"\n"+xe(ke.overrideSourceMappedFileExplanation,{PH1:a});await h.UIUtils.ConfirmDialog.show(d,void 0,{jslogContext:"override-source-mapped-file-warning"})&&(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuRedirectToDeployed),await this.handleOverrideContent(e,e))}getDeployedUiSourceCode(t){const s=r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance();for(const e of s.scriptsForUISourceCode(t)){const t=s.uiSourceCodeForScript(e);if(t)return t}const[n]=r.SASSSourceMapping.SASSSourceMapping.uiSourceOrigin(t);if(!n)return null;return i.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(n)||i.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(e.ParsedURL.ParsedURL.urlWithoutHash(n))}}});const be=new CSSStyleSheet;be.replaceSync(".workspace-settings-tab header{padding:0 0 6px}.workspace-settings-tab header > h1{font-size:18px;font-weight:normal;margin:0;padding-bottom:3px}.workspace-settings-tab .settings-content{overflow-y:auto;overflow-x:hidden;margin:8px 8px 8px 0;padding:0 4px;flex:auto}.workspace-settings-tab .settings-container{width:100%;column-width:288px}.workspace-settings-tab .settings-tab.settings-container{column-width:308px}.workspace-settings-tab .settings-container-wrapper{position:absolute;top:31px;left:0;right:0;bottom:0;overflow:auto;padding-top:9px}.workspace-settings-tab .settings-tab.settings-content{margin:0;padding:0}.workspace-settings-tab .settings-tab p{margin:12px 0}.workspace-settings-tab p.folder-exclude-pattern{display:grid;align-items:center}.workspace-settings-tab p.folder-exclude-pattern > input{width:80%;margin-left:10px}.workspace-settings-tab .settings-tab .file-system-container{border-top:1px solid var(--sys-color-divider);padding:19px 0 10px;margin:20px 0}.workspace-settings-tab .settings-tab .file-system-header{display:flex;flex-direction:row;align-items:center}.workspace-settings-tab .settings-tab .file-system-name{font-weight:bold;flex:none;margin-right:10px;font-size:15px;overflow:hidden;text-overflow:ellipsis;max-width:70%}.workspace-settings-tab .settings-tab .file-system-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:auto}.workspace-settings-tab .settings-info-message{background-color:var(--sys-color-neutral-container);border-radius:5px;padding:10px;margin:20px 0}.workspace-settings-tab .settings-tab.settings-content.settings-container{column-width:initial;overflow:hidden;padding-bottom:1px;padding-right:10px;> devtools-button{margin:0 0 3px 5px}}\n/*# sourceURL=workspaceSettingsTab.css */\n");const Te={workspace:"Workspace",mappingsAreInferredAutomatically:"Mappings are inferred automatically.",addFolder:"Add folder…",folderExcludePattern:"Folder exclude pattern",remove:"Remove"},Ee=a.i18n.registerUIStrings("models/persistence/WorkspaceSettingsTab.ts",Te),Me=a.i18n.getLocalizedString.bind(void 0,Ee);class je extends h.Widget.VBox{containerElement;fileSystemsListContainer;elementByPath;mappingViewByPath;constructor(){super(),this.element.setAttribute("jslog",`${u.pane("workspace")}`),this.element.classList.add("workspace-settings-tab");const e=this.element.createChild("header");h.UIUtils.createTextChild(e.createChild("h1"),Me(Te.workspace)),this.containerElement=this.element.createChild("div","settings-container-wrapper").createChild("div","settings-tab settings-content settings-container"),E.instance().addEventListener(M.FileSystemAdded,(e=>this.fileSystemAdded(e.data)),this),E.instance().addEventListener(M.FileSystemRemoved,(e=>this.fileSystemRemoved(e.data)),this);const t=this.createFolderExcludePatternInput();t.classList.add("folder-exclude-pattern"),this.containerElement.appendChild(t);const s=this.containerElement.createChild("div","settings-info-message");h.UIUtils.createTextChild(s,Me(Te.mappingsAreInferredAutomatically)),this.fileSystemsListContainer=this.containerElement.createChild("div","");const r=h.UIUtils.createTextButton(Me(Te.addFolder),this.addFileSystemClicked.bind(this),{jslogContext:"sources.add-folder-to-workspace"});this.containerElement.appendChild(r),this.setDefaultFocusedElement(r),this.elementByPath=new Map,this.mappingViewByPath=new Map;const n=E.instance().fileSystems();for(let e=0;e<n.length;++e)this.addItem(n[e])}wasShown(){super.wasShown(),this.registerCSSFiles([be])}createFolderExcludePatternInput(){const e=document.createElement("p"),t=e.createChild("label");t.textContent=Me(Te.folderExcludePattern);const s=E.instance().workspaceFolderExcludePatternSetting(),r=h.UIUtils.createInput("","text",s.name);h.ARIAUtils.bindLabelToControl(t,r),e.appendChild(r);const n=h.UIUtils.bindInput(r,s.set.bind(s),(function(e){let t;try{t=new RegExp(e)}catch(e){}return{valid:Boolean(t),errorMessage:void 0}}),!1);return s.addChangeListener((()=>n.call(null,s.get()))),n(s.get()),e}addItem(e){if(!(e instanceof F))return;const t=q.instance().project();if(t&&E.instance().fileSystem(t.fileSystemPath())===e)return;const s=this.renderFileSystem(e);this.elementByPath.set(e.path(),s),this.fileSystemsListContainer.appendChild(s);const r=new Ue(e.path());this.mappingViewByPath.set(e.path(),r),r.element.classList.add("file-system-mapping-view"),r.show(s)}renderFileSystem(e){const t=e.path(),s=t.lastIndexOf("/"),r=t.substr(s+1),n=document.createElement("div");n.classList.add("file-system-container");const i=n.createChild("div","file-system-header"),o=i.createChild("div","file-system-name");o.textContent=r,h.ARIAUtils.markAsHeading(o,2);const a=i.createChild("div","file-system-path");a.textContent=t,h.Tooltip.Tooltip.install(a,t);const d=new h.Toolbar.Toolbar(""),l=new h.Toolbar.ToolbarButton(Me(Te.remove),"cross",void 0,"settings.remove-file-system");return l.addEventListener("Click",this.removeFileSystemClicked.bind(this,e)),d.appendToolbarItem(l),i.appendChild(d.element),n}removeFileSystemClicked(e){E.instance().removeFileSystem(e)}addFileSystemClicked(){E.instance().addFileSystem()}fileSystemAdded(e){this.addItem(e)}fileSystemRemoved(e){const t=this.mappingViewByPath.get(e.path());t&&(t.dispose(),this.mappingViewByPath.delete(e.path()));const s=this.elementByPath.get(e.path());s&&(this.elementByPath.delete(e.path()),s.remove())}}var We=Object.freeze({__proto__:null,WorkspaceSettingsTab:je});export{Pe as Automapping,Ie as EditFileSystemView,H as FileSystemWorkspaceBinding,R as IsolatedFileSystem,W as IsolatedFileSystemManager,J as NetworkPersistenceManager,pe as Persistence,Le as PersistenceActions,ee as PersistenceUtils,S as PlatformFileSystem,We as WorkspaceSettingsTab};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/platform/platform.js";import*as n from"../../core/sdk/sdk.js";import*as r from"../bindings/bindings.js";import*as o from"../formatter/formatter.js";import*as s from"../text_utils/text_utils.js";const i=new WeakMap;function a(e){let t=i.get(e);return void 0===t&&(t=e.requestContentData().then((t=>{if(s.ContentData.ContentData.isError(t))return null;const n=e.isModule?"module":"script";return o.FormatterWorkerPool.formatterWorkerPool().javaScriptScopeTree(t.text,n)})),i.set(e,t)),t}var c=Object.freeze({__proto__:null,scopeTreeForScript:a});const u=new WeakMap,l=new WeakMap;async function p(e){const t=await e.requestContentData();return s.ContentData.ContentData.isError(t)||!t.isTextContent?null:t.textObj}class g{name;positions;constructor(e,t=[]){this.name=e,this.positions=t}addPosition(e,t){this.positions.push({lineNumber:e,columnNumber:t})}}const d=async function(e){if(!e.sourceMapURL)return null;const t=await p(e);if(!t)return null;const n=await a(e);return n?{scopeTree:n,text:t}:null},f=function(e,t){if(!i(e,t))return[];let n=e;const r=[e];for(;;){let e=!1;for(const a of n.children){if(i(a,t)){r.push(a),n=a,e=!0;break}if(!(o=t,s=a,o.end<=s.start||s.end<=o.start||i(t,a)))return console.error("Wrong nesting of scopes"),[]}if(!e)break}var o,s;return r;function i(e,t){return e.start<=t.start&&e.end>=t.end}};async function b(e){const t=e.range()?.start,n=e.range()?.end;if(!t||!n)return[];const r=t.script();if(!r)return[];const o=await d(r);if(!o)return[];const{scopeTree:s,text:i}=o,a={start:i.offsetFromPosition(t.lineNumber,t.columnNumber),end:i.offsetFromPosition(n.lineNumber,n.columnNumber)};return f(s,a)}const m=async function(e,t,n){const r=await p(e);if(!r)return null;const o=[],i=new s.TextCursor.TextCursor(r.lineEndings());for(const e of t.variables){if(3===e.kind&&e.offsets.length<=1)continue;const t=new g(e.name);for(const n of e.offsets)i.resetTo(n),t.addPosition(i.lineNumber(),i.columnNumber());o.push(t)}const a=[];for(const e of n)for(const n of e.variables){let e=null;for(const r of n.offsets)r>=t.start&&r<t.end&&(e||(e=new g(n.name)),i.resetTo(r),e.addPosition(i.lineNumber(),i.columnNumber()));e&&a.push(e)}return{boundVariables:o,freeVariables:a}},h=/^\s*([A-Za-z_$][A-Za-z_$0-9]*)\s*([.;,=]?)\s*$/,M=async t=>{if(!e.Settings.Settings.instance().moduleSetting("js-source-maps-enabled").get())return{variableMapping:new Map,thisMapping:null};const n=t.callFrame().script,r=await b(t);return w(n,r)},w=async(e,t)=>{const n=t[t.length-1];if(!n)return{variableMapping:new Map,thisMapping:null};let o=u.get(n);const s=e.sourceMap();if(!o||o.sourceMap!==s){const r=(async()=>{const r=new Map;let o=null;if(!s)return{variableMapping:r,thisMapping:o};const a=[],c=(t,n)=>{for(const e of t.positions){const t=s.findEntry(e.lineNumber,e.columnNumber);if(t&&t.name)return void n(t.name)}a.push(async function(){if(s)for(const r of t.positions){const o=await i(e,s,t.name,r);if(o)return void n(o)}}())},u=await m(e,n,t.slice(0,-1));if(!u)return{variableMapping:r,thisMapping:o};for(const e of u.boundVariables)c(e,(t=>{"this"!==t&&r.set(e.name,t)}));for(const e of u.freeVariables)c(e,(t=>{"this"===t&&(o=e.name)}));return await Promise.all(a).then(N()),{variableMapping:r,thisMapping:o}})();o={sourceMap:s,mappingPromise:r},u.set(n,{sourceMap:s,mappingPromise:r})}return await o.mappingPromise;async function i(e,t,n,o){const s=t.findEntryRanges(o.lineNumber,o.columnNumber);if(!s)return null;const i=r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().uiSourceCodeForSourceMapSourceURL(e.debuggerModel,s.sourceURL,e.isContentScript());if(!i)return null;const a=await p(e);if(!a)return null;const c=m(a.extract(s.range));if(!c)return null;const{name:u,punctuation:l}=c;if(u!==n)return null;const g=await p(i);if(!g)return null;const d=m(g.extract(s.sourceRange));if(!d)return null;const{name:f,punctuation:b}=d;return l===b||"comma"===l&&"semicolon"===b?f:null;function m(e){const t=e.match(h);if(!t)return null;const n=t[1];let r=null;switch(t[2]){case".":r="dot";break;case",":r="comma";break;case";":r="semicolon";break;case"=":r="equals";break;case"":r="none";break;default:return console.error(`Name token parsing error: unexpected token "${t[2]}"`),null}return{name:n,punctuation:r}}}},v=async function(e){const{pluginManager:t}=r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance(),n=await t.resolveScopeChain(e);if(n)return n;if(e.script.isWasm())return e.scopeChain();const o=await S(e);return e.scopeChain().map((e=>new F(e,o)))},j=async t=>{if(!e.Settings.Settings.instance().moduleSetting("js-source-maps-enabled").get())return new Map;const n=l.get(t);if(n)return n;const r=t.scopeChain(),o=await Promise.all(r.map(M)),s=new Map,i=new Set;for(const{variableMapping:e}of o)for(const[t,n]of e)if(n){if(!s.has(n)){const e=i.has(t)?null:t;s.set(n,e)}i.add(t)}return l.set(t,s),s},S=async e=>{const t=e.scopeChain();if(0===t.length)return e.thisObject();const{thisMapping:n}=await M(t[0]);if(!n)return e.thisObject();const r=await e.evaluate({expression:n,objectGroup:"backtrace",includeCommandLineAPI:!1,silent:!0,returnByValue:!1,generatePreview:!0});return"exceptionDetails"in r?!r.exceptionDetails&&r.object?r.object:e.thisObject():null},y=function(e){const t=e.range()?.end,n=e.range()?.start.script()??null;return"global"!==e.type()&&n&&t&&n.sourceMapURL?new x(e):e.object()};class F{#e;#t;constructor(e,t){this.#e=e,this.#t=t}callFrame(){return this.#e.callFrame()}type(){return this.#e.type()}typeName(){return this.#e.typeName()}name(){return this.#e.name()}range(){return this.#e.range()}object(){return y(this.#e)}description(){return this.#e.description()}icon(){return this.#e.icon()}extraProperties(){const e=this.#e.extraProperties();return this.#t&&"local"===this.type()&&e.unshift(new n.RemoteObject.RemoteObjectProperty("this",this.#t,void 0,void 0,void 0,void 0,void 0,!0)),e}}class x extends n.RemoteObject.RemoteObject{scope;object;constructor(e){super(),this.scope=e,this.object=e.object()}customPreview(){return this.object.customPreview()}get objectId(){return this.object.objectId}get type(){return this.object.type}get subtype(){return this.object.subtype}get value(){return this.object.value}get description(){return this.object.description}get hasChildren(){return this.object.hasChildren}get preview(){return this.object.preview}arrayLength(){return this.object.arrayLength()}getOwnProperties(e){return this.object.getOwnProperties(e)}async getAllProperties(e,t){const n=await this.object.getAllProperties(e,t),{variableMapping:r}=await M(this.scope),o=n.properties,s=n.internalProperties,i=o?.map((e=>{const t=r.get(e.name);return void 0!==t?e.cloneWithNewName(t):e}));return{properties:i??[],internalProperties:s}}async setPropertyValue(e,t){const{variableMapping:n}=await M(this.scope);let r;r="string"==typeof e?e:e.value;let o=r;for(const e of n.keys())if(n.get(e)===r){o=e;break}return this.object.setPropertyValue(o,t)}async deleteProperty(e){return this.object.deleteProperty(e)}callFunction(e,t){return this.object.callFunction(e,t)}callFunctionJSON(e,t){return this.object.callFunctionJSON(e,t)}release(){this.object.release()}debuggerModel(){return this.object.debuggerModel()}runtimeModel(){return this.object.runtimeModel()}isNode(){return this.object.isNode()}}async function C(e,t,n){const r=e.sourceMap();if(!r)return null;const o=r.findEntry(t,n);if(!o||!o.sourceURL)return null;const i=r.findScopeEntry(o.sourceURL,o.sourceLineNumber,o.sourceColumnNumber)?.scopeName();if(i)return i;const a=o.name;if(!a)return null;const c=await p(e);if(!c)return null;const u=new s.TextRange.TextRange(t,n,t,n+1);return"("!==c.extract(u)?null:a}let P=function(){};const N=()=>P;var R=Object.freeze({__proto__:null,getTextFor:p,IdentifierPositions:g,findScopeChainForDebuggerScope:b,scopeIdentifiers:m,resolveScopeChain:v,allVariablesInCallFrame:j,allVariablesAtPosition:async t=>{const n=new Map;if(!e.Settings.Settings.instance().moduleSetting("js-source-maps-enabled").get())return n;const r=t.script();if(!r)return n;const o=await d(r);if(!o)return n;const{scopeTree:s,text:i}=o,a=i.offsetFromPosition(t.lineNumber,t.columnNumber),c=f(s,{start:a,end:a}),u=new Set;for(;c.length>0;){const{variableMapping:e}=await w(r,c);for(const[t,r]of e)if(r){if(!n.has(r)){const e=u.has(t)?null:t;n.set(r,e)}u.add(t)}c.pop()}return n},resolveExpression:async(e,n,i,a,c,u)=>{if("application/wasm"===i.mimeType())return`memories["${n}"] ?? locals["${n}"] ?? tables["${n}"] ?? functions["${n}"] ?? globals["${n}"]`;if(!i.contentType().isFromSourceMap())return"";const l=await j(e);if(l.has(n))return l.get(n);const g=(await r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().uiLocationToRawLocations(i,a,c)).find((t=>t.debuggerModel===e.debuggerModel));if(!g)return"";const d=g.script();if(!d)return"";const f=d.sourceMap();if(!f)return"";const b=await p(d);if(!b)return"";const m=f.reverseMapTextRanges(i.url(),new s.TextRange.TextRange(a,c,a,u));if(1!==m.length)return"";const[h]=m,M=b.extract(h);if(!M)return"";const w=await p(i);if(!w)return"";const v=f.findEntryRanges(h.startLine,h.startColumn),S=0===h.endColumn?h.endLine-1:h.endLine,y=0===h.endColumn?b.lineEndings()[S]:h.endColumn-1,F=f.findEntryRanges(S,y);if(!v||!F)return"";const x=w.extract(new s.TextRange.TextRange(v.sourceRange.startLine,v.sourceRange.startColumn,F.sourceRange.endLine,F.sourceRange.endColumn));return new RegExp(`^[\\s,;]*${t.StringUtilities.escapeForRegExp(n)}`,"g").test(x)?await o.FormatterWorkerPool.formatterWorkerPool().evaluatableJavaScriptSubstring(M):""},resolveThisObject:S,resolveScopeInObject:y,RemoteObject:x,resolveDebuggerFrameFunctionName:async function(e){const t=e.localScope()?.range()?.start;return t?await C(e.script,t.lineNumber,t.columnNumber):null},resolveProfileFrameFunctionName:async function({scriptId:e,lineNumber:t,columnNumber:o},s){if(!s||void 0===t||void 0===o||void 0===e)return null;const i=s.model(n.DebuggerModel.DebuggerModel),a=i?.scriptForId(String(e));if(!i||!a)return null;const c=r.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance(),u=new n.DebuggerModel.Location(i,e,t,o),l=await c.pluginManager.getFunctionInfo(a,u);if(l&&"frames"in l){const e=l.frames.at(-1);if(e?.name)return e.name}return await C(a,t,o)},getScopeResolvedForTest:N,setScopeResolvedForTest:e=>{P=e}});class k extends e.ObjectWrapper.ObjectWrapper{#n;#r=new e.Throttler.Throttler(5);#o=this.#s.bind(this);constructor(e){super(),this.#n=e,this.#n.debuggerModel.addEventListener(n.DebuggerModel.Events.DebugInfoAttached,this.#i,this),this.#n.debuggerModel.sourceMapManager().addEventListener(n.SourceMapManager.Events.SourceMapAttached,this.#a,this),this.#r.schedule(this.#o)}dispose(){this.#n.debuggerModel.removeEventListener(n.DebuggerModel.Events.DebugInfoAttached,this.#i,this),this.#n.debuggerModel.sourceMapManager().removeEventListener(n.SourceMapManager.Events.SourceMapAttached,this.#a,this),this.listeners?.clear()}async#s(){const e=await v(this.#n);this.dispatchEventToListeners("ScopeChainUpdated",new T(e))}#i(e){e.data===this.#n.script&&this.#r.schedule(this.#o)}#a(e){e.data.client===this.#n.script&&this.#r.schedule(this.#o)}}class T{scopeChain;constructor(e){this.scopeChain=e}}var D=Object.freeze({__proto__:null,ScopeChainModel:k,ScopeChain:T});export{R as NamesResolver,D as ScopeChainModel,c as ScopeTreeCache};
@@ -0,0 +1 @@
1
+ import*as t from"../../third_party/codemirror.next/codemirror.next.js";import*as e from"../../core/platform/platform.js";import*as n from"../../core/common/common.js";var s=Object.freeze({__proto__:null,createCssTokenizer:function(){return async function(e,n){const s=await t.cssStreamParser(),i=new t.StringStream(e,4,2),r=s.startState(2);let o=i.pos;for(;!i.eol();){i.start=o;let t=s.token(i,r);"error"===t&&"maybeprop"===r.state&&(t="property");n(i.current(),t),o=i.pos}}}});class i{lineNumber;lineContent;columnNumber;matchLength;constructor(t,e,n,s){this.lineNumber=t,this.lineContent=e,this.columnNumber=n,this.matchLength=s}static comparator(t,e){return t.lineNumber-e.lineNumber||t.columnNumber-e.columnNumber}}const r=function(t,e,n,s,i=!0){return null==t||i&&t.length>1048576?null:"data:"+e+(s?";charset="+s:"")+(n?";base64":"")+","+(t=n?t:encodeURIComponent(t))};var o=Object.freeze({__proto__:null,SearchMatch:i,contentAsDataURL:r,isStreamingContentProvider:function(t){return"requestStreamingContent"in t}});class a{#t;#e=0;#n=0;#s=0;constructor(t){this.#t=t}advance(t){for(this.#e=t;this.#n<this.#t.length&&this.#t[this.#n]<this.#e;)++this.#n;this.#s=this.#n?this.#e-this.#t[this.#n-1]-1:this.#e}offset(){return this.#e}resetTo(t){this.#e=t,this.#n=e.ArrayUtilities.lowerBound(this.#t,t,e.ArrayUtilities.DEFAULT_COMPARATOR),this.#s=this.#n?this.#e-this.#t[this.#n-1]-1:this.#e}lineNumber(){return this.#n}columnNumber(){return this.#s}}var l=Object.freeze({__proto__:null,TextCursor:a});const h=2**31-1;class c{startLine;startColumn;endLine;endColumn;constructor(t,e,n,s){this.startLine=t,this.startColumn=e,this.endLine=n,this.endColumn=s}static createFromLocation(t,e){return new c(t,e,t,e)}static createUnboundedFromLocation(t,e){return new c(t,e,h,h)}static fromObject(t){return new c(t.startLine,t.startColumn,t.endLine,t.endColumn)}static comparator(t,e){return t.compareTo(e)}static fromEdit(t,n){let s=t.startLine,i=t.startColumn+n.length;const r=e.StringUtilities.findLineEndingIndexes(n);if(r.length>1){s=t.startLine+r.length-1;const e=r.length;i=r[e-1]-r[e-2]-1}return new c(t.startLine,t.startColumn,s,i)}isEmpty(){return this.startLine===this.endLine&&this.startColumn===this.endColumn}immediatelyPrecedes(t){return!!t&&(this.endLine===t.startLine&&this.endColumn===t.startColumn)}immediatelyFollows(t){return!!t&&t.immediatelyPrecedes(this)}follows(t){return t.endLine===this.startLine&&t.endColumn<=this.startColumn||t.endLine<this.startLine}get linesCount(){return this.endLine-this.startLine}collapseToEnd(){return new c(this.endLine,this.endColumn,this.endLine,this.endColumn)}collapseToStart(){return new c(this.startLine,this.startColumn,this.startLine,this.startColumn)}normalize(){return this.startLine>this.endLine||this.startLine===this.endLine&&this.startColumn>this.endColumn?new c(this.endLine,this.endColumn,this.startLine,this.startColumn):this.clone()}clone(){return new c(this.startLine,this.startColumn,this.endLine,this.endColumn)}serializeToObject(){return{startLine:this.startLine,startColumn:this.startColumn,endLine:this.endLine,endColumn:this.endColumn}}compareTo(t){return this.startLine>t.startLine?1:this.startLine<t.startLine?-1:this.startColumn>t.startColumn?1:this.startColumn<t.startColumn?-1:0}compareToPosition(t,e){return t<this.startLine||t===this.startLine&&e<this.startColumn?-1:t>this.endLine||t===this.endLine&&e>this.endColumn?1:0}equal(t){return this.startLine===t.startLine&&this.endLine===t.endLine&&this.startColumn===t.startColumn&&this.endColumn===t.endColumn}relativeTo(t,e){const n=this.clone();return this.startLine===t&&(n.startColumn-=e),this.endLine===t&&(n.endColumn-=e),n.startLine-=t,n.endLine-=t,n}relativeFrom(t,e){const n=this.clone();return 0===this.startLine&&(n.startColumn+=e),0===this.endLine&&(n.endColumn+=e),n.startLine+=t,n.endLine+=t,n}rebaseAfterTextEdit(t,e){console.assert(t.startLine===e.startLine),console.assert(t.startColumn===e.startColumn);const n=this.clone();if(!this.follows(t))return n;const s=e.endLine-t.endLine,i=e.endColumn-t.endColumn;return n.startLine+=s,n.endLine+=s,n.startLine===e.endLine&&(n.startColumn+=i),n.endLine===e.endLine&&(n.endColumn+=i),n}toString(){return JSON.stringify(this)}containsLocation(t,e){return this.startLine===this.endLine?this.startLine===t&&this.startColumn<=e&&e<this.endColumn:this.startLine===t?this.startColumn<=e:this.endLine===t?e<this.endColumn:this.startLine<t&&t<this.endLine}get start(){return{lineNumber:this.startLine,columnNumber:this.startColumn}}get end(){return{lineNumber:this.endLine,columnNumber:this.endColumn}}intersection(t){let{startLine:e,startColumn:n}=this;e<t.startLine?(e=t.startLine,n=t.startColumn):e===t.startLine&&(n=Math.max(n,t.startColumn));let{endLine:s,endColumn:i}=this;return s>t.endLine?(s=t.endLine,i=t.endColumn):s===t.endLine&&(i=Math.min(i,t.endColumn)),e>s||e===s&&n>=i?new c(0,0,0,0):new c(e,n,s,i)}}class u{offset;length;constructor(t,e){this.offset=t,this.length=e}}var d=Object.freeze({__proto__:null,TextRange:c,SourceRange:u});class m{#i;#t;constructor(t){this.#i=t}lineEndings(){return this.#t||(this.#t=e.StringUtilities.findLineEndingIndexes(this.#i)),this.#t}value(){return this.#i}lineCount(){return this.lineEndings().length}offsetFromPosition(t,e){return(t?this.lineEndings()[t-1]+1:0)+e}positionFromOffset(t){const n=this.lineEndings(),s=e.ArrayUtilities.lowerBound(n,t,e.ArrayUtilities.DEFAULT_COMPARATOR);return{lineNumber:s,columnNumber:t-(s&&n[s-1]+1)}}lineAt(t){const e=this.lineEndings(),n=t>0?e[t-1]+1:0,s=e[t];let i=this.#i.substring(n,s);return i.length>0&&"\r"===i.charAt(i.length-1)&&(i=i.substring(0,i.length-1)),i}toSourceRange(t){const e=this.offsetFromPosition(t.startLine,t.startColumn),n=this.offsetFromPosition(t.endLine,t.endColumn);return new u(e,n-e)}toTextRange(t){const e=new a(this.lineEndings()),n=c.createFromLocation(0,0);return e.resetTo(t.offset),n.startLine=e.lineNumber(),n.startColumn=e.columnNumber(),e.advance(t.offset+t.length),n.endLine=e.lineNumber(),n.endColumn=e.columnNumber(),n}replaceRange(t,e){const n=this.toSourceRange(t);return this.#i.substring(0,n.offset)+e+this.#i.substring(n.offset+n.length)}extract(t){const e=this.toSourceRange(t);return this.#i.substr(e.offset,e.length)}}var f=Object.freeze({__proto__:null,Text:m});class g{mimeType;charset;#r;#o;#a;constructor(t,e,n,s){this.charset=s||"utf-8",e?this.#r=t:this.#o=t,this.mimeType=n,this.mimeType||(this.mimeType=e?"application/octet-stream":"text/plain")}get base64(){if(void 0===this.#r)throw new Error("Encoding text content as base64 is not supported");return this.#r}get text(){if(void 0!==this.#o)return this.#o;if(!this.isTextContent)throw new Error("Cannot interpret binary data as text");const t=window.atob(this.#r),e=Uint8Array.from(t,(t=>t.codePointAt(0)));return this.#o=new TextDecoder(this.charset).decode(e),this.#o}get isTextContent(){return e.MimeType.isTextType(this.mimeType)}get isEmpty(){return!Boolean(this.#r)&&!Boolean(this.#o)}get createdFromBase64(){return void 0!==this.#r}get textObj(){return void 0===this.#a&&(this.#a=new m(this.text)),this.#a}contentEqualTo(t){return void 0!==this.#r&&void 0!==t.#r?this.#r===t.#r:void 0!==this.#o&&void 0!==t.#o?this.#o===t.#o:!(!this.isTextContent||!t.isTextContent)&&this.text===t.text}asDataUrl(){if(void 0!==this.#r){const t=this.isTextContent?this.charset:null;return r(this.#r,this.mimeType??"",!0,t)}return r(this.text,this.mimeType??"",!1,"utf-8")}asDeferedContent(){if(this.isTextContent)return{content:this.text,isEncoded:!1};if(void 0!==this.#o)return{content:this.#o,isEncoded:!1};if(void 0!==this.#r)return{content:this.#r,isEncoded:!0};throw new Error("Unreachable")}static isError(t){return"error"in t}static textOr(t,e){return g.isError(t)?e:t.text}static contentDataOrEmpty(t){return g.isError(t)?x:t}static asDeferredContent(t){return g.isError(t)?{error:t.error,content:null,isEncoded:!1}:t.asDeferedContent()}}const x=new g("",!1,"text/plain");var C=Object.freeze({__proto__:null,ContentData:g,EMPTY_TEXT_CONTENT_DATA:x});const b=/(?:^|\s)(\-)?([\w\-]+):([^\s]+)/,p=/(?:^|\s)(\-)?\/([^\/\\]+(\\.[^\/]*)*)\//,L=/(?:^|\s)(\-)?([^\s]+)/,T=/\s/,y={isSpaceChar:function(t){return T.test(t)},lineIndent:function(t){let e=0;for(;e<t.length&&y.isSpaceChar(t.charAt(e));)++e;return t.substr(0,e)},splitStringByRegexes(t,e){const n=[],s=[];for(let t=0;t<e.length;t++){const n=e[t];n.global?s.push(n):s.push(new RegExp(n.source,n.flags?n.flags+"g":"g"))}return function t(e,i,r){if(i>=s.length)return void n.push({value:e,position:r,regexIndex:-1,captureGroups:[]});const o=s[i];let a,l=0;o.lastIndex=0;for(;null!==(a=o.exec(e));){const s=e.substring(l,a.index);s&&t(s,i+1,r+l);const o=a[0];n.push({value:o,position:r+a.index,regexIndex:i,captureGroups:a.slice(1)}),l=a.index+o.length}const h=e.substring(l);h&&t(h,i+1,r+l)}(t,0,0),n}};const A=function(t,e,n,s){return g.isError(t)||!t.isTextContent?[]:v(t.textObj,e,n,s)},v=function(t,n,s,r){const o=e.StringUtilities.createSearchRegex(n,s,r),a=[];for(let e=0;e<t.lineCount();++e){const n=t.lineAt(e),s=n.matchAll(o);for(const t of s)a.push(new i(e,n,t.index,t[0].length))}return a};var E=Object.freeze({__proto__:null,Utils:y,FilterParser:class{keys;constructor(t){this.keys=t}static cloneFilter(t){return{key:t.key,text:t.text,regex:t.regex,negative:t.negative}}parse(t){const e=y.splitStringByRegexes(t,[b,p,L]),n=[];for(const{regexIndex:t,captureGroups:s}of e)if(-1!==t)if(0===t){const t=s[0],e=s[1],i=s[2];-1!==this.keys.indexOf(e)?n.push({key:e,regex:void 0,text:i,negative:Boolean(t)}):n.push({key:void 0,regex:void 0,text:`${e}:${i}`,negative:Boolean(t)})}else if(1===t){const t=s[0],e=s[1];try{n.push({key:void 0,regex:new RegExp(e,"i"),text:void 0,negative:Boolean(t)})}catch(s){n.push({key:void 0,regex:void 0,text:`/${e}/`,negative:Boolean(t)})}}else if(2===t){const t=s[0],e=s[1];n.push({key:void 0,regex:void 0,text:e,negative:Boolean(t)})}return n}},BalancedJSONTokenizer:class{callback;index;balance;buffer;findMultiple;closingDoubleQuoteRegex;lastBalancedIndex;constructor(t,e){this.callback=t,this.index=0,this.balance=0,this.buffer="",this.findMultiple=e||!1,this.closingDoubleQuoteRegex=/[^\\](?:\\\\)*"/g}write(t){this.buffer+=t;const e=this.buffer.length,n=this.buffer;let s;for(s=this.index;s<e;++s){const t=n[s];if('"'===t){if(this.closingDoubleQuoteRegex.lastIndex=s,!this.closingDoubleQuoteRegex.test(n))break;s=this.closingDoubleQuoteRegex.lastIndex-1}else if("{"===t)++this.balance;else if("}"===t){if(--this.balance,this.balance<0)return this.reportBalanced(),!1;if(!this.balance&&(this.lastBalancedIndex=s+1,!this.findMultiple))break}else if("]"===t&&!this.balance)return this.reportBalanced(),!1}return this.index=s,this.reportBalanced(),!0}reportBalanced(){this.lastBalancedIndex&&(this.callback(this.buffer.slice(0,this.lastBalancedIndex)),this.buffer=this.buffer.slice(this.lastBalancedIndex),this.index-=this.lastBalancedIndex,this.lastBalancedIndex=0)}remainder(){return this.buffer}},detectIndentation:function(t){const e=[0,0,0,0,0,0,0,0,0];let n=0,s=0;for(const i of t){let t=0;if(0!==i.length){let e=i.charAt(0);if("\t"===e){n++;continue}for(;" "===e;)e=i.charAt(++t)}if(t===i.length){s=0;continue}const r=Math.abs(t-s);r<e.length&&(e[r]=e[r]+1),s=t}let i=0,r=0;for(let t=1;t<e.length;++t){const n=e[t];n>r&&(r=n,i=t)}return n>i?"\t":i?" ".repeat(i):null},isMinified:function(t){let e=0;for(let n=0;n<t.length;++e){let e=t.indexOf("\n",n);e<0&&(e=t.length),n=e+1}return(t.length-e)/e>=80},performSearchInContentData:A,performSearchInContent:v,performSearchInSearchMatches:function(t,n,s,r){const o=e.StringUtilities.createSearchRegex(n,s,r),a=[];for(const{lineNumber:e,lineContent:n}of t){const t=n.matchAll(o);for(const s of t)a.push(new i(e,n,s.index,s[0].length))}return a}});class w{#l;#h;#c;constructor(t,e,n){this.#l=t,this.#h=e,this.#c=n}static fromString(t,e,n){return new w(t,e,(()=>Promise.resolve(new g(n,!1,e.canonicalMimeType()))))}contentURL(){return this.#l}contentType(){return this.#h}requestContent(){return this.#c().then(g.asDeferredContent.bind(void 0))}requestContentData(){return this.#c()}async searchInContent(t,e,n){const s=await this.requestContentData();return A(s,t,e,n)}}var B=Object.freeze({__proto__:null,StaticContentProvider:w});class _ extends n.ObjectWrapper.ObjectWrapper{mimeType;#u;#d;#m=[];#f;constructor(t,e,n){super(),this.mimeType=t,this.#u=e,this.#d=Boolean(n&&!n.createdFromBase64),this.#f=n}static create(t,e){return new _(t,e)}static from(t){return new _(t.mimeType,t.charset,t)}get isTextContent(){return e.MimeType.isTextType(this.mimeType)}addChunk(t){if(this.#d)throw new Error("Cannot add base64 data to a text-only ContentData.");this.#m.push(t),this.dispatchEventToListeners("ChunkAdded",{content:this,chunk:t})}content(){if(this.#f&&0===this.#m.length)return this.#f;const t=this.#f?.base64??"",n=this.#m.reduce(((t,n)=>e.StringUtilities.concatBase64(t,n)),t);return this.#f=new g(n,!0,this.mimeType,this.#u),this.#m=[],this.#f}}const N=function(t){return"error"in t};var O=Object.freeze({__proto__:null,StreamingContentData:_,isError:N,asContentDataOrError:function(t){return N(t)?t:t.content()}});var S=Object.freeze({__proto__:null,WasmDisassembly:class extends g{lines;#g;#x;#C;constructor(t,e,n){if(super("",!1,"text/x-wast","utf-8"),t.length!==e.length)throw new Error("Lines and offsets don't match");this.lines=t,this.#g=e,this.#x=n}get text(){return void 0===this.#C&&(this.#C=this.lines.join("\n")),this.#C}get isEmpty(){return 0===this.lines.length||1===this.lines.length&&0===this.lines[0].length}get lineNumbers(){return this.#g.length}bytecodeOffsetToLineNumber(t){return e.ArrayUtilities.upperBound(this.#g,t,e.ArrayUtilities.DEFAULT_COMPARATOR)-1}lineNumberToBytecodeOffset(t){return this.#g[t]}*nonBreakableLineNumbers(){let t=0,e=0;for(;t<this.lineNumbers;){if(e<this.#x.length){if(this.lineNumberToBytecodeOffset(t)>=this.#x[e].start){t=this.bytecodeOffsetToLineNumber(this.#x[e++].end)+1;continue}}yield t++}}asDeferedContent(){return{content:"",isEncoded:!1,wasmDisassemblyInfo:this}}}});export{s as CodeMirrorUtils,C as ContentData,o as ContentProvider,B as StaticContentProvider,O as StreamingContentData,f as Text,l as TextCursor,d as TextRange,E as TextUtils,S as WasmDisassembly};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/i18n/i18n.js";import*as t from"../trace/trace.js";import*as n from"../../core/common/common.js";import*as r from"../../core/sdk/sdk.js";const s={threadS:"Thread {PH1}"},i=e.i18n.registerUIStrings("models/timeline_model/TimelineJSProfile.ts",s),o=e.i18n.getLocalizedString.bind(void 0,i);class l{static isNativeRuntimeFrame(e){return"native V8Runtime"===e.url}static nativeGroup(e){return e.startsWith("Parse")?"Parse":e.startsWith("Compile")||e.startsWith("Recompile")?"Compile":null}static createFakeTraceFromCpuProfile(e,n){const r=[],i=o(s.threadS,{PH1:n});return l("TracingStartedInPage",{data:{sessionId:"1"}},0,0,"M"),l("thread_name",{name:i},0,0,"M","__metadata"),e?(l("JSRoot",{},e.startTime,e.endTime-e.startTime,"X","toplevel"),l("CpuProfile",{data:{cpuProfile:e}},e.endTime,0,"X"),r):r;function l(e,s,i,o,l,a){const h={cat:a||"disabled-by-default-devtools.timeline",name:e,ph:l||"X",pid:t.Types.TraceEvents.ProcessID(1),tid:n,ts:t.Types.Timing.MicroSeconds(i),args:s};return o&&(h.dur=t.Types.Timing.MicroSeconds(o)),r.push(h),h}}}var a=Object.freeze({__proto__:null,TimelineJSProfileProcessor:l});class h{}class d extends h{visibleTypes;constructor(e){super(),this.visibleTypes=new Set(e)}accept(e){return!!t.Types.Extensions.isSyntheticExtensionEntry(e)||this.visibleTypes.has(d.eventType(e))}static eventType(e){return t.Helpers.Trace.eventHasCategory(e,"blink.console")?"ConsoleTime":t.Helpers.Trace.eventHasCategory(e,"blink.user_timing")?"UserTiming":e.name}}var c=Object.freeze({__proto__:null,TimelineModelFilter:h,TimelineVisibleEventsFilter:d,TimelineInvisibleEventsFilter:class extends h{#e;constructor(e){super(),this.#e=new Set(e)}accept(e){return!this.#e.has(d.eventType(e))}},ExclusiveNameFilter:class extends h{#t;constructor(e){super(),this.#t=new Set(e)}accept(e){return!this.#t.has(e.name)}}});class u{totalTime;selfTime;id;event;parent;groupId;isGroupNodeInternal;depth;constructor(e,t){this.totalTime=0,this.selfTime=0,this.id=e,this.event=t,this.groupId="",this.isGroupNodeInternal=!1,this.depth=0}isGroupNode(){return this.isGroupNodeInternal}hasChildren(){throw"Not implemented"}setHasChildren(e){throw"Not implemented"}children(){throw"Not implemented"}searchTree(e,t){t=t||[],this.event&&e(this.event)&&t.push(this);for(const n of this.children().values())n.searchTree(e,t);return t}}class p extends u{root;hasChildrenInternal;childrenInternal;parent;constructor(e,t,n){super(e,t),this.root=n&&n.root,this.hasChildrenInternal=!1,this.childrenInternal=null,this.parent=n}hasChildren(){return this.hasChildrenInternal}setHasChildren(e){this.hasChildrenInternal=e}children(){return this.childrenInternal||this.buildChildren()}buildChildren(){const e=[];for(let t=this;t.parent&&!t.isGroupNode();t=t.parent)e.push(t);e.reverse();const n=new Map,r=this,s=this.root;if(!s)return this.childrenInternal=n,this.childrenInternal;const i=s.startTime,o=s.endTime,l=s.doNotAggregate?function(t){++d,c===e.length&&d<=e.length+2&&m(t,0);--d}:void 0,a=s.doNotAggregate?void 0:f,h=s.getEventGroupIdCallback();let d=0,c=0,u=null;function m(t,s){if(d===e.length+2){if(!u)return;return u.setHasChildren(!0),void(u.selfTime-=s)}let i,o="";a?(i=a(t),o=h?h(t):"",o&&(i+="/"+o)):i=Symbol("uniqueId");let l=n.get(i);l||(l=new p(i,t,r),l.groupId=o,n.set(i,l)),l.selfTime+=s,l.totalTime+=s,u=l}return t.Helpers.Trace.forEachEvent(s.events,{onStartEvent:function(n){const{startTime:r,endTime:s}=t.Helpers.Timing.eventTimingsMilliSeconds(n);if(++d,d>e.length+2)return;if(!function(n){const{endTime:r}=t.Helpers.Timing.eventTimingsMilliSeconds(n);if(c===e.length)return!0;if(c!==d-1)return!1;if(!r)return!1;if(!a)return n===e[c].event&&++c,!1;let s=a(n);const i=h?h(n):"";i&&(s+="/"+i);s===e[c].id&&++c;return!1}(n))return;const l=(void 0!==s?Math.min(s,o):o)-Math.max(i,r);l<0&&console.error("Negative event duration");m(n,l)},onEndEvent:function(){--d,c>d&&(c=d)},onInstantEvent:l,startTime:t.Helpers.Timing.millisecondsToMicroseconds(i),endTime:t.Helpers.Timing.millisecondsToMicroseconds(o),eventFilter:s.filter,ignoreAsyncEvents:!1}),this.childrenInternal=n,n}getRoot(){return this.root}}class m extends u{childrenInternal;isGroupNodeInternal;constructor(e,t,n){super(e,n),this.childrenInternal=new Map,this.parent=t,this.isGroupNodeInternal=!0}addChild(e,t,n){this.childrenInternal.set(e.id,e),this.selfTime+=t,this.totalTime+=n,e.parent=this}hasChildren(){return!0}children(){return this.childrenInternal}}class T extends u{parent;root;depth;cachedChildren;hasChildrenInternal;constructor(e,t,n,r,s){super(t,n),this.parent=s,this.root=e,this.depth=(s.depth||0)+1,this.cachedChildren=null,this.hasChildrenInternal=r}hasChildren(){return this.hasChildrenInternal}setHasChildren(e){this.hasChildrenInternal=e}children(){if(this.cachedChildren)return this.cachedChildren;const e=[0],n=[],r=[],s=new Map,i=this.root.startTime,o=this.root.endTime;let l=i;const a=this;return t.Helpers.Trace.forEachEvent(this.root.events,{onStartEvent:function(s){const{startTime:l,endTime:a}=t.Helpers.Timing.eventTimingsMilliSeconds(s),h=(void 0!==a?Math.min(a,o):o)-Math.max(l,i);h<0&&console.assert(!1,"Negative duration of an event");e[e.length-1]-=h,e.push(h);const d=f(s);n.push(d),r.push(s)},onEndEvent:function(i){const{startTime:h,endTime:d}=t.Helpers.Timing.eventTimingsMilliSeconds(i),c=e.pop(),u=n.pop();let p;for(r.pop(),p=a;p.depth>1;p=p.parent)if(p.id!==n[n.length+1-p.depth])return;if(p.id!==u||n.length<a.depth)return;const m=n[n.length-a.depth];if(p=s.get(m),!p){const e=r[r.length-a.depth],t=r.length>a.depth;p=new T(a.root,m,e,t,a),s.set(m,p)}const f=void 0!==d?Math.min(d,o):o,g=f-Math.max(h,l);p.selfTime+=c||0,p.totalTime+=g,l=f},startTime:t.Helpers.Timing.millisecondsToMicroseconds(i),endTime:t.Helpers.Timing.millisecondsToMicroseconds(o),eventFilter:this.root.filter,ignoreAsyncEvents:!1}),this.cachedChildren=this.root.filterChildren(s),this.cachedChildren}searchTree(e,t){return t=t||[],this.event&&e(this.event)&&t.push(this),t}}function f(e){if(t.Types.TraceEvents.isProfileCall(e)){return`f:${l.isNativeRuntimeFrame(e.callFrame)?l.nativeGroup(e.callFrame.functionName):e.callFrame.functionName}@${e.callFrame.scriptId||e.callFrame.url||""}`}return t.Types.TraceEvents.isTraceEventTimeStamp(e)?`${e.name}:${e.args.data.message}`:e.name}var g=Object.freeze({__proto__:null,Node:u,TopDownNode:p,TopDownRootNode:class extends p{filter;events;startTime;endTime;eventGroupIdCallback;doNotAggregate;totalTime;selfTime;constructor(e,t,n,r,s,i){super("",null,null),this.root=this,this.events=e,this.filter=e=>t.every((t=>t.accept(e))),this.startTime=n,this.endTime=r,this.eventGroupIdCallback=i,this.doNotAggregate=s,this.totalTime=r-n,this.selfTime=this.totalTime}children(){return this.childrenInternal||this.grouppedTopNodes()}grouppedTopNodes(){const e=super.children();for(const t of e.values())this.selfTime-=t.totalTime;if(!this.eventGroupIdCallback)return e;const t=new Map;for(const n of e.values()){if(!n.event)continue;const e=this.eventGroupIdCallback(n.event);let r=t.get(e);r||(r=new m(e,this,n.event),t.set(e,r)),r.addChild(n,n.selfTime,n.totalTime)}return this.childrenInternal=t,t}getEventGroupIdCallback(){return this.eventGroupIdCallback}},BottomUpRootNode:class extends u{childrenInternal;events;textFilter;filter;startTime;endTime;eventGroupIdCallback;totalTime;constructor(e,t,n,r,s,i){super("",null),this.childrenInternal=null,this.events=e,this.textFilter=t,this.filter=e=>n.every((t=>t.accept(e))),this.startTime=r,this.endTime=s,this.eventGroupIdCallback=i,this.totalTime=s-r}hasChildren(){return!0}filterChildren(e){for(const[t,n]of e)n.event&&n.depth<=1&&!this.textFilter.accept(n.event)&&e.delete(t);return e}children(){return this.childrenInternal||(this.childrenInternal=this.filterChildren(this.grouppedTopNodes())),this.childrenInternal}ungrouppedTopNodes(){const e=this,n=this.startTime,r=this.endTime,s=new Map,i=[r-n],o=[],l=new Map;t.Helpers.Trace.forEachEvent(this.events,{onStartEvent:function(e){const{startTime:s,endTime:a}=t.Helpers.Timing.eventTimingsMilliSeconds(e),h=(void 0!==a?Math.min(a,r):r)-Math.max(s,n);i[i.length-1]-=h,i.push(h);const d=f(e),c=!l.has(d);c&&l.set(d,h);o.push(c)},onEndEvent:function(t){const n=f(t);let r=s.get(n);r||(r=new T(e,n,t,!1,e),s.set(n,r));r.selfTime+=i.pop()||0,o.pop()&&(r.totalTime+=l.get(n)||0,l.delete(n));o.length&&r.setHasChildren(!0)},startTime:t.Helpers.Timing.millisecondsToMicroseconds(this.startTime),endTime:t.Helpers.Timing.millisecondsToMicroseconds(this.endTime),eventFilter:this.filter,ignoreAsyncEvents:!1}),this.selfTime=i.pop()||0;for(const e of s)e[1].selfTime<=0&&s.delete(e[0]);return s}grouppedTopNodes(){const e=this.ungrouppedTopNodes();if(!this.eventGroupIdCallback)return e;const t=new Map;for(const n of e.values()){if(!n.event)continue;const e=this.eventGroupIdCallback(n.event);let r=t.get(e);r||(r=new m(e,this,n.event),t.set(e,r)),r.addChild(n,n.selfTime,n.selfTime)}return t}},GroupNode:m,BottomUpNode:T,eventStackFrame:function(e){if(t.Types.TraceEvents.isProfileCall(e))return e.callFrame;const n=e.args?.data?.stackTrace?.[0];return n?{...n,scriptId:String(n.scriptId)}:null},generateEventID:f});class I extends r.LayerTreeBase.LayerTreeBase{tileById;paintProfilerModel;constructor(e){super(e),this.tileById=new Map,this.paintProfilerModel=e&&e.model(r.PaintProfiler.PaintProfilerModel)}async setLayers(e,t,n){const r=new Set;if(e)this.extractNodeIdsToResolve(r,{},e);else if(t)for(let e=0;e<t.length;++e)this.extractNodeIdsToResolve(r,{},t[e]);await this.resolveBackendNodeIds(r);const s=this.layersById;if(this.layersById=new Map,this.setContentRoot(null),e){const t=this.innerSetLayers(s,e);this.setRoot(t)}else if(t){const e=t.map(this.innerSetLayers.bind(this,s)),n=this.contentRoot();if(!n)throw new Error("Content root is not set.");this.setRoot(n);for(let t=0;t<e.length;++t)e[t].id()!==n.id()&&n.addChild(e[t])}this.setPaints(n)}setTiles(e){this.tileById=new Map;for(const t of e)this.tileById.set(t.id,t)}pictureForRasterTile(e){const t=this.tileById.get("cc::Tile/"+e);if(!t)return n.Console.Console.instance().error(`Tile ${e} is missing`),Promise.resolve(null);const r=this.layerById(t.layer_id);return r?r.pictureForRect(t.content_rect):(n.Console.Console.instance().error(`Layer ${t.layer_id} for tile ${e} is not found`),Promise.resolve(null))}setPaints(e){for(let t=0;t<e.length;++t){const n=this.layersById.get(e[t].layerId());n&&n.addPaintEvent(e[t])}}innerSetLayers(e,t){let n=e.get(t.layer_id);n?n.reset(t):n=new v(this.paintProfilerModel,t),this.layersById.set(t.layer_id,n),t.owner_node&&n.setNode(this.backendNodeIdToNode().get(t.owner_node)||null),!this.contentRoot()&&n.drawsContent()&&this.setContentRoot(n);for(let r=0;t.children&&r<t.children.length;++r)n.addChild(this.innerSetLayers(e,t.children[r]));return n}extractNodeIdsToResolve(e,t,n){const r=n.owner_node;r&&!this.backendNodeIdToNode().has(r)&&e.add(r);for(let r=0;n.children&&r<n.children.length;++r)this.extractNodeIdsToResolve(e,t,n.children[r])}}class v{parentLayerId;parentInternal;layerId;nodeInternal;offsetXInternal;offsetYInternal;widthInternal;heightInternal;childrenInternal;quadInternal;scrollRectsInternal;gpuMemoryUsageInternal;paints;compositingReasons;compositingReasonIds;drawsContentInternal;paintProfilerModel;constructor(e,t){this.parentLayerId=null,this.parentInternal=null,this.layerId="",this.nodeInternal=null,this.offsetXInternal=-1,this.offsetYInternal=-1,this.widthInternal=-1,this.heightInternal=-1,this.childrenInternal=[],this.quadInternal=[],this.scrollRectsInternal=[],this.gpuMemoryUsageInternal=-1,this.paints=[],this.compositingReasons=[],this.compositingReasonIds=[],this.drawsContentInternal=!1,this.paintProfilerModel=e,this.reset(t)}reset(e){this.nodeInternal=null,this.layerId=String(e.layer_id),this.offsetXInternal=e.position[0],this.offsetYInternal=e.position[1],this.widthInternal=e.bounds.width,this.heightInternal=e.bounds.height,this.childrenInternal=[],this.parentLayerId=null,this.parentInternal=null,this.quadInternal=e.layer_quad||[],this.createScrollRects(e),this.compositingReasons=e.compositing_reasons||[],this.compositingReasonIds=e.compositing_reason_ids||[],this.drawsContentInternal=Boolean(e.draws_content),this.gpuMemoryUsageInternal=e.gpu_memory_usage,this.paints=[]}id(){return this.layerId}parentId(){return this.parentLayerId}parent(){return this.parentInternal}isRoot(){return!this.parentId()}children(){return this.childrenInternal}addChild(e){const t=e;t.parentInternal&&console.assert(!1,"Child already has a parent"),this.childrenInternal.push(t),t.parentInternal=this,t.parentLayerId=this.layerId}setNode(e){this.nodeInternal=e}node(){return this.nodeInternal}nodeForSelfOrAncestor(){let e=this;for(;e;e=e.parent())if(e.node())return e.node();return null}offsetX(){return this.offsetXInternal}offsetY(){return this.offsetYInternal}width(){return this.widthInternal}height(){return this.heightInternal}transform(){return null}quad(){return this.quadInternal}anchorPoint(){return[.5,.5,0]}invisible(){return!1}paintCount(){return 0}lastPaintRect(){return null}scrollRects(){return this.scrollRectsInternal}stickyPositionConstraint(){return null}gpuMemoryUsage(){return this.gpuMemoryUsageInternal}snapshots(){return this.paints.map((async e=>{if(!this.paintProfilerModel)return null;const t=await async function(e,t){const n=t.picture();if(!n||!e)return null;const r=await e.loadSnapshot(n.serializedPicture);return r?{rect:n.rect,snapshot:r}:null}(this.paintProfilerModel,e);if(!t)return null;return{rect:{x:t.rect[0],y:t.rect[1],width:t.rect[2],height:t.rect[3]},snapshot:t.snapshot}}))}async pictureForRect(e){return Promise.all(this.paints.map((e=>e.picture()))).then((n=>{const r=n.filter((n=>{return n&&(r=n.rect,s=e,t(r[0],r[0]+r[2],s[0],s[0]+s[2])&&t(r[1],r[1]+r[3],s[1],s[1]+s[3]));var r,s})).map((e=>({x:e.rect[0],y:e.rect[1],picture:e.serializedPicture})));if(!r.length||!this.paintProfilerModel)return null;const s=r.reduce(((e,t)=>Math.min(e,t.x)),1/0),i=r.reduce(((e,t)=>Math.min(e,t.y)),1/0),o={x:e[0]-s,y:e[1]-i,width:e[2],height:e[3]};return this.paintProfilerModel.loadSnapshotFromFragments(r).then((e=>e?{rect:o,snapshot:e}:null))}));function t(e,t,n,r){return console.assert(e<=t&&n<=r,"segments should be specified as ordered pairs"),t>n&&e<r}}scrollRectsFromParams(e,t){return{rect:{x:e[0],y:e[1],width:e[2],height:e[3]},type:t}}createScrollRects(e){const t=[];e.non_fast_scrollable_region&&t.push(this.scrollRectsFromParams(e.non_fast_scrollable_region,"NonFastScrollable")),e.touch_event_handler_region&&t.push(this.scrollRectsFromParams(e.touch_event_handler_region,"TouchEventHandler")),e.wheel_event_handler_region&&t.push(this.scrollRectsFromParams(e.wheel_event_handler_region,"WheelEventHandler")),e.scroll_event_handler_region&&t.push(this.scrollRectsFromParams(e.scroll_event_handler_region,"RepaintsOnScroll")),this.scrollRectsInternal=t}addPaintEvent(e){this.paints.push(e)}requestCompositingReasons(){return Promise.resolve(this.compositingReasons)}requestCompositingReasonIds(){return Promise.resolve(this.compositingReasonIds)}drawsContent(){return this.drawsContentInternal}}var y=Object.freeze({__proto__:null,TracingLayerTree:I,TracingFrameLayerTree:class{#n;#r;#s=[];constructor(e,t){this.#n=e,this.#r=t.entry,this.#s=t.paints}async layerTreePromise(){const e=this.#r.args.snapshot,t=e.device_viewport_size,n=e.active_tiles,r=e.active_tree.root_layer,s=e.active_tree.layers,i=new I(this.#n);return i.setViewportSize(t),i.setTiles(n),await i.setLayers(r,s,this.#s||[]),i}paints(){return this.#s}},TracingLayer:v});export{a as TimelineJSProfile,c as TimelineModelFilter,g as TimelineProfileTree,y as TracingLayerTree};
@@ -0,0 +1 @@
1
+ import*as e from"../../../core/sdk/sdk.js";import*as t from"../types/types.js";import*as a from"../../../core/platform/platform.js";import*as n from"../helpers/helpers.js";const r=new Map,o=new Map;async function s(t,a){const n=r.get(t)?.get(a);if(void 0!==n)return n;const o=e.TargetManager.TargetManager.instance().primaryPageTarget(),s=o?.model(e.DOMModel.DOMModel);if(!s)return null;const i=await s.pushNodesByBackendIdsToFrontend(new Set([a])),c=i?.get(a)||null,d=r.get(t)||new Map;return d.set(a,c),r.set(t,d),c}const i=new WeakMap;function c(e,a){const n=i.get(a);if(n)return n;const r=new Set;if(t.TraceEvents.isTraceEventLayout(a))a.args.endData?.layoutRoots.forEach((e=>r.add(e.nodeId)));else if(t.TraceEvents.isSyntheticLayoutShift(a)&&a.args.data?.impacted_nodes)a.args.data.impacted_nodes.forEach((e=>r.add(e.node_id)));else if(t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(a)&&void 0!==a.args.data?.nodeId)r.add(a.args.data.nodeId);else if(t.TraceEvents.isTraceEventPaint(a)&&void 0!==a.args.data.nodeId)r.add(a.args.data.nodeId);else if(t.TraceEvents.isTraceEventPaintImage(a)&&void 0!==a.args.data.nodeId)r.add(a.args.data.nodeId);else if(t.TraceEvents.isTraceEventScrollLayer(a)&&void 0!==a.args.data.nodeId)r.add(a.args.data.nodeId);else if(t.TraceEvents.isTraceEventDecodeImage(a)){const t=e.ImagePainting.paintImageForEvent.get(a);t&&void 0!==t.args.data.nodeId&&r.add(t.args.data.nodeId)}else if(t.TraceEvents.isTraceEventDrawLazyPixelRef(a)&&a.args?.LazyPixelRef){const t=e.ImagePainting.paintImageByDrawLazyPixelRef.get(a.args.LazyPixelRef);t&&void 0!==t.args.data.nodeId&&r.add(t.args.data.nodeId)}return i.set(a,r),r}async function d(t,a){const n=o.get(t)?.get(a);if(n)return n;const r=e.TargetManager.TargetManager.instance().primaryPageTarget(),s=r?.model(e.DOMModel.DOMModel);if(!s)return new Map;const i=await s.pushNodesByBackendIdsToFrontend(new Set(a))||new Map,c=o.get(t)||new Map;return c.set(a,i),o.set(t,c),i}const l=new Map,g=new Map;var u=Object.freeze({__proto__:null,clearCacheForTesting:function(){r.clear(),o.clear(),l.clear(),g.clear()},domNodeForBackendNodeID:s,nodeIdsForEvent:c,extractRelatedDOMNodesFromEvent:async function(e,t){const a=c(e,t);return a.size?d(e,Array.from(a)):null},domNodesForMultipleBackendNodeIds:d,sourcesForLayoutShift:async function(e,t){const a=l.get(e)?.get(t);if(a)return a;const n=t.args.data?.impacted_nodes;if(!n)return[];const r=[];await Promise.all(n.map((async t=>{const a=await s(e,t.node_id);a&&r.push({previousRect:new DOMRect(t.old_rect[0],t.old_rect[1],t.old_rect[2],t.old_rect[3]),currentRect:new DOMRect(t.new_rect[0],t.new_rect[1],t.new_rect[2],t.new_rect[3]),node:a})})));const o=l.get(e)||new Map;return o.set(t,r),l.set(e,o),r},normalizedImpactedNodesForLayoutShift:async function(t,a){const n=g.get(t)?.get(a);if(n)return n;const r=a.args?.data?.impacted_nodes;if(!r)return[];let o=null;const s=e.TargetManager.TargetManager.instance().primaryPageTarget(),i=await(s?.runtimeAgent().invoke_evaluate({expression:"window.devicePixelRatio"}));if("number"===i?.result.type&&(o=i?.result.value??null),!o)return r;const c=[];for(const e of r){const t={...e};for(let a=0;a<e.old_rect.length;a++)t.old_rect[a]/=o;for(let a=0;a<e.new_rect.length;a++)t.new_rect[a]/=o;c.push(t)}const d=g.get(t)||new Map;return d.set(a,c),g.set(t,d),c}});const f=new Map;var m=Object.freeze({__proto__:null,fromTraceData:function(e,t){const n=[],r=void 0!==t?t:e.Meta.traceBounds.min,o=e.Meta.traceBounds.range,s=f.get(e)?.get(r);if(s)return s;for(const t of e.Screenshots){if(t.ts<r)continue;const e={index:n.length,screenshotEvent:t};n.push(e)}const i={zeroTime:r,spanTime:o,frames:Array.from(n)};return a.MapUtilities.getWithDefault(f,e,(()=>new Map)).set(r,i),i},frameClosestToTimestamp:function(e,t){const n=a.ArrayUtilities.nearestIndexFromEnd(e.frames,(e=>e.screenshotEvent.ts<t));return null===n?null:e.frames[n]}});const T=new Set(["(program)","(idle)","(root)"]);var p=Object.freeze({__proto__:null,calculateWindow:function(e,a){if(!a.length)return e;const r=a.filter((e=>!(t.TraceEvents.isProfileCall(e)&&(T.has(e.callFrame.functionName)||!e.callFrame.functionName))));if(0===r.length)return e;function o(e,t){let a=e;const o=r[a],s=n.Timing.eventTimingsMicroSeconds(o);let i=(s.startTime+s.endTime)/2,c=0;const d=Math.sign(t-e);for(let o=e;o!==t;o+=d){const e=r[o],t=n.Timing.eventTimingsMicroSeconds(e),s=(t.startTime+t.endTime)/2;c<.1*Math.abs(i-s)&&(a=o,i=s,c=0),c+=t.duration}return a}const s=o(r.length-1,0),i=o(0,s),c=n.Timing.eventTimingsMicroSeconds(r[i]),d=n.Timing.eventTimingsMicroSeconds(r[s]);let l=c.startTime,g=d.endTime;const u=g-l;return u<.1*e.range?e:(l=t.Timing.MicroSeconds(Math.max(l-.05*u,e.min)),g=t.Timing.MicroSeconds(Math.min(g+.05*u,e.max)),{min:l,max:g,range:t.Timing.MicroSeconds(g-l)})}});var v=Object.freeze({__proto__:null,forNewRecording:async function(t,a){try{if(t)return{dataOrigin:"CPUProfile"};const n=e.CPUThrottlingManager.CPUThrottlingManager.instance().hasPrimaryPageTargetSet()?await Promise.race([e.CPUThrottlingManager.CPUThrottlingManager.instance().getHardwareConcurrency(),new Promise((e=>{setTimeout((()=>e(void 0)),1e3)}))]):void 0,r=e.CPUThrottlingManager.CPUThrottlingManager.instance().cpuThrottlingRate(),o=e.NetworkManager.MultitargetNetworkManager.instance().networkConditions(),s="function"==typeof o.title?o.title():o.title;return{source:"DevTools",startTime:a?new Date(a).toJSON():void 0,cpuThrottling:r,networkThrottling:s,hardwareConcurrency:n,dataOrigin:"TraceEvents"}}catch{return{}}}});var M=Object.freeze({__proto__:null,get:function e(a,n){if(t.TraceEvents.isProfileCall(n))return n.callFrame.url;if(n.args?.data?.stackTrace&&n.args.data.stackTrace.length>0)return n.args.data.stackTrace[0].url;if(t.TraceEvents.isSyntheticNetworkRequestEvent(n))return n.args.data.url;if(t.TraceEvents.isTraceEventDecodeImage(n)){const t=a.ImagePainting.paintImageForEvent.get(n);return t?e(a,t):null}if(t.TraceEvents.isTraceEventDrawLazyPixelRef(n)&&n.args?.LazyPixelRef){const t=a.ImagePainting.paintImageByDrawLazyPixelRef.get(n.args.LazyPixelRef);return t?e(a,t):null}return t.TraceEvents.isTraceEventParseHTML(n)?n.args.beginData.url:n.args?.data?.url?n.args.data.url:null}});export{u as FetchNodes,m as FilmStrip,p as MainThreadActivity,v as Metadata,M as URLForEntry};
@@ -0,0 +1 @@
1
+ import*as e from"../helpers/helpers.js";import*as t from"../types/types.js";import*as n from"../../../core/platform/platform.js";import*as r from"../../cpu_profile/cpu_profile.js";const i=[],a=[];let s=1;var o=Object.freeze({__proto__:null,reset:function(){i.length=0,a.length=0},handleEvent:function(e){t.TraceEvents.isTraceEventAnimation(e)&&i.push(e)},finalize:async function(){const t=e.Trace.createMatchedSortedSyntheticEvents(i);a.push(...t),s=3},data:function(){if(3!==s)throw new Error("Animation handler is not finalized");return{animations:a}}});const c=new Map,d=new Map,l=new Map,u=new Map,m=new Map;function f(e){switch(e){case"seller":return"seller";case"bidder":return"bidder";default:return"unknown"}}function g(t){return e.SyntheticEvents.SyntheticEventsManager.registerSyntheticBasedEvent({rawSourceEvent:t,name:"SyntheticAuctionWorkletEvent",s:"t",cat:t.cat,tid:t.tid,ts:t.ts,ph:"I",pid:t.args.data.pid,host:t.args.data.host,target:t.args.data.target,type:f(t.args.data.type)})}function T(){return{worklets:new Map(l)}}var v=Object.freeze({__proto__:null,reset:function(){c.clear(),d.clear(),l.clear(),u.clear(),m.clear()},handleEvent:function(e){if(t.TraceEvents.isTraceEventAuctionWorkletRunningInProcess(e))c.set(e.args.data.pid,e);else if(t.TraceEvents.isTraceEventAuctionWorkletDoneWithProcess(e))d.set(e.args.data.pid,e);else if(t.TraceEvents.isThreadName(e)){if("auction_worklet.CrUtilityMain"===e.args.name)return void u.set(e.pid,e);"AuctionV8HelperThread"===e.args.name&&m.set(e.pid,e)}},finalize:async function(){for(const[e,t]of u){const n=m.get(e);if(!n)continue;const r=c.get(e),i=d.get(e);let a=null;r?(a={...g(r),args:{data:{runningInProcessEvent:r,utilityThread:t,v8HelperThread:n}}},i&&(a.args.data.doneWithProcessEvent=i)):i&&(a={...g(i),args:{data:{doneWithProcessEvent:i,utilityThread:t,v8HelperThread:n}}},r&&(a.args.data.runningInProcessEvent=r)),null!==a&&l.set(e,a)}},data:T});let h=1;const p=[],E=new Map,w=new Map,S=new Map,M=new Map,I=[],y=[],F=[];function P(e,t){return t+"@"+e}var _=Object.freeze({__proto__:null,EnhancedTracesVersion:1,initialize:function(){if(1!==h)throw new Error("Enhanced Traces Handler was not reset");h=2},reset:function(){p.length=0,E.clear(),w.clear(),S.clear(),M.clear(),I.length=0,y.length=0,F.length=0,h=1},handleEvent:function(e){if(2!==h)throw new Error("Enhanced Traces Handler is not initialized while handling event");if(t.TraceEvents.isTraceEventTargetRundown(e)){const t=e.args?.data;E.set(P(t.isolate,t.scriptId),t.v8context),I.find((e=>e.targetId===t.frame))||I.push({targetId:t.frame,type:t.frameType,isolate:t.isolate,pid:e.pid,url:t.url}),y.find((e=>e.v8Context===t.v8context))||y.push({id:-1,origin:t.origin,v8Context:t.v8context,auxData:{frameId:t.frame,isDefault:t.isDefault,type:t.contextType},isolate:t.isolate})}else if(t.TraceEvents.isTraceEventScriptRundown(e)){p.push(e);const t=e.args.data;F.find((e=>e.scriptId===t.scriptId&&e.isolate===t.isolate))||F.push({scriptId:t.scriptId,isolate:t.isolate,executionContextId:t.executionContextId,startLine:t.startLine,startColumn:t.startColumn,endLine:t.endLine,endColumn:t.endColumn,hash:t.hash,isModule:t.isModule,url:t.url,hasSourceUrl:t.hasSourceUrl,sourceMapUrl:t.sourceMapUrl})}else if(t.TraceEvents.isTraceEventScriptRundownSource(e)){const t=e.args.data,n=P(t.isolate,t.scriptId);if("splitIndex"in t&&"splitCount"in t){S.has(n)||S.set(n,new Array(t.splitCount).fill(""));const e=S.get(n);e&&t.sourceText&&(e[t.splitIndex]=t.sourceText)}else t.sourceText&&w.set(n,t.sourceText),t.length&&M.set(n,t.length)}},finalize:async function(){if(2!==h)throw new Error("Enhanced Traces Handler is not initialized while being finalized");const e=new Map;p.forEach((t=>{const n=t.args.data,r=E.get(P(n.isolate,n.scriptId));r&&e.set(r,n.executionContextId)})),y.forEach((t=>{if(t.v8Context){const n=e.get(t.v8Context);n&&(t.id=n)}})),F.forEach((e=>{const t=P(e.isolate,e.scriptId);if(w.has(t))e.sourceText=w.get(t),e.length=M.get(t);else if(S.has(t)){const n=S.get(t);n&&(e.sourceText=n.join(""),e.length=e.sourceText.length)}e.auxData=y.find((t=>t.id===e.executionContextId&&t.isolate===e.isolate))?.auxData})),h=3},data:function(){if(3!==h)throw new Error("Enhanced Traces Handler is not finalized");return{targets:I,executionContexts:y,scripts:F}}});let C=[];const R=[],D=[],k=[],L=[];let b=1;const N=["workerStart","redirectStart","redirectEnd","fetchStart","domainLookupStart","domainLookupEnd","connectStart","connectEnd","secureConnectionStart","requestStart","responseStart","responseEnd","navigationStart","unloadEventStart","unloadEventEnd","redirectStart","redirectEnd","fetchStart","commitNavigationEnd","domainLookupStart","domainLookupEnd","connectStart","connectEnd","secureConnectionStart","requestStart","responseStart","responseEnd","domLoading","domInteractive","domContentLoadedEventStart","domContentLoadedEventEnd","domComplete","loadEventStart","loadEventEnd"];function z(){if(3!==b)throw new Error("UserTimings handler is not finalized");return{performanceMeasures:C.filter((e=>"blink.user_timing"===e.cat)),consoleTimings:C.filter((e=>"blink.console"===e.cat)),performanceMarks:[...D],timestampEvents:[...L]}}var x=Object.freeze({__proto__:null,reset:function(){C.length=0,R.length=0,D.length=0,k.length=0,L.length=0,b=2},handleEvent:function(e){if(2!==b)throw new Error("UserTimings handler is not initialized");N.includes(e.name)||(t.TraceEvents.isTraceEventPerformanceMeasure(e)?R.push(e):(t.TraceEvents.isTraceEventPerformanceMark(e)&&D.push(e),t.TraceEvents.isTraceEventConsoleTime(e)&&k.push(e),t.TraceEvents.isTraceEventTimeStamp(e)&&L.push(e)))},finalize:async function(){if(2!==b)throw new Error("UserTimings handler is not initialized");const t=[...R,...k];C=e.Trace.createMatchedSortedSyntheticEvents(t),b=3},data:z});const W=[],O=[],B=[],U=new Map;let q=1;function H(n){for(const r of n){const n=A(r);if(!n)continue;const i={name:r.name,ph:"X",pid:t.TraceEvents.ProcessID(0),tid:t.TraceEvents.ThreadID(0),ts:r.ts,dur:r.dur,cat:"devtools.extension",args:n,rawSourceEvent:t.TraceEvents.isSyntheticUserTiming(r)?r.rawSourceEvent:r};if(t.Extensions.isExtensionPayloadMarker(n)){const t=e.SyntheticEvents.SyntheticEventsManager.getActiveManager().registerSyntheticBasedEvent(i);B.push(t)}else if(t.Extensions.isExtensionPayloadTrackEntry(i.args)){const t=e.SyntheticEvents.SyntheticEventsManager.getActiveManager().registerSyntheticBasedEvent(i);W.push(t)}else;}}function A(e){const n=t.TraceEvents.isTraceEventPerformanceMark(e)?e.args.data?.detail:e.args.data.beginEvent.args.detail;if(!n)return null;try{const e=JSON.parse(n);return"devtools"in e&&t.Extensions.isValidExtensionPayload(e.devtools)?e.devtools:null}catch(e){return null}}var j=Object.freeze({__proto__:null,handleEvent:function(e){},reset:function(){q=2,W.length=0,O.length=0,B.length=0,U.clear()},finalize:async function(){if(2!==q)throw new Error("ExtensionTraceData handler is not initialized");!function(){const t=z().performanceMeasures,n=z().performanceMarks;H(e.Trace.mergeEventsInOrder(t,n)),e.Extensions.buildTrackDataFromExtensionEntries(W,O,U)}(),q=3},extractExtensionEntries:H,extensionDataInTiming:A,data:function(){if(3!==q)throw new Error("ExtensionTraceData handler is not finalized");return{entryToNode:U,extensionTrackData:[...O],extensionMarkers:[...B]}},deps:function(){return["UserTimings"]}});const G=new Map;let V="",X="";const $=new Map;let Y=t.TraceEvents.ProcessID(-1),K=t.TraceEvents.ThreadID(-1),Q=t.TraceEvents.ProcessID(-1),J=t.TraceEvents.ThreadID(-1),Z=null;const ee=new Map,te=new Set,ne={min:t.Timing.MicroSeconds(Number.POSITIVE_INFINITY),max:t.Timing.MicroSeconds(Number.NEGATIVE_INFINITY),range:t.Timing.MicroSeconds(Number.POSITIVE_INFINITY)},re=new Map,ie=new Map,ae=[],se=new Map;let oe=t.Timing.MicroSeconds(-1);const ce=new Set(["B","E","X","I"]);let de=1,le=!0;const ue=new Set(["TracingStartedInPage","TracingSessionIdForWorker","TracingStartedInBrowser"]);function me(e,r){n.MapUtilities.getWithDefault($,r.processId,(()=>new Map)).set(r.frame,r);const i=n.MapUtilities.getWithDefault(G,r.frame,(()=>new Map)),a=n.MapUtilities.getWithDefault(i,r.processId,(()=>[])),s=a.at(-1);s&&s.frame.url===r.url||a.push({frame:r,window:{min:e.ts,max:t.Timing.MicroSeconds(0),range:t.Timing.MicroSeconds(0)}})}function fe(){if(3!==de)throw new Error("Meta Handler is not finalized");return{traceBounds:{...ne},browserProcessId:Y,browserThreadId:K,processNames:ee,gpuProcessId:Q,gpuThreadId:J===t.TraceEvents.ThreadID(-1)?void 0:J,viewportRect:Z||void 0,mainFrameId:V,mainFrameURL:X,navigationsByFrameId:re,navigationsByNavigationId:ie,threadsInProcess:se,rendererProcessesByFrame:G,topLevelRendererIds:te,frameByProcessId:$,mainFrameNavigations:ae,traceIsGeneric:le}}var ge=Object.freeze({__proto__:null,reset:function(){re.clear(),ie.clear(),ee.clear(),ae.length=0,Y=t.TraceEvents.ProcessID(-1),K=t.TraceEvents.ThreadID(-1),Q=t.TraceEvents.ProcessID(-1),J=t.TraceEvents.ThreadID(-1),Z=null,te.clear(),se.clear(),G.clear(),$.clear(),ne.min=t.Timing.MicroSeconds(Number.POSITIVE_INFINITY),ne.max=t.Timing.MicroSeconds(Number.NEGATIVE_INFINITY),ne.range=t.Timing.MicroSeconds(Number.POSITIVE_INFINITY),oe=t.Timing.MicroSeconds(-1),le=!0,de=1},initialize:function(){if(1!==de)throw new Error("Meta Handler was not reset");de=2},handleEvent:function(e){if(2!==de)throw new Error("Meta Handler is not initialized");if(le&&ue.has(e.name)&&(le=!1),t.TraceEvents.isProcessName(e)&&ee.set(e.pid,e),0!==e.ts&&!e.name.endsWith("::UMA")&&ce.has(e.ph)){ne.min=t.Timing.MicroSeconds(Math.min(e.ts,ne.min));const n=e.dur||t.Timing.MicroSeconds(0);ne.max=t.Timing.MicroSeconds(Math.max(e.ts+n,ne.max))}if(!t.TraceEvents.isProcessName(e)||"Browser"!==e.args.name&&"HeadlessBrowser"!==e.args.name)if(!t.TraceEvents.isProcessName(e)||"Gpu"!==e.args.name&&"GPU Process"!==e.args.name)if(t.TraceEvents.isThreadName(e)&&"CrGpuMain"===e.args.name)J=e.tid;else{if(t.TraceEvents.isThreadName(e)&&"CrBrowserMain"===e.args.name&&(K=e.tid),t.TraceEvents.isTraceEventMainFrameViewport(e)&&null===Z){const t=e.args.data.viewport_rect,n=t[0],r=t[1],i=t[2],a=t[5];Z=new DOMRect(n,r,i,a)}if(t.TraceEvents.isTraceEventTracingStartedInBrowser(e)){if(oe=e.ts,!e.args.data)throw new Error("No frames found in trace data");for(const t of e.args.data.frames??[]){me(e,t),t.parent||te.add(t.processId);const n="isOutermostMainFrame"in t;"isInPrimaryMainFrame"in t&&n?t.isInPrimaryMainFrame&&t.isOutermostMainFrame&&(V=t.frame,X=t.url):n?t.isOutermostMainFrame&&(V=t.frame,X=t.url):!t.parent&&t.url&&(V=t.frame,X=t.url)}}else if(t.TraceEvents.isTraceEventFrameCommittedInBrowser(e)){const t=e.args.data;if(!t)return;if(me(e,t),t.parent)return;te.add(t.processId)}else if(t.TraceEvents.isTraceEventCommitLoad(e)){const t=e.args.data;if(!t)return;const{frame:n,name:r,url:i}=t;me(e,{processId:e.pid,frame:n,name:r,url:i})}else if(t.TraceEvents.isThreadName(e)){n.MapUtilities.getWithDefault(se,e.pid,(()=>new Map)).set(e.tid,e)}else if(t.TraceEvents.isTraceEventNavigationStartWithURL(e)&&e.args.data){const t=e.args.data.navigationId;if(ie.has(t))return;ie.set(t,e);const n=e.args.frame,r=re.get(n)||[];return r.push(e),re.set(n,r),void(n===V&&ae.push(e))}}else Q=e.pid;else Y=e.pid},finalize:async function(){if(2!==de)throw new Error("Handler is not initialized");oe>=0&&(ne.min=oe),ne.range=t.Timing.MicroSeconds(ne.max-ne.min);for(const[,e]of G){const n=[...e.values()].flat();for(let e=0;e<n.length;e++){const r=n[e],i=n[e+1];i?(r.window.max=t.Timing.MicroSeconds(i.window.min-1),r.window.range=t.Timing.MicroSeconds(r.window.max-r.window.min)):(r.window.max=t.Timing.MicroSeconds(ne.max),r.window.range=t.Timing.MicroSeconds(ne.max-r.window.min))}}for(const[e,t]of re)if(!G.has(e)){re.delete(e);for(const e of t)e.args.data&&ie.delete(e.args.data.navigationId)}const n=ae.at(0),r=e.Timing.secondsToMicroseconds(t.Timing.Seconds(.5));if(n){const e=n.ts-ne.min<r;n.args.data?.isOutermostMainFrame&&n.args.data?.documentLoaderURL&&e&&(X=n.args.data.documentLoaderURL)}de=3},data:fe});let Te=1;const ve=[],he=[],pe=new Map;let Ee={},we=null;const Se=[],Me=[];function Ie(){return{paints:ve,snapshots:he,paintsToSnapshots:pe}}var ye=Object.freeze({__proto__:null,reset:function(){Te=1,ve.length=0,he.length=0,pe.clear(),Ee={},we=null,Se.length=0,Me.length=0},initialize:function(){if(1!==Te)throw new Error("LayerTree Handler was not reset before being initialized");Te=2},handleEvent:function(e){(t.TraceEvents.isTraceEventPaint(e)||t.TraceEvents.isTraceEventDisplayListItemListSnapshot(e)||t.TraceEvents.isTraceEventUpdateLayer(e)||t.TraceEvents.isTraceEventSetLayerId(e))&&Me.push(e)},finalize:async function(){if(2!==Te)throw new Error("LayerTree Handler is not initialized");const n=fe();e.Trace.sortTraceEventsInPlace(Me);for(const e of Me)if(t.TraceEvents.isTraceEventSetLayerId(e)){if(n.mainFrameId!==e.args.data.frame)continue;we=e.args.data.layerTreeId}else if(t.TraceEvents.isTraceEventUpdateLayer(e))Se.push(e);else{if(t.TraceEvents.isTraceEventPaint(e)){if(!e.args.data.layerId)continue;ve.push(e),Ee[e.args.data.layerId]=e;continue}if(t.TraceEvents.isTraceEventDisplayListItemListSnapshot(e)){let t=null;for(let n=Se.length-1;n>-1;n--){const r=Se[n];if(r.pid===e.pid&&r.tid===e.tid){t=r;break}}if(!t)continue;if(t.args.layerTreeId!==we)continue;const n=Ee[t.args.layerId];if(!n)continue;he.push(e),pe.set(n,e)}}Te=3},data:Ie,deps:function(){return["Meta"]}});const Fe=new Map,Pe=new Map,_e=new Map,Ce=new Map;let Re=1;function De(){if(3!==Re)throw new Error("Samples Handler is not finalized");return{profilesInProcess:Pe,entryToNode:_e}}function ke(e,t){const r=n.MapUtilities.getWithDefault(Ce,e,(()=>new Map));return n.MapUtilities.getWithDefault(r,t,(()=>({rawProfile:{startTime:0,endTime:0,nodes:[],samples:[],timeDeltas:[],lines:[]},profileId:t})))}var Le=Object.freeze({__proto__:null,reset:function(){Fe.clear(),Ce.clear(),Pe.clear(),_e.clear(),Re=1},initialize:function(){if(1!==Re)throw new Error("Samples Handler was not reset");Re=2},handleEvent:function(e){if(2!==Re)throw new Error("Samples Handler is not initialized");if(t.TraceEvents.isSyntheticCpuProfile(e)){const t=e.pid,n=e.tid,r=ke(t,"0x1");return r.rawProfile=e.args.data.cpuProfile,void(r.threadId=n)}if(t.TraceEvents.isTraceEventProfile(e)){const t=ke(e.pid,e.id);return t.rawProfile.startTime=e.ts,void(t.threadId=e.tid)}if(t.TraceEvents.isTraceEventProfileChunk(e)){const t=ke(e.pid,e.id).rawProfile,n=e.args?.data?.cpuProfile||{samples:[]},r=n?.samples||[],i=[];for(const e of n?.nodes||[]){const t=void 0===e.callFrame.lineNumber?-1:e.callFrame.lineNumber,n=void 0===e.callFrame.columnNumber?-1:e.callFrame.columnNumber,r=String(e.callFrame.scriptId),a=e.callFrame.url||"",s={...e,callFrame:{...e.callFrame,url:a,lineNumber:t,columnNumber:n,scriptId:r}};i.push(s)}const a=e.args.data?.timeDeltas||[],s=e.args.data?.lines||Array(r.length).fill(0);if(t.nodes.push(...i),t.samples?.push(...r),t.timeDeltas?.push(...a),t.lines?.push(...s),t.samples&&t.timeDeltas&&t.samples.length!==t.timeDeltas.length)return void console.error("Failed to parse CPU profile.");if(!t.endTime&&t.timeDeltas){const e=t.timeDeltas;t.endTime=e.reduce(((e,t)=>e+t),t.startTime)}}else;},finalize:async function(){if(2!==Re)throw new Error("Samples Handler is not initialized");!function(){for(const[s,o]of Ce)for(const[c,d]of o){const l=d.threadId;if(!d.rawProfile.nodes.length||void 0===l)continue;const u=[],m=new r.CPUProfileDataModel.CPUProfileDataModel(d.rawProfile),f=e.TreeHelpers.makeEmptyTraceEntryTree();f.maxDepth=m.maxDepth;const g={rawProfile:d.rawProfile,parsedProfile:m,profileCalls:[],profileTree:f,profileId:c},T=n.MapUtilities.getWithDefault(Pe,s,(()=>new Map));function i(n,r,i,a){if(void 0===l)return;const o=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(a)),d=r.id,m=e.Trace.makeProfileCall(r,c,i,o,s,l);g.profileCalls.push(m),u.push(g.profileCalls.length-1);const f=e.TreeHelpers.makeEmptyTraceEntryNode(m,d);_e.set(m,f),f.depth=n,1===u.length&&g.profileTree?.roots.add(f)}function a(n,r,i,a,s,o){const d=u.pop(),l=void 0!==d&&g.profileCalls[d];if(!l)return;const{callFrame:m,ts:f,pid:T,tid:v}=l,h=_e.get(l);if(void 0===m||void 0===f||void 0===T||void 0===c||void 0===v||void 0===h)return;const p=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(s)),E=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(o));l.dur=p,h.selfTime=E;const w=u.at(-1),S=void 0!==w&&g.profileCalls.at(w),M=S&&_e.get(S);M&&(h.parent=M,M.children.push(h))}m.forEachFrame(i,a),T.set(l,g)}}(),Re=3},data:De,getProfileCallFunctionName:function(e,t){const n=e.profilesInProcess.get(t.pid)?.get(t.tid),r=n?.parsedProfile.nodeById(t.nodeId);return r?.functionName?r.functionName:t.callFrame.functionName}});const be=new Map,Ne=Array(),ze=new Map;let xe=[];const We=[];let Oe=1,Be=t.Configuration.defaults();const Ue=()=>({url:null,isOnMainFrame:!1,threads:new Map}),qe=()=>({name:null,entries:[],profileCalls:[]}),He=(e,t)=>n.MapUtilities.getWithDefault(e,t,Ue),Ae=(e,t)=>n.MapUtilities.getWithDefault(e.threads,t,qe);function je(){if(3!==Oe)throw new Error("Renderer Handler is not finalized");return{processes:new Map(be),compositorTileWorkers:new Map(Ge()),entryToNode:new Map(ze),allTraceEntries:[...xe]}}function Ge(){const e=new Map;for(const t of Ne){const n=e.get(t.pid)||[];n.push(t.tid),e.set(t.pid,n)}return e}function Ve(e,t,n,r){Xe(e,n),$e(e,t,n),Ye(e,n,r)}function Xe(e,t){for(const n of t.values())for(const[t,r]of n)for(const n of r.flat()){const r=He(e,t);if(null===r.url||"about:blank"===r.url)try{new URL(n.frame.url),r.url=n.frame.url}catch(e){r.url=null}}}function $e(e,t,n){for(const[r,i]of n)for(const[n]of i){const i=He(e,n);r===t&&(i.isOnMainFrame=!0)}}function Ye(e,t,n){for(const[t,r]of e)for(const[e,i]of n.get(t)??[]){Ae(r,e).name=i?.args.name??`${e}`}}function Ke(e){const t=T().worklets;if(!fe().traceIsGeneric)for(const[n,r]of e)if(null!==r.url);else{const i=t.get(n);i?r.url=i.host:e.delete(n)}}function Qe(e){for(const[,t]of e)for(const[e,n]of t.threads)n.tree?.roots.size||t.threads.delete(e)}function Je(t,n){const r=De();for(const[i,a]of t)for(const[t,s]of a.threads){if(!s.entries.length){s.tree=e.TreeHelpers.makeEmptyTraceEntryTree();continue}e.Trace.sortTraceEventsInPlace(s.entries);const a=r.profilesInProcess.get(i)?.get(t);if(a){const n=a.parsedProfile,r=n&&new e.SamplesIntegrator.SamplesIntegrator(n,a.profileId,i,t,Be),o=r?.buildProfileCalls(s.entries);if(r&&o){xe=[...xe,...o],s.entries=e.Trace.mergeEventsInOrder(s.entries,o),s.profileCalls=o;const t=r.jsSampleEvents;t&&(xe=[...xe,...t],s.entries=e.Trace.mergeEventsInOrder(s.entries,t))}}const o=e.TreeHelpers.treify(s.entries,n);s.tree=o.tree;for(const[e,t]of o.entryToNode)ze.set(e,t)}}function Ze(e){if(t.TraceEvents.isTraceEventEnd(e)){const n=We.pop();return n?n.name!==e.name||n.cat!==e.cat?(console.error("Begin/End events mismatch at "+n.ts+" ("+n.name+") vs. "+e.ts+" ("+e.name+")"),null):(n.dur=t.Timing.MicroSeconds(e.ts-n.ts),null):null}const n={...e,ph:"X",dur:t.Timing.MicroSeconds(0)};return We.push(n),n}var et=Object.freeze({__proto__:null,handleUserConfig:function(e){Be=e},reset:function(){be.clear(),ze.clear(),xe.length=0,We.length=0,Ne.length=0,Oe=1},initialize:function(){if(1!==Oe)throw new Error("Renderer Handler was not reset");Oe=2},handleEvent:function(e){if(2!==Oe)throw new Error("Renderer Handler is not initialized");if(t.TraceEvents.isThreadName(e)&&e.args.name?.startsWith("CompositorTileWorker")&&Ne.push({pid:e.pid,tid:e.tid}),t.TraceEvents.isTraceEventBegin(e)||t.TraceEvents.isTraceEventEnd(e)){const t=He(be,e.pid),n=Ae(t,e.tid),r=Ze(e);if(!r)return;return n.entries.push(r),void xe.push(r)}if(t.TraceEvents.isTraceEventInstant(e)||t.TraceEvents.isTraceEventComplete(e)){const t=He(be,e.pid);Ae(t,e.tid).entries.push(e),xe.push(e)}},finalize:async function(){if(2!==Oe)throw new Error("Renderer Handler is not initialized");const{mainFrameId:t,rendererProcessesByFrame:n,threadsInProcess:r}=fe();Ve(be,t,n,r),Ke(be),Je(be),Qe(be),e.Trace.sortTraceEventsInPlace(xe),Oe=3},data:je,assignMeta:Ve,assignOrigin:Xe,assignIsMainFrame:$e,assignThreadName:Ye,sanitizeProcesses:Ke,sanitizeThreads:Qe,buildHierarchy:Je,makeCompleteEvent:Ze,deps:function(){return["Meta","Samples","AuctionWorklets"]}});function tt(e,t,n){let r="OTHER";return"CrRendererMain"===t.name?r="MAIN_THREAD":"DedicatedWorker thread"===t.name?r="WORKER":t.name?.startsWith("CompositorTileWorker")?r="RASTERIZER":n.worklets.has(e)?r="AUCTION_WORKLET":t.name?.startsWith("ThreadPool")&&(r="THREAD_POOL"),r}function nt(e,t){const n=[];if(e.processes.size)for(const[r,i]of e.processes)for(const[a,s]of i.threads){if(!s.tree)continue;const o=tt(r,s,t);n.push({name:s.name,pid:r,tid:a,processIsOnMainFrame:i.isOnMainFrame,entries:s.entries,tree:s.tree,type:o,entryToNode:e.entryToNode})}return n}var rt=Object.freeze({__proto__:null,threadsInRenderer:nt,threadsInTrace:function(e){const t=nt(e.Renderer,e.AuctionWorklets);if(t.length)return t;const n=[];if(e.Samples.profilesInProcess.size)for(const[t,r]of e.Samples.profilesInProcess)for(const[i,a]of r)a.profileTree&&n.push({pid:t,tid:i,name:null,entries:a.profileCalls,processIsOnMainFrame:!1,tree:a.profileTree,type:"CPU_PROFILE",entryToNode:e.Samples.entryToNode});return n}});let it=1;const at=[];let st=null;class ot{#e=[];#t={};#n=new ft;#r=null;#i=!1;#a=!1;#s=null;#o=null;#c=null;#d=null;#l=null;#u=null;#m=null;#f=null;#g=null;#T;constructor(e,t,n,r,i){const a=nt(t,n).filter((e=>"MAIN_THREAD"===e.type&&e.processIsOnMainFrame)).map((e=>({tid:e.tid,pid:e.pid,startTime:e.entries[0].ts})));this.#T=i,this.#v(e,a,r.mainFrameId)}framesById(){return this.#t}frames(){return this.#e}#h(e,t){this.#r||this.#p(e,t),this.#d=e,this.#n.addFrameIfNotExists(t,e,!1,!1)}#E(e,t,n){this.#r||this.#p(e,t),this.#n.addFrameIfNotExists(t,e,!0,n),this.#n.setDropped(t,!0),this.#n.setPartial(t,n)}#w(e,t){if(this.#r){if(this.#i||!this.#a){if(this.#l){(this.#o?this.#o.triggerTime:this.#d||this.#l)>this.#r.startTime&&(this.#r.idle=!0,this.#d=null),this.#l=null}const e=this.#n.processPendingBeginFramesOnDrawFrame(t);for(const n of e){const e=this.#r.idle;this.#p(n.startTime,t),e&&this.#o&&this.#S(),n.isDropped&&(this.#r.dropped=!0),n.isPartial&&(this.#r.isPartial=!0)}}this.#i=!1}else this.#p(e,t)}#M(){this.#r&&this.#o&&!this.#l&&this.#S()}#I(){this.#r&&(this.#a=!0)}#y(){this.#c&&(this.#o=this.#c,this.#c=null,this.#a=!1,this.#i=!0)}#F(e){this.#s=e}#P(e,t){t&&(this.#l=e)}#p(e,n){this.#r&&this.#_(this.#r,e),this.#r=new dt(n,e,t.Timing.MicroSeconds(e-fe().traceBounds.min))}#_(e,t){e.setLayerTree(this.#s),e.setEndTime(t),this.#s&&(this.#s.paints=e.paints);const n=this.#e[this.#e.length-1];this.#e.length&&n&&(e.startTime!==n.endTime||e.startTime>e.endTime)&&console.assert(!1,`Inconsistent frame time for frame ${this.#e.length} (${e.startTime} - ${e.endTime})`),this.#e.push(e),"number"==typeof e.mainFrameId&&(this.#t[e.mainFrameId]=e)}#S(){this.#o&&this.#r&&(this.#r.paints=this.#o.paints,this.#r.mainFrameId=this.#o.mainFrameId,this.#o=null)}#v(e,t,n){let r=0;this.#g=t.length&&t[0].tid||null,this.#f=t.length&&t[0].pid||null;for(let i=0;i<e.length;++i){for(;r+1<t.length&&t[r+1].startTime<=e[i].ts;)this.#g=t[++r].tid,this.#f=t[r].pid;this.#C(e[i],n)}this.#g=null,this.#f=null}#C(e,n){t.TraceEvents.isTraceEventSetLayerId(e)&&e.args.data.frame===n?this.#m=e.args.data.layerTreeId:t.TraceEvents.isTraceEventLayerTreeHostImplSnapshot(e)&&Number(e.id)===this.#m?this.#F({entry:e,paints:[]}):(function(e){return t.TraceEvents.isTraceEventSetLayerId(e)||t.TraceEvents.isTraceEventBeginFrame(e)||t.TraceEvents.isTraceEventDroppedFrame(e)||t.TraceEvents.isTraceEventRequestMainThreadFrame(e)||t.TraceEvents.isTraceEventBeginMainThreadFrame(e)||t.TraceEvents.isTraceEventNeedsBeginFrameChanged(e)||t.TraceEvents.isTraceEventCommit(e)||t.TraceEvents.isTraceEventCompositeLayers(e)||t.TraceEvents.isTraceEventActivateLayerTree(e)||t.TraceEvents.isTraceEventDrawFrame(e)}(e)&&this.#R(e),e.tid===this.#g&&e.pid===this.#f&&this.#D(e))}#R(e){e.args.layerTreeId===this.#m&&(t.TraceEvents.isTraceEventBeginFrame(e)?this.#h(e.ts,e.args.frameSeqId):t.TraceEvents.isTraceEventDrawFrame(e)?this.#w(e.ts,e.args.frameSeqId):t.TraceEvents.isTraceEventActivateLayerTree(e)?this.#M():t.TraceEvents.isTraceEventRequestMainThreadFrame(e)?this.#I():t.TraceEvents.isTraceEventNeedsBeginFrameChanged(e)?this.#P(e.ts,e.args.data&&Boolean(e.args.data.needsBeginFrame)):t.TraceEvents.isTraceEventDroppedFrame(e)&&this.#E(e.ts,e.args.frameSeqId,Boolean(e.args.hasPartialUpdate)))}#D(e){if(function(e){return"RunTask"===e.name&&e.cat.includes("disabled-by-default-devtools.timeline")}(e)&&(this.#u=e.ts),!this.#c&&ct.has(e.name)&&(this.#c=new ut(this.#u||e.ts)),this.#c){if(t.TraceEvents.isTraceEventBeginMainThreadFrame(e)&&e.args.data.frameId&&(this.#c.mainFrameId=e.args.data.frameId),t.TraceEvents.isTraceEventPaint(e)){const t=this.#T.paintsToSnapshots.get(e);t&&this.#c.paints.push(new lt(e,t))}(t.TraceEvents.isTraceEventCompositeLayers(e)||t.TraceEvents.isTraceEventCommit(e))&&e.args.layerTreeId===this.#m&&this.#y()}}}const ct=new Set(["ScheduleStyleRecalculation","InvalidateLayout","BeginMainThreadFrame","ScrollLayer"]);class dt{startTime;startTimeOffset;endTime;duration;idle;dropped;isPartial;layerTree;paints;mainFrameId;seqId;constructor(e,n,r){this.seqId=e,this.startTime=n,this.startTimeOffset=r,this.endTime=this.startTime,this.duration=t.Timing.MicroSeconds(0),this.idle=!1,this.dropped=!1,this.isPartial=!1,this.layerTree=null,this.paints=[],this.mainFrameId=void 0}setEndTime(e){this.endTime=e,this.duration=t.Timing.MicroSeconds(this.endTime-this.startTime)}setLayerTree(e){this.layerTree=e}}class lt{#k;#L;constructor(e,t){this.#k=e,this.#L=t}layerId(){return this.#k.args.data.layerId}event(){return this.#k}picture(){const e=this.#L.args.snapshot.params?.layer_rect,t=this.#L.args.snapshot.skp64;return e&&t?{rect:e,serializedPicture:t}:null}}class ut{paints;mainFrameId;triggerTime;constructor(e){this.paints=[],this.mainFrameId=void 0,this.triggerTime=e}}class mt{seqId;startTime;isDropped;isPartial;constructor(e,t,n,r){this.seqId=e,this.startTime=t,this.isDropped=n,this.isPartial=r}}class ft{queueFrames=[];mapFrames={};addFrameIfNotExists(e,t,n,r){e in this.mapFrames||(this.mapFrames[e]=new mt(e,t,n,r),this.queueFrames.push(e))}setDropped(e,t){e in this.mapFrames&&(this.mapFrames[e].isDropped=t)}setPartial(e,t){e in this.mapFrames&&(this.mapFrames[e].isPartial=t)}processPendingBeginFramesOnDrawFrame(e){const t=[];if(e in this.mapFrames){for(;this.queueFrames[0]!==e;){const e=this.queueFrames[0];this.mapFrames[e].isDropped&&t.push(this.mapFrames[e]),delete this.mapFrames[e],this.queueFrames.shift()}t.push(this.mapFrames[e]),delete this.mapFrames[e],this.queueFrames.shift()}return t}}var gt=Object.freeze({__proto__:null,reset:function(){it=1,at.length=0},initialize:function(){if(1!==it)throw new Error("FramesHandler was not reset before being initialized");it=2},handleEvent:function(e){at.push(e)},finalize:async function(){if(2!==it)throw new Error("FramesHandler is not initialized");e.Trace.sortTraceEventsInPlace(at);const t=new ot(at,je(),T(),fe(),Ie());st=t},data:function(){return{frames:st?Array.from(st.frames()):[],framesById:st?{...st.framesById()}:{}}},deps:function(){return["Meta","Renderer","AuctionWorklets","LayerTree"]},TimelineFrameModel:ot,TimelineFrame:dt,LayerPaintEvent:lt,PendingFrame:ut,TimelineFrameBeginFrameQueue:ft,framesWithinWindow:function(e,t,r){const i=n.ArrayUtilities.lowerBound(e,t||0,((e,t)=>e-t.endTime)),a=n.ArrayUtilities.lowerBound(e,r||1/0,((e,t)=>e-t.startTime));return e.slice(i,a)}});let Tt=1;const vt=new Map;let ht=[];var pt=Object.freeze({__proto__:null,reset:function(){vt.clear(),ht=[],Tt=1},initialize:function(){if(1!==Tt)throw new Error("GPU Handler was not reset before being initialized");Tt=2},handleEvent:function(n){if(2!==Tt)throw new Error("GPU Handler is not initialized");t.TraceEvents.isTraceEventGPUTask(n)&&e.Trace.addEventToProcessThread(n,vt)},finalize:async function(){if(2!==Tt)throw new Error("GPU Handler is not initialized");const{gpuProcessId:e,gpuThreadId:t}=fe(),n=vt.get(e);n&&t&&(ht=n.get(t)||[]),Tt=3},data:function(){if(3!==Tt)throw new Error("GPU Handler is not finalized");return{mainGPUThreadTasks:ht}},deps:function(){return["Meta"]}});const Et=new Map,wt=new Map,St=new Map,Mt=new Map;var It=Object.freeze({__proto__:null,reset:function(){Et.clear(),wt.clear(),St.clear(),Mt.clear()},handleEvent:function(e){if(t.TraceEvents.isTraceEventPaintImage(e)){const t=Et.get(e.pid)||new Map,n=t.get(e.tid)||[];return n.push(e),t.set(e.tid,n),void Et.set(e.pid,t)}if(t.TraceEvents.isTraceEventDecodeLazyPixelRef(e)&&void 0!==e.args?.LazyPixelRef){const t=wt.get(e.pid)||new Map,n=t.get(e.tid)||[];n.push(e),t.set(e.tid,n),wt.set(e.pid,t)}if(t.TraceEvents.isTraceEventDrawLazyPixelRef(e)&&void 0!==e.args?.LazyPixelRef){const t=Et.get(e.pid)?.get(e.tid)?.at(-1);if(!t)return;St.set(e.args.LazyPixelRef,t)}else if(t.TraceEvents.isTraceEventDecodeImage(e)){const t=Et.get(e.pid)?.get(e.tid)?.at(-1);if(t)return void Mt.set(e,t);const n=wt.get(e.pid)?.get(e.tid)?.at(-1);if(!n||void 0===n.args?.LazyPixelRef)return;const r=St.get(n.args.LazyPixelRef);if(!r)return;Mt.set(e,r)}},data:function(){return{paintImageByDrawLazyPixelRef:St,paintImageForEvent:Mt}}});let yt=1;const Ft=new Map,Pt=new Map,_t=new Map,Ct=[],Rt=new Map,Dt=new Map,kt=new Map,Lt=new Map,bt=new Map,Nt=new Map,zt=new Map;function xt(e){Dt.set(e.event,e.initiator);const t=kt.get(e.initiator)||[];t.push(e.event),kt.set(e.initiator,t)}var Wt=Object.freeze({__proto__:null,reset:function(){Ft.clear(),Pt.clear(),_t.clear(),bt.clear(),Dt.clear(),kt.clear(),Lt.clear(),Nt.clear(),zt.clear(),Rt.clear(),Ct.length=0,yt=1},initialize:function(){if(1!==yt)throw new Error("InitiatorsHandler was not reset before being initialized");yt=2},handleEvent:function(n){if(t.TraceEvents.isTraceEventScheduleStyleRecalculation(n))Ft.set(n.args.data.frame,n);else if(t.TraceEvents.isTraceEventUpdateLayoutTree(n)){if(n.args.beginData){_t.set(n.args.beginData.frame,n);const e=Ft.get(n.args.beginData.frame);e&&xt({event:n,initiator:e})}}else if(t.TraceEvents.isTraceEventInvalidateLayout(n)){let t=n;if(!Pt.has(n.args.data.frame)){const r=_t.get(n.args.data.frame);if(r){const{endTime:i}=e.Timing.eventTimingsMicroSeconds(r),a=Dt.get(r);a&&i&&i>n.ts&&(t=a)}}Pt.set(n.args.data.frame,t)}else if(t.TraceEvents.isTraceEventLayout(n)){const e=Pt.get(n.args.beginData.frame);e&&xt({event:n,initiator:e}),Pt.delete(n.args.beginData.frame)}else if(t.TraceEvents.isTraceEventRequestAnimationFrame(n))Lt.set(n.args.data.id,n);else if(t.TraceEvents.isTraceEventFireAnimationFrame(n)){const e=Lt.get(n.args.data.id);e&&xt({event:n,initiator:e})}else if(t.TraceEvents.isTraceEventTimerInstall(n))bt.set(n.args.data.timerId,n);else if(t.TraceEvents.isTraceEventTimerFire(n)){const e=bt.get(n.args.data.timerId);e&&xt({event:n,initiator:e})}else if(t.TraceEvents.isTraceEventRequestIdleCallback(n))Nt.set(n.args.data.id,n);else if(t.TraceEvents.isTraceEventFireIdleCallback(n)){const e=Nt.get(n.args.data.id);e&&xt({event:n,initiator:e})}else if(t.TraceEvents.isTraceEventWebSocketCreate(n))zt.set(n.args.data.identifier,n);else if(t.TraceEvents.isTraceEventWebSocketInfo(n)||t.TraceEvents.isTraceEventWebSocketTransfer(n)){const e=zt.get(n.args.data.identifier);e&&xt({event:n,initiator:e})}else if(t.TraceEvents.isTraceEventHandlePostMessage(n))Ct.push(n);else if(t.TraceEvents.isTraceEventSchedulePostMessage(n)){const e=n.args.data?.traceId;e&&Rt.set(e,n)}},finalize:async function(){if(2!==yt)throw new Error("InitiatorsHandler is not initialized");!function(){for(const e of Ct){const t=e.args.data?.traceId,n=Rt.get(t);n&&xt({event:e,initiator:n})}}(),yt=3},data:function(){return{eventToInitiator:Dt,initiatorToEvents:kt}}});let Ot=1;const Bt=new Map,Ut=new Map;let qt=null,Ht=!1;const At=[];let jt=null;function Gt(e,t){const n=Bt.get(e)||[];n.push(t),null!==jt&&n.length>jt&&n.shift(),Bt.set(e,n);const r=Ut.get(e)??0;Ut.set(e,r+1)}var Vt=Object.freeze({__proto__:null,reset:function(){Ot=1,Bt.clear(),qt=null,At.length=0,Ht=!1,jt=null},handleUserConfig:function(e){jt=e.maxInvalidationEventsPerEvent},initialize:function(){if(1!==Ot)throw new Error("InvalidationsHandler was not reset before being initialized");Ot=2},handleEvent:function(e){if(0!==jt)if(t.TraceEvents.isTraceEventUpdateLayoutTree(e)){qt=e;for(const n of At){if(t.TraceEvents.isTraceEventLayoutInvalidationTracking(n))continue;const r=qt.args.beginData?.frame;r&&n.args.data.frame===r&&Gt(e,n)}}else if(t.TraceEvents.isTraceEventInvalidationTracking(e)){if(Ht&&(At.length=0,qt=null,Ht=!1),qt&&(t.TraceEvents.isTraceEventScheduleStyleInvalidationTracking(e)||t.TraceEvents.isTraceEventStyleRecalcInvalidationTracking(e)||t.TraceEvents.isTraceEventStyleInvalidatorInvalidationTracking(e))){const t=qt.ts+(qt.dur||0);e.ts>=qt.ts&&e.ts<=t&&qt.args.beginData?.frame===e.args.data.frame&&Gt(qt,e)}At.push(e)}else if(t.TraceEvents.isTraceEventPaint(e))Ht=!0;else if(t.TraceEvents.isTraceEventLayout(e)){const n=e.args.beginData.frame;for(const r of At)t.TraceEvents.isTraceEventLayoutInvalidationTracking(r)&&r.args.data.frame===n&&Gt(e,r)}},finalize:async function(){if(2!==Ot)throw new Error("InvalidationsHandler is not initialized");Ot=3},data:function(){return{invalidationsForEvent:Bt,invalidationCountForEvent:Ut}}});const Xt=new Map;var $t=Object.freeze({__proto__:null,reset:function(){Xt.clear()},handleEvent:function(e){t.TraceEvents.isTraceEventLargestImagePaintCandidate(e)&&e.args.data&&Xt.set(e.args.data.DOMNodeId,e)},data:function(){return Xt}});const Yt=new Map;var Kt=Object.freeze({__proto__:null,reset:function(){Yt.clear()},handleEvent:function(e){t.TraceEvents.isTraceEventLargestTextPaintCandidate(e)&&e.args.data&&Yt.set(e.args.data.DOMNodeId,e)},data:function(){return Yt}});const Qt=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(5e3)),Jt=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(1e3)),Zt=[],en=[],tn=[],nn=[],rn=[],an=new Set,sn=[];let on=0,cn=-1;const dn=[],ln=[];let un=1;function mn(e){return{min:e,max:e,range:t.Timing.MicroSeconds(0)}}function fn(e,n){e.max=n,e.range=t.Timing.MicroSeconds(e.max-e.min)}var gn=Object.freeze({__proto__:null,MAX_CLUSTER_DURATION:Qt,MAX_SHIFT_TIME_DELTA:Jt,initialize:function(){if(1!==un)throw new Error("LayoutShifts Handler was not reset");un=2},reset:function(){un=1,Zt.length=0,en.length=0,tn.length=0,nn.length=0,sn.length=0,rn.length=0,an.clear(),dn.length=0,on=0,ln.length=0,cn=-1},handleEvent:function(e){if(2!==un)throw new Error("Handler is not initialized");!t.TraceEvents.isTraceEventLayoutShift(e)||e.args.data?.had_recent_input?t.TraceEvents.isTraceEventLayoutInvalidationTracking(e)?en.push(e):(t.TraceEvents.isTraceEventScheduleStyleInvalidationTracking(e)&&tn.push(e),t.TraceEvents.isTraceEventStyleRecalcInvalidationTracking(e)&&nn.push(e),t.TraceEvents.isTraceEventPrePaint(e)?sn.push(e):t.TraceEvents.isTraceEventRenderFrameImplCreateChildFrame(e)&&rn.push(e)):Zt.push(e)},finalize:async function(){Zt.sort(((e,t)=>e.ts-t.ts)),sn.sort(((e,t)=>e.ts-t.ts)),en.sort(((e,t)=>e.ts-t.ts)),rn.sort(((e,t)=>e.ts-t.ts)),await async function(){const{navigationsByFrameId:r,mainFrameId:i,traceBounds:a}=fe(),s=r.get(i)||[];if(0===Zt.length)return;let o=Zt[0].ts,c=Zt[0].ts,d=null;for(const r of Zt){const i=r.ts-o>Qt,a=r.ts-c>Jt,l=n.ArrayUtilities.nearestIndexFromEnd(s,(e=>e.ts<r.ts)),u=d!==l&&null!==l;if(i||a||u||!dn.length){const e=r.ts,n=i?o+Qt:1/0,d=a?c+Jt:1/0,m=u?s[l].ts:1/0,f=Math.min(n,d,m);if(dn.length>0){fn(dn[dn.length-1].clusterWindow,t.Timing.MicroSeconds(f))}const g=null===l?void 0:s[l].args.data?.navigationId;dn.push({events:[],clusterWindow:mn(e),clusterCumulativeScore:0,scoreWindows:{good:mn(e),needsImprovement:null,bad:null},navigationId:g,worstShiftEvent:null}),o=e}const m=dn[dn.length-1],f=null!==l?t.Timing.MicroSeconds(r.ts-s[l].ts):void 0;if(m.clusterCumulativeScore+=r.args.data?r.args.data.weighted_score_delta:0,!r.args.data)continue;const g=e.SyntheticEvents.SyntheticEventsManager.registerSyntheticBasedEvent({rawSourceEvent:r,...r,args:{frame:r.args.frame,data:{...r.args.data,rawEvent:r}},parsedData:{timeFromNavigation:f,cumulativeWeightedScoreInWindow:m.clusterCumulativeScore,sessionWindowData:{cumulativeWindowScore:0,id:dn.length}}});m.events.push(g),fn(m.clusterWindow,r.ts),c=r.ts,d=l}for(const e of dn){let r=0,i=-1;if(e===dn[dn.length-1]){const r=Qt+e.clusterWindow.min,i=e.clusterWindow.max+Jt,o=n.ArrayUtilities.nearestIndexFromBeginning(s,(t=>t.ts>e.clusterWindow.max)),c=o?s[o].ts:1/0,d=Math.min(r,i,a.max,c);fn(e.clusterWindow,t.Timing.MicroSeconds(d))}let o=0,c=null;for(const n of e.events){r+=n.args.data?n.args.data.weighted_score_delta:0,i=n.parsedData.sessionWindowData.id;const a=n.ts;n.parsedData.sessionWindowData.cumulativeWindowScore=e.clusterCumulativeScore,r<.1?fn(e.scoreWindows.good,a):r>=.1&&r<.25?(e.scoreWindows.needsImprovement||(fn(e.scoreWindows.good,t.Timing.MicroSeconds(a-1)),e.scoreWindows.needsImprovement=mn(a)),fn(e.scoreWindows.needsImprovement,a)):r>=.25&&(e.scoreWindows.bad||(e.scoreWindows.needsImprovement?fn(e.scoreWindows.needsImprovement,t.Timing.MicroSeconds(a-1)):fn(e.scoreWindows.good,t.Timing.MicroSeconds(a-1)),e.scoreWindows.bad=mn(n.ts)),fn(e.scoreWindows.bad,a)),e.scoreWindows.bad?fn(e.scoreWindows.bad,e.clusterWindow.max):e.scoreWindows.needsImprovement?fn(e.scoreWindows.needsImprovement,e.clusterWindow.max):fn(e.scoreWindows.good,e.clusterWindow.max);const s=n.args.data?.cumulative_score;void 0!==s&&s>o&&(o=s,c=n)}e.worstShiftEvent=c,r>on&&(cn=i,on=r)}}(),function(){const{traceBounds:e}=fe();ln.push({ts:e.min,score:0});for(const e of dn){let t=0;e.events[0].args.data&&ln.push({ts:e.clusterWindow.min,score:e.events[0].args.data.weighted_score_delta});for(let n=0;n<e.events.length;n++){const r=e.events[n];r.args.data&&(t+=r.args.data.weighted_score_delta,ln.push({ts:r.ts,score:t}))}ln.push({ts:e.clusterWindow.max,score:0})}}(),function(){an.clear();for(const e of Zt)if(e.args.data?.impacted_nodes)for(const t of e.args.data.impacted_nodes)an.add(t.node_id);for(const e of en)e.args.data?.nodeId&&an.add(e.args.data.nodeId);for(const e of tn)e.args.data?.nodeId&&an.add(e.args.data.nodeId)}(),un=3},data:function(){if(3!==un)throw new Error("Layout Shifts Handler is not finalized");return{clusters:dn,sessionMaxScore:on,clsWindowID:cn,prePaintEvents:sn,layoutInvalidationEvents:en,scheduleStyleInvalidationEvents:tn,styleRecalcInvalidationEvents:[],renderFrameImplCreateChildFrameEvents:rn,scoreRecords:ln,backendNodeIds:[...an]}},deps:function(){return["Screenshots","Meta"]},scoreClassificationForLayoutShift:function(e){let t="good";return e>=.1&&(t="ok"),e>=.25&&(t="bad"),t}});const Tn=new Map;var vn=Object.freeze({__proto__:null,reset:function(){Tn.clear()},handleEvent:function(e){if(t.TraceEvents.isTraceEventUpdateCounters(e)){const t=n.MapUtilities.getWithDefault(Tn,e.pid,(()=>[]));t.push(e),Tn.set(e.pid,t)}},data:function(){return{updateCountersByProcess:Tn}}});const hn=1e3,pn=1e6,En=new Map,wn=new Map,Sn=new Map,Mn=[],In=new Map,yn=new Map;function Fn(e,t,n){wn.has(e)||wn.set(e,{});const r=wn.get(e);if(!r)throw new Error(`Unable to locate trace events for request ID ${e}`);if(Array.isArray(r[t])){const e=n;r[t].push(...e)}else r[t]=n}function Pn(e){for(const t of e)if(t>0)return t;return 0}let _n=1;function Cn(){if(3!==_n)throw new Error("Network Request handler is not finalized");return{byOrigin:Sn,byTime:Mn,eventToInitiator:yn,webSocket:[...En.values()]}}var Rn=Object.freeze({__proto__:null,reset:function(){Sn.clear(),wn.clear(),Mn.length=0,In.clear(),yn.clear(),En.clear(),_n=1},initialize:function(){_n=2},handleEvent:function(e){if(2!==_n)throw new Error("Network Request handler is not initialized");if(t.TraceEvents.isTraceEventResourceChangePriority(e))Fn(e.args.data.requestId,"changePriority",e);else if(t.TraceEvents.isTraceEventResourceWillSendRequest(e))Fn(e.args.data.requestId,"willSendRequests",[e]);else if(t.TraceEvents.isTraceEventResourceSendRequest(e))Fn(e.args.data.requestId,"sendRequests",[e]);else if(t.TraceEvents.isTraceEventResourceReceiveResponse(e))Fn(e.args.data.requestId,"receiveResponse",e);else if(t.TraceEvents.isTraceEventResourceReceivedData(e))Fn(e.args.data.requestId,"receivedData",[e]);else if(t.TraceEvents.isTraceEventResourceFinish(e))Fn(e.args.data.requestId,"resourceFinish",e);else if(t.TraceEvents.isTraceEventResourceMarkAsCached(e))Fn(e.args.data.requestId,"resourceMarkAsCached",e);else if(t.TraceEvents.isTraceEventWebSocketCreate(e)||t.TraceEvents.isTraceEventWebSocketInfo(e)||t.TraceEvents.isTraceEventWebSocketTransfer(e)){const t=e.args.data.identifier;En.has(t)||(e.args.data.frame?En.set(t,{frame:e.args.data.frame,webSocketIdentifier:t,events:[],syntheticConnectionEvent:null}):e.args.data.workerId&&En.set(t,{workerId:e.args.data.workerId,webSocketIdentifier:t,events:[],syntheticConnectionEvent:null})),En.get(t)?.events.push(e)}},finalize:async function(){if(2!==_n)throw new Error("Network Request handler is not initialized");const{rendererProcessesByFrame:r}=fe();for(const[i,a]of wn.entries()){if(!a.sendRequests||!a.receiveResponse)continue;const s=[];for(let e=0;e<a.sendRequests.length-1;e++){const n=a.sendRequests[e],r=a.sendRequests[e+1];let i=n.ts,o=t.Timing.MicroSeconds(r.ts-n.ts);if(a.willSendRequests&&a.willSendRequests[e]&&a.willSendRequests[e+1]){const n=a.willSendRequests[e],r=a.willSendRequests[e+1];i=n.ts,o=t.Timing.MicroSeconds(r.ts-n.ts)}s.push({url:n.args.data.url,priority:n.args.data.priority,requestMethod:n.args.data.requestMethod,ts:i,dur:o})}const o=0!==a.resourceFinish?.args.data.encodedDataLength,c=a.receiveResponse.args.data.fromCache&&!a.receiveResponse.args.data.fromServiceWorker&&!o,d=void 0!==a.resourceMarkAsCached,l=d||c,u=a.receiveResponse.args.data.timing;if(!u&&!l)continue;const m=a.sendRequests[0],f=a.sendRequests[a.sendRequests.length-1],g=f.args.data.priority;let T=g;a.changePriority&&(T=a.changePriority.args.data.priority);const v=a.willSendRequests&&a.willSendRequests.length?t.Timing.MicroSeconds(a.willSendRequests[0].ts):t.Timing.MicroSeconds(m.ts),h=a.willSendRequests&&a.willSendRequests.length?t.Timing.MicroSeconds(a.willSendRequests[a.willSendRequests.length-1].ts):t.Timing.MicroSeconds(f.ts),p=a.resourceFinish?a.resourceFinish.ts:h,E=a.resourceFinish?.args.data.finishTime?t.Timing.MicroSeconds(a.resourceFinish.args.data.finishTime*pn):t.Timing.MicroSeconds(p),w=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((E||h)-h),S=t.Timing.MicroSeconds(p-(E||p)),M=t.Timing.MicroSeconds(h-v),I=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds(n.NumberUtilities.clamp(u.requestTime*pn-h,0,Number.MAX_VALUE)),y=l?t.Timing.MicroSeconds(a.receiveResponse.ts-v):t.Timing.MicroSeconds(Pn([u.dnsStart*hn,u.connectStart*hn,u.sendStart*hn,a.receiveResponse.ts-h])),F=l?v:t.Timing.MicroSeconds(u.requestTime*pn+u.sendStart*hn),P=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((u.receiveHeadersEnd-u.sendEnd)*hn),_=l?v:t.Timing.MicroSeconds(u.requestTime*pn+u.receiveHeadersEnd*hn),C=l?t.Timing.MicroSeconds(p-a.receiveResponse.ts):t.Timing.MicroSeconds((E||_)-_),R=t.Timing.MicroSeconds(w+S),D=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((u.dnsEnd-u.dnsStart)*hn),k=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((u.sslEnd-u.sslStart)*hn),L=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((u.proxyEnd-u.proxyStart)*hn),b=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((u.sendEnd-u.sendStart)*hn),N=l?t.Timing.MicroSeconds(0):t.Timing.MicroSeconds((u.connectEnd-u.connectStart)*hn),{frame:z,url:x,renderBlocking:W}=f.args.data,{encodedDataLength:O,decodedBodyLength:B}=a.resourceFinish?a.resourceFinish.args.data:{encodedDataLength:0,decodedBodyLength:0},U=new URL(x),q="https:"===U.protocol,H=e.Trace.activeURLForFrameAtTime(z,f.ts,r)||"",A=e.SyntheticEvents.SyntheticEventsManager.registerSyntheticBasedEvent({rawSourceEvent:f,args:{data:{syntheticData:{dnsLookup:D,download:C,downloadStart:_,finishTime:E,initialConnection:N,isDiskCached:c,isHttps:q,isMemoryCached:d,isPushedResource:o,networkDuration:w,processingDuration:S,proxyNegotiation:L,queueing:I,redirectionDuration:M,requestSent:b,sendStartTime:F,ssl:k,stalled:y,totalTime:R,waiting:P},decodedBodyLength:B,encodedDataLength:O,frame:z,fromServiceWorker:a.receiveResponse.args.data.fromServiceWorker,isLinkPreload:f.args.data.isLinkPreload||!1,mimeType:a.receiveResponse.args.data.mimeType,priority:T,initialPriority:g,protocol:a.receiveResponse.args.data.protocol??"unknown",redirects:s,renderBlocking:W??"non_blocking",requestId:i,requestingFrameUrl:H,requestMethod:f.args.data.requestMethod,resourceType:f.args.data.resourceType,statusCode:a.receiveResponse.args.data.statusCode,responseHeaders:a.receiveResponse.args.data.headers||[],fetchPriorityHint:f.args.data.fetchPriorityHint,initiator:f.args.data.initiator,stackTrace:f.args.data.stackTrace,timing:u,url:x,failed:a.resourceFinish?.args.data.didFail??!1,finished:Boolean(a.resourceFinish),connectionId:a.receiveResponse.args.data.connectionId,connectionReused:a.receiveResponse.args.data.connectionReused}},cat:"loading",name:"SyntheticNetworkRequest",ph:"X",dur:t.Timing.MicroSeconds(p-v),tdur:t.Timing.MicroSeconds(p-v),ts:t.Timing.MicroSeconds(v),tts:t.Timing.MicroSeconds(v),pid:f.pid,tid:f.tid}),j=n.MapUtilities.getWithDefault(Sn,U.host,(()=>({renderBlocking:[],nonRenderBlocking:[],all:[]})));e.Network.isSyntheticNetworkRequestEventRenderBlocking(A)?j.renderBlocking.push(A):j.nonRenderBlocking.push(A),j.all.push(A),Mn.push(A);const G=A.args.data.initiator?.url||e.Trace.getZeroIndexedStackTraceForEvent(A)?.at(0)?.url;if(G){const e=In.get(G)??[];e.push(A),In.set(G,e)}}for(const e of Mn){const t=In.get(e.args.data.url);if(t)for(const n of t)yn.set(n,e)}En.forEach((e=>{let n=null,r=null;for(const i of e.events)t.TraceEvents.isTraceEventWebSocketCreate(i)&&(n=i),t.TraceEvents.isTraceEventWebSocketDestroy(i)&&(r=i);e.syntheticConnectionEvent=function(e,t,n){const{traceBounds:r}=fe(),i=e?e.ts:r.min,a=t?t.ts:r.max,s=a-i,o=e||t||n;return{name:"SyntheticWebSocketConnectionEvent",cat:o.cat,ph:"X",ts:i,dur:s,pid:o.pid,tid:o.tid,s:o.s,rawSourceEvent:o,_tag:"SyntheticEntryTag",args:{data:{identifier:o.args.data.identifier,priority:"Low",url:o.args.data.url||""}}}}(n,r,e.events[0])})),_n=3},data:Cn,deps:function(){return["Meta"]}});const Dn=new Map;var kn=Object.freeze({__proto__:null,reset:function(){Dn.clear()},handleEvent:function(e){if(t.TraceEvents.isTraceEventTracingStartedInBrowser(e))for(const t of e.args.data?.frames??[])Dn.set(t.frame,t);else if(t.TraceEvents.isTraceEventCommitLoad(e)){const t=e.args.data;if(!t)return;const n=Dn.get(t.frame);if(!n)return;Dn.set(t.frame,{...n,url:t.url||n.url,name:t.name||t.name})}},data:function(){return{frames:Dn}}});const Ln=new Map;let bn=[];let Nn=[];const zn=new Set;function xn(r,i){const a=r.args.data?.navigationId;if(!a)throw new Error("Navigation event unexpectedly had no navigation ID.");const s=On(i),{rendererProcessesByFrame:o}=fe(),c=o.get(s);if(!c)return;if(c.get(i.pid)&&!t.TraceEvents.isTraceEventNavigationStart(i))if(t.TraceEvents.isTraceEventFirstContentfulPaint(i)){const e=t.Timing.MicroSeconds(i.ts-r.ts);Wn(s,a,{event:i,metricName:"FCP",classification:Un(e),navigation:r,timing:e})}else if(t.TraceEvents.isTraceEventFirstPaint(i)){Wn(s,a,{event:i,metricName:"FP",classification:"unclassified",navigation:r,timing:t.Timing.MicroSeconds(i.ts-r.ts)})}else if(t.TraceEvents.isTraceEventMarkDOMContent(i)){const e=t.Timing.MicroSeconds(i.ts-r.ts);Wn(s,a,{event:i,metricName:"DCL",classification:"unclassified",navigation:r,timing:e})}else if(t.TraceEvents.isTraceEventInteractiveTime(i)){const n=t.Timing.MicroSeconds(i.ts-r.ts);Wn(s,a,{event:i,metricName:"TTI",classification:qn(n),navigation:r,timing:n});const o=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(i.args.args.total_blocking_time_ms));Wn(s,a,{event:i,metricName:"TBT",classification:jn(o),navigation:r,timing:o})}else if(t.TraceEvents.isTraceEventMarkLoad(i)){Wn(s,a,{event:i,metricName:"L",classification:"unclassified",navigation:r,timing:t.Timing.MicroSeconds(i.ts-r.ts)})}else if(t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(i)){const e=i.args.data?.candidateIndex;if(!e)throw new Error("Largest Contenful Paint unexpectedly had no candidateIndex.");const o=t.Timing.MicroSeconds(i.ts-r.ts),c={event:i,metricName:"LCP",classification:Hn(o),navigation:r,timing:o},d=n.MapUtilities.getWithDefault(Ln,s,(()=>new Map)),l=n.MapUtilities.getWithDefault(d,a,(()=>new Map)).get("LCP");if(void 0===l)return zn.add(c.event),void Wn(s,a,c);const u=l.event;if(!t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(u))return;const m=u.args.data?.candidateIndex;if(!m)return;m<e&&(zn.delete(u),zn.add(c.event),Wn(s,a,c))}else if(!t.TraceEvents.isTraceEventLayoutShift(i))return n.assertNever(i,`Unexpected event type: ${i}`)}function Wn(e,t,r){const i=n.MapUtilities.getWithDefault(Ln,e,(()=>new Map)),a=n.MapUtilities.getWithDefault(i,t,(()=>new Map));a.delete(r.metricName),a.set(r.metricName,r)}function On(e){if(t.TraceEvents.isTraceEventFirstContentfulPaint(e)||t.TraceEvents.isTraceEventInteractiveTime(e)||t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(e)||t.TraceEvents.isTraceEventNavigationStart(e)||t.TraceEvents.isTraceEventLayoutShift(e)||t.TraceEvents.isTraceEventFirstPaint(e))return e.args.frame;if(t.TraceEvents.isTraceEventMarkDOMContent(e)||t.TraceEvents.isTraceEventMarkLoad(e)){const t=e.args.data?.frame;if(!t)throw new Error("MarkDOMContent unexpectedly had no frame ID.");return t}n.assertNever(e,`Unexpected event type: ${e}`)}function Bn(r){if(t.TraceEvents.isTraceEventFirstContentfulPaint(r)||t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(r)||t.TraceEvents.isTraceEventFirstPaint(r)){const e=r.args.data?.navigationId;if(!e)throw new Error("Trace event unexpectedly had no navigation ID.");const{navigationsByNavigationId:t}=fe(),n=t.get(e);return n||null}if(t.TraceEvents.isTraceEventMarkDOMContent(r)||t.TraceEvents.isTraceEventInteractiveTime(r)||t.TraceEvents.isTraceEventLayoutShift(r)||t.TraceEvents.isTraceEventMarkLoad(r)){const t=On(r),{navigationsByFrameId:n}=fe();return e.Trace.getNavigationForTraceEvent(r,t,n)}return t.TraceEvents.isTraceEventNavigationStart(r)?null:n.assertNever(r,`Unexpected event type: ${r}`)}function Un(n){const r=e.Timing.secondsToMicroseconds(t.Timing.Seconds(1.8));let i="bad";return n<=e.Timing.secondsToMicroseconds(t.Timing.Seconds(3))&&(i="ok"),n<=r&&(i="good"),i}function qn(n){const r=e.Timing.secondsToMicroseconds(t.Timing.Seconds(3.8));let i="bad";return n<=e.Timing.secondsToMicroseconds(t.Timing.Seconds(7.3))&&(i="ok"),n<=r&&(i="good"),i}function Hn(n){const r=e.Timing.secondsToMicroseconds(t.Timing.Seconds(2.5));let i="bad";return n<=e.Timing.secondsToMicroseconds(t.Timing.Seconds(4))&&(i="ok"),n<=r&&(i="good"),i}function An(e){return"unclassified"}function jn(n){const r=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(200));let i="bad";return n<=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(600))&&(i="ok"),n<=r&&(i="good"),i}var Gn=Object.freeze({__proto__:null,reset:function(){Ln.clear(),Nn=[],bn=[],zn.clear()},handleEvent:function(e){t.TraceEvents.eventIsPageLoadEvent(e)&&Nn.push(e)},getFrameIdForPageLoadEvent:On,scoreClassificationForFirstContentfulPaint:Un,scoreClassificationForTimeToInteractive:qn,scoreClassificationForLargestContentfulPaint:Hn,scoreClassificationForDOMContentLoaded:An,scoreClassificationForTotalBlockingTime:jn,finalize:async function(){Nn.sort(((e,t)=>e.ts-t.ts));for(const e of Nn){const t=Bn(e);t&&xn(t,e)}const e=function(){const e=[],t=[...Ln.values()].flatMap((e=>[...e.values()]));for(let n=0;n<t.length;n++){const r=t[n].get("LCP");r&&r.event&&e.push(r.event)}return e}(),n=fe().mainFrameId,r=[...e,...Nn.filter((e=>!t.TraceEvents.isTraceEventLargestContentfulPaintCandidate(e)))].filter(t.TraceEvents.isTraceEventMarkerEvent);bn=r.filter((e=>On(e)===n)).sort(((e,t)=>e.ts-t.ts))},data:function(){return{metricScoresByFrameId:Ln,allMarkerEvents:bn}},deps:function(){return["Meta"]}});const Vn=[],Xn=[],$n=[];let Yn={};function Kn(e){const t=parseInt(e.id,16);if(1===t)return e.ts;return Yn[t]??e.ts}var Qn=Object.freeze({__proto__:null,reset:function(){Vn.length=0,Xn.length=0,$n.length=0,Yn={}},handleEvent:function(e){t.TraceEvents.isTraceEventScreenshot(e)?Xn.push(e):t.TraceEvents.isTraceEventPipelineReporter(e)&&Vn.push(e)},finalize:async function(){const n=e.Trace.createMatchedSortedSyntheticEvents(Vn);Yn=Object.fromEntries(n.map((e=>[e.args.data.beginEvent.args.chrome_frame_reporter.frame_sequence,t.Timing.MicroSeconds(e.ts+e.dur)])));for(const t of Xn){const{cat:n,name:r,ph:i,pid:a,tid:s}=t,o=e.SyntheticEvents.SyntheticEventsManager.registerSyntheticBasedEvent({rawSourceEvent:t,cat:n,name:r,ph:i,pid:a,tid:s,ts:Kn(t),args:{dataUri:`data:image/jpg;base64,${t.args.snapshot}`}});$n.push(o)}},data:function(){return $n},deps:function(){return["Meta"]}});let Jn=null;const Zn=new Map;var er=Object.freeze({__proto__:null,reset:function(){Jn=null,Zn.clear()},handleEvent:function(e){t.TraceEvents.isTraceEventSelectorStats(e)&&Jn&&e.args.selector_stats?Zn.set(Jn,{timings:e.args.selector_stats.selector_timings}):t.TraceEvents.isTraceEventUpdateLayoutTree(e)&&(Jn=e)},data:function(){return{dataForUpdateLayoutEvent:Zn}}});const tr=[];let nr=1;const rr="response-start",ir="response-end";function ar(n,r,i,a){const s=n.args.data.syntheticData.sendStartTime,o=n.args.data.syntheticData.sendStartTime+n.args.data.syntheticData.waiting,c=t.Timing.MicroSeconds((r-s+i-o)/2),d=[];for(const r of a){if(r.metric===rr||r.metric===ir)continue;if(null===r.start)continue;const i=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(r.start))-c,a=new URL(n.args.data.url).origin,s=e.SyntheticEvents.SyntheticEventsManager.registerServerTiming({rawSourceEvent:n.rawSourceEvent,name:r.metric,ph:"X",pid:t.TraceEvents.ProcessID(0),tid:t.TraceEvents.ThreadID(0),ts:t.Timing.MicroSeconds(i),dur:e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(r.value)),cat:"devtools.server-timing",args:{data:{desc:r.description||void 0,origin:a}}});n.args.data.syntheticServerTimings||(n.args.data.syntheticServerTimings=[]),n.args.data.syntheticServerTimings.push(s),d.push(s)}return d}var sr=Object.freeze({__proto__:null,reset:function(){tr.length=0,nr=1},initialize:function(){nr=2},handleEvent:function(e){},finalize:async function(){if(2!==nr)throw new Error("Server Timings handler is not initialized");!function(){for(const e of Cn().byTime){let t=null;for(const r of e.args.data.responseHeaders){const e=r.name.toLocaleLowerCase();"server-timing"!==e&&"server-timing-test"!==e||(r.name="server-timing",t=n.ServerTiming.ServerTiming.parseHeaders([r]))}const r=t?.find((e=>e.metric===rr))?.start,i=t?.find((e=>e.metric===ir))?.start;if(!r||!i||!t)continue;const a=1e3*r,s=1e3*i;tr.push(...ar(e,a,s,t))}}(),e.Trace.sortTraceEventsInPlace(tr),nr=3},data:function(){if(3!==nr)throw new Error("Server Timing handler is not finalized");return{serverTimings:tr}},deps:function(){return["NetworkRequests"]}});const or=[],cr=[],dr=[],lr=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(200)),ur=lr,mr=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(500));let fr=null;const gr=[],Tr=[],vr=new Map,hr=[];let pr=1;const Er=new Set(["pointerdown","touchstart","pointerup","touchend","mousedown","mouseup","click"]),wr=new Set(["keydown","keypress","keyup"]);function Sr(e){return Er.has(e.type)?"POINTER":wr.has(e.type)?"KEYBOARD":"OTHER"}function Mr(e){const n={POINTER:new Map,KEYBOARD:new Map,OTHER:new Map};function r(e){const r=Sr(e),i=n[r],a=t.Timing.MicroSeconds(e.ts+e.dur),s=i.get(a);if(s){if(e.ts<s.ts)i.set(a,e);else if(e.ts===s.ts&&e.interactionId===s.interactionId){const t=s.processingEnd-s.processingStart;e.processingEnd-e.processingStart>t&&i.set(a,e)}e.processingStart<s.processingStart&&(s.processingStart=e.processingStart,Ir(s)),e.processingEnd>s.processingEnd&&(s.processingEnd=e.processingEnd,Ir(s))}else i.set(a,e)}for(const t of e)r(t);const i=Object.values(n).flatMap((e=>Array.from(e.values())));return i.sort(((e,t)=>e.ts-t.ts)),i}function Ir(e){const n=e.args.data.beginEvent,r=e.args.data.endEvent;e.inputDelay=t.Timing.MicroSeconds(e.processingStart-n.ts),e.mainThreadHandling=t.Timing.MicroSeconds(e.processingEnd-e.processingStart),e.presentationDelay=t.Timing.MicroSeconds(r.ts-e.processingEnd)}function yr(){return{allEvents:or,beginCommitCompositorFrameEvents:cr,parseMetaViewportEvents:dr,interactionEvents:gr,interactionEventsWithNoNesting:Tr,longestInteractionEvent:fr,interactionsOverThreshold:new Set(gr.filter((e=>e.dur>lr)))}}var Fr=Object.freeze({__proto__:null,LONG_INTERACTION_THRESHOLD:lr,reset:function(){or.length=0,cr.length=0,dr.length=0,gr.length=0,hr.length=0,vr.clear(),Tr.length=0,fr=null,pr=2},handleEvent:function(e){if(2!==pr)throw new Error("Handler is not initialized");if(t.TraceEvents.isTraceEventBeginCommitCompositorFrame(e))return void cr.push(e);if(t.TraceEvents.isTraceEventParseMetaViewport(e))return void dr.push(e);if(!t.TraceEvents.isTraceEventEventTiming(e))return;if(t.TraceEvents.isTraceEventEventTimingEnd(e)&&vr.set(e.id,e),or.push(e),!e.args.data||!t.TraceEvents.isTraceEventEventTimingStart(e))return;const{duration:n,interactionId:r}=e.args.data;n<1||void 0===r||0===r||hr.push(e)},categoryOfInteraction:Sr,removeNestedInteractions:Mr,finalize:async function(){const{navigationsByFrameId:n}=fe();for(const r of hr){const i=vr.get(r.id);if(!i)continue;if(!r.args.data?.type||!r.args.data?.interactionId)continue;const a=t.Timing.MicroSeconds(e.Timing.millisecondsToMicroseconds(r.args.data.processingStart)-e.Timing.millisecondsToMicroseconds(r.args.data.timeStamp)+r.ts),s=t.Timing.MicroSeconds(e.Timing.millisecondsToMicroseconds(r.args.data.processingEnd)-e.Timing.millisecondsToMicroseconds(r.args.data.timeStamp)+r.ts),o=r.args.frame??r.args.data.frame,c=e.Trace.getNavigationForTraceEvent(r,o,n),d=c?.args.data?.navigationId,l=e.SyntheticEvents.SyntheticEventsManager.registerSyntheticBasedEvent({rawSourceEvent:r,cat:r.cat,name:r.name,pid:r.pid,tid:r.tid,ph:r.ph,processingStart:a,processingEnd:s,inputDelay:t.Timing.MicroSeconds(-1),mainThreadHandling:t.Timing.MicroSeconds(-1),presentationDelay:t.Timing.MicroSeconds(-1),args:{data:{beginEvent:r,endEvent:i,frame:o,navigationId:d}},ts:r.ts,dur:t.Timing.MicroSeconds(i.ts-r.ts),type:r.args.data.type,interactionId:r.args.data.interactionId});Ir(l),gr.push(l)}pr=3,Tr.push(...Mr(gr));for(const e of Tr)(!fr||fr.dur<e.dur)&&(fr=e)},data:yr,deps:function(){return["Meta"]},scoreClassificationForInteractionToNextPaint:function(e){return e<=ur?"good":e<=mr?"ok":"bad"}});const Pr=new Map,_r=new Map,Cr=[],Rr=[],Dr=[],kr=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(30)),Lr=e.Timing.millisecondsToMicroseconds(t.Timing.MilliSeconds(50));function br(e,t){const r=n.MapUtilities.getWithDefault(Pr,e,(()=>[]));r.push(t),Pr.set(e,r);const i=n.MapUtilities.getWithDefault(_r,t,(()=>[]));i.push(e),_r.set(t,i)}function Nr(e,t,n=!0){let r=t.at(-1);for(;r&&e.ts>r.ts+(r.dur||0);)t.pop(),r=t.at(-1);n&&t.push(e)}var zr=Object.freeze({__proto__:null,FORCED_REFLOW_THRESHOLD:kr,LONG_MAIN_THREAD_TASK_THRESHOLD:Lr,reset:function(){Pr.clear(),_r.clear(),Cr.length=0,Rr.length=0,Dr.length=0},handleEvent:function(n){if(function(e){if(Nr(e,Cr),Nr(e,Rr,t.TraceEvents.isJSInvocationEvent(e)),Rr.length&&("Layout"===e.name||"UpdateLayoutTree"===e.name))return void Dr.push(e);if(1===Cr.length){const e=Dr.reduce(((e,t)=>e+(t.dur||0)),0);e>=kr&&Dr.forEach((e=>br(e,"FORCED_REFLOW"))),Dr.length=0}}(n),"RunTask"!==n.name)if(t.TraceEvents.isTraceEventFireIdleCallback(n)){const{duration:t}=e.Timing.eventTimingsMilliSeconds(n);t>n.args.data.allottedMilliseconds&&br(n,"IDLE_CALLBACK_OVER_TIME")}else;else{const{duration:t}=e.Timing.eventTimingsMicroSeconds(n);t>Lr&&br(n,"LONG_TASK")}},deps:function(){return["UserInteractions"]},finalize:async function(){const e=yr().interactionsOverThreshold;for(const t of e)br(t,"LONG_INTERACTION")},data:function(){return{perEvent:Pr,perWarning:_r}}});let xr=1;const Wr=[],Or=new Map,Br=new Map;var Ur=Object.freeze({__proto__:null,initialize:function(){if(1!==xr)throw new Error("Workers Handler was not reset");xr=2},reset:function(){Wr.length=0,Or.clear(),Br.clear(),xr=1},handleEvent:function(e){if(2!==xr)throw new Error("Workers Handler is not initialized");t.TraceEvents.isTraceEventTracingSessionIdForWorker(e)&&Wr.push(e)},finalize:async function(){if(2!==xr)throw new Error("Handler is not initialized");for(const e of Wr)e.args.data&&(Or.set(e.args.data.workerThreadId,e.args.data.workerId),Br.set(e.args.data.workerId,e.args.data.url));xr=3},data:function(){if(3!==xr)throw new Error("Workers Handler is not finalized");return{workerSessionIdEvents:Wr,workerIdByThread:Or,workerURLById:Br}}}),qr=Object.freeze({__proto__:null,Animations:o,AuctionWorklets:v,EnhancedTraces:_,ExtensionTraceData:j,Frames:gt,GPU:pt,ImagePainting:It,Initiators:Wt,Invalidations:Vt,LargestImagePaint:$t,LargestTextPaint:Kt,LayerTree:ye,LayoutShifts:gn,Memory:vn,Meta:ge,NetworkRequests:Rn,PageFrames:kn,PageLoadMetrics:Gn,Renderer:et,Samples:Le,Screenshots:Qn,SelectorStats:er,ServerTimings:sr,UserInteractions:Fr,UserTimings:x,Warnings:zr,Workers:Ur}),Hr=Object.freeze({__proto__:null});export{qr as ModelHandlers,rt as Threads,Hr as Types};