simdeck 0.1.3 → 0.1.5

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 (807) hide show
  1. package/README.md +41 -17
  2. package/build/simdeck-bin +0 -0
  3. package/client/dist/assets/index-D2-CFde1.css +1 -0
  4. package/client/dist/assets/index-E1gIgaOR.js +9 -0
  5. package/client/dist/chrome-devtools-ui/Images/3d-center.svg +1 -0
  6. package/client/dist/chrome-devtools-ui/Images/3d-pan.svg +1 -0
  7. package/client/dist/chrome-devtools-ui/Images/3d-rotate.svg +1 -0
  8. package/client/dist/chrome-devtools-ui/Images/Images.js +296 -0
  9. package/client/dist/chrome-devtools-ui/Images/accelerometer-back.svg +1 -0
  10. package/client/dist/chrome-devtools-ui/Images/accelerometer-bottom.png +0 -0
  11. package/client/dist/chrome-devtools-ui/Images/accelerometer-front.svg +1 -0
  12. package/client/dist/chrome-devtools-ui/Images/accelerometer-left.png +0 -0
  13. package/client/dist/chrome-devtools-ui/Images/accelerometer-right.png +0 -0
  14. package/client/dist/chrome-devtools-ui/Images/accelerometer-top.png +0 -0
  15. package/client/dist/chrome-devtools-ui/Images/account-tree.svg +1 -0
  16. package/client/dist/chrome-devtools-ui/Images/align-content-center.svg +1 -0
  17. package/client/dist/chrome-devtools-ui/Images/align-content-end.svg +1 -0
  18. package/client/dist/chrome-devtools-ui/Images/align-content-space-around.svg +1 -0
  19. package/client/dist/chrome-devtools-ui/Images/align-content-space-between.svg +1 -0
  20. package/client/dist/chrome-devtools-ui/Images/align-content-space-evenly.svg +1 -0
  21. package/client/dist/chrome-devtools-ui/Images/align-content-start.svg +1 -0
  22. package/client/dist/chrome-devtools-ui/Images/align-content-stretch.svg +1 -0
  23. package/client/dist/chrome-devtools-ui/Images/align-items-baseline.svg +1 -0
  24. package/client/dist/chrome-devtools-ui/Images/align-items-center.svg +1 -0
  25. package/client/dist/chrome-devtools-ui/Images/align-items-end.svg +1 -0
  26. package/client/dist/chrome-devtools-ui/Images/align-items-start.svg +1 -0
  27. package/client/dist/chrome-devtools-ui/Images/align-items-stretch.svg +1 -0
  28. package/client/dist/chrome-devtools-ui/Images/align-self-center.svg +1 -0
  29. package/client/dist/chrome-devtools-ui/Images/align-self-end.svg +1 -0
  30. package/client/dist/chrome-devtools-ui/Images/align-self-start.svg +1 -0
  31. package/client/dist/chrome-devtools-ui/Images/align-self-stretch.svg +1 -0
  32. package/client/dist/chrome-devtools-ui/Images/animation.svg +1 -0
  33. package/client/dist/chrome-devtools-ui/Images/arrow-back.svg +1 -0
  34. package/client/dist/chrome-devtools-ui/Images/arrow-collapse.svg +1 -0
  35. package/client/dist/chrome-devtools-ui/Images/arrow-down.svg +1 -0
  36. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-dark.svg +1 -0
  37. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down-light.svg +1 -0
  38. package/client/dist/chrome-devtools-ui/Images/arrow-drop-down.svg +1 -0
  39. package/client/dist/chrome-devtools-ui/Images/arrow-forward.svg +1 -0
  40. package/client/dist/chrome-devtools-ui/Images/arrow-right-circle.svg +1 -0
  41. package/client/dist/chrome-devtools-ui/Images/arrow-up-down-circle.svg +1 -0
  42. package/client/dist/chrome-devtools-ui/Images/arrow-up-down.svg +1 -0
  43. package/client/dist/chrome-devtools-ui/Images/arrow-up.svg +1 -0
  44. package/client/dist/chrome-devtools-ui/Images/bell.svg +1 -0
  45. package/client/dist/chrome-devtools-ui/Images/bezier-curve-filled.svg +1 -0
  46. package/client/dist/chrome-devtools-ui/Images/bin.svg +1 -0
  47. package/client/dist/chrome-devtools-ui/Images/bottom-panel-close.svg +1 -0
  48. package/client/dist/chrome-devtools-ui/Images/bottom-panel-open.svg +1 -0
  49. package/client/dist/chrome-devtools-ui/Images/brackets.svg +1 -0
  50. package/client/dist/chrome-devtools-ui/Images/breakpoint-circle.svg +1 -0
  51. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed-filled.svg +1 -0
  52. package/client/dist/chrome-devtools-ui/Images/breakpoint-crossed.svg +1 -0
  53. package/client/dist/chrome-devtools-ui/Images/brush-2.svg +1 -0
  54. package/client/dist/chrome-devtools-ui/Images/brush-filled.svg +1 -0
  55. package/client/dist/chrome-devtools-ui/Images/brush.svg +1 -0
  56. package/client/dist/chrome-devtools-ui/Images/bug.svg +1 -0
  57. package/client/dist/chrome-devtools-ui/Images/bundle.svg +1 -0
  58. package/client/dist/chrome-devtools-ui/Images/button-magic.svg +1 -0
  59. package/client/dist/chrome-devtools-ui/Images/calendar-today.svg +1 -0
  60. package/client/dist/chrome-devtools-ui/Images/center-focus-weak.svg +1 -0
  61. package/client/dist/chrome-devtools-ui/Images/check-circle.svg +1 -0
  62. package/client/dist/chrome-devtools-ui/Images/check-double.svg +1 -0
  63. package/client/dist/chrome-devtools-ui/Images/checker.svg +1 -0
  64. package/client/dist/chrome-devtools-ui/Images/checkmark.svg +1 -0
  65. package/client/dist/chrome-devtools-ui/Images/chevron-double-right.svg +1 -0
  66. package/client/dist/chrome-devtools-ui/Images/chevron-down.svg +1 -0
  67. package/client/dist/chrome-devtools-ui/Images/chevron-left-dot.svg +1 -0
  68. package/client/dist/chrome-devtools-ui/Images/chevron-left.svg +1 -0
  69. package/client/dist/chrome-devtools-ui/Images/chevron-right.svg +1 -0
  70. package/client/dist/chrome-devtools-ui/Images/chevron-up.svg +1 -0
  71. package/client/dist/chrome-devtools-ui/Images/chromeLeft.avif +0 -0
  72. package/client/dist/chrome-devtools-ui/Images/chromeMiddle.avif +0 -0
  73. package/client/dist/chrome-devtools-ui/Images/chromeRight.avif +0 -0
  74. package/client/dist/chrome-devtools-ui/Images/class.svg +1 -0
  75. package/client/dist/chrome-devtools-ui/Images/clear-list.svg +1 -0
  76. package/client/dist/chrome-devtools-ui/Images/clear.svg +1 -0
  77. package/client/dist/chrome-devtools-ui/Images/cloud.svg +1 -0
  78. package/client/dist/chrome-devtools-ui/Images/code-circle.svg +1 -0
  79. package/client/dist/chrome-devtools-ui/Images/code.svg +1 -0
  80. package/client/dist/chrome-devtools-ui/Images/colon.svg +1 -0
  81. package/client/dist/chrome-devtools-ui/Images/color-picker-filled.svg +1 -0
  82. package/client/dist/chrome-devtools-ui/Images/color-picker.svg +1 -0
  83. package/client/dist/chrome-devtools-ui/Images/compress.svg +1 -0
  84. package/client/dist/chrome-devtools-ui/Images/console-conditional-breakpoint.svg +1 -0
  85. package/client/dist/chrome-devtools-ui/Images/console-logpoint.svg +1 -0
  86. package/client/dist/chrome-devtools-ui/Images/cookie.svg +1 -0
  87. package/client/dist/chrome-devtools-ui/Images/cookie_off.svg +1 -0
  88. package/client/dist/chrome-devtools-ui/Images/copy.svg +1 -0
  89. package/client/dist/chrome-devtools-ui/Images/corporate-fare.svg +1 -0
  90. package/client/dist/chrome-devtools-ui/Images/credit-card.svg +1 -0
  91. package/client/dist/chrome-devtools-ui/Images/cross-circle-filled.svg +1 -0
  92. package/client/dist/chrome-devtools-ui/Images/cross-circle.svg +1 -0
  93. package/client/dist/chrome-devtools-ui/Images/cross.svg +1 -0
  94. package/client/dist/chrome-devtools-ui/Images/cssoverview_icons_2x.avif +0 -0
  95. package/client/dist/chrome-devtools-ui/Images/custom-typography.svg +1 -0
  96. package/client/dist/chrome-devtools-ui/Images/database.svg +1 -0
  97. package/client/dist/chrome-devtools-ui/Images/deployed.svg +1 -0
  98. package/client/dist/chrome-devtools-ui/Images/device-fold.svg +1 -0
  99. package/client/dist/chrome-devtools-ui/Images/devices.svg +1 -0
  100. package/client/dist/chrome-devtools-ui/Images/devtools-thumbnail.svg +1 -0
  101. package/client/dist/chrome-devtools-ui/Images/devtools-tips.svg +1 -0
  102. package/client/dist/chrome-devtools-ui/Images/devtools.svg +1 -0
  103. package/client/dist/chrome-devtools-ui/Images/difference.svg +1 -0
  104. package/client/dist/chrome-devtools-ui/Images/dock-bottom.svg +1 -0
  105. package/client/dist/chrome-devtools-ui/Images/dock-left.svg +1 -0
  106. package/client/dist/chrome-devtools-ui/Images/dock-right.svg +1 -0
  107. package/client/dist/chrome-devtools-ui/Images/dock-window.svg +1 -0
  108. package/client/dist/chrome-devtools-ui/Images/document.svg +1 -0
  109. package/client/dist/chrome-devtools-ui/Images/dog-paw.svg +1 -0
  110. package/client/dist/chrome-devtools-ui/Images/domain.svg +1 -0
  111. package/client/dist/chrome-devtools-ui/Images/dots-horizontal.svg +1 -0
  112. package/client/dist/chrome-devtools-ui/Images/dots-vertical.svg +1 -0
  113. package/client/dist/chrome-devtools-ui/Images/download.svg +1 -0
  114. package/client/dist/chrome-devtools-ui/Images/edit.svg +1 -0
  115. package/client/dist/chrome-devtools-ui/Images/empty.svg +1 -0
  116. package/client/dist/chrome-devtools-ui/Images/errorWave.svg +1 -0
  117. package/client/dist/chrome-devtools-ui/Images/exclamation.svg +1 -0
  118. package/client/dist/chrome-devtools-ui/Images/experiment-check.svg +1 -0
  119. package/client/dist/chrome-devtools-ui/Images/experiment.svg +1 -0
  120. package/client/dist/chrome-devtools-ui/Images/extension.svg +1 -0
  121. package/client/dist/chrome-devtools-ui/Images/eye.svg +1 -0
  122. package/client/dist/chrome-devtools-ui/Images/favicon.ico +0 -0
  123. package/client/dist/chrome-devtools-ui/Images/file-document.svg +1 -0
  124. package/client/dist/chrome-devtools-ui/Images/file-fetch-xhr.svg +1 -0
  125. package/client/dist/chrome-devtools-ui/Images/file-font.svg +1 -0
  126. package/client/dist/chrome-devtools-ui/Images/file-generic.svg +1 -0
  127. package/client/dist/chrome-devtools-ui/Images/file-image.svg +1 -0
  128. package/client/dist/chrome-devtools-ui/Images/file-json.svg +1 -0
  129. package/client/dist/chrome-devtools-ui/Images/file-manifest.svg +1 -0
  130. package/client/dist/chrome-devtools-ui/Images/file-media.svg +1 -0
  131. package/client/dist/chrome-devtools-ui/Images/file-script.svg +1 -0
  132. package/client/dist/chrome-devtools-ui/Images/file-snippet.svg +1 -0
  133. package/client/dist/chrome-devtools-ui/Images/file-stylesheet.svg +1 -0
  134. package/client/dist/chrome-devtools-ui/Images/file-wasm.svg +1 -0
  135. package/client/dist/chrome-devtools-ui/Images/file-websocket.svg +1 -0
  136. package/client/dist/chrome-devtools-ui/Images/filter-clear.svg +1 -0
  137. package/client/dist/chrome-devtools-ui/Images/filter-filled.svg +1 -0
  138. package/client/dist/chrome-devtools-ui/Images/filter.svg +1 -0
  139. package/client/dist/chrome-devtools-ui/Images/flex-direction.svg +1 -0
  140. package/client/dist/chrome-devtools-ui/Images/flex-no-wrap.svg +1 -0
  141. package/client/dist/chrome-devtools-ui/Images/flex-wrap.svg +1 -0
  142. package/client/dist/chrome-devtools-ui/Images/flow.svg +1 -0
  143. package/client/dist/chrome-devtools-ui/Images/fold-more.svg +1 -0
  144. package/client/dist/chrome-devtools-ui/Images/folder.svg +1 -0
  145. package/client/dist/chrome-devtools-ui/Images/frame-crossed.svg +1 -0
  146. package/client/dist/chrome-devtools-ui/Images/frame-icon.svg +1 -0
  147. package/client/dist/chrome-devtools-ui/Images/frame.svg +1 -0
  148. package/client/dist/chrome-devtools-ui/Images/gear-filled.svg +1 -0
  149. package/client/dist/chrome-devtools-ui/Images/gear.svg +1 -0
  150. package/client/dist/chrome-devtools-ui/Images/gears.svg +1 -0
  151. package/client/dist/chrome-devtools-ui/Images/global.svg +1 -0
  152. package/client/dist/chrome-devtools-ui/Images/google.svg +1 -0
  153. package/client/dist/chrome-devtools-ui/Images/goto-filled.svg +1 -0
  154. package/client/dist/chrome-devtools-ui/Images/grid-on.svg +1 -0
  155. package/client/dist/chrome-devtools-ui/Images/group.svg +1 -0
  156. package/client/dist/chrome-devtools-ui/Images/heap-snapshot.svg +1 -0
  157. package/client/dist/chrome-devtools-ui/Images/heap-snapshots.svg +1 -0
  158. package/client/dist/chrome-devtools-ui/Images/help.svg +1 -0
  159. package/client/dist/chrome-devtools-ui/Images/history.svg +1 -0
  160. package/client/dist/chrome-devtools-ui/Images/home.svg +1 -0
  161. package/client/dist/chrome-devtools-ui/Images/hover.svg +1 -0
  162. package/client/dist/chrome-devtools-ui/Images/iframe-crossed.svg +1 -0
  163. package/client/dist/chrome-devtools-ui/Images/iframe.svg +1 -0
  164. package/client/dist/chrome-devtools-ui/Images/import.svg +1 -0
  165. package/client/dist/chrome-devtools-ui/Images/indeterminate-question-box.svg +1 -0
  166. package/client/dist/chrome-devtools-ui/Images/info-filled.svg +1 -0
  167. package/client/dist/chrome-devtools-ui/Images/info.svg +1 -0
  168. package/client/dist/chrome-devtools-ui/Images/issue-cross-filled.svg +1 -0
  169. package/client/dist/chrome-devtools-ui/Images/issue-exclamation-filled.svg +1 -0
  170. package/client/dist/chrome-devtools-ui/Images/issue-questionmark-filled.svg +1 -0
  171. package/client/dist/chrome-devtools-ui/Images/issue-text-filled.svg +1 -0
  172. package/client/dist/chrome-devtools-ui/Images/justify-content-center.svg +1 -0
  173. package/client/dist/chrome-devtools-ui/Images/justify-content-end.svg +1 -0
  174. package/client/dist/chrome-devtools-ui/Images/justify-content-space-around.svg +1 -0
  175. package/client/dist/chrome-devtools-ui/Images/justify-content-space-between.svg +1 -0
  176. package/client/dist/chrome-devtools-ui/Images/justify-content-space-evenly.svg +1 -0
  177. package/client/dist/chrome-devtools-ui/Images/justify-content-start.svg +1 -0
  178. package/client/dist/chrome-devtools-ui/Images/justify-items-center.svg +1 -0
  179. package/client/dist/chrome-devtools-ui/Images/justify-items-end.svg +1 -0
  180. package/client/dist/chrome-devtools-ui/Images/justify-items-start.svg +1 -0
  181. package/client/dist/chrome-devtools-ui/Images/justify-items-stretch.svg +1 -0
  182. package/client/dist/chrome-devtools-ui/Images/keyboard-arrow-right.svg +1 -0
  183. package/client/dist/chrome-devtools-ui/Images/keyboard-full.svg +1 -0
  184. package/client/dist/chrome-devtools-ui/Images/keyboard-pen.svg +1 -0
  185. package/client/dist/chrome-devtools-ui/Images/keyboard.svg +1 -0
  186. package/client/dist/chrome-devtools-ui/Images/label.svg +1 -0
  187. package/client/dist/chrome-devtools-ui/Images/large-arrow-right-filled.svg +1 -0
  188. package/client/dist/chrome-devtools-ui/Images/layers-filled.svg +1 -0
  189. package/client/dist/chrome-devtools-ui/Images/layers.svg +1 -0
  190. package/client/dist/chrome-devtools-ui/Images/left-panel-close.svg +1 -0
  191. package/client/dist/chrome-devtools-ui/Images/left-panel-open.svg +1 -0
  192. package/client/dist/chrome-devtools-ui/Images/lightbulb-spark.svg +1 -0
  193. package/client/dist/chrome-devtools-ui/Images/lightbulb.svg +1 -0
  194. package/client/dist/chrome-devtools-ui/Images/lighthouse_logo.svg +1 -0
  195. package/client/dist/chrome-devtools-ui/Images/list.svg +1 -0
  196. package/client/dist/chrome-devtools-ui/Images/location-on.svg +1 -0
  197. package/client/dist/chrome-devtools-ui/Images/lock.svg +1 -0
  198. package/client/dist/chrome-devtools-ui/Images/match-case.svg +1 -0
  199. package/client/dist/chrome-devtools-ui/Images/match-whole-word.svg +1 -0
  200. package/client/dist/chrome-devtools-ui/Images/memory.svg +1 -0
  201. package/client/dist/chrome-devtools-ui/Images/minus.svg +1 -0
  202. package/client/dist/chrome-devtools-ui/Images/mop.svg +1 -0
  203. package/client/dist/chrome-devtools-ui/Images/mouse.svg +1 -0
  204. package/client/dist/chrome-devtools-ui/Images/navigationControls.png +0 -0
  205. package/client/dist/chrome-devtools-ui/Images/navigationControls_2x.png +0 -0
  206. package/client/dist/chrome-devtools-ui/Images/network-settings.svg +1 -0
  207. package/client/dist/chrome-devtools-ui/Images/node-stack-icon.svg +1 -0
  208. package/client/dist/chrome-devtools-ui/Images/nodeIcon.avif +0 -0
  209. package/client/dist/chrome-devtools-ui/Images/open-externally.svg +1 -0
  210. package/client/dist/chrome-devtools-ui/Images/override.svg +1 -0
  211. package/client/dist/chrome-devtools-ui/Images/palette.svg +1 -0
  212. package/client/dist/chrome-devtools-ui/Images/pause-circle.svg +1 -0
  213. package/client/dist/chrome-devtools-ui/Images/pause.svg +1 -0
  214. package/client/dist/chrome-devtools-ui/Images/pen-spark.svg +1 -0
  215. package/client/dist/chrome-devtools-ui/Images/performance-panel-delete-annotation.svg +1 -0
  216. package/client/dist/chrome-devtools-ui/Images/performance-panel-diagram.svg +1 -0
  217. package/client/dist/chrome-devtools-ui/Images/performance-panel-entry-label.svg +1 -0
  218. package/client/dist/chrome-devtools-ui/Images/performance-panel-time-range.svg +1 -0
  219. package/client/dist/chrome-devtools-ui/Images/performance.svg +1 -0
  220. package/client/dist/chrome-devtools-ui/Images/person.svg +1 -0
  221. package/client/dist/chrome-devtools-ui/Images/photo-camera.svg +1 -0
  222. package/client/dist/chrome-devtools-ui/Images/play.svg +1 -0
  223. package/client/dist/chrome-devtools-ui/Images/plus.svg +1 -0
  224. package/client/dist/chrome-devtools-ui/Images/policy.svg +1 -0
  225. package/client/dist/chrome-devtools-ui/Images/popoverArrows.png +0 -0
  226. package/client/dist/chrome-devtools-ui/Images/popup.svg +1 -0
  227. package/client/dist/chrome-devtools-ui/Images/preview_feature_video_thumbnail.svg +1 -0
  228. package/client/dist/chrome-devtools-ui/Images/profile.svg +1 -0
  229. package/client/dist/chrome-devtools-ui/Images/psychiatry.svg +1 -0
  230. package/client/dist/chrome-devtools-ui/Images/react_native/learn-debugging-basics.jpg +0 -0
  231. package/client/dist/chrome-devtools-ui/Images/react_native/learn-native-debugging.jpg +0 -0
  232. package/client/dist/chrome-devtools-ui/Images/react_native/learn-react-native-devtools.jpg +0 -0
  233. package/client/dist/chrome-devtools-ui/Images/react_native/welcomeIcon.png +0 -0
  234. package/client/dist/chrome-devtools-ui/Images/record-start.svg +1 -0
  235. package/client/dist/chrome-devtools-ui/Images/record-stop.svg +1 -0
  236. package/client/dist/chrome-devtools-ui/Images/redo.svg +1 -0
  237. package/client/dist/chrome-devtools-ui/Images/refresh.svg +1 -0
  238. package/client/dist/chrome-devtools-ui/Images/regular-expression.svg +1 -0
  239. package/client/dist/chrome-devtools-ui/Images/replace.svg +1 -0
  240. package/client/dist/chrome-devtools-ui/Images/replay.svg +1 -0
  241. package/client/dist/chrome-devtools-ui/Images/report.svg +1 -0
  242. package/client/dist/chrome-devtools-ui/Images/resizeDiagonal.svg +1 -0
  243. package/client/dist/chrome-devtools-ui/Images/resizeHorizontal.svg +1 -0
  244. package/client/dist/chrome-devtools-ui/Images/resizeVertical.svg +1 -0
  245. package/client/dist/chrome-devtools-ui/Images/resume.svg +1 -0
  246. package/client/dist/chrome-devtools-ui/Images/review.svg +1 -0
  247. package/client/dist/chrome-devtools-ui/Images/right-panel-close.svg +1 -0
  248. package/client/dist/chrome-devtools-ui/Images/right-panel-open.svg +1 -0
  249. package/client/dist/chrome-devtools-ui/Images/scissors.svg +1 -0
  250. package/client/dist/chrome-devtools-ui/Images/screen-rotation.svg +1 -0
  251. package/client/dist/chrome-devtools-ui/Images/search.svg +1 -0
  252. package/client/dist/chrome-devtools-ui/Images/select-element.svg +1 -0
  253. package/client/dist/chrome-devtools-ui/Images/send.svg +1 -0
  254. package/client/dist/chrome-devtools-ui/Images/shadow.svg +1 -0
  255. package/client/dist/chrome-devtools-ui/Images/small-status-dot.svg +1 -0
  256. package/client/dist/chrome-devtools-ui/Images/smart-assistant.svg +1 -0
  257. package/client/dist/chrome-devtools-ui/Images/snippet.svg +1 -0
  258. package/client/dist/chrome-devtools-ui/Images/spark-info.svg +1 -0
  259. package/client/dist/chrome-devtools-ui/Images/star.svg +1 -0
  260. package/client/dist/chrome-devtools-ui/Images/step-into.svg +1 -0
  261. package/client/dist/chrome-devtools-ui/Images/step-out.svg +1 -0
  262. package/client/dist/chrome-devtools-ui/Images/step-over.svg +1 -0
  263. package/client/dist/chrome-devtools-ui/Images/step.svg +1 -0
  264. package/client/dist/chrome-devtools-ui/Images/stop.svg +1 -0
  265. package/client/dist/chrome-devtools-ui/Images/symbol.svg +1 -0
  266. package/client/dist/chrome-devtools-ui/Images/sync.svg +1 -0
  267. package/client/dist/chrome-devtools-ui/Images/table.svg +1 -0
  268. package/client/dist/chrome-devtools-ui/Images/terminal.svg +1 -0
  269. package/client/dist/chrome-devtools-ui/Images/thumb-down-filled.svg +1 -0
  270. package/client/dist/chrome-devtools-ui/Images/thumb-down.svg +1 -0
  271. package/client/dist/chrome-devtools-ui/Images/thumb-up-filled.svg +1 -0
  272. package/client/dist/chrome-devtools-ui/Images/thumb-up.svg +1 -0
  273. package/client/dist/chrome-devtools-ui/Images/tonality.svg +1 -0
  274. package/client/dist/chrome-devtools-ui/Images/toolbarResizerVertical.png +0 -0
  275. package/client/dist/chrome-devtools-ui/Images/top-panel-close.svg +1 -0
  276. package/client/dist/chrome-devtools-ui/Images/top-panel-open.svg +1 -0
  277. package/client/dist/chrome-devtools-ui/Images/touch-app.svg +1 -0
  278. package/client/dist/chrome-devtools-ui/Images/touchCursor.png +0 -0
  279. package/client/dist/chrome-devtools-ui/Images/touchCursor_2x.png +0 -0
  280. package/client/dist/chrome-devtools-ui/Images/triangle-bottom-right.svg +1 -0
  281. package/client/dist/chrome-devtools-ui/Images/triangle-down.svg +1 -0
  282. package/client/dist/chrome-devtools-ui/Images/triangle-left.svg +1 -0
  283. package/client/dist/chrome-devtools-ui/Images/triangle-right.svg +1 -0
  284. package/client/dist/chrome-devtools-ui/Images/triangle-up.svg +1 -0
  285. package/client/dist/chrome-devtools-ui/Images/tune.svg +1 -0
  286. package/client/dist/chrome-devtools-ui/Images/undo.svg +1 -0
  287. package/client/dist/chrome-devtools-ui/Images/warning-filled.svg +1 -0
  288. package/client/dist/chrome-devtools-ui/Images/warning.svg +1 -0
  289. package/client/dist/chrome-devtools-ui/Images/watch.svg +1 -0
  290. package/client/dist/chrome-devtools-ui/Images/whatsnew.svg +1 -0
  291. package/client/dist/chrome-devtools-ui/Images/width.svg +1 -0
  292. package/client/dist/chrome-devtools-ui/Images/zoom-in.svg +1 -0
  293. package/client/dist/chrome-devtools-ui/Tests.js +1700 -0
  294. package/client/dist/chrome-devtools-ui/application_tokens.css +407 -0
  295. package/client/dist/chrome-devtools-ui/core/common/common.js +1 -0
  296. package/client/dist/chrome-devtools-ui/core/dom_extension/dom_extension.js +1 -0
  297. package/client/dist/chrome-devtools-ui/core/host/host.js +1 -0
  298. package/client/dist/chrome-devtools-ui/core/i18n/i18n.js +1 -0
  299. package/client/dist/chrome-devtools-ui/core/i18n/locales/en-US.json +1 -0
  300. package/client/dist/chrome-devtools-ui/core/i18n/locales/zh.json +1 -0
  301. package/client/dist/chrome-devtools-ui/core/platform/platform.js +1 -0
  302. package/client/dist/chrome-devtools-ui/core/protocol_client/protocol_client.js +1 -0
  303. package/client/dist/chrome-devtools-ui/core/rn_experiments/rn_experiments.js +1 -0
  304. package/client/dist/chrome-devtools-ui/core/root/root.js +1 -0
  305. package/client/dist/chrome-devtools-ui/core/sdk/sdk-meta.js +1 -0
  306. package/client/dist/chrome-devtools-ui/core/sdk/sdk.js +1 -0
  307. package/client/dist/chrome-devtools-ui/design_system_tokens.css +782 -0
  308. package/client/dist/chrome-devtools-ui/device_mode_emulation_frame.html +24 -0
  309. package/client/dist/chrome-devtools-ui/devtools_app.html +24 -0
  310. package/client/dist/chrome-devtools-ui/devtools_compatibility.js +1741 -0
  311. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  312. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  313. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  314. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  315. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  316. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  317. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-horizontal.avif +0 -0
  318. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nest-hub-max-horizontal.avif +0 -0
  319. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  320. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  321. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  322. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  323. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  324. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  325. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  326. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  327. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  328. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  329. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  330. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  331. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  332. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  333. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  334. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  335. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  336. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  337. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  338. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  339. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  340. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  341. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  342. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  343. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-landscape.avif +0 -0
  344. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPad-portrait.avif +0 -0
  345. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  346. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  347. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  348. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  349. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  350. package/client/dist/chrome-devtools-ui/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  351. package/client/dist/chrome-devtools-ui/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.js +1 -0
  352. package/client/dist/chrome-devtools-ui/entrypoints/devtools_app/devtools_app.js +1 -0
  353. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/FormatterActions.js +1 -0
  354. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker-entrypoint.js +1 -0
  355. package/client/dist/chrome-devtools-ui/entrypoints/formatter_worker/formatter_worker.js +1 -0
  356. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  357. package/client/dist/chrome-devtools-ui/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  358. package/client/dist/chrome-devtools-ui/entrypoints/inspector/inspector.js +1 -0
  359. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main-meta.js +1 -0
  360. package/client/dist/chrome-devtools-ui/entrypoints/inspector_main/inspector_main.js +1 -0
  361. package/client/dist/chrome-devtools-ui/entrypoints/js_app/js_app.js +1 -0
  362. package/client/dist/chrome-devtools-ui/entrypoints/lighthouse_worker/lighthouse_worker.js +1 -0
  363. package/client/dist/chrome-devtools-ui/entrypoints/main/main-meta.js +1 -0
  364. package/client/dist/chrome-devtools-ui/entrypoints/main/main.js +48 -0
  365. package/client/dist/chrome-devtools-ui/entrypoints/ndb_app/ndb_app.js +1 -0
  366. package/client/dist/chrome-devtools-ui/entrypoints/node_app/node_app.js +1 -0
  367. package/client/dist/chrome-devtools-ui/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -0
  368. package/client/dist/chrome-devtools-ui/entrypoints/rn_fusebox/rn_fusebox.js +24 -0
  369. package/client/dist/chrome-devtools-ui/entrypoints/shell/shell.js +1 -0
  370. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  371. package/client/dist/chrome-devtools-ui/entrypoints/wasmparser_worker/wasmparser_worker.js +1 -0
  372. package/client/dist/chrome-devtools-ui/entrypoints/worker_app/worker_app.js +1 -0
  373. package/client/dist/chrome-devtools-ui/inspector.html +24 -0
  374. package/client/dist/chrome-devtools-ui/integration_test_runner.html +40 -0
  375. package/client/dist/chrome-devtools-ui/js_app.html +24 -0
  376. package/client/dist/chrome-devtools-ui/legacy_test_runner/legacy_test_runner.js +13 -0
  377. package/client/dist/chrome-devtools-ui/legacy_test_runner/test_runner/test_runner.js +1 -0
  378. package/client/dist/chrome-devtools-ui/models/ai_assistance/ai_assistance.js +1 -0
  379. package/client/dist/chrome-devtools-ui/models/autofill_manager/autofill_manager.js +1 -0
  380. package/client/dist/chrome-devtools-ui/models/bindings/bindings.js +1 -0
  381. package/client/dist/chrome-devtools-ui/models/breakpoints/breakpoints.js +1 -0
  382. package/client/dist/chrome-devtools-ui/models/cpu_profile/cpu_profile.js +1 -0
  383. package/client/dist/chrome-devtools-ui/models/crux-manager/crux-manager.js +1 -0
  384. package/client/dist/chrome-devtools-ui/models/emulation/emulation.js +1 -0
  385. package/client/dist/chrome-devtools-ui/models/extensions/extensions.js +1 -0
  386. package/client/dist/chrome-devtools-ui/models/formatter/formatter.js +1 -0
  387. package/client/dist/chrome-devtools-ui/models/har/har.js +1 -0
  388. package/client/dist/chrome-devtools-ui/models/heap_snapshot_model/heap_snapshot_model.js +1 -0
  389. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  390. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  391. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  392. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  393. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  394. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  395. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  396. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  397. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  398. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  399. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  400. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  401. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  402. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  403. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  404. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  405. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  406. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  407. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  408. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  409. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  410. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  411. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  412. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  413. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  414. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  415. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  416. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  417. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  418. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  419. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  420. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  421. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  422. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  423. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  424. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  425. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  426. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  427. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  428. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  429. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  430. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  431. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  432. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  433. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  434. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  435. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  436. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  437. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  438. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  439. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  440. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  441. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  442. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  443. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  444. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  445. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  446. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  447. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  448. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  449. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  450. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  451. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  452. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  453. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  454. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  455. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  456. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  457. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  458. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  459. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  460. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  461. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  462. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  463. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  464. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  465. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  466. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/deprecation.md +3 -0
  467. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  468. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  469. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  470. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  471. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  472. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  473. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  474. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  475. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  476. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  477. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  478. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  479. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  480. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  481. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  482. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  483. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  484. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  485. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  486. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  487. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  488. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  489. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  490. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  491. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  492. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  493. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  494. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  495. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  496. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingId.md +8 -0
  497. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  498. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  499. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  500. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  501. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  502. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  503. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  504. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  505. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInput.md +5 -0
  506. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  507. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/heavyAd.md +10 -0
  508. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/mixedContent.md +5 -0
  509. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  510. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  511. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  512. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  513. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  514. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  515. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  516. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  517. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  518. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  519. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  520. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  521. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  522. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  523. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  524. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  525. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  526. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  527. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  528. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  529. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  530. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  531. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  532. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  533. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  534. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  535. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  536. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  537. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  538. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  539. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  540. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  541. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  542. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  543. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  544. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  545. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  546. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  547. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  548. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  549. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  550. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  551. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  552. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  553. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  554. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  555. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  556. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  557. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  558. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  559. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  560. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +12 -0
  561. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  562. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  563. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  564. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  565. package/client/dist/chrome-devtools-ui/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  566. package/client/dist/chrome-devtools-ui/models/issues_manager/issues_manager.js +1 -0
  567. package/client/dist/chrome-devtools-ui/models/javascript_metadata/javascript_metadata.js +1 -0
  568. package/client/dist/chrome-devtools-ui/models/live-metrics/live-metrics.js +1 -0
  569. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/spec/spec.js +1 -0
  570. package/client/dist/chrome-devtools-ui/models/live-metrics/web-vitals-injected/web-vitals-injected.generated.js +1 -0
  571. package/client/dist/chrome-devtools-ui/models/logs/logs-meta.js +1 -0
  572. package/client/dist/chrome-devtools-ui/models/logs/logs.js +1 -0
  573. package/client/dist/chrome-devtools-ui/models/persistence/persistence-meta.js +1 -0
  574. package/client/dist/chrome-devtools-ui/models/persistence/persistence.js +1 -0
  575. package/client/dist/chrome-devtools-ui/models/project_settings/project_settings.js +1 -0
  576. package/client/dist/chrome-devtools-ui/models/react_native/react_native.js +1 -0
  577. package/client/dist/chrome-devtools-ui/models/source_map_scopes/source_map_scopes.js +1 -0
  578. package/client/dist/chrome-devtools-ui/models/text_utils/text_utils.js +1 -0
  579. package/client/dist/chrome-devtools-ui/models/trace/extras/extras.js +1 -0
  580. package/client/dist/chrome-devtools-ui/models/trace/handlers/handlers.js +1 -0
  581. package/client/dist/chrome-devtools-ui/models/trace/helpers/helpers.js +1 -0
  582. package/client/dist/chrome-devtools-ui/models/trace/insights/insights.js +1 -0
  583. package/client/dist/chrome-devtools-ui/models/trace/lantern/core/core.js +1 -0
  584. package/client/dist/chrome-devtools-ui/models/trace/lantern/graph/graph.js +1 -0
  585. package/client/dist/chrome-devtools-ui/models/trace/lantern/lantern.js +1 -0
  586. package/client/dist/chrome-devtools-ui/models/trace/lantern/metrics/metrics.js +1 -0
  587. package/client/dist/chrome-devtools-ui/models/trace/lantern/simulation/simulation.js +1 -0
  588. package/client/dist/chrome-devtools-ui/models/trace/lantern/types/types.js +1 -0
  589. package/client/dist/chrome-devtools-ui/models/trace/trace.js +1 -0
  590. package/client/dist/chrome-devtools-ui/models/trace/types/types.js +1 -0
  591. package/client/dist/chrome-devtools-ui/models/workspace/workspace.js +1 -0
  592. package/client/dist/chrome-devtools-ui/models/workspace_diff/workspace_diff.js +1 -0
  593. package/client/dist/chrome-devtools-ui/ndb_app.html +24 -0
  594. package/client/dist/chrome-devtools-ui/node_app.html +24 -0
  595. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility-meta.js +1 -0
  596. package/client/dist/chrome-devtools-ui/panels/accessibility/accessibility.js +1 -0
  597. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance-meta.js +1 -0
  598. package/client/dist/chrome-devtools-ui/panels/ai_assistance/ai_assistance.js +512 -0
  599. package/client/dist/chrome-devtools-ui/panels/animation/animation-meta.js +1 -0
  600. package/client/dist/chrome-devtools-ui/panels/animation/animation.js +1 -0
  601. package/client/dist/chrome-devtools-ui/panels/application/application-meta.js +1 -0
  602. package/client/dist/chrome-devtools-ui/panels/application/application.js +107 -0
  603. package/client/dist/chrome-devtools-ui/panels/application/components/components.js +765 -0
  604. package/client/dist/chrome-devtools-ui/panels/application/preloading/components/components.js +362 -0
  605. package/client/dist/chrome-devtools-ui/panels/application/preloading/helper/helper.js +1 -0
  606. package/client/dist/chrome-devtools-ui/panels/autofill/autofill-meta.js +1 -0
  607. package/client/dist/chrome-devtools-ui/panels/autofill/autofill.js +107 -0
  608. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger-meta.js +1 -0
  609. package/client/dist/chrome-devtools-ui/panels/browser_debugger/browser_debugger.js +1 -0
  610. package/client/dist/chrome-devtools-ui/panels/changes/changes-meta.js +1 -0
  611. package/client/dist/chrome-devtools-ui/panels/changes/changes.js +31 -0
  612. package/client/dist/chrome-devtools-ui/panels/common/common.js +45 -0
  613. package/client/dist/chrome-devtools-ui/panels/console/console-meta.js +1 -0
  614. package/client/dist/chrome-devtools-ui/panels/console/console.js +6 -0
  615. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters-meta.js +1 -0
  616. package/client/dist/chrome-devtools-ui/panels/console_counters/console_counters.js +1 -0
  617. package/client/dist/chrome-devtools-ui/panels/coverage/coverage-meta.js +1 -0
  618. package/client/dist/chrome-devtools-ui/panels/coverage/coverage.js +1 -0
  619. package/client/dist/chrome-devtools-ui/panels/css_overview/components/components.js +23 -0
  620. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview-meta.js +1 -0
  621. package/client/dist/chrome-devtools-ui/panels/css_overview/css_overview.js +148 -0
  622. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources-meta.js +1 -0
  623. package/client/dist/chrome-devtools-ui/panels/developer_resources/developer_resources.js +48 -0
  624. package/client/dist/chrome-devtools-ui/panels/elements/components/components.js +250 -0
  625. package/client/dist/chrome-devtools-ui/panels/elements/elements-meta.js +1 -0
  626. package/client/dist/chrome-devtools-ui/panels/elements/elements.js +67 -0
  627. package/client/dist/chrome-devtools-ui/panels/emulation/components/components.js +39 -0
  628. package/client/dist/chrome-devtools-ui/panels/emulation/emulation-meta.js +1 -0
  629. package/client/dist/chrome-devtools-ui/panels/emulation/emulation.js +1 -0
  630. package/client/dist/chrome-devtools-ui/panels/event_listeners/event_listeners.js +1 -0
  631. package/client/dist/chrome-devtools-ui/panels/explain/explain-meta.js +1 -0
  632. package/client/dist/chrome-devtools-ui/panels/explain/explain.js +231 -0
  633. package/client/dist/chrome-devtools-ui/panels/issues/components/components.js +14 -0
  634. package/client/dist/chrome-devtools-ui/panels/issues/issues-meta.js +1 -0
  635. package/client/dist/chrome-devtools-ui/panels/issues/issues.js +1 -0
  636. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline-meta.js +1 -0
  637. package/client/dist/chrome-devtools-ui/panels/js_timeline/js_timeline.js +2 -0
  638. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer-meta.js +1 -0
  639. package/client/dist/chrome-devtools-ui/panels/layer_viewer/layer_viewer.js +1 -0
  640. package/client/dist/chrome-devtools-ui/panels/layers/layers-meta.js +1 -0
  641. package/client/dist/chrome-devtools-ui/panels/layers/layers.js +1 -0
  642. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse-meta.js +1 -0
  643. package/client/dist/chrome-devtools-ui/panels/lighthouse/lighthouse.js +65 -0
  644. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/components/components.js +179 -0
  645. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  646. package/client/dist/chrome-devtools-ui/panels/linear_memory_inspector/linear_memory_inspector.js +1 -0
  647. package/client/dist/chrome-devtools-ui/panels/media/media-meta.js +1 -0
  648. package/client/dist/chrome-devtools-ui/panels/media/media.js +25 -0
  649. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling-meta.js +1 -0
  650. package/client/dist/chrome-devtools-ui/panels/mobile_throttling/mobile_throttling.js +1 -0
  651. package/client/dist/chrome-devtools-ui/panels/network/components/components.js +346 -0
  652. package/client/dist/chrome-devtools-ui/panels/network/forward/forward.js +1 -0
  653. package/client/dist/chrome-devtools-ui/panels/network/network-meta.js +1 -0
  654. package/client/dist/chrome-devtools-ui/panels/network/network.js +1 -0
  655. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor-meta.js +1 -0
  656. package/client/dist/chrome-devtools-ui/panels/performance_monitor/performance_monitor.js +1 -0
  657. package/client/dist/chrome-devtools-ui/panels/profiler/profiler-meta.js +1 -0
  658. package/client/dist/chrome-devtools-ui/panels/profiler/profiler.js +8 -0
  659. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor-meta.js +1 -0
  660. package/client/dist/chrome-devtools-ui/panels/protocol_monitor/protocol_monitor.js +293 -0
  661. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools.js +1 -0
  662. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_components-meta.js +1 -0
  663. package/client/dist/chrome-devtools-ui/panels/react_devtools/react_devtools_profiler-meta.js +1 -0
  664. package/client/dist/chrome-devtools-ui/panels/recorder/components/components.js +686 -0
  665. package/client/dist/chrome-devtools-ui/panels/recorder/controllers/controllers.js +1 -0
  666. package/client/dist/chrome-devtools-ui/panels/recorder/converters/converters.js +1 -0
  667. package/client/dist/chrome-devtools-ui/panels/recorder/extensions/extensions.js +1 -0
  668. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.generated.js +1 -0
  669. package/client/dist/chrome-devtools-ui/panels/recorder/injected/injected.js +1 -0
  670. package/client/dist/chrome-devtools-ui/panels/recorder/models/models.js +1 -0
  671. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-actions/recorder-actions.js +3 -0
  672. package/client/dist/chrome-devtools-ui/panels/recorder/recorder-meta.js +1 -0
  673. package/client/dist/chrome-devtools-ui/panels/recorder/recorder.js +126 -0
  674. package/client/dist/chrome-devtools-ui/panels/recorder/util/util.js +1 -0
  675. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome-meta.js +1 -0
  676. package/client/dist/chrome-devtools-ui/panels/rn_welcome/rn_welcome.js +62 -0
  677. package/client/dist/chrome-devtools-ui/panels/screencast/screencast-meta.js +1 -0
  678. package/client/dist/chrome-devtools-ui/panels/screencast/screencast.js +1 -0
  679. package/client/dist/chrome-devtools-ui/panels/search/search.js +1 -0
  680. package/client/dist/chrome-devtools-ui/panels/security/security-meta.js +1 -0
  681. package/client/dist/chrome-devtools-ui/panels/security/security.js +178 -0
  682. package/client/dist/chrome-devtools-ui/panels/sensors/sensors-meta.js +1 -0
  683. package/client/dist/chrome-devtools-ui/panels/sensors/sensors.js +1 -0
  684. package/client/dist/chrome-devtools-ui/panels/settings/components/components.js +22 -0
  685. package/client/dist/chrome-devtools-ui/panels/settings/emulation/components/components.js +221 -0
  686. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation-meta.js +1 -0
  687. package/client/dist/chrome-devtools-ui/panels/settings/emulation/emulation.js +1 -0
  688. package/client/dist/chrome-devtools-ui/panels/settings/emulation/utils/utils.js +1 -0
  689. package/client/dist/chrome-devtools-ui/panels/settings/settings-meta.js +1 -0
  690. package/client/dist/chrome-devtools-ui/panels/settings/settings.js +91 -0
  691. package/client/dist/chrome-devtools-ui/panels/snippets/snippets.js +1 -0
  692. package/client/dist/chrome-devtools-ui/panels/sources/components/components.js +162 -0
  693. package/client/dist/chrome-devtools-ui/panels/sources/sources-meta.js +1 -0
  694. package/client/dist/chrome-devtools-ui/panels/sources/sources.js +2 -0
  695. package/client/dist/chrome-devtools-ui/panels/timeline/components/components.js +1063 -0
  696. package/client/dist/chrome-devtools-ui/panels/timeline/components/insights/insights.js +262 -0
  697. package/client/dist/chrome-devtools-ui/panels/timeline/extensions/extensions.js +1 -0
  698. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/components/components.js +190 -0
  699. package/client/dist/chrome-devtools-ui/panels/timeline/overlays/overlays.js +1 -0
  700. package/client/dist/chrome-devtools-ui/panels/timeline/timeline-meta.js +1 -0
  701. package/client/dist/chrome-devtools-ui/panels/timeline/timeline.js +43 -0
  702. package/client/dist/chrome-devtools-ui/panels/timeline/utils/utils.js +1 -0
  703. package/client/dist/chrome-devtools-ui/panels/utils/utils.js +1 -0
  704. package/client/dist/chrome-devtools-ui/panels/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  705. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio-meta.js +1 -0
  706. package/client/dist/chrome-devtools-ui/panels/web_audio/web_audio.js +19 -0
  707. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn-meta.js +1 -0
  708. package/client/dist/chrome-devtools-ui/panels/webauthn/webauthn.js +1 -0
  709. package/client/dist/chrome-devtools-ui/panels/whats_new/resources/WNDT.md +6 -0
  710. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new-meta.js +1 -0
  711. package/client/dist/chrome-devtools-ui/panels/whats_new/whats_new.js +32 -0
  712. package/client/dist/chrome-devtools-ui/rehydrated_devtools_app.html +24 -0
  713. package/client/dist/chrome-devtools-ui/rn_fusebox.html +24 -0
  714. package/client/dist/chrome-devtools-ui/services/puppeteer/puppeteer.js +1 -0
  715. package/client/dist/chrome-devtools-ui/services/trace_bounds/trace_bounds.js +1 -0
  716. package/client/dist/chrome-devtools-ui/services/tracing/tracing.js +1 -0
  717. package/client/dist/chrome-devtools-ui/services/window_bounds/window_bounds.js +1 -0
  718. package/client/dist/chrome-devtools-ui/third_party/acorn/acorn.js +1 -0
  719. package/client/dist/chrome-devtools-ui/third_party/chromium/client-variations/client-variations.js +1 -0
  720. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/angular.js +2 -0
  721. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/codemirror.js +2 -0
  722. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/cpp.js +2 -0
  723. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/java.js +2 -0
  724. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/legacy.js +2 -0
  725. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/less.js +2 -0
  726. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/markdown.js +2 -0
  727. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/php.js +2 -0
  728. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/python.js +2 -0
  729. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/sass.js +2 -0
  730. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/svelte.js +2 -0
  731. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/vue.js +2 -0
  732. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/wast.js +2 -0
  733. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/chunk/xml.js +2 -0
  734. package/client/dist/chrome-devtools-ui/third_party/codemirror.next/codemirror.next.js +2 -0
  735. package/client/dist/chrome-devtools-ui/third_party/csp_evaluator/csp_evaluator.js +194 -0
  736. package/client/dist/chrome-devtools-ui/third_party/diff/diff.js +1 -0
  737. package/client/dist/chrome-devtools-ui/third_party/i18n/i18n.js +1 -0
  738. package/client/dist/chrome-devtools-ui/third_party/intl-messageformat/intl-messageformat.js +15 -0
  739. package/client/dist/chrome-devtools-ui/third_party/json5/json5.js +1 -0
  740. package/client/dist/chrome-devtools-ui/third_party/legacy-javascript/legacy-javascript.js +7 -0
  741. package/client/dist/chrome-devtools-ui/third_party/lighthouse/lighthouse-dt-bundle.js +3023 -0
  742. package/client/dist/chrome-devtools-ui/third_party/lighthouse/report/report.js +39 -0
  743. package/client/dist/chrome-devtools-ui/third_party/lit/lit.js +121 -0
  744. package/client/dist/chrome-devtools-ui/third_party/marked/marked.js +1 -0
  745. package/client/dist/chrome-devtools-ui/third_party/puppeteer/puppeteer.js +373 -0
  746. package/client/dist/chrome-devtools-ui/third_party/puppeteer-replay/puppeteer-replay.js +1 -0
  747. package/client/dist/chrome-devtools-ui/third_party/react-devtools/react-devtools.js +41 -0
  748. package/client/dist/chrome-devtools-ui/third_party/third-party-web/third-party-web.js +1 -0
  749. package/client/dist/chrome-devtools-ui/third_party/wasmparser/wasmparser.js +1 -0
  750. package/client/dist/chrome-devtools-ui/third_party/web-vitals/web-vitals.js +1 -0
  751. package/client/dist/chrome-devtools-ui/ui/components/adorners/adorners.js +1 -0
  752. package/client/dist/chrome-devtools-ui/ui/components/buttons/buttons.js +17 -0
  753. package/client/dist/chrome-devtools-ui/ui/components/cards/cards.js +10 -0
  754. package/client/dist/chrome-devtools-ui/ui/components/chrome_link/chrome_link.js +6 -0
  755. package/client/dist/chrome-devtools-ui/ui/components/code_highlighter/code_highlighter.js +1 -0
  756. package/client/dist/chrome-devtools-ui/ui/components/dialogs/dialogs.js +61 -0
  757. package/client/dist/chrome-devtools-ui/ui/components/diff_view/diff_view.js +8 -0
  758. package/client/dist/chrome-devtools-ui/ui/components/expandable_list/expandable_list.js +17 -0
  759. package/client/dist/chrome-devtools-ui/ui/components/floating_button/floating_button.js +1 -0
  760. package/client/dist/chrome-devtools-ui/ui/components/helpers/helpers.js +1 -0
  761. package/client/dist/chrome-devtools-ui/ui/components/highlighting/highlighting.js +1 -0
  762. package/client/dist/chrome-devtools-ui/ui/components/icon_button/icon_button.js +13 -0
  763. package/client/dist/chrome-devtools-ui/ui/components/input/input.js +1 -0
  764. package/client/dist/chrome-devtools-ui/ui/components/issue_counter/issue_counter.js +10 -0
  765. package/client/dist/chrome-devtools-ui/ui/components/legacy_wrapper/legacy_wrapper.js +1 -0
  766. package/client/dist/chrome-devtools-ui/ui/components/linkifier/linkifier.js +1 -0
  767. package/client/dist/chrome-devtools-ui/ui/components/markdown_view/markdown_view.js +51 -0
  768. package/client/dist/chrome-devtools-ui/ui/components/menus/menus.js +71 -0
  769. package/client/dist/chrome-devtools-ui/ui/components/node_text/node_text.js +3 -0
  770. package/client/dist/chrome-devtools-ui/ui/components/panel_feedback/panel_feedback.js +37 -0
  771. package/client/dist/chrome-devtools-ui/ui/components/panel_introduction_steps/panel_introduction_steps.js +9 -0
  772. package/client/dist/chrome-devtools-ui/ui/components/render_coordinator/render_coordinator.js +1 -0
  773. package/client/dist/chrome-devtools-ui/ui/components/report_view/report_view.js +21 -0
  774. package/client/dist/chrome-devtools-ui/ui/components/request_link_icon/request_link_icon.js +8 -0
  775. package/client/dist/chrome-devtools-ui/ui/components/settings/settings.js +20 -0
  776. package/client/dist/chrome-devtools-ui/ui/components/spinners/spinners.js +16 -0
  777. package/client/dist/chrome-devtools-ui/ui/components/srgb_overlay/srgb_overlay.js +6 -0
  778. package/client/dist/chrome-devtools-ui/ui/components/suggestion_input/suggestion_input.js +29 -0
  779. package/client/dist/chrome-devtools-ui/ui/components/survey_link/survey_link.js +7 -0
  780. package/client/dist/chrome-devtools-ui/ui/components/switch/switch.js +10 -0
  781. package/client/dist/chrome-devtools-ui/ui/components/text_editor/text_editor.js +1 -0
  782. package/client/dist/chrome-devtools-ui/ui/components/text_prompt/text_prompt.js +4 -0
  783. package/client/dist/chrome-devtools-ui/ui/components/tooltips/tooltips.js +7 -0
  784. package/client/dist/chrome-devtools-ui/ui/components/tree_outline/tree_outline.js +32 -0
  785. package/client/dist/chrome-devtools-ui/ui/legacy/components/color_picker/color_picker.js +1 -0
  786. package/client/dist/chrome-devtools-ui/ui/legacy/components/cookie_table/cookie_table.js +85 -0
  787. package/client/dist/chrome-devtools-ui/ui/legacy/components/data_grid/data_grid.js +1 -0
  788. package/client/dist/chrome-devtools-ui/ui/legacy/components/inline_editor/inline_editor.js +58 -0
  789. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui-meta.js +1 -0
  790. package/client/dist/chrome-devtools-ui/ui/legacy/components/object_ui/object_ui.js +7 -0
  791. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui-meta.js +1 -0
  792. package/client/dist/chrome-devtools-ui/ui/legacy/components/perf_ui/perf_ui.js +60 -0
  793. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open-meta.js +1 -0
  794. package/client/dist/chrome-devtools-ui/ui/legacy/components/quick_open/quick_open.js +1 -0
  795. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame-meta.js +1 -0
  796. package/client/dist/chrome-devtools-ui/ui/legacy/components/source_frame/source_frame.js +1 -0
  797. package/client/dist/chrome-devtools-ui/ui/legacy/components/utils/utils.js +1 -0
  798. package/client/dist/chrome-devtools-ui/ui/legacy/legacy.js +59 -0
  799. package/client/dist/chrome-devtools-ui/ui/legacy/theme_support/theme_support.js +1 -0
  800. package/client/dist/chrome-devtools-ui/ui/lit/lit.js +1 -0
  801. package/client/dist/chrome-devtools-ui/ui/visual_logging/visual_logging.js +1 -0
  802. package/client/dist/chrome-devtools-ui/worker_app.html +24 -0
  803. package/client/dist/index.html +3 -3
  804. package/package.json +4 -1
  805. package/packages/simdeck-test/dist/index.d.ts +7 -1
  806. package/client/dist/assets/index-ICWevBP_.js +0 -9
  807. package/client/dist/assets/index-Y_Zqbt1r.css +0 -1
@@ -0,0 +1 @@
1
+ import*as t from"../../core/common/common.js";import*as e from"../../core/host/host.js";import*as i from"../../core/i18n/i18n.js";import*as n from"../../core/platform/platform.js";import*as a from"../../core/sdk/sdk.js";import*as s from"../emulation/emulation.js";import*as o from"./web-vitals-injected/spec/spec.js";const r={lcpEmulationWarning:"Simulating a new device after the page loads can affect LCP. Reload the page after simulating a new device for accurate LCP data.",lcpVisibilityWarning:"LCP value may be inflated because the page started loading in the background."},l=i.i18n.registerUIStrings("models/live-metrics/LiveMetrics.ts",r),c=i.i18n.getLocalizedString.bind(void 0,l),d="DevTools Performance Metrics";let u;class h{static#t;static async get(){if(!this.#t){const t=new URL("./web-vitals-injected/web-vitals-injected.generated.js",import.meta.url),e=await fetch(t);this.#t=await e.text()}return this.#t}}class m extends t.ObjectWrapper.ObjectWrapper{#e=!1;#i;#n;#a;#s;#o;#r;#l=new Map;#c=new Map;#d=[];#u;#h=new t.Mutex.Mutex;#m=s.DeviceModeModel.DeviceModeModel.tryInstance();constructor(){super(),a.TargetManager.TargetManager.instance().observeTargets(this)}static instance(t={forceNew:!1}){const{forceNew:e}=t;return u&&!e||(u=new m),u}get lcpValue(){return this.#s}get clsValue(){return this.#o}get inpValue(){return this.#r}get interactions(){return this.#l}get layoutShifts(){return this.#d}async logInteractionScripts(t){if(!this.#i)return!1;const e=this.#a;if(!e)return!1;const i=[];for(const e of t.longAnimationFrameTimings)for(const n of e.scripts){const e=n.startTime+n.duration;if(e<t.startTime)continue;const a=Math.round(e-Math.max(t.startTime,n.startTime));i.push({"Blocking duration":a,"Invoker type":n.invokerType||null,Invoker:n.invoker||null,Function:n.sourceFunctionName||null,Source:n.sourceURL||null,"Char position":n.sourceCharPosition||null})}try{const n=o.LOAF_LIMIT*o.SCRIPTS_PER_LOAF_LIMIT,a=i.length===n?` (limited to ${n})`:"",s=t.longAnimationFrameTimings.length===o.LOAF_LIMIT?` (limited to last ${o.LOAF_LIMIT})`:"";await this.#i.runtimeAgent().invoke_evaluate({expression:`\n console.group('[DevTools] Long animation frames for ${t.duration}ms ${t.interactionType} interaction');\n console.log('Scripts${a}:');\n console.table(${JSON.stringify(i)});\n console.log('Intersecting long animation frame events${s}:', ${JSON.stringify(t.longAnimationFrameTimings)});\n console.groupEnd();\n `,contextId:e})}catch{return!1}return!0}#p(){this.#u=Date.now()}async#g(e,i){if(!this.#i)return null;const n=this.#i.model(a.RuntimeModel.RuntimeModel);if(!n)return null;const s=this.#i.model(a.DOMModel.DOMModel);if(!s)return null;const{result:o}=await this.#i.runtimeAgent().invoke_evaluate({expression:`window.getNodeForIndex(${e})`,contextId:i});if(!o)return null;let r;try{r=n.createRemoteObject(o);const e=await s.pushObjectAsNodeToFrontend(r);if(!e)return null;return{node:e,link:await t.Linkifier.Linkifier.linkify(e)}}catch{return null}finally{r?.release()}}#f(){this.dispatchEventToListeners("status",{lcp:this.#s,cls:this.#o,inp:this.#r,interactions:this.#l,layoutShifts:this.#d})}setStatusForTesting(t){this.#s=t.lcp,this.#o=t.cls,this.#r=t.inp,this.#l=t.interactions,this.#d=t.layoutShifts,this.#f()}async#v(e){const i=e.data,n=[this.#s?.nodeRef,...this.#l.values().map((t=>t.nodeRef)),...this.#d.flatMap((t=>t.affectedNodeRefs))].filter((t=>!!t)),a=new Set(n.map((t=>t.node.backendNodeId()))),s=await i.pushNodesByBackendIdsToFrontend(a);if(!s)return;const o=n.map((async e=>{const i=s.get(e.node.backendNodeId());i&&(e.node=i,e.link=await t.Linkifier.Linkifier.linkify(i))}));await Promise.all(o),this.#f()}async#I(t,e){switch(t.name){case"LCP":{const i=[],n={value:t.value,phases:t.phases,warnings:i};if(void 0!==t.nodeIndex){const i=await this.#g(t.nodeIndex,e);i&&(n.nodeRef=i)}this.#u&&Date.now()-this.#u<500&&i.push(c(r.lcpEmulationWarning)),t.startedHidden&&i.push(c(r.lcpVisibilityWarning)),this.#s=n;break}case"CLS":{const e={value:t.value,clusterShiftIds:t.clusterShiftIds};this.#o=e;break}case"INP":{const e={value:t.value,phases:t.phases,interactionId:`interaction-${t.entryGroupId}-${t.startTime}`};this.#r=e;break}case"InteractionEntry":{const i=n.MapUtilities.getWithDefault(this.#c,t.entryGroupId,(()=>[]));let a=i.find((e=>Math.abs(e.nextPaintTime-t.nextPaintTime)<8));if(a||(a={interactionId:`interaction-${t.entryGroupId}-${t.startTime}`,interactionType:t.interactionType,duration:t.duration,eventNames:[],phases:t.phases,startTime:t.startTime,nextPaintTime:t.nextPaintTime,longAnimationFrameTimings:t.longAnimationFrameEntries},i.push(a),this.#l.set(a.interactionId,a)),a.eventNames.includes(t.eventName)||a.eventNames.push(t.eventName),void 0!==t.nodeIndex){const i=await this.#g(t.nodeIndex,e);i&&(a.nodeRef=i)}break}case"LayoutShift":{const i=t.affectedNodeIndices.map((t=>this.#g(t,e))),n=(await Promise.all(i)).filter((t=>!!t)),a={score:t.score,uniqueLayoutShiftId:t.uniqueLayoutShiftId,affectedNodeRefs:n};this.#d.push(a);break}case"reset":this.#s=void 0,this.#o=void 0,this.#r=void 0,this.#l.clear(),this.#d=[]}this.#f()}async#M(t){if(!this.#i)return null;const e=this.#i.model(a.RuntimeModel.RuntimeModel);if(!e)return null;const i=e.executionContext(t);if(!i)return null;const n=i.frameId;if(!n)return null;const s=a.FrameManager.FrameManager.instance();return await s.getOrWaitForFrame(n)}async#y(t){const{data:e}=t;e.name===o.EVENT_BINDING_NAME&&await this.#h.run((async()=>{const t=JSON.parse(e.payload);if(this.#a!==e.executionContextId){if("reset"!==t.name)return;const i=await this.#M(e.executionContextId);if(!i?.isPrimaryFrame())return;this.#a=e.executionContextId}await this.#I(t,e.executionContextId)}))}async#T(){const t=this.#i;if(!t)return;const e=t.model(a.RuntimeModel.RuntimeModel);if(!e)return;const i=e.executionContexts().filter((t=>t.name===d&&!t.isDefault)).map((e=>t.runtimeAgent().invoke_evaluate({expression:`window?.${o.INTERNAL_KILL_SWITCH}?.()`,contextId:e.id})));await Promise.all(i)}clearInteractions(){this.#l.clear(),this.#f()}clearLayoutShifts(){this.#d=[],this.#f()}async targetAdded(t){t===a.TargetManager.TargetManager.instance().primaryPageTarget()&&(this.#i=t,await this.enable())}async targetRemoved(t){if(t!==this.#i)return;await this.disable(),this.#i=void 0;const e=a.TargetManager.TargetManager.instance().primaryPageTarget();e&&(this.#i=e,await this.enable())}async enable(){if(e.InspectorFrontendHost.isUnderTest())return;if(!this.#i||this.#e)return;if(this.#i.type()!==a.Target.Type.FRAME)return;const t=this.#i.model(a.DOMModel.DOMModel);if(!t)return;t.addEventListener(a.DOMModel.Events.DocumentUpdated,this.#v,this);const i=this.#i.model(a.RuntimeModel.RuntimeModel);if(!i)return;i.addEventListener(a.RuntimeModel.Events.BindingCalled,this.#y,this),await i.addBinding({name:o.EVENT_BINDING_NAME,executionContextName:d}),await this.#T();const n=await h.get(),{identifier:s}=await this.#i.pageAgent().invoke_addScriptToEvaluateOnNewDocument({source:n,worldName:d,runImmediately:!0});this.#n=s,this.#m?.addEventListener("Updated",this.#p,this),this.#e=!0}async disable(){if(!this.#i||!this.#e)return;await this.#T();const t=this.#i.model(a.RuntimeModel.RuntimeModel);t&&(await t.removeBinding({name:o.EVENT_BINDING_NAME}),t.removeEventListener(a.RuntimeModel.Events.BindingCalled,this.#y,this));const e=this.#i.model(a.DOMModel.DOMModel);e&&e.removeEventListener(a.DOMModel.Events.DocumentUpdated,this.#v,this),this.#n&&await this.#i.pageAgent().invoke_removeScriptToEvaluateOnNewDocument({identifier:this.#n}),this.#n=void 0,this.#m?.removeEventListener("Updated",this.#p,this),this.#e=!1}}export{m as LiveMetrics};
@@ -0,0 +1 @@
1
+ const t="__chromium_devtools_metrics_reporter",e="__chromium_devtools_kill_live_metrics",o=10,r=5;function _(t){return`layout-shift-${t.value}-${t.startTime}`}export{t as EVENT_BINDING_NAME,e as INTERNAL_KILL_SWITCH,r as LOAF_LIMIT,o as SCRIPTS_PER_LOAF_LIMIT,_ as getUniqueLayoutShiftId};
@@ -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},i=()=>{const e=r();return e&&e.activationStart||0},a=(e,n)=>{const a=r();let o="navigate";return t()>=0?o="back-forward-cache":a&&(document.prerendering||i()>0?o="prerender":document.wasDiscarded?o="restore":a.type&&(o=a.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 i,a;return o=>{t.value>=0&&(o||r)&&(a=t.value-(i||0),(a||void 0===i)&&(i=t.value,t.delta=a,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()}))},u=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let d=-1;const m=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{"hidden"===document.visibilityState&&d>-1&&(d="visibilitychange"===e.type?e.timeStamp:0,f())},h=()=>{addEventListener("visibilitychange",p,!0),addEventListener("prerenderingchange",p,!0)},f=()=>{removeEventListener("visibilitychange",p,!0),removeEventListener("prerenderingchange",p,!0)},g=()=>(d<0&&(d=m(),h(),n((()=>{setTimeout((()=>{d=m(),h()}),0)}))),{get firstHiddenTime(){return d}}),v=e=>{document.prerendering?addEventListener("prerenderingchange",(()=>e()),!0):e()},y=[1800,3e3],T=(e,t)=>{t=t||{},v((()=>{const r=g();let l,u=a("FCP");const d=o("paint",(e=>{e.forEach((e=>{"first-contentful-paint"===e.name&&(d.disconnect(),e.startTime<r.firstHiddenTime&&(u.value=Math.max(e.startTime-i(),0),u.entries.push(e),l(!0)))}))}));d&&(l=s(e,u,y,t.reportAllChanges),n((n=>{u=a("FCP"),l=s(e,u,y,t.reportAllChanges),c((()=>{u.value=performance.now()-n.timeStamp,l(!0)}))})))}))},E=[.1,.25];let b=0,S=1/0,L=0;const D=e=>{e.forEach((e=>{e.interactionId&&(S=Math.min(S,e.interactionId),L=Math.max(L,e.interactionId),b=L?(L-S)/7+1:0)}))};let C;const I=()=>C?b:performance.interactionCount||0,w=[],P=new Map;let M=0;const F=[],x=e=>{if(F.forEach((t=>t(e))),!e.interactionId&&"first-input"!==e.entryType)return;const t=w[w.length-1],n=P.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]};P.set(t.id,t),w.push(t)}w.sort(((e,t)=>t.latency-e.latency)),w.length>10&&w.splice(10).forEach((e=>P.delete(e.id)))}},_=e=>{const t=self.requestIdleCallback||self.setTimeout;let n=-1;return e=u(e),"hidden"===document.visibilityState?e():(n=t(e),l(e)),n},A=[200,500],k=(e,t)=>{"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},v((()=>{"interactionCount"in performance||C||(C=o("event",D,{type:"event",buffered:!0,durationThreshold:0}));let r,i=a("INP");const c=e=>{_((()=>{e.forEach(x);const t=(()=>{const e=Math.min(w.length-1,Math.floor((I()-M)/50));return w[e]})();t&&t.latency!==i.value&&(i.value=t.latency,i.entries=t.entries,r())}))},u=o("event",c,{durationThreshold:t.durationThreshold??40});r=s(e,i,A,t.reportAllChanges),u&&(u.observe({type:"first-input",buffered:!0}),l((()=>{c(u.takeRecords()),r(!0)})),n((()=>{M=I(),w.length=0,P.clear(),i=a("INP"),r=s(e,i,A,t.reportAllChanges)})))})))},N=[2500,4e3],O={},B=[800,1800],R=e=>{document.prerendering?v((()=>R(e))):"complete"!==document.readyState?addEventListener("load",(()=>R(e)),!0):setTimeout(e,0)};let j,q,H,W;const z={passive:!0,capture:!0},$=new Date,G=(e,t)=>{j||(j=t,q=e,H=new Date,V(removeEventListener),J())},J=()=>{if(q>=0&&q<H-$){const e={entryType:"first-input",name:j.type,target:j.target,cancelable:j.cancelable,startTime:j.timeStamp,processingStart:j.timeStamp+q};W.forEach((function(t){t(e)})),W=[]}},U=e=>{if(e.cancelable){const t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?((e,t)=>{const n=()=>{G(e,t),i()},r=()=>{i()},i=()=>{removeEventListener("pointerup",n,z),removeEventListener("pointercancel",r,z)};addEventListener("pointerup",n,z),addEventListener("pointercancel",r,z)})(t,e):G(t,e)}},V=e=>{["mousedown","keydown","touchstart","pointerdown"].forEach((t=>e(t,U,z)))},K=[100,300],Q=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"},X=e=>{const t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},Y=(e,t)=>{let n="";try{for(;e&&9!==e.nodeType;){const r=e,i=r.id?"#"+r.id:X(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+i.length>(t||100)-1)return n||i;if(n=n?i+">"+n:i,r.id)break;e=r.parentNode}}catch(e){}return n};let Z,ee=[],te=[],ne=0;const re=new WeakMap,ie=new Map;let ae=-1;const oe=e=>{ee=ee.concat(e),se()},se=()=>{ae<0&&(ae=_(ce))},ce=()=>{ie.size>10&&ie.forEach(((e,t)=>{P.has(t)||ie.delete(t)}));const e=w.map((e=>re.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];le(t.startTime,t.processingEnd).forEach((e=>{n.add(e)}))}const r=ee.length-1-50;ee=ee.filter(((e,t)=>e.startTime>ne&&t>r||n.has(e))),ae=-1};F.push((e=>{}),(e=>{const t=e.startTime+e.duration;let n;ne=Math.max(ne,e.processingEnd);for(let r=te.length-1;r>=0;r--){const i=te[r];if(Math.abs(t-i.renderTime)<=8){n=i,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)&&re.set(e,n),se()}));const le=(e,t)=>{const n=[];for(let r,i=0;r=ee[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n},ue=e=>{const t=e.entries[0],n=re.get(t),r=t.processingStart,i=n.processingEnd,a=n.entries.sort(((e,t)=>e.processingStart-t.processingStart)),o=le(t.startTime,i),s=e.entries.find((e=>e.target)),c=s&&s.target||ie.get(t.interactionId),l=[t.startTime+t.duration,i].concat(o.map((e=>e.startTime+e.duration))),u=Math.max.apply(Math,l),d={interactionTarget:Y(c),interactionTargetElement:c,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:u,processedEventEntries:a,longAnimationFrameEntries:o,inputDelay:r-t.startTime,processingDuration:i-r,presentationDelay:Math.max(u-i,0),loadState:Q(t.startTime)};return Object.assign(e,{attribution:d})};var de=Object.freeze({__proto__:null,CLSThresholds:E,FCPThresholds:y,FIDThresholds:K,INPThresholds:A,LCPThresholds:N,TTFBThresholds:B,onCLS:(e,t)=>{((e,t)=>{t=t||{},T(u((()=>{let r,i=a("CLS",0),u=0,d=[];const m=e=>{e.forEach((e=>{if(!e.hadRecentInput){const t=d[0],n=d[d.length-1];u&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(u+=e.value,d.push(e)):(u=e.value,d=[e])}})),u>i.value&&(i.value=u,i.entries=d,r())},p=o("layout-shift",m);p&&(r=s(e,i,E,t.reportAllChanges),l((()=>{m(p.takeRecords()),r(!0)})),n((()=>{u=0,i=a("CLS",0),r=s(e,i,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:Y(e.node),largestShiftTime:r.startTime,largestShiftValue:r.value,largestShiftSource:e,largestShiftEntry:r,loadState:Q(r.startTime)})}}var n;return Object.assign(e,{attribution:t})})(t);e(n)}),t)},onFCP:(e,n)=>{T((n=>{const i=(e=>{let n={timeToFirstByte:0,firstByteToFCP:e.value,loadState:Q(t())};if(e.entries.length){const t=r(),i=e.entries[e.entries.length-1];if(t){const r=t.activationStart||0,a=Math.max(0,t.responseStart-r);n={timeToFirstByte:a,firstByteToFCP:e.value-a,loadState:Q(e.entries[0].startTime),navigationEntry:t,fcpEntry:i}}}return Object.assign(e,{attribution:n})})(n);e(i)}),n)},onFID:(e,t)=>{((e,t)=>{t=t||{},v((()=>{const r=g();let i,c=a("FID");const d=e=>{e.startTime<r.firstHiddenTime&&(c.value=e.processingStart-e.startTime,c.entries.push(e),i(!0))},m=e=>{e.forEach(d)},p=o("first-input",m);i=s(e,c,K,t.reportAllChanges),p&&(l(u((()=>{m(p.takeRecords()),p.disconnect()}))),n((()=>{var n;c=a("FID"),i=s(e,c,K,t.reportAllChanges),W=[],q=-1,j=null,V(addEventListener),n=d,W.push(n),J()})))}))})((t=>{const n=(e=>{const t=e.entries[0],n={eventTarget:Y(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:Q(t.startTime)};return Object.assign(e,{attribution:n})})(t);e(n)}),t)},onINP:(e,t)=>{Z||(Z=o("long-animation-frame",oe)),k((t=>{const n=ue(t);e(n)}),t)},onLCP:(e,t)=>{((e,t)=>{t=t||{},v((()=>{const r=g();let d,m=a("LCP");const p=e=>{t.reportAllChanges||(e=e.slice(-1)),e.forEach((e=>{e.startTime<r.firstHiddenTime&&(m.value=Math.max(e.startTime-i(),0),m.entries=[e],d())}))},h=o("largest-contentful-paint",p);if(h){d=s(e,m,N,t.reportAllChanges);const r=u((()=>{O[m.id]||(p(h.takeRecords()),h.disconnect(),O[m.id]=!0,d(!0))}));["keydown","click"].forEach((e=>{addEventListener(e,(()=>_(r)),{once:!0,capture:!0})})),l(r),n((n=>{m=a("LCP"),d=s(e,m,N,t.reportAllChanges),c((()=>{m.value=performance.now()-n.timeStamp,O[m.id]=!0,d(!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,i=e.entries[e.entries.length-1],a=i.url&&performance.getEntriesByType("resource").filter((e=>e.name===i.url))[0],o=Math.max(0,n.responseStart-r),s=Math.max(o,a?(a.requestStart||a.startTime)-r:0),c=Math.max(s,a?a.responseEnd-r:0),l=Math.max(c,i.startTime-r);t={element:Y(i.element),timeToFirstByte:o,resourceLoadDelay:s-o,resourceLoadDuration:c-s,elementRenderDelay:l-c,navigationEntry:n,lcpEntry:i},i.url&&(t.url=i.url),a&&(t.lcpResourceEntry=a)}}return Object.assign(e,{attribution:t})})(t);e(n)}),t)},onTTFB:(e,t)=>{((e,t)=>{t=t||{};let o=a("TTFB"),c=s(e,o,B,t.reportAllChanges);R((()=>{const l=r();l&&(o.value=Math.max(l.responseStart-i(),0),o.entries=[l],c(!0),n((()=>{o=a("TTFB",0),c=s(e,o,B,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,i=Math.max((n.workerStart||n.fetchStart)-r,0),a=Math.max(n.domainLookupStart-r,0),o=Math.max(n.connectStart-r,0),s=Math.max(n.connectEnd-r,0);t={waitingDuration:i,cacheDuration:a-i,dnsDuration:o-a,connectionDuration:s-o,requestDuration:e.value-s,navigationEntry:n}}return Object.assign(e,{attribution:t})})(t);e(n)}),t)}});var me=Object.freeze({__proto__:null,onEachInteraction:function(e){F.push((t=>{Promise.resolve().then((()=>{if(t.interactionId){const n=ue({entries:[t],name:"INP",rating:"good",value:t.duration,delta:t.duration,navigationType:"navigate",id:"N/A"});e(n)}}))}))}});var pe=Object.freeze({__proto__:null,onEachLayoutShift:function(e){new PerformanceObserver((t=>{const n=t.getEntries().filter((e=>"hadRecentInput"in e));for(const t of n){if(t.hadRecentInput)continue;const n=t.sources.map((e=>e.node)).filter((e=>e instanceof Node));e({attribution:{affectedNodes:n},entry:t,value:t.value})}})).observe({type:"layout-shift",buffered:!0})}});function he(e){return`layout-shift-${e.value}-${e.startTime}`}const{onLCP:fe,onCLS:ge,onINP:ve}=de,{onEachInteraction:ye}=me,{onEachLayoutShift:Te}=pe,Ee=[],be=[],Se=[],Le=Window.prototype.addEventListener;Window.prototype.addEventListener=function(...e){return Ee.push(e),Le.call(this,...e)};const De=Document.prototype.addEventListener;Document.prototype.addEventListener=function(...e){return be.push(e),De.call(this,...e)};class Ce extends PerformanceObserver{constructor(...e){super(...e),Se.push(this)}}globalThis.PerformanceObserver=Ce;let Ie=!1;function we(e){const t=JSON.stringify(e);window.__chromium_devtools_metrics_reporter(t)}window.__chromium_devtools_kill_live_metrics=()=>{if(!Ie){for(const e of Se)e.disconnect();for(const e of Ee)window.removeEventListener(...e);for(const e of be)document.removeEventListener(...e);Ie=!0}};const Pe=[];function Me(e){const t=Pe.length;return Pe.push(new WeakRef(e)),t}function Fe(){if(document.prerendering)return!0;const e=self.performance.getEntriesByType?.("navigation")[0]?.activationStart;return void 0!==e&&e>0}window.getNodeForIndex=e=>Pe[e].deref();let xe=null;we({name:"reset"}),new PerformanceObserver((e=>{for(const t of e.getEntries())null!==xe||Fe()||(xe="hidden"===t.name)})).observe({type:"visibility-state",buffered:!0}),n((()=>{xe=!1,we({name:"reset"})})),fe((e=>{const t={name:"LCP",value:e.value,startedHidden:Boolean(xe),phases:{timeToFirstByte:e.attribution.timeToFirstByte,resourceLoadDelay:e.attribution.resourceLoadDelay,resourceLoadTime:e.attribution.resourceLoadDuration,elementRenderDelay:e.attribution.elementRenderDelay}},n=e.attribution.lcpEntry?.element;n&&(t.nodeIndex=Me(n)),we(t)}),{reportAllChanges:!0}),ge((e=>{we({name:"CLS",value:e.value,clusterShiftIds:e.entries.map(he)})}),{reportAllChanges:!0}),ve((e=>{e.attribution.interactionTargetElement=void 0,we({name:"INP",value:e.value,phases:{inputDelay:e.attribution.inputDelay,processingDuration:e.attribution.processingDuration,presentationDelay:e.attribution.presentationDelay},startTime:e.entries[0].startTime,entryGroupId:e.entries[0].interactionId,interactionType:e.attribution.interactionType})}),{reportAllChanges:!0,durationThreshold:0}),ye((e=>{const t={name:"InteractionEntry",duration:e.value,phases:{inputDelay:e.attribution.inputDelay,processingDuration:e.attribution.processingDuration,presentationDelay:e.attribution.presentationDelay},startTime:e.entries[0].startTime,entryGroupId:e.entries[0].interactionId,nextPaintTime:e.attribution.nextPaintTime,interactionType:e.attribution.interactionType,eventName:e.entries[0].name,longAnimationFrameEntries:(n=e.attribution.longAnimationFrameEntries.slice(-5).map((e=>e.toJSON())),n.map((e=>{const t=[];for(const n of e.scripts){if(t.length<10){t.push(n);continue}const e=t.findIndex((e=>e.duration<n.duration));-1!==e&&(t[e]=n)}return t.sort(((e,t)=>e.startTime-t.startTime)),e.scripts=t,e})))};var n;const r=e.attribution.interactionTargetElement;r&&(t.nodeIndex=Me(r)),we(t)})),Te((e=>{we({name:"LayoutShift",score:e.value,uniqueLayoutShiftId:he(e.entry),affectedNodeIndices:e.attribution.affectedNodes.map(Me)})}))}();
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as o from"../../core/i18n/i18n.js";const r={preserveLog:"Preserve log",preserve:"preserve",clear:"clear",reset:"reset",preserveLogOnPageReload:"Preserve log on page reload / navigation",doNotPreserveLogOnPageReload:"Do not preserve log on page reload / navigation",recordNetworkLog:"Record network log"},t=o.i18n.registerUIStrings("models/logs/logs-meta.ts",r),g=o.i18n.getLazilyComputedLocalizedString.bind(void 0,t);e.Settings.registerSettingExtension({category:"NETWORK",title:g(r.preserveLog),settingName:"network-log.preserve-log",settingType:"boolean",defaultValue:!1,tags:[g(r.preserve),g(r.clear),g(r.reset)],options:[{value:!0,title:g(r.preserveLogOnPageReload)},{value:!1,title:g(r.doNotPreserveLogOnPageReload)}]}),e.Settings.registerSettingExtension({category:"NETWORK",title:g(r.recordNetworkLog),settingName:"network-log.record-log",settingType:"boolean",defaultValue:!0,storageType:"Session"});
@@ -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,get Events(){return l},NetworkLog:d});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 r from"../../core/i18n/i18n.js";import*as t from"../../core/sdk/sdk.js";import*as o from"../workspace/workspace.js";import*as s from"../../ui/legacy/legacy.js";const i={workspace:"Workspace",showWorkspace:"Show Workspace settings",enableLocalOverrides:"Enable Local Overrides",interception:"interception",override:"override",network:"network",rewrite:"rewrite",request:"request",enableOverrideNetworkRequests:"Enable override network requests",disableOverrideNetworkRequests:"Disable override network requests",enableAutomaticWorkspaceFolders:"Enable automatic workspace folders"},a=r.i18n.registerUIStrings("models/persistence/persistence-meta.ts",i),n=r.i18n.getLazilyComputedLocalizedString.bind(void 0,a);let c;async function l(){return c||(c=await import("./persistence.js")),c}s.ViewManager.registerViewExtension({location:"settings-view",id:"workspace",title:n(i.workspace),commandPrompt:n(i.showWorkspace),order:1,loadView:async()=>new((await l()).WorkspaceSettingsTab.WorkspaceSettingsTab),iconName:"folder"}),e.Settings.registerSettingExtension({category:"PERSISTENCE",title:n(i.enableAutomaticWorkspaceFolders),settingName:"persistence-automatic-workspace-folders",settingType:"boolean",defaultValue:!1}),e.Settings.registerSettingExtension({category:"PERSISTENCE",title:n(i.enableLocalOverrides),settingName:"persistence-network-overrides-enabled",settingType:"boolean",defaultValue:!1,tags:[n(i.interception),n(i.override),n(i.network),n(i.rewrite),n(i.request)],options:[{value:!0,title:n(i.enableOverrideNetworkRequests)},{value:!1,title:n(i.disableOverrideNetworkRequests)}]}),s.ContextMenu.registerProvider({contextTypes:()=>[o.UISourceCode.UISourceCode,t.Resource.Resource,t.NetworkRequest.NetworkRequest],loadProvider:async()=>new((await l()).PersistenceActions.ContextMenuProvider),experiment:void 0});
@@ -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 c from"../breakpoints/breakpoints.js";import*as l from"../../ui/components/icon_button/icon_button.js";import*as h from"../../ui/legacy/legacy.js";import"../project_settings/project_settings.js";import*as u from"../../core/root/root.js";import"../../ui/components/cards/cards.js";import*as p from"../../ui/visual_logging/visual_logging.js";const m={unableToReadFilesWithThis:"`PlatformFileSystem` cannot read files."},g=a.i18n.registerUIStrings("models/persistence/PlatformFileSystem.ts",m),f=a.i18n.getLocalizedString.bind(void 0,g);var S;!function(e){e.SNIPPETS="snippets",e.OVERRIDES="overrides",e.WORKSPACE_PROJECT="workspace-project"}(S||(S={}));class y{pathInternal;#e;#t;constructor(e,t,s){this.pathInternal=e,this.#e=t,this.#t=s}getMetadata(e){return Promise.resolve(null)}initialFilePaths(){return[]}initialGitFolders(){return[]}path(){return this.pathInternal}embedderPath(){throw new Error("Not implemented")}type(){return this.#e}automatic(){return this.#t}async createFile(e,t){return await 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:f(m.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 v=Object.freeze({__proto__:null,PlatformFileSystem:y,get PlatformFileSystemType(){return S}});const P={fileSystemErrorS:"File system error: {PH1}",blobCouldNotBeLoaded:"Blob could not be loaded.",cantReadFileSS:"Can't read file: {PH1}: {PH2}",linkedToS:"Linked to {PH1}"},F=a.i18n.registerUIStrings("models/persistence/IsolatedFileSystem.ts",P),w=a.i18n.getLocalizedString.bind(void 0,F);class C extends y{manager;embedderPathInternal;domFileSystem;excludedFoldersSetting;excludedFoldersInternal;excludedEmbedderFolders=[];initialFilePathsInternal=new Set;initialGitFoldersInternal=new Set;fileLocks=new Map;constructor(t,s,r,n,i,o){super(s,i,o),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,a){const d=t.InspectorFrontendHost.InspectorFrontendHostInstance.isolatedFileSystem(i,o);if(!d)return null;const c=new C(e,s,r,d,n,a);return await c.initializeFilePaths().then((()=>c)).catch((e=>(console.error(e),null)))}static errorMessage(e){return w(P.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}=Promise.withResolvers();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=C.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=C.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=C.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}=Promise.withResolvers();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=C.errorMessage(e);console.error(s+" when deleting file '"+this.path()+"/"+t+"'"),r(!1)}}deleteDirectoryRecursively(t){const{promise:s,resolve:r}=Promise.withResolvers();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=C.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=C.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:w(P.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 L.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:w(P.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=C.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,c,l.bind(this)):r(!1)}function c(e){r(!0,e.name)}function l(e){const n=C.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),l.bind(this))}.bind(this),l.bind(this))}readDirectory(e,t){const s=e.createReader();let r=[];function n(s){const r=C.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=C.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(A.ExcludedFolderAdded,e)}removeExcludedFolder(e){this.excludedFoldersInternal.delete(e),this.saveExcludedFolders(),this.manager.dispatchEventToListeners(A.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?.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)&&this.type()!==S.OVERRIDES}contentType(t){const s=e.ParsedURL.ParsedURL.extractExtension(t);return I.has(s)?e.ResourceType.resourceTypes.Stylesheet:U.has(s)?e.ResourceType.resourceTypes.Document:k.has(s)?e.ResourceType.resourceTypes.Image:R.has(s)?e.ResourceType.resourceTypes.Script:L.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 w(P.linkedToS,{PH1:r})}supportsAutomapping(){return this.type()!==S.OVERRIDES}}const I=new Set(["css","scss","sass","less"]),U=new Set(["htm","html","asp","aspx","phtml","jsp"]),R=new Set(["asp","aspx","c","cc","cljs","coffee","cpp","cs","dart","java","js","jsp","jsx","h","m","mjs","mm","py","sh","ts","tsx","ls"]),k=new Set(["jpeg","jpg","svg","gif","webp","png","ico","tiff","tif","bmp"]),L=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 b=Object.freeze({__proto__:null,BinaryExtensions:L,IsolatedFileSystem:C});const x={unableToAddFilesystemS:"Unable to add filesystem: {PH1}"},T=a.i18n.registerUIStrings("models/persistence/IsolatedFileSystemManager.ts",x),E=a.i18n.getLocalizedString.bind(void 0,T);let M;class j 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/","/\\.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 M&&!t||(M=new j),M}static removeInstance(){M=null}requestFileSystems(){const{resolve:e,promise:s}=Promise.withResolvers();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=>!!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(e.type()===S.OVERRIDES?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 C.create(this,n,r,function(e){switch(e){case"snippets":return S.SNIPPETS;case"overrides":return S.OVERRIDES;default:return S.WORKSPACE_PROJECT}}(t.type),t.fileSystemName,t.rootURL,"automatic"===t.type).then(function(e){if(!e)return null;this.fileSystemsInternal.set(n,e),s&&this.dispatchEventToListeners(A.FileSystemAdded,e);return e}.bind(this))}addPlatformFileSystem(e,t){this.fileSystemsInternal.set(e,t),this.dispatchEventToListeners(A.FileSystemAdded,t)}onFileSystemAdded(t){const{errorMessage:s,fileSystem:r}=t.data;if(s){if("<selection cancelled>"!==s&&e.Console.Console.instance().error(E(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(A.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?.isFileExcluded(e.ParsedURL.ParsedURL.rawPathToEncodedPathString(r)))continue;const o=n.endsWith("/")?n:n+"/";t.startsWith(o)&&s.set(n,t)}}return s}this.dispatchEventToListeners(A.FileSystemFilesChanged,s)}fileSystems(){return[...this.fileSystemsInternal.values()]}fileSystem(e){return this.fileSystemsInternal.get(e)||null}workspaceFolderExcludePatternSetting(){return this.workspaceFolderExcludePatternSettingInternal}registerCallback(e){const t=++W;return this.callbacks.set(t,e),t}registerProgress(e){const t=++W;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 A;!function(e){e.FileSystemAdded="FileSystemAdded",e.FileSystemRemoved="FileSystemRemoved",e.FileSystemFilesChanged="FileSystemFilesChanged",e.ExcludedFolderAdded="ExcludedFolderAdded",e.ExcludedFolderRemoved="ExcludedFolderRemoved"}(A||(A={}));let W=0;var O=Object.freeze({__proto__:null,get Events(){return A},IsolatedFileSystemManager:j});class B{isolatedFileSystemManager;workspace;eventListeners;boundFileSystems;constructor(e,t){this.isolatedFileSystemManager=e,this.workspace=t,this.eventListeners=[this.isolatedFileSystemManager.addEventListener(A.FileSystemAdded,this.onFileSystemAdded,this),this.isolatedFileSystemManager.addEventListener(A.FileSystemRemoved,this.onFileSystemRemoved,this),this.isolatedFileSystemManager.addEventListener(A.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){if(e instanceof H)return e.fileSystemInternal.type();throw new TypeError("project is not a FileSystem")}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}onFileSystemsLoaded(e){for(const t of e)this.addFileSystem(t)}onFileSystemAdded(e){const t=e.data;this.addFileSystem(t)}addFileSystem(e){const t=new H(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 H extends i.Workspace.ProjectStore{fileSystemInternal;fileSystemBaseURL;fileSystemParentURL;fileSystemWorkspaceBinding;fileSystemPathInternal;creatingFilesGuard;constructor(t,s,r){const n=s.path(),o=B.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=N.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 N.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),c=this.fileSystemInternal.contentType(i);this.renameUISourceCode(t,i),r(!0,i,d,c)}.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)N.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 N=new WeakMap;var D=Object.freeze({__proto__:null,FileSystem:H,FileSystemWorkspaceBinding:B});let q;const z=["chromewebstore.google.com","chrome.google.com"];class _ extends e.ObjectWrapper.ObjectWrapper{bindings;originalResponseContentPromises;savingForOverrides;savingSymbol;enabledSetting;workspace;networkUISourceCodeForEncodedPath;interceptionHandlerBound;updateInterceptionThrottler;projectInternal;activeProject;activeInternal;enabled;eventDescriptors;#s=new Map;#r=new WeakMap;#n;#i;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.#n=new e.Throttler.Throttler(50),this.#i=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)})),ne.instance().addNetworkInterceptor(this.canHandleNetworkUISourceCode.bind(this)),c.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(!q||t){if(!s)throw new Error("Missing workspace for NetworkPersistenceManager");q=new _(s)}return q}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());ne.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=_.encodeEncodedPathToLocalPathParts(r);const i=B.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),c=d?"."+d.substr(0,10):"";n=[t,"longurls",i+o.StringUtilities.hashCode(a).toString(16)+c]}return e.ParsedURL.ParsedURL.join(n,"/")}static encodeEncodedPathToLocalPathParts(e){const s=[];for(const r of this.#o(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#o(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,"/",V);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,V,""),t.userMetrics.actionTaken(t.UserMetrics.Action.HeaderOverrideFileCreated)}return r}decodeLocalPathToUrlPath(e){try{return unescape(e)}catch(e){console.error(e)}return e}async#a(e){const t=this.bindings.get(e),s=e.url().endsWith(V);if(t){const e=this.#d(t.network);await e.run(this.#c.bind(this,t))}else s&&this.dispatchEventToListeners("RequestsForHeaderOverridesFileChanged",e)}async#l(e){const t=this.bindings.get(e);t&&await this.#c(t)}#c(e){return this.bindings.delete(e.network),this.bindings.delete(e.fileSystem),ne.instance().removeBinding(e)}async#h(e,t){const s=this.#d(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.#l(e),await this.#l(t)}await this.#u(e,t)}))}#d(t){let s=this.#r.get(t);return s||(s=new e.Mutex.Mutex,this.#r.set(t,s)),s}async#u(e,t){const s=new me(e,t);this.bindings.set(e,s),this.bindings.set(t,s),await ne.instance().addBinding(s);const r=this.savingForOverrides.has(e)?e:t,{content:n,isEncoded:i}=await r.requestContent();ne.instance().syncContent(r,n||"",i)}onUISourceCodeWorkingCopyCommitted(e){this.saveUISourceCodeForOverrides(e),this.updateInterceptionPatterns()}isActiveHeaderOverrides(e){return!!this.enabledSetting.get()&&(e.url().endsWith(V)&&this.hasMatchingNetworkUISourceCodeForHeaderOverridesFile(e))}isUISourceCodeOverridable(e){return e.project().type()===i.Workspace.projectTypes.Network&&!_.isForbiddenNetworkUrl(e.url())}#p(e){return this.bindings.has(e)||this.savingForOverrides.has(e)}#m(e){return this.isUISourceCodeOverridable(e)&&!this.#p(e)&&!this.activeInternal&&!this.projectInternal}#g(e){return this.activeInternal&&this.isUISourceCodeOverridable(e)&&!this.#p(e)}async setupAndStartLocalOverrides(e){return this.#m(e)&&(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuSetup),await new Promise((e=>h.InspectorView.InspectorView.instance().displaySelectOverrideFolderInfobar(e))),await j.instance().addFileSystem("overrides")),this.project()?(this.enabledSetting.get()||(t.userMetrics.actionTaken(t.UserMetrics.Action.OverrideContentContextMenuActivateDisabled),this.enabledSetting.set(!0),await this.once("LocalOverridesProjectUpdated")),this.#p(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.#g(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=B.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=B.relativePath(e),s=this.decodeLocalPathToUrlPath(this.decodeLocalPathToUrlPath(t[0]||""));return"chrome:"===s||z.includes(s)}static isForbiddenNetworkUrl(t){const s=e.ParsedURL.ParsedURL.fromString(t);return!!s&&("chrome"===s.scheme||z.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.#h(t,r),this.#f(t)}async filesystemUISourceCodeAdded(t){if(!this.activeInternal||t.project()!==this.projectInternal)return;this.updateInterceptionPatterns();const s=B.relativePath(t),r=this.networkUISourceCodeForEncodedPath.get(e.ParsedURL.ParsedURL.join(s,"/"));r&&await this.#h(r,t)}async#S(e){const t=(await e.requestContent()).content||"[]";let s=[];try{if(s=JSON.parse(t),!s.every(G))throw new Error("Type mismatch after parsing")}catch{return console.error("Failed to parse",e.url(),"for locally overriding headers."),[]}return s}#y(e){const t=this.decodeLocalPathToUrlPath(e);return{singlyDecodedPath:t,decodedPath:this.decodeLocalPathToUrlPath(t)}}async generateHeaderPatterns(t){const s=await this.#S(t),r=B.relativePath(t),n=e.ParsedURL.ParsedURL.slice(e.ParsedURL.ParsedURL.join(r,"/"),0,-V.length),{singlyDecodedPath:i,decodedPath:o}=this.#y(n);let a;return a=r.length>2&&"longurls"===r[1]&&s.length?this.#v(o,s,r[0]):o.startsWith("file:/")?this.#P(e.ParsedURL.ParsedURL.substring(o,6),s):this.#F(o,s),{...a,path:i}}#F(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:///"+J(e+n.applyTo)+"$"),headers:n.headers}));const{head:t,tail:i}=K(n.applyTo);i?(s.add("http?://"+e+t),r.push({applyToRegex:new RegExp(`^${J(e+t)}(${J(i)})?$`),headers:n.headers})):r.push({applyToRegex:new RegExp(`^${J(e+n.applyTo)}$`),headers:n.headers})}return{headerPatterns:s,overridesWithRegex:r}}#P(e,t){const s=new Set,r=[];for(const n of t)s.add("file:///"+e+n.applyTo),r.push({applyToRegex:new RegExp(`^file:/${J(e+n.applyTo)}$`),headers:n.headers});return{headerPatterns:s,overridesWithRegex:r}}#v(t,s,r){const n=new Set;let{decodedPath:i}=this.#y(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:/":""}${J(t+e.applyTo)}$`),headers:e.headers});return{headerPatterns:n,overridesWithRegex:a}}async updateInterceptionPatternsForTests(){await this.#w()}updateInterceptionPatterns(){this.updateInterceptionThrottler.schedule(this.#w.bind(this))}async#w(){if(this.#s.clear(),!this.activeInternal||!this.projectInternal)return await 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()===V){const{headerPatterns:s,path:r,overridesWithRegex:n}=await this.generateHeaderPatterns(t);s.size>0&&(e=new Set([...e,...s]),this.#s.set(r,n))}else e.add(s);const{head:r,tail:n}=K(s);n&&e.add(r)}return await 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.#a(e),this.#r.delete(e),this.networkUISourceCodeForEncodedPath.delete(this.encodedPathFromUrl(e.url()))),this.#f(e)}#f(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.#i.add(i),this.#n.schedule(this.#C.bind(this)))}}#C(){for(const e of this.#i)this.dispatchEventToListeners("RequestsForHeaderOverridesFileChanged",e);return this.#i.clear(),Promise.resolve()}hasMatchingNetworkUISourceCodeForHeaderOverridesFile(t){const s=B.relativePath(t),r=e.ParsedURL.ParsedURL.slice(e.ParsedURL.ParsedURL.join(s,"/"),0,-V.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.#a(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"!==B.fileSystemType(e))return;B.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())),c=s.NetworkManager.InterceptedRequest.mergeSetCookieHeaders(a,d);return i.push(...c),i}#I(e,t,s){const r=this.#s.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.#I(n,t.request.url,s);for(const i of r)n=e.ParsedURL.ParsedURL.concatenate(n,i,"/"),s=this.#I(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"]),V=".headers";function G(e){return!!(e&&"string"==typeof e.applyTo&&e.headers?.length&&Array.isArray(e.headers))&&e.headers.every((e=>"string"==typeof e.name&&"string"==typeof e.value))}function J(e){return o.StringUtilities.escapeCharacters(e,"[]{}()\\.^$+|-,?").replaceAll("*",".*")}function K(e){const t=e.lastIndexOf("/"),s=t>=0?e.slice(t+1):e,r=t>=0?e.slice(0,t+1):"",n=new RegExp("^"+J(s)+"$");return"*"!==s&&(n.test("index.html")||n.test("index.htm")||n.test("index.php"))?{head:r,tail:s}:{head:e}}var X=Object.freeze({__proto__:null,HEADERS_FILENAME:V,NetworkPersistenceManager:_,escapeRegex:J,extractDirectoryIndex:K,isHeaderOverride:G});const Y={linkedToSourceMapS:"Linked to source map: {PH1}",linkedToS:"Linked to {PH1}"},Q=a.i18n.registerUIStrings("models/persistence/PersistenceUtils.ts",Y),Z=a.i18n.getLocalizedString.bind(void 0,Q);class ee{static tooltipForUISourceCode(e){const t=ne.instance().binding(e);return t?e===t.network?B.tooltipForUISourceCode(t.fileSystem):t.network.contentType().isFromSourceMap()?Z(Y.linkedToSourceMapS,{PH1:o.StringUtilities.trimMiddle(t.network.url(),150)}):Z(Y.linkedToS,{PH1:o.StringUtilities.trimMiddle(t.network.url(),150)}):""}static iconForUISourceCode(t){const s=ne.instance().binding(t);if(s){if(!e.ParsedURL.schemeIs(s.fileSystem.url(),"file:"))return null;const t=new l.Icon.Icon;return t.data={iconName:"document",color:"var(--icon-default)",width:"14px",height:"14px"},h.Tooltip.Tooltip.install(t,ee.tooltipForUISourceCode(s.network)),_.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(_.instance().isActiveHeaderOverrides(t)){const e=new l.Icon.Icon;return e.data={iconName:"document",color:"var(--icon-default)",width:"14px",height:"14px"},e.classList.add("dot","purple"),e}const r=new l.Icon.Icon;return r.data={iconName:"document",color:"var(--icon-default)",width:"14px",height:"14px"},h.Tooltip.Tooltip.install(r,ee.tooltipForUISourceCode(t)),r}}class te extends e.ObjectWrapper.ObjectWrapper{constructor(e){super(),e.addEventListener(pe.BindingCreated,this.bindingChanged,this),e.addEventListener(pe.BindingRemoved,this.bindingChanged,this)}bindingChanged(e){const t=e.data;this.dispatchEventToListeners("LinkIconChanged",t.network)}linkIcon(e){return ee.iconForUISourceCode(e)}}var se=Object.freeze({__proto__:null,LinkDecorator:te,PersistenceUtils:ee});let re;class ne extends e.ObjectWrapper.ObjectWrapper{workspace;breakpointManager;filePathPrefixesToBindingCount;subscribedBindingEventListeners;mapping;constructor(e,t){super(),this.workspace=e,this.breakpointManager=t,this.breakpointManager.addUpdateBindingsCallback(this.#U.bind(this)),this.filePathPrefixesToBindingCount=new ie,this.subscribedBindingEventListeners=new o.MapUtilities.Multimap;const s=new te(this);d.Linkifier.Linkifier.setLinkDecorator(s),this.mapping=new fe(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(!re||t){if(!s||!r)throw new Error("Missing arguments for workspace");re=new ne(s,r)}return re}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)}#U(e){return e.project().type()!==i.Workspace.projectTypes.Network?Promise.resolve():this.mapping.computeNetworkStatus(e)}async innerAddBinding(e){oe.set(e.network,e),oe.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(pe.BindingCreated,e)}async innerRemoveBinding(e){oe.get(e.network)===e&&(console.assert(oe.get(e.network)===oe.get(e.fileSystem),"ERROR: inconsistent binding for networkURL "+e.network.url()),oe.delete(e.network),oe.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(pe.BindingRemoved,e))}onStatusAdded(e){const t=new me(e.network,e.fileSystem);return ae.set(e,t),this.innerAddBinding(t)}async onStatusRemoved(e){const t=ae.get(e);await this.innerRemoveBinding(t)}onWorkingCopyChanged(e){const t=e.data;this.syncWorkingCopy(t)}syncWorkingCopy(e){const t=oe.get(e);if(!t||ce.has(t))return;const n=t.network===e?t.fileSystem:t.network;if(!e.isDirty())return ce.add(t),n.resetWorkingCopy(),ce.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.requestContentData().then((()=>{const e=ne.rewrapNodeJSContent(n,n.workingCopy(),t);o.call(this,(()=>e))}))}else o.call(this,(()=>e.workingCopy()));function o(e){t&&ce.add(t),n.setWorkingCopyGetter(e),t&&ce.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=oe.get(e);if(!i||de.has(i))return;const o=i.network===e?i.fileSystem:i.network,a=r.NetworkProject.NetworkProject.targetForUISourceCode(i.network);function d(e){i&&de.add(i),o.setContent(e,n),i&&de.delete(i),this.contentSyncedForTest()}a&&a.type()===s.Target.Type.NODE?o.requestContent().then((e=>{const s=ne.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(le)&&s.endsWith(he)&&(s=s.substring(le.length,s.length-he.length)),t.startsWith(ue)&&(s=ue+s)):(s.startsWith(ue)&&(s=s.substring(ue.length)),t.startsWith(le)&&t.endsWith(he)&&(s=le+s+he)),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),await this.breakpointManager.setBreakpoint(t,e.lineNumber(),e.columnNumber(),e.condition(),e.enabled(),e.isLogpoint(),"RESTORED")))))}hasUnsavedCommittedChanges(e){return!this.workspace.hasResourceContentTrackingExtensions()&&(!e.project().canSetFileContent()&&(!oe.has(e)&&Boolean(e.hasCommits())))}binding(e){return oe.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 ie{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 oe=new WeakMap,ae=new WeakMap,de=new WeakSet,ce=new WeakSet,le="(function (exports, require, module, __filename, __dirname) { ",he="\n});",ue="#!/usr/bin/env node";var pe;!function(e){e.BindingCreated="BindingCreated",e.BindingRemoved="BindingRemoved"}(pe||(pe={}));class me{network;fileSystem;constructor(e,t){this.network=e,this.fileSystem=t}}var ge=Object.freeze({__proto__:null,get Events(){return pe},NodePrefix:le,NodeShebang:ue,NodeSuffix:he,PersistenceBinding:me,PersistenceImpl:ne});class fe{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 ve,this.sweepThrottler=new e.Throttler.Throttler(100),this.sourceCodeToProcessingPromiseMap=new WeakMap,this.sourceCodeToAutoMappingStatusMap=new WeakMap,this.sourceCodeToMetadataMap=new WeakMap,this.filesIndex=new Se,this.projectFoldersIndex=new ye,this.activeFoldersIndex=new ye,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(!B.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 c=!1;const l=i.content;if(d&&d.type()===s.Target.Type.NODE){if(a.content){c=l===ne.rewrapNodeJSContent(e.fileSystem,l,a.content)}}else a.content&&(c=l.trimEnd()===a.content.trimEnd());if(!c)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 Pe(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=>!!this.activeFoldersIndex.closestParentFolder(e.url()))),o=this.sourceCodeToMetadataMap.get(t);if(!o||!o.modificationTime&&"number"!=typeof o.contentSize)return 1!==i.length?null:new Pe(t,i[0],!1);let a=this.filterWithMetadata(i,o);return a.length||(a=this.filterWithMetadata(n,o)),1!==a.length?null:new Pe(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 Se{#R=e.Trie.Trie.newArrayTrie();addPath(e){const t=e.split("/").reverse();this.#R.add(t)}removePath(e){const t=e.split("/").reverse();this.#R.remove(t)}similarFiles(e){const t=e.split("/").reverse(),s=this.#R.longestPrefix(t,!1);return 0===s.length?[]:this.#R.words(s).map((e=>e.reverse().join("/")))}}class ye{#k=e.Trie.Trie.newArrayTrie();#L=new Map;addFolder(e){const t=this.#b(e).split("/");this.#k.add(t);const s=t.join("/"),r=this.#L.get(s)??0;return this.#L.set(s,r+1),0===r}removeFolder(e){const t=this.#b(e).split("/"),s=t.join("/"),r=this.#L.get(s)??0;return!!r&&(r>1?(this.#L.set(s,r-1),!1):(this.#k.remove(t),this.#L.delete(s),!0))}closestParentFolder(e){const t=e.split("/");return this.#k.longestPrefix(t,!0).join("/")}#b(t){return t.endsWith("/")?e.ParsedURL.ParsedURL.substring(t,0,t.length-1):t}}class ve{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 Pe{network;fileSystem;exactMatch;constructor(e,t,s){this.network=e,this.fileSystem=t,this.exactMatch=s}}var Fe=Object.freeze({__proto__:null,Automapping:fe,AutomappingStatus:Pe});let we;class Ce extends e.ObjectWrapper.ObjectWrapper{#x;#T;#E;get automaticFileSystem(){return this.#x}constructor(e,t,s){super(),this.#x=null,this.#T=t,this.#E=s,e.devToolsAutomaticFileSystems?.enabled&&(this.#E.addEventListener("ProjectSettingsChanged",this.#M,this),this.#M({data:this.#E.projectSettings}))}static instance({forceNew:e,hostConfig:t,inspectorFrontendHost:s,projectSettingsModel:r}={forceNew:!1,hostConfig:null,inspectorFrontendHost:null,projectSettingsModel:null}){if(!we||e){if(!t||!s||!r)throw new Error("Unable to create AutomaticFileSysteManager: hostConfig, inspectorFrontendHost, and projectSettingsModel must be provided");we=new Ce(t,s,r)}return we}static removeInstance(){we&&(we.#j(),we=void 0)}#j(){this.#E.removeEventListener("ProjectSettingsChanged",this.#M,this)}#M(e){const t=e.data;let s=this.#x;if(t.workspace){const{root:e,uuid:r}=t.workspace;null!==s&&s.root===e&&s.uuid===r||(s=Object.freeze({root:e,uuid:r,state:"disconnected"}))}else null!==s&&(s=null);this.#x!==s&&(this.disconnectedAutomaticFileSystem(),this.#x=s,this.dispatchEventToListeners("AutomaticFileSystemChanged",this.#x),this.connectAutomaticFileSystem(!1))}async connectAutomaticFileSystem(e=!1){if(!this.#x)return!1;const{root:t,uuid:s,state:r}=this.#x;if("disconnected"===r){const r=this.#x=Object.freeze({...this.#x,state:"connecting"});this.dispatchEventToListeners("AutomaticFileSystemChanged",this.#x);const{success:n}=await new Promise((r=>this.#T.connectAutomaticFileSystem(t,s,e,r)));if(this.#x===r){const e=n?"connected":"disconnected";this.#x=Object.freeze({...r,state:e}),this.dispatchEventToListeners("AutomaticFileSystemChanged",this.#x)}}return"connected"===this.#x?.state}disconnectedAutomaticFileSystem(){this.#x&&"disconnected"!==this.#x.state&&(this.#T.disconnectAutomaticFileSystem(this.#x.root),this.#x=Object.freeze({...this.#x,state:"disconnected"}),this.dispatchEventToListeners("AutomaticFileSystemChanged",this.#x))}}var Ie=Object.freeze({__proto__:null,AutomaticFileSystemManager:Ce}),Ue={cssText:`.excluded-folder-header{display:flex;flex-direction:column;min-height:var(--sys-size-16);border-bottom:var(--sys-size-1) solid var(--app-color-card-divider);padding:var(--sys-size-4) var(--sys-size-6);gap:var(--sys-size-4);& > .excluded-folder-url{color:var(--sys-color-on-surface-subtle);overflow-wrap:break-word}}.exclude-subfolders-text,\n.file-system-list-empty{padding:0 var(--sys-size-6);height:var(--sys-size-13)}.exclude-subfolders-text{align-items:center;display:flex}.add-button{padding:var(--sys-size-4) var(--sys-size-6);align-self:flex-start}.file-system-list{flex:auto}.file-system-list-empty{display:flex;align-items:center}.file-system-list-item{height:var(--sys-size-13);display:flex;align-items:center;flex:auto 1 1}.file-system-value{flex:1 1 0}.list{&:has(div){border:none}}.list-item{padding-left:var(--sys-size-11);&:not(:last-child){.file-system-list-item{border-bottom:var(--sys-size-1) solid var(--app-color-card-divider)}}}.editor-buttons{padding:var(--sys-size-4) var(--sys-size-6)}.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:var(--sys-size-4) var(--sys-size-6);align-items:center}.file-system-edit-row input{width:100%;text-align:inherit}\n/*# sourceURL=${import.meta.resolve("./editFileSystemView.css")} */\n`};const Re={url:"URL",excludedFolders:"Excluded sub-folders",add:"Add folder",none:"None",sViaDevtools:"{PH1} (via .devtools)",folderPath:"Folder path",enterAPath:"Enter a path",enterAUniquePath:"Enter a unique path"},ke=a.i18n.registerUIStrings("models/persistence/EditFileSystemView.ts",Re),Le=a.i18n.getLocalizedString.bind(void 0,ke);class be extends h.Widget.VBox{fileSystemPath;excludedFolders;eventListeners;excludedFoldersList;muteUpdate;excludedFolderEditor;constructor(e){super(!0),this.registerRequiredCSS(Ue),this.fileSystemPath=e,this.excludedFolders=[],this.eventListeners=[j.instance().addEventListener(A.ExcludedFolderAdded,this.update,this),j.instance().addEventListener(A.ExcludedFolderRemoved,this.update,this)];const t=this.contentElement.createChild("div","excluded-folder-header");t.createChild("span").textContent=Le(Re.url),t.createChild("span","excluded-folder-url").textContent=e;this.contentElement.createChild("span","exclude-subfolders-text").textContent=Le(Re.excludedFolders),this.excludedFoldersList=new h.ListWidget.ListWidget(this),this.excludedFoldersList.element.classList.add("file-system-list"),this.excludedFoldersList.registerRequiredCSS(Ue);const s=document.createElement("div");s.classList.add("file-system-list-empty"),s.textContent=Le(Re.none),this.excludedFoldersList.setEmptyPlaceholder(s),this.excludedFoldersList.show(this.contentElement);const r=h.UIUtils.createTextButton(Le(Re.add),this.addExcludedFolderButtonClicked.bind(this),{className:"add-button",jslogContext:"settings.add-excluded-folder"});this.contentElement.appendChild(r),this.update()}dispose(){e.EventTarget.removeEventListeners(this.eventListeners)}getFileSystem(){return j.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:Le(Re.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=Le(Re.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:Le(Re.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:Le(Re.enterAUniquePath)};return{valid:!0,errorMessage:void 0}}.bind(this))),e}normalizePrefix(e){return e?e+("/"===e[e.length-1]?"":"/"):""}}var xe=Object.freeze({__proto__:null,EditFileSystemView:be});const Te={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."},Ee=a.i18n.registerUIStrings("models/persistence/PersistenceActions.ts",Te),Me=a.i18n.getLocalizedString.bind(void 0,Ee);var je=Object.freeze({__proto__:null,ContextMenuProvider:class{appendApplicableItems(n,o,a){a.contentType().isDocumentOrScriptOrStyleSheet()?o.saveSection().appendItem(Me(Te.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(Me(Te.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(Me(Te.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()),c=_.instance(),l=d&&ne.instance().binding(d),p=l?l.fileSystem.contentURL():a.contentURL();if(e.ParsedURL.schemeIs(p,"file:")){const s=e.ParsedURL.ParsedURL.urlToRawPathString(p,t.Platform.isWin());o.revealSection().appendItem(Me(Te.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 m=!0,g=()=>{};if(d&&c.isUISourceCodeOverridable(d))if(d.contentType().isFromSourceMap()){const e=this.getDeployedUiSourceCode(d);e&&(m=!1,g=this.redirectOverrideToDeployedUiSourceCode.bind(this,e,d))}else m=!1,g=this.handleOverrideContent.bind(this,d,a);u.Runtime.experiments.isEnabled("react-native-specific-ui")||o.overrideSection().appendItem(Me(Te.overrideContent),g,{disabled:m,jslogContext:"override-content"}),a instanceof s.NetworkRequest.NetworkRequest&&o.overrideSection().appendItem(Me(Te.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=_.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);await h.UIUtils.ConfirmDialog.show(Me(Te.overrideSourceMappedFileExplanation,{PH1:a}),Me(Te.overrideSourceMappedFileWarning,{PH1:i}),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))}}}),Ae={cssText:`.mappings-info,\n.folder-exclude-pattern{height:var(--settings-single-item-height)}.mapping-view-container{padding-left:0;padding-right:0}.folder-exclude-pattern{display:flex;align-items:center;& > input{flex:1}}label{padding-bottom:0}.mappings-info{border:none}.add-button-container{max-width:var(--sys-size-35);margin-left:var(--sys-size-8);width:100%;& .add-folder{min-width:var(--sys-size-31);max-width:var(--sys-size-35)}}\n/*# sourceURL=${import.meta.resolve("./workspaceSettingsTab.css")} */\n`};const We={workspace:"Workspace",mappingsAreInferredAutomatically:"Mappings are inferred automatically.",addFolder:"Add folder",folderExcludePattern:"Exclude from workspace",remove:"Remove"},Oe=a.i18n.registerUIStrings("models/persistence/WorkspaceSettingsTab.ts",We),Be=a.i18n.getLocalizedString.bind(void 0,Oe);class He extends h.Widget.VBox{containerElement;#A;elementByPath;mappingViewByPath;constructor(){super(),this.registerRequiredCSS(Ae),this.element.setAttribute("jslog",`${p.pane("workspace")}`),this.containerElement=this.contentElement.createChild("div","settings-card-container-wrapper").createChild("div"),this.containerElement.classList.add("settings-card-container"),j.instance().addEventListener(A.FileSystemAdded,(e=>this.fileSystemAdded(e.data)),this),j.instance().addEventListener(A.FileSystemRemoved,(e=>this.fileSystemRemoved(e.data)),this);const e=this.createFolderExcludePatternInput();e.classList.add("folder-exclude-pattern");const t=document.createElement("div");t.classList.add("mappings-info"),h.UIUtils.createTextChild(t,Be(We.mappingsAreInferredAutomatically));const s=this.containerElement.createChild("devtools-card");s.heading=Be(We.workspace),s.append(e,t),this.elementByPath=new Map,this.mappingViewByPath=new Map;const r=j.instance().fileSystems();for(let e=0;e<r.length;++e)this.addItem(r[e]);this.#A=this.containerElement.createChild("div","add-button-container");const n=h.UIUtils.createTextButton(Be(We.addFolder),this.addFileSystemClicked.bind(this),{jslogContext:"sources.add-folder-to-workspace"});n.classList.add("add-folder"),this.#A.appendChild(n)}createFolderExcludePatternInput(){const e=document.createElement("div");e.classList.add("folder-exclude-pattern");const t=e.createChild("label");t.textContent=Be(We.folderExcludePattern);const s=j.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{}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 C))return;const t=_.instance().project();if(t&&j.instance().fileSystem(t.fileSystemPath())===e)return;const s=this.getFilename(e),r=h.UIUtils.createTextButton(Be(We.remove),this.removeFileSystemClicked.bind(this,e),{jslogContext:"settings.remove-file-system"});r.slot="heading-suffix";const n=l.Icon.create("folder");n.slot="heading-prefix";const i=document.createElement("div");i.classList.add("mapping-view-container");const o=document.createElement("devtools-card");o.heading=s,o.append(n,r,i),this.containerElement.insertBefore(o,this.#A);const a=new be(e.path());this.mappingViewByPath.set(e.path(),a),a.element.classList.add("file-system-mapping-view"),a.show(i),this.elementByPath.set(e.path(),o)}getFilename(e){const t=e.path(),s=t.lastIndexOf("/"),r=t.substr(s+1);return decodeURIComponent(r)}removeFileSystemClicked(e){j.instance().removeFileSystem(e)}addFileSystemClicked(){j.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 Ne=Object.freeze({__proto__:null,WorkspaceSettingsTab:He});export{Fe as Automapping,Ie as AutomaticFileSystemManager,xe as EditFileSystemView,D as FileSystemWorkspaceBinding,b as IsolatedFileSystem,O as IsolatedFileSystemManager,X as NetworkPersistenceManager,ge as Persistence,je as PersistenceActions,se as PersistenceUtils,v as PlatformFileSystem,Ne as WorkspaceSettingsTab};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/common/common.js";import*as t from"../../core/platform/platform.js";import*as r from"../../core/sdk/sdk.js";function o(e){return e.startsWith("devtools://devtools/bundled/")}const s=Object.freeze({}),n=Promise.resolve();let i;class a extends e.ObjectWrapper.ObjectWrapper{#e;#t;#r=s;#o=n;get projectSettings(){return this.#r}get projectSettingsPromise(){return this.#o.then((()=>this.#r))}constructor(e,t,r){if(super(),this.#e=t,this.#t=r,e.devToolsWellKnown?.enabled){this.#t.addEventListener("InspectedURLChanged",this.#s,this);const e=this.#t.primaryPageTarget();null!==e&&this.#s({data:e})}}static instance({forceNew:e,hostConfig:t,pageResourceLoader:r,targetManager:o}){if(!i||e){if(!t||!r||!o)throw new Error("Unable to create ProjectSettingsModel: hostConfig, pageResourceLoader, and targetManager must be provided");i=new a(t,r,o)}return i}static removeInstance(){i&&(i.#n(),i=void 0)}#n(){this.#t.removeEventListener("InspectedURLChanged",this.#s,this)}#s(e){const t=e.data,r=this.#o=this.#o.then((async()=>{let e=s;try{e=await this.#i(t)}catch(e){console.debug(`Could not load project settings for ${t.inspectedURL()}: ${e.message}`)}this.#o===r&&(this.#r!==e&&(this.#r=e,this.dispatchEventToListeners("ProjectSettingsChanged",e)),this.#o=n)}))}async#i(e){const n=e.model(r.ResourceTreeModel.ResourceTreeModel)?.mainFrame;if(!function(e){return!!e&&(o(e.url)?"true"===new URL(e.url).searchParams.get("debugFrontend"):e.securityOriginDetails?.isLocalhost??!1)}(n))return s;const i=n.url,a=n.id;let c="/.well-known/appspecific/com.chrome.devtools.json";o(i)&&(c="/bundled"+c),c=new URL(c,i).toString();const{content:d}=await this.#e.loadResource(t.DevToolsPath.urlString`${c}`,{target:e,frameId:a,initiatorUrl:i}),g=JSON.parse(d);if(void 0!==g.workspace){const{workspace:e}=g;if("object"!=typeof e||null===e)throw new Error('Invalid "workspace" field');if("string"!=typeof e.root)throw new Error('Invalid or missing "workspace.root" field');if("string"!=typeof e.uuid)throw new Error('Invalid or missing "workspace.uuid" field')}return Object.freeze(g)}}var c=Object.freeze({__proto__:null,ProjectSettingsModel:a});export{c as ProjectSettingsModel};
@@ -0,0 +1 @@
1
+ import*as e from"../../core/sdk/sdk.js";const t="main",i="__FUSEBOX_REACT_DEVTOOLS_DISPATCHER__";class n extends e.SDKModel.SDKModel{domainToListeners=new Map;messagingBindingName=null;enabled=!1;fuseboxDispatcherIsInitialized=!1;domainToMessageQueue=new Map;dispose(){this.domainToListeners.clear(),this.domainToMessageQueue.clear();const t=this.target().model(e.RuntimeModel.RuntimeModel);t?.removeEventListener(e.RuntimeModel.Events.BindingCalled,this.bindingCalled,this),t?.removeEventListener(e.RuntimeModel.Events.ExecutionContextCreated,this.onExecutionContextCreated,this),t?.removeEventListener(e.RuntimeModel.Events.ExecutionContextDestroyed,this.onExecutionContextDestroyed,this)}bindingCalled(e){if(null===this.messagingBindingName||e.data.name!==this.messagingBindingName)return;const t=e.data.payload;let i=null;try{i=JSON.parse(t)}catch(e){throw new Error("Failed to parse bindingCalled event payload",{cause:e})}if(i){const e=i.domain;if(this.fuseboxDispatcherIsInitialized){if(!this.isDomainMessagesQueueEmpty(e))throw new Error(`Attempted to send a message to domain ${e} while queue is not empty`);this.dispatchMessageToDomainEventListeners(e,i.message)}else this.queueMessageForDomain(e,i.message)}}queueMessageForDomain(e,t){let i=this.domainToMessageQueue.get(e);i||(i=[],this.domainToMessageQueue.set(e,i)),i.push(t)}flushOutDomainMessagesQueues(){for(const[e,t]of this.domainToMessageQueue.entries())if(0!==t.length){for(const i of t)this.dispatchMessageToDomainEventListeners(e,i);t.splice(0,t.length)}}isDomainMessagesQueueEmpty(e){const t=this.domainToMessageQueue.get(e);return void 0===t||0===t.length}subscribeToDomainMessages(e,t){let i=this.domainToListeners.get(e);i||(i=new Set,this.domainToListeners.set(e,i)),i.add(t)}unsubscribeFromDomainMessages(e,t){const i=this.domainToListeners.get(e);i&&i.delete(t)}dispatchMessageToDomainEventListeners(e,t){const i=this.domainToListeners.get(e);if(!i)return;const n=[];for(const e of i)try{e(t)}catch(e){n.push(e)}if(n.length>0)throw new AggregateError(n,`Error occurred in ReactDevToolsBindingsModel while calling event listeners for domain ${e}`)}async initializeDomain(t){const n=this.target().model(e.RuntimeModel.RuntimeModel);if(!n)throw new Error(`Failed to initialize domain ${t} for ReactDevToolsBindingsModel: runtime model is not available`);await n.agent.invoke_evaluate({expression:`void ${i}.initializeDomain('${t}')`})}async sendMessage(t,n){if(!this.fuseboxDispatcherIsInitialized)return;const o=this.target().model(e.RuntimeModel.RuntimeModel);if(!o)throw new Error(`Failed to send message from ReactDevToolsBindingsModel for domain ${t}: runtime model is not available`);const s=JSON.stringify(n);await o.agent.invoke_evaluate({expression:`${i}.sendMessage('${t}', '${s}')`})}async enable(){if(this.enabled)throw new Error("ReactDevToolsBindingsModel is already enabled");const t=this.target().model(e.RuntimeModel.RuntimeModel);if(!t)throw new Error("Failed to enable ReactDevToolsBindingsModel: runtime model is not available");await this.waitForFuseboxDispatcherToBeInitialized().then((()=>t.agent.invoke_evaluate({expression:`${i}.BINDING_NAME`}))).then((e=>{if(e.exceptionDetails)throw new Error("Failed to get binding name for ReactDevToolsBindingsModel on a global: "+e.exceptionDetails.text);if(null===e.result.value||void 0===e.result.value)throw new Error("Failed to get binding name for ReactDevToolsBindingsModel on a global: returned value is "+String(e.result.value));if(""===e.result.value)throw new Error("Failed to get binding name for ReactDevToolsBindingsModel on a global: returned value is an empty string");return e.result.value})).then((i=>(this.messagingBindingName=i,t.addEventListener(e.RuntimeModel.Events.BindingCalled,this.bindingCalled,this),t.agent.invoke_addBinding({name:i})))).then((e=>{const t=e.getError();if(t)throw new Error("Failed to add binding for ReactDevToolsBindingsModel: "+t);this.enabled=!0,this.initializeExecutionContextListeners()}))}isEnabled(){return this.enabled}initializeExecutionContextListeners(){const t=this.target().model(e.RuntimeModel.RuntimeModel);if(!t)throw new Error("Failed to initialize execution context listeners for ReactDevToolsBindingsModel: runtime model is not available");t.addEventListener(e.RuntimeModel.Events.ExecutionContextCreated,this.onExecutionContextCreated,this),t.addEventListener(e.RuntimeModel.Events.ExecutionContextDestroyed,this.onExecutionContextDestroyed,this)}onExecutionContextCreated({data:e}){e.name===t&&this.waitForFuseboxDispatcherToBeInitialized().then((()=>{this.dispatchEventToListeners("BackendExecutionContextCreated"),this.flushOutDomainMessagesQueues()})).catch((e=>this.dispatchEventToListeners("BackendExecutionContextUnavailable",e.message)))}onExecutionContextDestroyed({data:e}){e.name===t&&(this.fuseboxDispatcherIsInitialized=!1,this.dispatchEventToListeners("BackendExecutionContextDestroyed"))}async waitForFuseboxDispatcherToBeInitialized(t=1){if(t>=20)throw new Error("Failed to wait for initialization: it took too long");const n=this.target().model(e.RuntimeModel.RuntimeModel);if(!n)throw new Error("Failed to wait for React DevTools dispatcher initialization: runtime model is not available");await n.agent.invoke_evaluate({expression:`globalThis.${i} != undefined`,returnByValue:!0}).then((e=>{if(e.exceptionDetails)throw new Error("Failed to wait for React DevTools dispatcher initialization: "+e.exceptionDetails.text);if(!1===e.result.value)return new Promise((e=>setTimeout(e,250))).then((()=>this.waitForFuseboxDispatcherToBeInitialized(t+1)));this.fuseboxDispatcherIsInitialized=!0}))}}e.SDKModel.SDKModel.register(n,{capabilities:4,autostart:!1});var o=Object.freeze({__proto__:null,ReactDevToolsBindingsModel:n});export{o as ReactDevToolsBindingsModel};
@@ -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*$/,w=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 await M(n,r)},M=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?.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();let n=await t.resolveScopeChain(e);if(n)return n;if(n=e.script.sourceMap()?.resolveScopeChain(e),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(w)),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 w(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 w(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 w(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 await this.object.setPropertyValue(o,t)}async deleteProperty(e){return await 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.findOriginalFunctionName({line:t,column:n});if(null!==o)return o;const i=r.findEntry(t,n);if(!i||!i.sourceURL)return null;const a=i.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 k=Object.freeze({__proto__:null,IdentifierPositions:g,RemoteObject:x,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 M(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},allVariablesInCallFrame:j,findScopeChainForDebuggerScope:b,getScopeResolvedForTest:N,getTextFor:p,resolveDebuggerFrameFunctionName:async function(e){const t=e.localScope()?.range()?.start;return t?await C(e.script,t.lineNumber,t.columnNumber):null},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,w=b.extract(h);if(!w)return"";const M=await p(i);if(!M)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=M.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(w):""},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)},resolveScopeChain:v,resolveScopeInObject:y,resolveThisObject:S,scopeIdentifiers:m,setScopeResolvedForTest:e=>{P=e}});class R 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,ScopeChain:T,ScopeChainModel:R});export{k 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,SourceRange:u,TextRange:c});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 this.#l||e.MimeType.isTextType(this.mimeType)}get isEmpty(){return!Boolean(this.#r)&&!Boolean(this.#o)}get createdFromBase64(){return void 0!==this.#r}get#l(){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,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}},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,"im"),text:void 0,negative:Boolean(t)})}catch{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}},Utils:y,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},performSearchInContent:v,performSearchInContentData:A,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 B{#h;#c;#u;constructor(t,e,n){this.#h=t,this.#c=e,this.#u=n}static fromString(t,e,n){return new B(t,e,(()=>Promise.resolve(new g(n,!1,e.canonicalMimeType()))))}contentURL(){return this.#h}contentType(){return this.#c}requestContent(){return this.#u().then(g.asDeferredContent.bind(void 0))}requestContentData(){return this.#u()}async searchInContent(t,e,n){const s=await this.requestContentData();return A(s,t,e,n)}}var w=Object.freeze({__proto__:null,StaticContentProvider:B});class _ extends n.ObjectWrapper.ObjectWrapper{mimeType;#d;#m;#f=[];#g;constructor(t,e,n){super(),this.mimeType=t,this.#d=e,this.#m=Boolean(n&&!n.createdFromBase64),this.#g=n}static create(t,e){return new _(t,e)}static from(t){return new _(t.mimeType,t.charset,t)}get isTextContent(){return this.#g?this.#g.isTextContent:e.MimeType.isTextType(this.mimeType)}addChunk(t){if(this.#m)throw new Error("Cannot add base64 data to a text-only ContentData.");this.#f.push(t),this.dispatchEventToListeners("ChunkAdded",{content:this,chunk:t})}content(){if(this.#g&&0===this.#f.length)return this.#g;const t=this.#g?.base64??"",n=this.#f.reduce(((t,n)=>e.StringUtilities.concatBase64(t,n)),t);return this.#g=new g(n,!0,this.mimeType,this.#d),this.#f=[],this.#g}}const N=function(t){return"error"in t};var O=Object.freeze({__proto__:null,StreamingContentData:_,asContentDataOrError:function(t){return N(t)?t:t.content()},isError:N});var D=Object.freeze({__proto__:null,WasmDisassembly:class extends g{lines;#x;#C;#b;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.#x=e,this.#C=n}get text(){return void 0===this.#b&&(this.#b=this.lines.join("\n")),this.#b}get isEmpty(){return 0===this.lines.length||1===this.lines.length&&0===this.lines[0].length}get lineNumbers(){return this.#x.length}bytecodeOffsetToLineNumber(t){return e.ArrayUtilities.upperBound(this.#x,t,e.ArrayUtilities.DEFAULT_COMPARATOR)-1}lineNumberToBytecodeOffset(t){return this.#x[t]}*nonBreakableLineNumbers(){let t=0,e=0;for(;t<this.lineNumbers;){if(e<this.#C.length){if(this.lineNumberToBytecodeOffset(t)>=this.#C[e].start){t=this.bytecodeOffsetToLineNumber(this.#C[e++].end)+1;continue}}yield t++}}asDeferedContent(){return{content:"",isEncoded:!1,wasmDisassemblyInfo:this}}}});export{s as CodeMirrorUtils,C as ContentData,o as ContentProvider,w as StaticContentProvider,O as StreamingContentData,f as Text,l as TextCursor,d as TextRange,E as TextUtils,D as WasmDisassembly};
@@ -0,0 +1 @@
1
+ import*as e from"../../../core/sdk/sdk.js";import*as t from"../types/types.js";import*as n from"../../../core/platform/platform.js";import*as r from"../helpers/helpers.js";import*as i from"../handlers/handlers.js";import*as a from"../../../core/common/common.js";const s=new Map,o=new Map;async function l(t,n){const r=s.get(t)?.get(n);if(void 0!==r)return r;const i=e.TargetManager.TargetManager.instance().primaryPageTarget(),a=i?.model(e.DOMModel.DOMModel);if(!a)return null;const o=await a.pushNodesByBackendIdsToFrontend(new Set([n])),l=o?.get(n)||null,c=s.get(t)||new Map;return c.set(n,l),s.set(t,c),l}const c=new WeakMap;function d(e,n){const r=c.get(n);if(r)return r;const i=new Set;if(t.Events.isLayout(n))n.args.endData?.layoutRoots.forEach((e=>i.add(e.nodeId)));else if(t.Events.isSyntheticLayoutShift(n)&&n.args.data?.impacted_nodes)n.args.data.impacted_nodes.forEach((e=>i.add(e.node_id)));else if(t.Events.isLargestContentfulPaintCandidate(n)&&void 0!==n.args.data?.nodeId)i.add(n.args.data.nodeId);else if(t.Events.isPaint(n)&&void 0!==n.args.data.nodeId)i.add(n.args.data.nodeId);else if(t.Events.isPaintImage(n)&&void 0!==n.args.data.nodeId)i.add(n.args.data.nodeId);else if(t.Events.isScrollLayer(n)&&void 0!==n.args.data.nodeId)i.add(n.args.data.nodeId);else if(t.Events.isSyntheticAnimation(n)&&void 0!==n.args.data.beginEvent.args.data.nodeId)i.add(n.args.data.beginEvent.args.data.nodeId);else if(t.Events.isDecodeImage(n)){const t=e.ImagePainting.paintImageForEvent.get(n);void 0!==t?.args.data.nodeId&&i.add(t.args.data.nodeId)}else if(t.Events.isDrawLazyPixelRef(n)&&n.args?.LazyPixelRef){const t=e.ImagePainting.paintImageByDrawLazyPixelRef.get(n.args.LazyPixelRef);void 0!==t?.args.data.nodeId&&i.add(t.args.data.nodeId)}else t.Events.isParseMetaViewport(n)&&void 0!==n.args?.data.node_id&&i.add(n.args.data.node_id);return c.set(n,i),i}async function u(t,n){const r=o.get(t)?.get(n);if(r)return r;const i=e.TargetManager.TargetManager.instance().primaryPageTarget(),a=i?.model(e.DOMModel.DOMModel);if(!a)return new Map;const s=await a.pushNodesByBackendIdsToFrontend(new Set(n))||new Map,l=o.get(t)||new Map;return l.set(n,s),o.set(t,l),s}const h=new Map,p=new Map;var m=Object.freeze({__proto__:null,clearCacheForTesting:function(){s.clear(),o.clear(),h.clear(),p.clear()},domNodeForBackendNodeID:l,domNodesForMultipleBackendNodeIds:u,extractRelatedDOMNodesFromEvent:async function(e,t){const n=d(e,t);return n.size?await u(e,Array.from(n)):null},nodeIdsForEvent:d,normalizedImpactedNodesForLayoutShift:async function(t,n){const r=p.get(t)?.get(n);if(r)return r;const i=n.args?.data?.impacted_nodes;if(!i)return[];let a=null;const s=e.TargetManager.TargetManager.instance().primaryPageTarget(),o=await(s?.runtimeAgent().invoke_evaluate({expression:"window.devicePixelRatio"}));if("number"===o?.result.type&&(a=o?.result.value??null),!a)return i;const l=[];for(const e of i){const t={...e};for(let n=0;n<e.old_rect.length;n++)t.old_rect[n]/=a;for(let n=0;n<e.new_rect.length;n++)t.new_rect[n]/=a;l.push(t)}const c=p.get(t)||new Map;return c.set(n,l),p.set(t,c),l},sourcesForLayoutShift:async function(e,t){const n=h.get(e)?.get(t);if(n)return n;const r=t.args.data?.impacted_nodes;if(!r)return[];const i=[];await Promise.all(r.map((async t=>{const n=await l(e,t.node_id);n&&i.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:n})})));const a=h.get(e)||new Map;return a.set(t,i),h.set(e,a),i}});const f=new WeakMap;var g=Object.freeze({__proto__:null,frameClosestToTimestamp:function(e,t){const r=n.ArrayUtilities.nearestIndexFromEnd(e.frames,(e=>e.screenshotEvent.ts<t));return null===r?null:e.frames[r]},fromParsedTrace:function(e,t){const r=[],i=void 0!==t?t:e.Meta.traceBounds.min,a=e.Meta.traceBounds.range,s=f.get(e)?.get(i);if(s)return s;const o=e.Screenshots.screenshots??e.Screenshots.legacySyntheticScreenshots??[];for(const e of o){if(e.ts<i)continue;const t={index:r.length,screenshotEvent:e};r.push(t)}const l={zeroTime:i,spanTime:a,frames:Array.from(r)};return n.MapUtilities.getWithDefault(f,e,(()=>new Map)).set(i,l),l}});const v=new Set(["(program)","(idle)","(root)"]);var T=Object.freeze({__proto__:null,calculateWindow:function(e,n){if(!n.length)return e;const i=n.filter((e=>!(t.Events.isProfileCall(e)&&(v.has(e.callFrame.functionName)||!e.callFrame.functionName))));if(0===i.length)return e;function a(e,t){let n=e;const a=i[n],s=r.Timing.eventTimingsMicroSeconds(a);let o=(s.startTime+s.endTime)/2,l=0;const c=Math.sign(t-e);for(let a=e;a!==t;a+=c){const e=i[a],t=r.Timing.eventTimingsMicroSeconds(e),s=(t.startTime+t.endTime)/2;l<.1*Math.abs(o-s)&&(n=a,o=s,l=0),l+=t.duration}return n}const s=a(i.length-1,0),o=a(0,s),l=r.Timing.eventTimingsMicroSeconds(i[o]),c=r.Timing.eventTimingsMicroSeconds(i[s]);let d=l.startTime,u=c.endTime;const h=u-d;return h<.1*e.range?e:(d=t.Timing.Micro(Math.max(d-.05*h,e.min)),u=t.Timing.Micro(Math.min(u+.05*h,e.max)),{min:d,max:u,range:t.Timing.Micro(u-d)})}});var S=Object.freeze({__proto__:null,forNewRecording:async function(t,n,r,i){try{if(t)return{dataOrigin:"CPUProfile"};const a=e.CPUThrottlingManager.CPUThrottlingManager.instance().hasPrimaryPageTargetSet()?await Promise.race([e.CPUThrottlingManager.CPUThrottlingManager.instance().getHardwareConcurrency(),new Promise((e=>{setTimeout((()=>e(void 0)),1e3)}))]):void 0,s=e.CPUThrottlingManager.CPUThrottlingManager.instance().cpuThrottlingRate(),o=e.NetworkManager.MultitargetNetworkManager.instance().isThrottling()?e.NetworkManager.MultitargetNetworkManager.instance().networkConditions():void 0;let l,c;return o&&(l={download:o.download,upload:o.upload,latency:o.latency,packetLoss:o.packetLoss,packetQueueLength:o.packetQueueLength,packetReordering:o.packetReordering,targetLatency:o.targetLatency},c="function"==typeof o.title?o.title():o.title),{source:"DevTools",startTime:n?new Date(n).toJSON():void 0,emulatedDeviceTitle:r,cpuThrottling:1!==s?s:void 0,networkThrottling:c,networkThrottlingConditions:l,hardwareConcurrency:a,dataOrigin:"TraceEvents",cruxFieldData:i}}catch{return{}}}});function I(e){const t=(e=e.replace(/\?$/,"")).lastIndexOf("node_modules");return-1!==t&&(e=e.substring(t)),e}function k(e){for(const[t,n]of e){if(n.duplicates.sort(((e,t)=>t.attributedSize-e.attributedSize)),n.duplicates.length>1){const e=n.duplicates[0].attributedSize;n.duplicates=n.duplicates.filter((t=>t.attributedSize/e>=.1))}n.duplicates=n.duplicates.filter((e=>e.attributedSize>=512)),n.duplicates.length<=1?e.delete(t):n.estimatedDuplicateBytes=n.duplicates.slice(1).reduce(((e,t)=>e+t.attributedSize),0)}}function M(e,t,n=0){const r=e.indexOf(t,n);return-1===r?e.length:r}function C(e){const t=e.split("node_modules/"),n=M(e=t[t.length-1],"/");return"@"===e[0]?e.slice(0,M(e,"/",n+1)):e.slice(0,n)}function E(e){return new Map([...e].sort(((e,t)=>t[1].estimatedDuplicateBytes-e[1].estimatedDuplicateBytes)))}var y=Object.freeze({__proto__:null,computeScriptDuplication:function(e){const t=new Map;for(const r of e.scripts){if(!r.content||!r.sourceMap)continue;const e=i.ModelHandlers.Scripts.getScriptGeneratedSizes(r);if(!e)continue;if("errorMessage"in e){console.error(e.errorMessage);continue}const a=[];t.set(r,a);const s=r.sourceMap.sourceURLs();for(let t=0;t<s.length;t++){if((n=s[t]).includes("webpack/bootstrap")||n.includes("(webpack)/buildin")||n.includes("external "))continue;const r=e.files[s[t]];a.push({source:I(s[t]),resourceSize:r})}}var n;const r=new Map;for(const[e,n]of t)for(const t of n){let n=r.get(t.source);n||(n={estimatedDuplicateBytes:0,duplicates:[]},r.set(t.source,n)),n.duplicates.push({script:e,attributedSize:t.resourceSize})}const a=function(e){const t=new Map;for(const[n,r]of e){if(!n.includes("node_modules")){t.set(n,r);continue}const e="node_modules/"+C(n),i=t.get(e)??{duplicates:[],estimatedDuplicateBytes:0};t.set(e,i);for(const{script:e,attributedSize:t}of r.duplicates){let n=i.duplicates.find((t=>t.script===e));n||(n={script:e,attributedSize:0},i.duplicates.push(n)),n.attributedSize+=t}}return t}(r);return k(r),k(a),{duplication:E(r),duplicationGroupedByNodeModules:E(a)}},getNodeModuleName:C,normalizeDuplication:k,normalizeSource:I});const w=new Map;function b(e,n){let r=w.get(n);r||(r=new Map,w.set(n,r));const i=r.get(e);if(i)return i;let a=null;if(t.Events.isProfileCall(e))a=function(e,n){const r=n.Renderer.entryToNode.size>0?n.Renderer.entryToNode:n.Samples.entryToNode,i={callFrames:[]};let a=i,s=e,o=r.get(e);const l=w.get(n)||new Map;w.set(n,l);for(;o;){if(!t.Events.isProfileCall(o.entry)){o=o.parent;continue}s=o.entry;const e=l.get(o.entry);if(e){a.callFrames.push(...e.callFrames.filter((e=>!N(e)))),a.parent=e.parent,a.description=a.description||e.description;break}N(s.callFrame)||a.callFrames.push(s.callFrame);const i=n.AsyncJSCalls.asyncCallToScheduler.get(s),c=i&&r.get(i.scheduler);c?(a.parent={callFrames:[]},a=a.parent,a.description=i.taskName,o=c):o=o.parent}return i}(e,n);else if(t.Extensions.isSyntheticExtensionEntry(e))a=function(e,t){return F(e.rawSourceEvent,t)}(e,n);else if(t.Events.isUserTiming(e))a=F(e,n);else if(t.Events.isLayout(e)||t.Events.isUpdateLayoutTree(e)){const t=n.Renderer.entryToNode.get(e),r=t?.parent?.entry;r&&(a=b(r,n))}return a&&r.set(e,a),a}function P(e){const t=e.args?.data;return t&&t.rnStackTrace?t.rnStackTrace:null}function F(e,n){let r=e;if(t.Events.isPerformanceMeasureBegin(e)){if(void 0===e.args.traceId)return null;r=n.UserTimings.measureTraceByTraceId.get(e.args.traceId)}if(!r)return null;let i=n.Renderer.entryToNode.get(r);for(;i&&!t.Events.isProfileCall(i.entry);)i=i.parent;return i&&t.Events.isProfileCall(i.entry)?b(i.entry,n):null}function N({columnNumber:e,lineNumber:t,url:n,scriptId:r}){return-1===t&&-1===e&&""===n&&"0"===r}var R=Object.freeze({__proto__:null,clearCacheForTrace:function(e){w.delete(e)},extractStackTraceForReactNative:P,get:b,getForReactNative:function(e,n){let r=w.get(n);r||(r=new Map,w.set(n,r));const i=r.get(e);if(i)return i;let a=null;return t.Events.isUserTiming(e)&&t.Events.isPerformanceMeasureBegin(e)?a=P(e):t.Extensions.isSyntheticExtensionEntry(e)?a=P(e.rawSourceEvent):t.Events.isConsoleTimeStamp(e)&&(a=P(e)),a&&r.set(e,a),a},stackTraceForEventInTrace:w});let D=class{};class _ extends D{visibleTypes;constructor(e){super(),this.visibleTypes=new Set(e)}accept(e){return!!t.Extensions.isSyntheticExtensionEntry(e)||this.visibleTypes.has(_.eventType(e))}static eventType(e){return e.cat.includes("blink.console")?"ConsoleTime":e.cat.includes("blink.user_timing")?"UserTiming":e.name}}class z extends D{#e;constructor(e){super(),this.#e=new Set(e)}accept(e){return!this.#e.has(e.name)}}var x=Object.freeze({__proto__:null,ExclusiveNameFilter:z,InvisibleEventsFilter:class extends D{#t;constructor(e){super(),this.#t=new Set(e)}accept(e){return!this.#t.has(_.eventType(e))}},TraceFilter:D,VisibleEventsFilter:_});function G(e,n){const r=e.ts,i=n.ts;if(r<i)return-1;if(r>i)return 1;const a=r+(e.dur??0),s=i+(n.dur??0);return a>s?-1:a<s?1:t.Events.isProfileCall(e)&&!t.Events.isProfileCall(n)?-1:t.Events.isProfileCall(n)&&!t.Events.isProfileCall(e)?1:0}function J(e,n,r,i,a,s){return{cat:"",name:"ProfileCall",nodeId:e.id,args:{},ph:"X",pid:a,tid:s,ts:i,dur:t.Timing.Micro(0),callFrame:e.callFrame,sampleIndex:r,profileId:n}}new Map;function L(e){if(!e.args)return null;if("beginData"in e.args){return e.args.beginData.sampleTraceId??null}return e.args?.sampleTraceId??e.args?.data?.sampleTraceId??null}new Set(["AbortPostTaskCallback","Animation","AsyncTask","v8.deserializeOnBackground","BeginFrame","BeginMainThreadFrame","v8.produceModuleCache","v8.produceCache","CancelAnimationFrame","CancelIdleCallback","v8.compile","V8.CompileCode","V8.CompileModule","Commit","CompositeLayers","ComputeIntersections","ConsoleTime","TimeStamp","CppGC.IncrementalSweep","DoDecrypt","DoDecryptReply","DoDigest","DoDigestReply","DoEncrypt","DoEncryptReply","DoSign","DoSignReply","DoVerify","DoVerifyReply","Decode Image","DrawFrame","EmbedderCallback","v8.evaluateModule","EvaluateScript","EventDispatch","EventTiming","V8.FinalizeDeserialization","FireAnimationFrame","FireIdleCallback","FrameStartedLoading","FunctionCall","GCEvent","BlinkGC.AtomicPhase","GPUTask","HandlePostMessage","HitTest","InvalidateLayout","JSSample","Layerize","Layout","LayoutShift","MajorGC","MarkDOMContent","firstPaint","firstContentfulPaint","largestContentfulPaint::Candidate","MarkLoad","MinorGC","V8.OptimizeCode","Paint","PaintImage","PaintSetup","ParseAuthorStyleSheet","ParseHTML","PrePaint","ProfileCall","Program","RasterTask","RequestAnimationFrame","RequestIdleCallback","RequestMainThreadFrame","ResourceFinish","ResourceReceivedData","ResourceReceiveResponse","ResourceSendRequest","ResourceWillSendRequest","RunMicrotasks","RunPostTaskCallback","RunTask","SchedulePostMessage","SchedulePostTaskCallback","ScheduleStyleRecalculation","ScrollLayer","CpuProfiler::StartProfiling","v8.parseOnBackground","v8.parseOnBackgroundParsing","v8.parseOnBackgroundWaiting","SyntheticLayoutShift","SyntheticLayoutShiftCluster","TimerFire","TimerInstall","TimerRemove","UpdateLayer","UpdateLayerTree","UpdateLayoutTree","UserTiming","V8Console::runTask","v8.wasm.cachedModule","v8.wasm.compiledModule","v8.wasm.moduleCacheHit","v8.wasm.moduleCacheInvalid","v8.wasm.streamFromResponseCallback","WebSocketCreate","WebSocketDestroy","WebSocketReceive","WebSocketReceiveHandshakeResponse","WebSocketSend","WebSocketSendHandshakeRequest","XHRLoad","XHRReadyStateChange"]);const B=e=>t.Timing.Micro(1e3*e);class A{#n=[];#r=[];#i;#a;#s=[];#o=!1;#l;#c=new Map;#d;#u;jsSampleEvents=[];constructor(e,n,r,i,a){this.#l=e,this.#a=i,this.#i=r,this.#d=a||t.Configuration.defaults(),this.#u=n}buildProfileCalls(e){const n=function(e,t){const n=[];let r=0,i=0;for(;r<e.length&&i<t.length;){const a=e[r],s=t[i],o=G(a,s);o<=0&&(n.push(a),r++),1===o&&(n.push(s),i++)}for(;r<e.length;)n.push(e[r++]);for(;i<t.length;)n.push(t[i++]);return n}(e,this.callsFromProfileSamples()),r=[];for(let e=0;e<n.length;e++){const i=n[e];if("I"===i.ph&&!L(i))continue;if(0===r.length){if(t.Events.isProfileCall(i)){this.#h(i);continue}r.push(i),this.#p(i);continue}const a=r.at(-1);if(void 0===a)continue;i.ts>=a.ts+(a.dur||0)?(this.#m(a),r.pop(),e--):t.Events.isProfileCall(i)?this.#h(i,a):(this.#p(i),r.push(i))}for(;r.length;){const e=r.pop();e&&this.#m(e)}return this.jsSampleEvents.sort(G),this.#n}#p(e){"RunMicrotasks"!==e.name&&"RunTask"!==e.name||(this.#s=[],this.#f(0,e.ts),this.#o=!1),this.#o&&(this.#f(this.#s.pop()||0,e.ts),this.#o=!1),this.#g(e),this.#s.push(this.#r.length)}#h(e,n){if(n&&t.Events.isJSInvocationEvent(n)||this.#o)this.#g(e);else if(t.Events.isProfileCall(e)&&0===this.#r.length){this.#o=!0;const t=this.#r.length;this.#g(e),this.#s.push(t)}}#m(e){const n=t.Timing.Micro(e.ts+(e.dur??0));this.#f(this.#s.pop()||0,n)}callsFromProfileSamples(){const e=this.#l.samples,n=this.#l.timestamps;if(!e)return[];const r=[];let i;for(let a=0;a<e.length;a++){const e=this.#l.nodeByIndex(a),s=B(t.Timing.Milli(n[a]));if(!e)continue;const o=J(e,this.#u,a,s,this.#i,this.#a);if(r.push(o),this.#d.debugMode){const e=this.#l.traceIds?.[a];this.jsSampleEvents.push(this.#v(o,s,e))}e.id===this.#l.gcNode?.id&&i?this.#c.set(o,i):i=e}return r}#T(e,t){let n=this.#l.nodeById(e.nodeId);const r=n?.id===this.#l.gcNode?.id;if(r&&(n=this.#c.get(e)||null),!n)return[];const i=new Array(n.depth+1+Number(r));let a=i.length-1;for(r&&(i[a--]=e);n;)i[a--]=J(n,e.profileId,e.sampleIndex,t??e.ts,this.#i,this.#a),n=n.parent;return i}#S(e,t){const n=this.#l.traceIds?.[e],r=n&&this.#l.nodeById(n),i=r&&J(r,this.#u,-1,t,this.#i,this.#a);return i?(this.#d.debugMode&&this.jsSampleEvents.push(this.#v(i,t,e)),this.#T(i)):null}#g(e){let n=this.#r;t.Events.isProfileCall(e)&&(n=this.#T(e));const r=L(e),i=r&&this.#S(r,e.ts);i&&(n=i),A.filterStackFrames(n,this.#d);const a=e.ts+(e.dur||0),s=Math.min(n.length,this.#r.length);let o;for(o=this.#s.at(-1)||0;o<s;++o){const e=n[o].callFrame,r=this.#r[o].callFrame;if(!A.framesAreEqual(e,r))break;this.#r[o].dur=t.Timing.Micro(Math.max(this.#r[o].dur||0,a-this.#r[o].ts))}for(this.#f(o,e.ts);o<n.length;++o){const e=n[o];e.nodeId!==this.#l.programNode?.id&&e.nodeId!==this.#l.root?.id&&e.nodeId!==this.#l.idleNode?.id&&e.nodeId!==this.#l.gcNode?.id&&(this.#r.push(e),this.#n.push(e))}}#f(e,n){if(this.#s.length){const t=this.#s.at(-1);t&&e<t&&(console.error(`Child stack is shallower (${e}) than the parent stack (${t}) at ${n}`),e=t)}this.#r.length<e&&(console.error(`Trying to truncate higher than the current stack size at ${n}`),e=this.#r.length);for(let e=0;e<this.#r.length;++e)this.#r[e].dur=t.Timing.Micro(Math.max(n-this.#r[e].ts,0));this.#r.length=e}#v(e,n,r){return{name:"JSSample",cat:"devtools.timeline",args:{data:{traceId:r,stackTrace:this.#T(e).map((e=>e.callFrame))}},ph:"I",ts:n,dur:t.Timing.Micro(0),pid:this.#i,tid:this.#a}}static framesAreEqual(e,t){return e.scriptId===t.scriptId&&e.functionName===t.functionName&&e.lineNumber===t.lineNumber}static showNativeName(e,t){return t&&Boolean(A.nativeGroup(e))}static nativeGroup(e){return e.startsWith("Parse")?"Parse":e.startsWith("Compile")||e.startsWith("Recompile")?"Compile":null}static isNativeRuntimeFrame(e){return"native V8Runtime"===e.url}static filterStackFrames(e,t){if(t.showAllEvents)return;let n=null,r=0;for(let i=0;i<e.length;++i){const a=e[i].callFrame,s=A.isNativeRuntimeFrame(a);if(s&&!A.showNativeName(a.functionName,t.includeRuntimeCallStats))continue;const o=s?A.nativeGroup(a.functionName):null;n&&n===o||(n=o,e[r++]=e[i])}e.length=r}static createFakeTraceFromCpuProfile(e,n){const r=[],i=`Thread ${n}`;return a("TracingStartedInPage",{data:{sessionId:"1"}},0,0,"M"),a("thread_name",{name:i},0,0,"M","__metadata"),e?(a("JSRoot",{},e.startTime,e.endTime-e.startTime,"X","toplevel"),a("CpuProfile",{data:{cpuProfile:e}},e.endTime,0,"X"),{traceEvents:r,metadata:{dataOrigin:"CPUProfile"}}):{traceEvents:r,metadata:{}};function a(e,i,a,s,o,l){const c={cat:l||"disabled-by-default-devtools.timeline",name:e,ph:o||"X",pid:t.Events.ProcessID(1),tid:n,ts:t.Timing.Micro(a),args:i};return s&&(c.dur=t.Timing.Micro(s)),r.push(c),c}}}class O{totalTime;selfTime;transferSize;id;event;events;parent;groupId;isGroupNodeInternal;depth;constructor(e,t){this.totalTime=0,this.selfTime=0,this.transferSize=0,this.id=e,this.event=t,this.events=[t],this.groupId="",this.isGroupNodeInternal=!1,this.depth=0}isGroupNode(){return this.isGroupNodeInternal}hasChildren(){throw new Error("Not implemented")}setHasChildren(e){throw new Error("Not implemented")}children(){throw new Error("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 U extends O{root;hasChildrenInternal;childrenInternal;parent;constructor(e,t,n){super(e,t),this.root=n?.root??null,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,i=this,a=this.root;if(!a)return this.childrenInternal=n,this.childrenInternal;const s=a.startTime,o=a.endTime,l=a.doNotAggregate||a.includeInstantEvents?function(t){++u,h===e.length&&u<=e.length+2&&m(t,0);--u}:void 0,c=a.doNotAggregate?void 0:H,d=a.getEventGroupIdCallback();let u=0,h=0,p=null;function m(r,a){if(u===e.length+2){if(!p)return;return p.setHasChildren(!0),void(p.selfTime-=a)}let s,o="";c?(s=c(r),o=d?d(r):"",o&&(s+="/"+o)):s=Symbol("uniqueId");let l=n.get(s);l?l.events.push(r):(l=new U(s,r,i),l.groupId=o,n.set(s,l)),l.selfTime+=a,l.totalTime+=a,t.Events.isReceivedDataEvent(r)&&(l.transferSize+=r.args.data.encodedDataLength),p=l}return r.Trace.forEachEvent(a.events,{onStartEvent:function(t){const{startTime:n,endTime:i}=r.Timing.eventTimingsMilliSeconds(t);if(++u,u>e.length+2)return;if(!function(t){const{endTime:n}=r.Timing.eventTimingsMilliSeconds(t);if(h===e.length)return!0;if(h!==u-1)return!1;if(!n)return!1;if(!c)return t===e[h].event&&++h,!1;let i=c(t);const a=d?d(t):"";a&&(i+="/"+a);i===e[h].id&&++h;return!1}(t))return;const a=(void 0!==i?Math.min(i,o):o)-Math.max(s,n);a<0&&console.error("Negative event duration");m(t,a)},onEndEvent:function(){--u,h>u&&(h=u)},onInstantEvent:l,startTime:r.Timing.milliToMicro(s),endTime:r.Timing.milliToMicro(o),eventFilter:a.filter,ignoreAsyncEvents:!1}),this.childrenInternal=n,n}getRoot(){return this.root}}class j extends O{childrenInternal;textFilter;filter;startTime;endTime;totalTime;eventGroupIdCallback;calculateTransferSize;forceGroupIdCallback;constructor(e,{textFilter:t,filters:n,startTime:r,endTime:i,eventGroupIdCallback:a,calculateTransferSize:s,forceGroupIdCallback:o}){super("",e[0]),this.childrenInternal=null,this.events=e,this.textFilter=t,this.filter=e=>n.every((t=>t.accept(e))),this.startTime=r,this.endTime=i,this.eventGroupIdCallback=a,this.totalTime=i-r,this.calculateTransferSize=s,this.forceGroupIdCallback=o}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,i=this.endTime,a=new Map,s=[i-n],o=[],l=new Map,c=this.eventGroupIdCallback,d=this.forceGroupIdCallback;r.Trace.forEachEvent(this.events,{onStartEvent:function(e){const{startTime:t,endTime:a}=r.Timing.eventTimingsMilliSeconds(e),u=(void 0!==a?Math.min(a,i):i)-Math.max(t,n);s[s.length-1]-=u,s.push(u);let h=H(e);d&&c&&(h=`${h}-${c(e)}`);const p=!l.has(h);p&&l.set(h,u);o.push(p)},onEndEvent:function(t){let n=H(t);d&&c&&(n=`${n}-${c(t)}`);let r=a.get(n);r?r.events.push(t):(r=new $(e,n,t,!1,e),a.set(n,r));r.selfTime+=s.pop()||0,o.pop()&&(r.totalTime+=l.get(n)||0,l.delete(n));o.length&&r.setHasChildren(!0)},onInstantEvent:this.calculateTransferSize?n=>{if(t.Events.isReceivedDataEvent(n)){let t=H(n);this.forceGroupIdCallback&&this.eventGroupIdCallback&&(t=`${t}-${this.eventGroupIdCallback(n)}`);let r=a.get(t);r?r.events.push(n):(r=new $(e,t,n,!1,e),a.set(t,r)),"ResourceReceivedData"===n.name?r.transferSize+=n.args.data.encodedDataLength:n.args.data.encodedDataLength>0&&(r.transferSize=n.args.data.encodedDataLength)}}:void 0,startTime:r.Timing.milliToMicro(this.startTime),endTime:r.Timing.milliToMicro(this.endTime),eventFilter:this.filter,ignoreAsyncEvents:!1}),this.selfTime=s.pop()||0;for(const e of a)e[1].selfTime<=0&&(!this.calculateTransferSize||e[1].transferSize<=0)&&a.delete(e[0]);return a}grouppedTopNodes(){const e=this.ungrouppedTopNodes();if(!this.eventGroupIdCallback)return e;const t=new Map;for(const n of e.values()){const e=this.eventGroupIdCallback(n.event);let r=t.get(e);r?r.events.push(...n.events):(r=new W(e,this,n.events),t.set(e,r)),r.addChild(n,n.selfTime,n.selfTime,n.transferSize)}return t}}class W extends O{childrenInternal;isGroupNodeInternal;events;constructor(e,t,n){super(e,n[0]),this.events=n,this.childrenInternal=new Map,this.parent=t,this.isGroupNodeInternal=!0}addChild(e,t,n,r){this.childrenInternal.set(e.id,e),this.selfTime+=t,this.totalTime+=n,this.transferSize+=r,e.parent=this}hasChildren(){return!0}children(){return this.childrenInternal}}class $ extends O{parent;root;depth;cachedChildren;hasChildrenInternal;constructor(e,t,n,r,i){super(t,n),this.parent=i,this.root=e,this.depth=(i.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],t=[],n=[],i=new Map,a=this.root.startTime,s=this.root.endTime;let o=a;const l=this;return r.Trace.forEachEvent(this.root.events,{onStartEvent:function(i){const{startTime:o,endTime:l}=r.Timing.eventTimingsMilliSeconds(i),c=(void 0!==l?Math.min(l,s):s)-Math.max(o,a);c<0&&console.assert(!1,"Negative duration of an event");e[e.length-1]-=c,e.push(c);const d=H(i);t.push(d),n.push(i)},onEndEvent:function(a){const{startTime:c,endTime:d}=r.Timing.eventTimingsMilliSeconds(a),u=e.pop(),h=t.pop();let p;for(n.pop(),p=l;p.depth>1;p=p.parent)if(p.id!==t[t.length+1-p.depth])return;if(p.id!==h||t.length<l.depth)return;const m=t[t.length-l.depth];if(p=i.get(m),p)p.events.push(a);else{const e=n[n.length-l.depth],t=n.length>l.depth;p=new $(l.root,m,e,t,l),i.set(m,p)}const f=void 0!==d?Math.min(d,s):s,g=f-Math.max(c,o);p.selfTime+=u||0,p.totalTime+=g,o=f},startTime:r.Timing.milliToMicro(a),endTime:r.Timing.milliToMicro(s),eventFilter:this.root.filter,ignoreAsyncEvents:!1}),this.cachedChildren=this.root.filterChildren(i),this.cachedChildren}searchTree(e,t){return t=t||[],this.event&&e(this.event)&&t.push(this),t}}function H(e){if(t.Events.isProfileCall(e)){return`f:${A.isNativeRuntimeFrame(e.callFrame)?A.nativeGroup(e.callFrame.functionName):e.callFrame.functionName}@${e.callFrame.scriptId||e.callFrame.url||""}`}return t.Events.isConsoleTimeStamp(e)&&e.args.data?`${e.name}:${e.args.data.name}`:t.Events.isSyntheticNetworkRequest(e)||t.Events.isReceivedDataEvent(e)?`req:${e.args.data.requestId}`:e.name}var q=Object.freeze({__proto__:null,BottomUpNode:$,BottomUpRootNode:j,GroupNode:W,Node:O,TopDownNode:U,TopDownRootNode:class extends U{filter;startTime;endTime;eventGroupIdCallback;doNotAggregate;includeInstantEvents;totalTime;selfTime;constructor(e,{filters:t,startTime:n,endTime:r,doNotAggregate:i,eventGroupIdCallback:a,includeInstantEvents:s}){super("",e[0],null),this.event=e[0],this.root=this,this.events=e,this.filter=e=>t.every((t=>t.accept(e))),this.startTime=n,this.endTime=r,this.eventGroupIdCallback=a,this.doNotAggregate=i,this.includeInstantEvents=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()){const e=this.eventGroupIdCallback(n.event);let r=t.get(e);r?r.events.push(...n.events):(r=new W(e,this,n.events),t.set(e,r)),r.addChild(n,n.selfTime,n.totalTime,n.transferSize)}return this.childrenInternal=t,t}getEventGroupIdCallback(){return this.eventGroupIdCallback}},eventStackFrame:function(e){if(t.Events.isProfileCall(e))return e.callFrame;const n=e.args?.data?.stackTrace?.[0];return n?{...n,scriptId:String(n.scriptId)}:null},generateEventID:H});var V=Object.freeze({__proto__:null,summarizeThirdParties:function(e,n){const i=function(e,t,n){const i=t.Renderer.entityMappings,a=e=>{const t=i?.entityByEvent.get(e);return t?.name??""},s=r.Trace.VISIBLE_TRACE_EVENT_TYPES.values().toArray(),o=new _(s.concat(["SyntheticNetworkRequest"])),l=r.Timing.microToMilli(n.min),c=r.Timing.microToMilli(n.max),d=new j(e,{textFilter:new z([]),filters:[o],startTime:l,endTime:c,eventGroupIdCallback:a,calculateTransferSize:!0,forceGroupIdCallback:!0});return d}(function(e){const t=e.Renderer.processes.values().find((e=>{const t=e.url??"";return e.isOnMainFrame&&!t.startsWith("about:")&&!t.startsWith("chrome:")}))?.threads.values().find((e=>"CrRendererMain"===e.name));return t?t.entries:[]}(e).sort(r.Trace.eventTimeComparator),e,n);return function(e,n){const r=new Map,i=[],a=[...e.children().values()].flat();for(const e of a){if(""===e.id)continue;const a=n.Renderer.entityMappings.entityByEvent.get(e.event);if(!a)continue;const s={transferSize:e.transferSize,mainThreadTime:t.Timing.Milli(e.selfTime),relatedEvents:n.Renderer.entityMappings.eventsByEntity.get(a)??[],entity:a};r.set(a,s),i.push(s)}return i}(i,e)}});export{m as FetchNodes,g as FilmStrip,T as MainThreadActivity,S as Metadata,y as ScriptDuplication,R as StackTraceForEvent,V as ThirdParties,x as TraceFilter,q as TraceTree};