@browserless.io/browserless 2.2.0-beta-6 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1313) hide show
  1. package/CHANGELOG.md +21 -2
  2. package/bin/browserless.js +1 -1
  3. package/bin/scaffold/README.md +8 -7
  4. package/build/browserless.js +7 -6
  5. package/build/browsers/chrome.cdp.d.ts +6 -0
  6. package/build/browsers/chrome.cdp.js +6 -0
  7. package/build/browsers/chrome.playwright.d.ts +6 -0
  8. package/build/browsers/chrome.playwright.js +6 -0
  9. package/build/browsers/{cdp-chromium.d.ts → chromium.cdp.d.ts} +3 -2
  10. package/build/browsers/{cdp-chromium.js → chromium.cdp.js} +16 -10
  11. package/build/browsers/{playwright-chromium.d.ts → chromium.playwright.d.ts} +3 -2
  12. package/build/browsers/{playwright-chromium.js → chromium.playwright.js} +6 -5
  13. package/build/browsers/{playwright-firefox.d.ts → firefox.playwright.d.ts} +2 -2
  14. package/build/browsers/{playwright-firefox.js → firefox.playwright.js} +4 -4
  15. package/build/browsers/index.d.ts +20 -10
  16. package/build/browsers/index.js +110 -11
  17. package/build/browsers/{playwright-webkit.d.ts → webkit.playwright.d.ts} +2 -2
  18. package/build/browsers/{playwright-webkit.js → webkit.playwright.js} +4 -4
  19. package/build/data/selectors.json +1 -1
  20. package/build/exports.d.ts +6 -4
  21. package/build/exports.js +6 -4
  22. package/build/http.d.ts +22 -1
  23. package/build/http.js +21 -0
  24. package/build/router.js +19 -3
  25. package/build/routes/{chromium/http/content-post.body.json → chrome/http/content.post.body.json} +8 -8
  26. package/build/routes/chrome/http/content.post.d.ts +7 -0
  27. package/build/routes/chrome/http/content.post.js +6 -0
  28. package/build/routes/chrome/http/download.post.d.ts +7 -0
  29. package/build/routes/chrome/http/download.post.js +6 -0
  30. package/build/routes/chrome/http/function.post.d.ts +7 -0
  31. package/build/routes/chrome/http/function.post.js +6 -0
  32. package/build/routes/chrome/http/json-list.get.d.ts +1 -0
  33. package/build/routes/chrome/http/json-list.get.js +1 -0
  34. package/build/routes/chrome/http/json-new.put.d.ts +1 -0
  35. package/build/routes/chrome/http/json-new.put.js +1 -0
  36. package/build/routes/chrome/http/json-protocol.get.d.ts +1 -0
  37. package/build/routes/chrome/http/json-protocol.get.js +1 -0
  38. package/build/routes/chrome/http/json-version.get.d.ts +1 -0
  39. package/build/routes/chrome/http/json-version.get.js +1 -0
  40. package/build/routes/chrome/http/json-version.get.response.json +44 -0
  41. package/build/routes/{chromium/http/pdf-post.body.json → chrome/http/pdf.post.body.json} +8 -8
  42. package/build/routes/chrome/http/pdf.post.d.ts +7 -0
  43. package/build/routes/chrome/http/pdf.post.js +6 -0
  44. package/build/routes/chrome/http/performance.post.d.ts +7 -0
  45. package/build/routes/chrome/http/performance.post.js +6 -0
  46. package/build/routes/{chromium/http/scrape-post.body.json → chrome/http/scrape.post.body.json} +8 -8
  47. package/build/routes/chrome/http/scrape.post.d.ts +7 -0
  48. package/build/routes/chrome/http/scrape.post.js +6 -0
  49. package/build/routes/{chromium/http/screenshot-post.body.json → chrome/http/screenshot.post.body.json} +8 -8
  50. package/build/routes/chrome/http/screenshot.post.d.ts +7 -0
  51. package/build/routes/chrome/http/screenshot.post.js +6 -0
  52. package/build/routes/chrome/tests/content.spec.js +311 -0
  53. package/build/routes/chrome/tests/download.spec.js +67 -0
  54. package/build/routes/chrome/tests/function.spec.d.ts +1 -0
  55. package/build/routes/chrome/tests/function.spec.js +245 -0
  56. package/build/routes/chrome/tests/json-version.spec.d.ts +1 -0
  57. package/build/routes/chrome/tests/json-version.spec.js +37 -0
  58. package/build/routes/chrome/tests/page-websocket.spec.d.ts +1 -0
  59. package/build/routes/chrome/tests/page-websocket.spec.js +97 -0
  60. package/build/routes/chrome/tests/pdf.spec.d.ts +1 -0
  61. package/build/routes/chrome/tests/pdf.spec.js +333 -0
  62. package/build/routes/chrome/tests/performance.spec.d.ts +1 -0
  63. package/build/routes/chrome/tests/performance.spec.js +124 -0
  64. package/build/routes/chrome/tests/scrape.spec.d.ts +1 -0
  65. package/build/routes/chrome/tests/scrape.spec.js +354 -0
  66. package/build/routes/chrome/tests/screenshot.spec.d.ts +1 -0
  67. package/build/routes/chrome/tests/screenshot.spec.js +339 -0
  68. package/build/routes/chrome/tests/websocket.spec.d.ts +1 -0
  69. package/build/routes/chrome/tests/websocket.spec.js +371 -0
  70. package/build/routes/chrome/ws/browser.d.ts +6 -0
  71. package/build/routes/chrome/ws/browser.js +5 -0
  72. package/build/routes/chrome/ws/cdp.d.ts +7 -0
  73. package/build/routes/chrome/ws/cdp.js +6 -0
  74. package/build/routes/chrome/ws/cdp.query.json +120 -0
  75. package/build/routes/chrome/ws/page.d.ts +6 -0
  76. package/build/routes/chrome/ws/page.js +5 -0
  77. package/build/routes/chrome/ws/page.query.json +120 -0
  78. package/build/routes/chrome/ws/playwright.d.ts +7 -0
  79. package/build/routes/chrome/ws/playwright.js +6 -0
  80. package/build/routes/chromium/http/content.post.body.json +510 -0
  81. package/build/routes/chromium/http/content.post.d.ts +1 -0
  82. package/build/routes/chromium/http/content.post.js +1 -0
  83. package/build/routes/chromium/http/content.post.query.json +183 -0
  84. package/build/routes/chromium/http/content.post.response.json +5 -0
  85. package/build/routes/chromium/http/download.post.body.json +32 -0
  86. package/build/routes/chromium/http/download.post.d.ts +1 -0
  87. package/build/routes/chromium/http/download.post.js +1 -0
  88. package/build/routes/chromium/http/download.post.query.json +120 -0
  89. package/build/routes/chromium/http/download.post.response.json +4 -0
  90. package/build/routes/chromium/http/function.post.body.json +32 -0
  91. package/build/routes/chromium/http/function.post.d.ts +1 -0
  92. package/build/routes/chromium/http/function.post.js +1 -0
  93. package/build/routes/chromium/http/function.post.query.json +120 -0
  94. package/build/routes/chromium/http/function.post.response.json +4 -0
  95. package/build/routes/chromium/http/json-list.get.d.ts +1 -0
  96. package/build/routes/chromium/http/json-list.get.js +1 -0
  97. package/build/routes/chromium/http/json-list.get.response.json +52 -0
  98. package/build/routes/chromium/http/json-new.put.d.ts +1 -0
  99. package/build/routes/chromium/http/json-new.put.js +1 -0
  100. package/build/routes/chromium/http/json-new.put.response.json +44 -0
  101. package/build/routes/chromium/http/json-protocol.get.d.ts +1 -0
  102. package/build/routes/chromium/http/json-protocol.get.js +1 -0
  103. package/build/routes/chromium/http/json-protocol.get.response.json +6 -0
  104. package/build/routes/chromium/http/json-version.get.d.ts +1 -0
  105. package/build/routes/chromium/http/json-version.get.js +1 -0
  106. package/build/routes/chromium/http/json-version.get.response.json +44 -0
  107. package/build/routes/chromium/http/pdf.post.body.json +654 -0
  108. package/build/routes/chromium/http/pdf.post.d.ts +1 -0
  109. package/build/routes/chromium/http/pdf.post.js +1 -0
  110. package/build/routes/chromium/http/pdf.post.query.json +120 -0
  111. package/build/routes/chromium/http/pdf.post.response.json +5 -0
  112. package/build/routes/chromium/http/performance.post.body.json +26 -0
  113. package/build/routes/chromium/http/performance.post.d.ts +1 -0
  114. package/build/routes/chromium/http/performance.post.js +1 -0
  115. package/build/routes/chromium/http/performance.post.query.json +120 -0
  116. package/build/routes/chromium/http/performance.post.response.json +7 -0
  117. package/build/routes/chromium/http/scrape.post.body.json +557 -0
  118. package/build/routes/chromium/http/scrape.post.d.ts +1 -0
  119. package/build/routes/chromium/http/scrape.post.js +1 -0
  120. package/build/routes/chromium/http/scrape.post.query.json +183 -0
  121. package/build/routes/chromium/http/scrape.post.response.json +309 -0
  122. package/build/routes/chromium/http/screenshot.post.body.json +600 -0
  123. package/build/routes/chromium/http/screenshot.post.d.ts +1 -0
  124. package/build/routes/chromium/http/screenshot.post.js +1 -0
  125. package/build/routes/chromium/http/screenshot.post.query.json +120 -0
  126. package/build/routes/chromium/http/screenshot.post.response.json +5 -0
  127. package/build/routes/chromium/tests/content.spec.js +16 -16
  128. package/build/routes/chromium/tests/download.spec.js +3 -3
  129. package/build/routes/chromium/tests/function.spec.js +10 -10
  130. package/build/routes/chromium/tests/page-websocket.spec.d.ts +1 -0
  131. package/build/routes/chromium/tests/page-websocket.spec.js +97 -0
  132. package/build/routes/chromium/tests/pdf.spec.js +16 -16
  133. package/build/routes/chromium/tests/performance.spec.js +7 -7
  134. package/build/routes/chromium/tests/scrape.spec.js +15 -15
  135. package/build/routes/chromium/tests/screenshot.spec.js +17 -17
  136. package/build/routes/chromium/tests/websocket.spec.js +31 -37
  137. package/build/routes/chromium/ws/browser.d.ts +1 -16
  138. package/build/routes/chromium/ws/browser.js +1 -10
  139. package/build/routes/chromium/ws/cdp.d.ts +1 -0
  140. package/build/routes/chromium/ws/cdp.js +1 -0
  141. package/build/routes/chromium/ws/cdp.query.json +120 -0
  142. package/build/routes/chromium/ws/page.d.ts +1 -16
  143. package/build/routes/chromium/ws/page.js +1 -10
  144. package/build/routes/chromium/ws/playwright.d.ts +1 -0
  145. package/build/routes/chromium/ws/playwright.js +1 -0
  146. package/build/routes/firefox/ws/{playwright-firefox.d.ts → playwright.d.ts} +5 -5
  147. package/build/routes/firefox/ws/{playwright-firefox.js → playwright.js} +4 -4
  148. package/build/routes/management/http/{sessions-get.response.json → sessions.get.response.json} +11 -1
  149. package/build/routes/management/http/{static-get.js → static.get.js} +2 -2
  150. package/build/routes/webkit/ws/{playwright-webkit.d.ts → playwright.d.ts} +5 -5
  151. package/build/routes/webkit/ws/{playwright-webkit.js → playwright.js} +4 -4
  152. package/build/routes/webkit/ws/playwright.query.json +100 -0
  153. package/build/{routes/chromium/ws/cdp-chromium.d.ts → shared/browser.ws.d.ts} +4 -4
  154. package/build/shared/browser.ws.js +12 -0
  155. package/build/{routes/chromium/ws/playwright-chromium.d.ts → shared/chromium.playwright.ws.d.ts} +4 -4
  156. package/build/{routes/chromium/ws/playwright-chromium.js → shared/chromium.playwright.ws.js} +6 -3
  157. package/build/shared/chromium.ws.d.ts +16 -0
  158. package/build/shared/chromium.ws.js +10 -0
  159. package/build/{routes/chromium/http/content-post.d.ts → shared/content.http.d.ts} +3 -3
  160. package/build/{routes/chromium/http/content-post.js → shared/content.http.js} +3 -3
  161. package/build/{routes/chromium/http/download-post.d.ts → shared/download.http.d.ts} +3 -3
  162. package/build/{routes/chromium/http/download-post.js → shared/download.http.js} +4 -4
  163. package/build/{routes/chromium/http/function-post.d.ts → shared/function.http.d.ts} +3 -3
  164. package/build/{routes/chromium/http/function-post.js → shared/function.http.js} +4 -4
  165. package/build/{routes/chromium/http/json-new.d.ts → shared/json-list.http.d.ts} +2 -3
  166. package/build/{routes/chromium/http/json-list.js → shared/json-list.http.js} +5 -8
  167. package/build/{routes/chromium/http/json-list.d.ts → shared/json-new.http.d.ts} +2 -3
  168. package/build/shared/json-new.http.js +34 -0
  169. package/build/{routes/chromium/http/json-protocol-get.js → shared/json-protocol.http.js} +2 -2
  170. package/build/{routes/chromium/http/json-version-get.js → shared/json-version.http.js} +3 -3
  171. package/build/shared/page.ws.d.ts +16 -0
  172. package/build/shared/page.ws.js +13 -0
  173. package/build/{routes/chromium/http/pdf-post.d.ts → shared/pdf.http.d.ts} +3 -3
  174. package/build/{routes/chromium/http/pdf-post.js → shared/pdf.http.js} +3 -3
  175. package/build/{routes/chromium/http/performance.d.ts → shared/performance.http.d.ts} +3 -3
  176. package/build/{routes/chromium/http/performance.js → shared/performance.http.js} +4 -4
  177. package/build/{routes/chromium/http/scrape-post.d.ts → shared/scrape.http.d.ts} +3 -3
  178. package/build/{routes/chromium/http/scrape-post.js → shared/scrape.http.js} +3 -3
  179. package/build/{routes/chromium/http/screenshot-post.d.ts → shared/screenshot.http.d.ts} +3 -3
  180. package/build/{routes/chromium/http/screenshot-post.js → shared/screenshot.http.js} +3 -3
  181. package/build/shared/utils/performance/child.d.ts +1 -0
  182. package/build/{routes/chromium → shared}/utils/performance/main.js +1 -1
  183. package/build/shared/utils/performance/types.js +1 -0
  184. package/build/shim.js +2 -1
  185. package/build/types.d.ts +10 -8
  186. package/build/utils.d.ts +8 -3
  187. package/build/utils.js +24 -11
  188. package/docker/base/Dockerfile +1 -1
  189. package/docker/chrome/Dockerfile +4 -4
  190. package/docker/chromium/.dockerignore +16 -0
  191. package/docker/chromium/Dockerfile +40 -0
  192. package/docker/firefox/Dockerfile +1 -1
  193. package/docker/multi/Dockerfile +13 -1
  194. package/docker/webkit/Dockerfile +1 -1
  195. package/extensions/ublock/3p-filters.html +1 -1
  196. package/extensions/ublock/_locales/ar/messages.json +4 -0
  197. package/extensions/ublock/_locales/az/messages.json +4 -0
  198. package/extensions/ublock/_locales/be/messages.json +4 -0
  199. package/extensions/ublock/_locales/bg/messages.json +5 -1
  200. package/extensions/ublock/_locales/bn/messages.json +4 -0
  201. package/extensions/ublock/_locales/br_FR/messages.json +6 -2
  202. package/extensions/ublock/_locales/bs/messages.json +4 -0
  203. package/extensions/ublock/_locales/ca/messages.json +4 -0
  204. package/extensions/ublock/_locales/cs/messages.json +4 -0
  205. package/extensions/ublock/_locales/cv/messages.json +4 -0
  206. package/extensions/ublock/_locales/cy/messages.json +1294 -0
  207. package/extensions/ublock/_locales/da/messages.json +4 -0
  208. package/extensions/ublock/_locales/de/messages.json +5 -1
  209. package/extensions/ublock/_locales/el/messages.json +4 -0
  210. package/extensions/ublock/_locales/en/messages.json +4 -0
  211. package/extensions/ublock/_locales/en_GB/messages.json +4 -0
  212. package/extensions/ublock/_locales/eo/messages.json +9 -5
  213. package/extensions/ublock/_locales/es/messages.json +4 -0
  214. package/extensions/ublock/_locales/et/messages.json +4 -0
  215. package/extensions/ublock/_locales/eu/messages.json +8 -4
  216. package/extensions/ublock/_locales/fa/messages.json +4 -0
  217. package/extensions/ublock/_locales/fi/messages.json +4 -0
  218. package/extensions/ublock/_locales/fil/messages.json +4 -0
  219. package/extensions/ublock/_locales/fr/messages.json +4 -0
  220. package/extensions/ublock/_locales/fy/messages.json +4 -0
  221. package/extensions/ublock/_locales/gl/messages.json +4 -0
  222. package/extensions/ublock/_locales/gu/messages.json +4 -0
  223. package/extensions/ublock/_locales/he/messages.json +4 -0
  224. package/extensions/ublock/_locales/hi/messages.json +4 -0
  225. package/extensions/ublock/_locales/hr/messages.json +4 -0
  226. package/extensions/ublock/_locales/hu/messages.json +4 -0
  227. package/extensions/ublock/_locales/hy/messages.json +4 -0
  228. package/extensions/ublock/_locales/id/messages.json +5 -1
  229. package/extensions/ublock/_locales/it/messages.json +4 -0
  230. package/extensions/ublock/_locales/ja/messages.json +4 -0
  231. package/extensions/ublock/_locales/ka/messages.json +34 -30
  232. package/extensions/ublock/_locales/kk/messages.json +4 -0
  233. package/extensions/ublock/_locales/kn/messages.json +4 -0
  234. package/extensions/ublock/_locales/ko/messages.json +4 -0
  235. package/extensions/ublock/_locales/ku/messages.json +4 -0
  236. package/extensions/ublock/_locales/lt/messages.json +4 -0
  237. package/extensions/ublock/_locales/lv/messages.json +4 -0
  238. package/extensions/ublock/_locales/mk/messages.json +4 -0
  239. package/extensions/ublock/_locales/ml/messages.json +4 -0
  240. package/extensions/ublock/_locales/mr/messages.json +4 -0
  241. package/extensions/ublock/_locales/ms/messages.json +13 -9
  242. package/extensions/ublock/_locales/nb/messages.json +4 -0
  243. package/extensions/ublock/_locales/nl/messages.json +4 -0
  244. package/extensions/ublock/_locales/no/messages.json +4 -0
  245. package/extensions/ublock/_locales/oc/messages.json +4 -0
  246. package/extensions/ublock/_locales/pa/messages.json +4 -0
  247. package/extensions/ublock/_locales/pl/messages.json +5 -1
  248. package/extensions/ublock/_locales/pt_BR/messages.json +4 -0
  249. package/extensions/ublock/_locales/pt_PT/messages.json +4 -0
  250. package/extensions/ublock/_locales/ro/messages.json +5 -1
  251. package/extensions/ublock/_locales/ru/messages.json +4 -0
  252. package/extensions/ublock/_locales/si/messages.json +4 -0
  253. package/extensions/ublock/_locales/sk/messages.json +4 -0
  254. package/extensions/ublock/_locales/sl/messages.json +4 -0
  255. package/extensions/ublock/_locales/so/messages.json +4 -0
  256. package/extensions/ublock/_locales/sq/messages.json +4 -0
  257. package/extensions/ublock/_locales/sr/messages.json +4 -0
  258. package/extensions/ublock/_locales/sv/messages.json +4 -0
  259. package/extensions/ublock/_locales/sw/messages.json +4 -0
  260. package/extensions/ublock/_locales/ta/messages.json +4 -0
  261. package/extensions/ublock/_locales/te/messages.json +4 -0
  262. package/extensions/ublock/_locales/th/messages.json +12 -8
  263. package/extensions/ublock/_locales/tr/messages.json +4 -0
  264. package/extensions/ublock/_locales/uk/messages.json +4 -0
  265. package/extensions/ublock/_locales/ur/messages.json +4 -0
  266. package/extensions/ublock/_locales/vi/messages.json +4 -0
  267. package/extensions/ublock/_locales/zh_CN/messages.json +6 -2
  268. package/extensions/ublock/_locales/zh_TW/messages.json +6 -2
  269. package/extensions/ublock/assets/assets.json +11 -11
  270. package/extensions/ublock/assets/resources/scriptlets.js +660 -378
  271. package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +7173 -3455
  272. package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +18829 -1918
  273. package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +21 -26
  274. package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +118 -46
  275. package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +710 -1117
  276. package/extensions/ublock/assets/ublock/badlists.txt +0 -4
  277. package/extensions/ublock/assets/ublock/badware.min.txt +116 -105
  278. package/extensions/ublock/assets/ublock/filters.min.txt +1443 -1097
  279. package/extensions/ublock/assets/ublock/privacy.min.txt +50 -31
  280. package/extensions/ublock/assets/ublock/quick-fixes.min.txt +97 -108
  281. package/extensions/ublock/assets/ublock/unbreak.min.txt +64 -21
  282. package/extensions/ublock/css/1p-filters.css +4 -0
  283. package/extensions/ublock/css/3p-filters.css +6 -4
  284. package/extensions/ublock/css/common.css +1 -1
  285. package/extensions/ublock/css/fa-icons.css +1 -0
  286. package/extensions/ublock/css/logger-ui.css +72 -52
  287. package/extensions/ublock/css/popup-fenix.css +1 -1
  288. package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
  289. package/extensions/ublock/js/3p-filters.js +3 -3
  290. package/extensions/ublock/js/assets.js +7 -4
  291. package/extensions/ublock/js/background.js +1 -3
  292. package/extensions/ublock/js/benchmarks.js +1 -0
  293. package/extensions/ublock/js/broadcast.js +12 -0
  294. package/extensions/ublock/js/click2load.js +2 -3
  295. package/extensions/ublock/js/codemirror/ubo-static-filtering.js +1 -0
  296. package/extensions/ublock/js/commands.js +10 -0
  297. package/extensions/ublock/js/contentscript-extra.js +13 -11
  298. package/extensions/ublock/js/contentscript.js +0 -31
  299. package/extensions/ublock/js/contextmenu.js +5 -1
  300. package/extensions/ublock/js/dyna-rules.js +83 -52
  301. package/extensions/ublock/js/fa-icons.js +1 -0
  302. package/extensions/ublock/js/filtering-context.js +0 -2
  303. package/extensions/ublock/js/i18n.js +1 -5
  304. package/extensions/ublock/js/logger-ui.js +71 -38
  305. package/extensions/ublock/js/logger.js +18 -14
  306. package/extensions/ublock/js/messaging.js +17 -5
  307. package/extensions/ublock/js/popup-fenix.js +6 -6
  308. package/extensions/ublock/js/scriptlet-filtering-core.js +14 -12
  309. package/extensions/ublock/js/scriptlet-filtering.js +149 -53
  310. package/extensions/ublock/js/scriptlets/scriptlet-loglevel-1.js +49 -0
  311. package/extensions/ublock/js/scriptlets/scriptlet-loglevel-2.js +49 -0
  312. package/extensions/ublock/js/scriptlets/should-inject-contentscript.js +1 -1
  313. package/extensions/ublock/js/static-dnr-filtering.js +4 -2
  314. package/extensions/ublock/js/static-filtering-parser.js +14 -8
  315. package/extensions/ublock/js/static-net-filtering.js +32 -30
  316. package/extensions/ublock/js/storage.js +18 -4
  317. package/extensions/ublock/js/traffic.js +3 -3
  318. package/extensions/ublock/js/ublock.js +1 -1
  319. package/extensions/ublock/js/vapi-background.js +15 -7
  320. package/extensions/ublock/logger-ui.html +18 -10
  321. package/extensions/ublock/manifest.json +4 -1
  322. package/extensions/ublock/web_accessible_resources/chartbeat.js +3 -0
  323. package/package.json +12 -11
  324. package/scripts/build-function.js +1 -1
  325. package/scripts/build-open-api.js +3 -2
  326. package/scripts/clean.js +6 -1
  327. package/scripts/install-debugger.js +20 -0
  328. package/scripts/install-devtools.js +40 -0
  329. package/src/browserless.ts +11 -9
  330. package/src/browsers/chrome.cdp.ts +10 -0
  331. package/src/browsers/chrome.playwright.ts +10 -0
  332. package/src/browsers/{cdp-chromium.ts → chromium.cdp.ts} +20 -13
  333. package/src/browsers/{playwright-chromium.ts → chromium.playwright.ts} +7 -6
  334. package/src/browsers/{playwright-firefox.ts → firefox.playwright.ts} +5 -5
  335. package/src/browsers/index.ts +160 -23
  336. package/src/browsers/{playwright-webkit.ts → webkit.playwright.ts} +5 -5
  337. package/src/exports.ts +6 -4
  338. package/src/http.ts +21 -0
  339. package/src/router.ts +21 -5
  340. package/src/routes/chrome/http/content.post.ts +14 -0
  341. package/src/routes/chrome/http/download.post.ts +14 -0
  342. package/src/routes/chrome/http/function.post.ts +14 -0
  343. package/src/routes/chrome/http/json-list.get.ts +1 -0
  344. package/src/routes/chrome/http/json-new.put.ts +1 -0
  345. package/src/routes/chrome/http/json-protocol.get.ts +1 -0
  346. package/src/routes/chrome/http/json-version.get.ts +1 -0
  347. package/src/routes/chrome/http/pdf.post.ts +14 -0
  348. package/src/routes/chrome/http/performance.post.ts +14 -0
  349. package/src/routes/chrome/http/scrape.post.ts +14 -0
  350. package/src/routes/chrome/http/screenshot.post.ts +14 -0
  351. package/src/routes/chrome/tests/content.spec.ts +375 -0
  352. package/src/routes/chrome/tests/download.spec.ts +77 -0
  353. package/src/routes/chrome/tests/function.spec.ts +282 -0
  354. package/src/routes/chrome/tests/json-version.spec.ts +52 -0
  355. package/src/routes/chrome/tests/page-websocket.spec.ts +129 -0
  356. package/src/routes/chrome/tests/pdf.spec.ts +380 -0
  357. package/src/routes/chrome/tests/performance.spec.ts +155 -0
  358. package/src/routes/chrome/tests/scrape.spec.ts +417 -0
  359. package/src/routes/chrome/tests/screenshot.spec.ts +387 -0
  360. package/src/routes/chrome/tests/websocket.spec.ts +491 -0
  361. package/src/routes/chrome/ws/browser.ts +8 -0
  362. package/src/routes/chrome/ws/cdp.ts +12 -0
  363. package/src/routes/chrome/ws/page.ts +8 -0
  364. package/src/routes/chrome/ws/playwright.ts +12 -0
  365. package/src/routes/chromium/http/content.post.ts +6 -0
  366. package/src/routes/chromium/http/download.post.ts +6 -0
  367. package/src/routes/chromium/http/function.post.ts +6 -0
  368. package/src/routes/chromium/http/json-list.get.ts +1 -0
  369. package/src/routes/chromium/http/json-new.put.ts +1 -0
  370. package/src/routes/chromium/http/json-protocol.get.ts +1 -0
  371. package/src/routes/chromium/http/json-version.get.ts +1 -0
  372. package/src/routes/chromium/http/pdf.post.ts +6 -0
  373. package/src/routes/chromium/http/performance.post.ts +6 -0
  374. package/src/routes/chromium/http/scrape.post.ts +6 -0
  375. package/src/routes/chromium/http/screenshot.post.ts +6 -0
  376. package/src/routes/chromium/tests/content.spec.ts +36 -28
  377. package/src/routes/chromium/tests/download.spec.ts +3 -3
  378. package/src/routes/chromium/tests/function.spec.ts +18 -15
  379. package/src/routes/chromium/tests/page-websocket.spec.ts +129 -0
  380. package/src/routes/chromium/tests/pdf.spec.ts +31 -26
  381. package/src/routes/chromium/tests/performance.spec.ts +46 -34
  382. package/src/routes/chromium/tests/scrape.spec.ts +23 -20
  383. package/src/routes/chromium/tests/screenshot.spec.ts +24 -24
  384. package/src/routes/chromium/tests/websocket.spec.ts +31 -40
  385. package/src/routes/chromium/ws/browser.ts +1 -29
  386. package/src/routes/chromium/ws/cdp.ts +1 -0
  387. package/src/routes/chromium/ws/page.ts +1 -29
  388. package/src/routes/chromium/ws/playwright.ts +4 -0
  389. package/src/routes/firefox/ws/{playwright-firefox.ts → playwright.ts} +5 -5
  390. package/src/routes/management/http/{static-get.ts → static.get.ts} +2 -2
  391. package/src/routes/webkit/ws/{playwright-webkit.ts → playwright.ts} +5 -5
  392. package/src/shared/browser.ws.ts +34 -0
  393. package/src/{routes/chromium/ws/playwright-chromium.ts → shared/chromium.playwright.ws.ts} +7 -4
  394. package/src/{routes/chromium/ws/cdp-chromium.ts → shared/chromium.ws.ts} +6 -6
  395. package/src/{routes/chromium/http/content-post.ts → shared/content.http.ts} +4 -4
  396. package/src/{routes/chromium/http/download-post.ts → shared/download.http.ts} +4 -4
  397. package/src/{routes/chromium/http/function-post.ts → shared/function.http.ts} +4 -4
  398. package/src/shared/json-list.http.ts +35 -0
  399. package/src/{routes/chromium/http/json-new.ts → shared/json-new.http.ts} +23 -7
  400. package/src/{routes/chromium/http/json-protocol-get.ts → shared/json-protocol.http.ts} +3 -5
  401. package/src/{routes/chromium/http/json-version-get.ts → shared/json-version.http.ts} +4 -5
  402. package/src/shared/page.ws.ts +35 -0
  403. package/src/{routes/chromium/http/pdf-post.ts → shared/pdf.http.ts} +4 -4
  404. package/src/{routes/chromium/http/performance.ts → shared/performance.http.ts} +4 -4
  405. package/src/{routes/chromium/http/scrape-post.ts → shared/scrape.http.ts} +4 -4
  406. package/src/{routes/chromium/http/screenshot-post.ts → shared/screenshot.http.ts} +4 -4
  407. package/src/{routes/chromium → shared}/utils/function/handler.ts +2 -2
  408. package/src/{routes/chromium → shared}/utils/performance/main.ts +1 -2
  409. package/src/shim.ts +2 -1
  410. package/src/types.ts +27 -20
  411. package/src/utils.ts +32 -14
  412. package/static/devtools/Images/accelerometer-back.svg +1 -0
  413. package/static/devtools/Images/accelerometer-bottom.png +0 -0
  414. package/static/devtools/Images/accelerometer-front.svg +1 -0
  415. package/static/devtools/Images/accelerometer-left.png +0 -0
  416. package/static/devtools/Images/accelerometer-right.png +0 -0
  417. package/static/devtools/Images/accelerometer-top.png +0 -0
  418. package/static/devtools/Images/baseline-icon.svg +1 -0
  419. package/static/devtools/Images/breaking_change_icon.svg +1 -0
  420. package/static/devtools/Images/checkboxCheckmark.svg +1 -0
  421. package/static/devtools/Images/checker.png +0 -0
  422. package/static/devtools/Images/chevrons.svg +1 -0
  423. package/static/devtools/Images/chromeDisabledSelect.png +0 -0
  424. package/static/devtools/Images/chromeDisabledSelect_2x.png +0 -0
  425. package/static/devtools/Images/chromeLeft.avif +0 -0
  426. package/static/devtools/Images/chromeMiddle.avif +0 -0
  427. package/static/devtools/Images/chromeRight.avif +0 -0
  428. package/static/devtools/Images/chromeSelect.svg +1 -0
  429. package/static/devtools/Images/chromeSelectDark.svg +1 -0
  430. package/static/devtools/Images/cssoverview_icons_2x.avif +0 -0
  431. package/static/devtools/Images/dropdown_7x6_icon.svg +1 -0
  432. package/static/devtools/Images/elements_panel_icon.svg +1 -0
  433. package/static/devtools/Images/errorWave.svg +1 -0
  434. package/static/devtools/Images/error_icon.svg +1 -0
  435. package/static/devtools/Images/feedback_thin_16x16_icon.svg +1 -0
  436. package/static/devtools/Images/flex-align-content-center-icon.svg +1 -0
  437. package/static/devtools/Images/flex-align-content-end-icon.svg +1 -0
  438. package/static/devtools/Images/flex-align-content-space-around-icon.svg +1 -0
  439. package/static/devtools/Images/flex-align-content-space-between-icon.svg +1 -0
  440. package/static/devtools/Images/flex-align-content-space-evenly-icon.svg +1 -0
  441. package/static/devtools/Images/flex-align-content-start-icon.svg +1 -0
  442. package/static/devtools/Images/flex-align-content-stretch-icon.svg +1 -0
  443. package/static/devtools/Images/flex-align-items-center-icon.svg +1 -0
  444. package/static/devtools/Images/flex-align-items-flex-end-icon.svg +1 -0
  445. package/static/devtools/Images/flex-align-items-flex-start-icon.svg +1 -0
  446. package/static/devtools/Images/flex-align-items-stretch-icon.svg +1 -0
  447. package/static/devtools/Images/flex-align-self-center-icon.svg +1 -0
  448. package/static/devtools/Images/flex-align-self-flex-end-icon.svg +1 -0
  449. package/static/devtools/Images/flex-align-self-flex-start-icon.svg +1 -0
  450. package/static/devtools/Images/flex-align-self-stretch-icon.svg +1 -0
  451. package/static/devtools/Images/flex-direction-icon.svg +1 -0
  452. package/static/devtools/Images/flex-justify-content-center-icon.svg +1 -0
  453. package/static/devtools/Images/flex-justify-content-flex-end-icon.svg +1 -0
  454. package/static/devtools/Images/flex-justify-content-flex-start-icon.svg +1 -0
  455. package/static/devtools/Images/flex-justify-content-space-around-icon.svg +1 -0
  456. package/static/devtools/Images/flex-justify-content-space-between-icon.svg +1 -0
  457. package/static/devtools/Images/flex-justify-content-space-evenly-icon.svg +1 -0
  458. package/static/devtools/Images/ic_checkmark_16x16.svg +3 -0
  459. package/static/devtools/Images/ic_delete_filter.svg +1 -0
  460. package/static/devtools/Images/ic_delete_list.svg +1 -0
  461. package/static/devtools/Images/ic_info_black_18dp.svg +1 -0
  462. package/static/devtools/Images/ic_page_next_16x16_icon.svg +1 -0
  463. package/static/devtools/Images/ic_page_prev_16x16_icon.svg +1 -0
  464. package/static/devtools/Images/ic_redo_16x16_icon.svg +1 -0
  465. package/static/devtools/Images/ic_show_node_16x16.svg +4 -0
  466. package/static/devtools/Images/ic_suggest_color.svg +6 -0
  467. package/static/devtools/Images/ic_undo_16x16_icon.svg +1 -0
  468. package/static/devtools/Images/ic_warning_black_18dp.svg +1 -0
  469. package/static/devtools/Images/issue-text-icon.svg +1 -0
  470. package/static/devtools/Images/largeIcons.svg +1 -0
  471. package/static/devtools/Images/lighthouse_logo.svg +1 -0
  472. package/static/devtools/Images/link_icon.svg +1 -0
  473. package/static/devtools/Images/mediumIcons.svg +1 -0
  474. package/static/devtools/Images/navigationControls.png +0 -0
  475. package/static/devtools/Images/navigationControls_2x.png +0 -0
  476. package/static/devtools/Images/network_panel_icon.svg +1 -0
  477. package/static/devtools/Images/nodeIcon.avif +0 -0
  478. package/static/devtools/Images/node_search_icon.svg +1 -0
  479. package/static/devtools/Images/popoverArrows.png +0 -0
  480. package/static/devtools/Images/profileGroupIcon.png +0 -0
  481. package/static/devtools/Images/profileIcon.png +0 -0
  482. package/static/devtools/Images/profileSmallIcon.png +0 -0
  483. package/static/devtools/Images/radioDot-dark-theme.png +0 -0
  484. package/static/devtools/Images/radioDot.png +0 -0
  485. package/static/devtools/Images/refresh_12x12_icon.svg +1 -0
  486. package/static/devtools/Images/resizeDiagonal.svg +1 -0
  487. package/static/devtools/Images/resizeHorizontal.svg +1 -0
  488. package/static/devtools/Images/resizeVertical.svg +1 -0
  489. package/static/devtools/Images/resourceCSSIcon.png +0 -0
  490. package/static/devtools/Images/resourceDocumentIcon.png +0 -0
  491. package/static/devtools/Images/resourceDocumentIconSmall.png +0 -0
  492. package/static/devtools/Images/resourceJSIcon.png +0 -0
  493. package/static/devtools/Images/resourcePlainIcon.png +0 -0
  494. package/static/devtools/Images/resourcePlainIconSmall.png +0 -0
  495. package/static/devtools/Images/resourcesTimeGraphIcon.avif +0 -0
  496. package/static/devtools/Images/searchNext.png +0 -0
  497. package/static/devtools/Images/searchPrev.png +0 -0
  498. package/static/devtools/Images/securityIcons.svg +1 -0
  499. package/static/devtools/Images/settings_14x14_icon.svg +1 -0
  500. package/static/devtools/Images/smallIcons.svg +1 -0
  501. package/static/devtools/Images/sources_panel_icon.svg +1 -0
  502. package/static/devtools/Images/speech.png +0 -0
  503. package/static/devtools/Images/toolbarResizerVertical.png +0 -0
  504. package/static/devtools/Images/touchCursor.png +0 -0
  505. package/static/devtools/Images/touchCursor_2x.png +0 -0
  506. package/static/devtools/Images/treeoutlineTriangles.svg +1 -0
  507. package/static/devtools/Images/warning_icon.svg +1 -0
  508. package/static/devtools/Images/whatsnew.avif +0 -0
  509. package/static/devtools/Tests.js +1654 -0
  510. package/static/devtools/accessibility/accessibility-legacy.js +1 -0
  511. package/static/devtools/accessibility/accessibility-meta.js +1 -0
  512. package/static/devtools/accessibility/accessibility.js +1 -0
  513. package/static/devtools/accessibility/accessibility_module.js +1 -0
  514. package/static/devtools/accessibility_test_runner/accessibility_test_runner.js +77 -0
  515. package/static/devtools/accessibility_test_runner/accessibility_test_runner_module.js +0 -0
  516. package/static/devtools/animation/animation-legacy.js +1 -0
  517. package/static/devtools/animation/animation-meta.js +1 -0
  518. package/static/devtools/animation/animation.js +1 -0
  519. package/static/devtools/animation/animation_module.js +1 -0
  520. package/static/devtools/application_test_runner/AppcacheTestRunner.js +220 -0
  521. package/static/devtools/application_test_runner/CacheStorageTestRunner.js +286 -0
  522. package/static/devtools/application_test_runner/IndexedDBTestRunner.js +476 -0
  523. package/static/devtools/application_test_runner/ResourceTreeTestRunner.js +99 -0
  524. package/static/devtools/application_test_runner/ResourcesTestRunner.js +167 -0
  525. package/static/devtools/application_test_runner/ServiceWorkersTestRunner.js +131 -0
  526. package/static/devtools/application_test_runner/application_test_runner.js +10 -0
  527. package/static/devtools/application_test_runner/application_test_runner_module.js +0 -0
  528. package/static/devtools/axe_core_test_runner/axe_core_test_runner.js +174 -0
  529. package/static/devtools/axe_core_test_runner/axe_core_test_runner_module.js +0 -0
  530. package/static/devtools/bindings/bindings-legacy.js +1 -0
  531. package/static/devtools/bindings/bindings.js +1 -0
  532. package/static/devtools/bindings_test_runner/AutomappingTestRunner.js +130 -0
  533. package/static/devtools/bindings_test_runner/BindingsTestRunner.js +238 -0
  534. package/static/devtools/bindings_test_runner/IsolatedFilesystemTestRunner.js +287 -0
  535. package/static/devtools/bindings_test_runner/OverridesTestRunner.js +26 -0
  536. package/static/devtools/bindings_test_runner/PersistenceTestRunner.js +109 -0
  537. package/static/devtools/bindings_test_runner/bindings_test_runner.js +9 -0
  538. package/static/devtools/bindings_test_runner/bindings_test_runner_module.js +0 -0
  539. package/static/devtools/browser_debugger/browser_debugger-legacy.js +1 -0
  540. package/static/devtools/browser_debugger/browser_debugger-meta.js +1 -0
  541. package/static/devtools/browser_debugger/browser_debugger.js +1 -0
  542. package/static/devtools/browser_debugger/browser_debugger_module.js +1 -0
  543. package/static/devtools/browser_sdk/browser_sdk-meta.js +1 -0
  544. package/static/devtools/browser_sdk/browser_sdk.js +1 -0
  545. package/static/devtools/changes/changes-legacy.js +1 -0
  546. package/static/devtools/changes/changes-meta.js +1 -0
  547. package/static/devtools/changes/changes.js +1 -0
  548. package/static/devtools/changes/changes_module.js +1 -0
  549. package/static/devtools/client_variations/client_variations.js +1 -0
  550. package/static/devtools/client_variations/client_variations_module.js +0 -0
  551. package/static/devtools/cm/cm.js +1 -0
  552. package/static/devtools/cm/cm_module.js +1 -0
  553. package/static/devtools/cm_headless/cm_headless.js +1 -0
  554. package/static/devtools/color_picker/color_picker-legacy.js +1 -0
  555. package/static/devtools/color_picker/color_picker.js +1 -0
  556. package/static/devtools/color_picker/color_picker_module.js +1 -0
  557. package/static/devtools/common/common-legacy.js +1 -0
  558. package/static/devtools/common/common.js +1 -0
  559. package/static/devtools/component_helpers/component_helpers.js +1 -0
  560. package/static/devtools/components/components-legacy.js +1 -0
  561. package/static/devtools/components/components.js +1 -0
  562. package/static/devtools/console/console-legacy.js +1 -0
  563. package/static/devtools/console/console-meta.js +1 -0
  564. package/static/devtools/console/console.js +6 -0
  565. package/static/devtools/console/console_module.js +1 -0
  566. package/static/devtools/console_counters/console_counters-legacy.js +1 -0
  567. package/static/devtools/console_counters/console_counters.js +1 -0
  568. package/static/devtools/console_test_runner/console_test_runner.js +696 -0
  569. package/static/devtools/console_test_runner/console_test_runner_module.js +0 -0
  570. package/static/devtools/cookie_table/cookie_table-legacy.js +1 -0
  571. package/static/devtools/cookie_table/cookie_table.js +1 -0
  572. package/static/devtools/cookie_table/cookie_table_module.js +1 -0
  573. package/static/devtools/coverage/coverage-legacy.js +1 -0
  574. package/static/devtools/coverage/coverage-meta.js +1 -0
  575. package/static/devtools/coverage/coverage.js +1 -0
  576. package/static/devtools/coverage/coverage_module.js +1 -0
  577. package/static/devtools/coverage_test_runner/coverage_test_runner.js +151 -0
  578. package/static/devtools/coverage_test_runner/coverage_test_runner_module.js +0 -0
  579. package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner.js +72 -0
  580. package/static/devtools/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js +0 -0
  581. package/static/devtools/css_overview/css_overview-meta.js +1 -0
  582. package/static/devtools/css_overview/css_overview.js +146 -0
  583. package/static/devtools/css_overview/css_overview_module.js +1 -0
  584. package/static/devtools/data_grid/data_grid-legacy.js +1 -0
  585. package/static/devtools/data_grid/data_grid.js +1 -0
  586. package/static/devtools/data_grid/data_grid_module.js +1 -0
  587. package/static/devtools/data_grid_test_runner/data_grid_test_runner.js +78 -0
  588. package/static/devtools/data_grid_test_runner/data_grid_test_runner_module.js +0 -0
  589. package/static/devtools/developer_resources/developer_resources-legacy.js +1 -0
  590. package/static/devtools/developer_resources/developer_resources-meta.js +1 -0
  591. package/static/devtools/developer_resources/developer_resources.js +1 -0
  592. package/static/devtools/developer_resources/developer_resources_module.js +1 -0
  593. package/static/devtools/device_mode_test_runner/device_mode_test_runner.js +45 -0
  594. package/static/devtools/device_mode_test_runner/device_mode_test_runner_module.js +0 -0
  595. package/static/devtools/devtools_app.html +20 -0
  596. package/static/devtools/devtools_app.js +1 -0
  597. package/static/devtools/devtools_compatibility.js +1546 -0
  598. package/static/devtools/diff/diff-legacy.js +1 -0
  599. package/static/devtools/diff/diff.js +1 -0
  600. package/static/devtools/diff/diff_module.js +0 -0
  601. package/static/devtools/dom_extension/dom_extension.js +1 -0
  602. package/static/devtools/elements/elements-legacy.js +1 -0
  603. package/static/devtools/elements/elements-meta.js +1 -0
  604. package/static/devtools/elements/elements.js +469 -0
  605. package/static/devtools/elements/elements_module.js +1 -0
  606. package/static/devtools/elements_test_runner/EditDOMTestRunner.js +78 -0
  607. package/static/devtools/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js +39 -0
  608. package/static/devtools/elements_test_runner/ElementsTestRunner.js +1280 -0
  609. package/static/devtools/elements_test_runner/SetOuterHTMLTestRunner.js +115 -0
  610. package/static/devtools/elements_test_runner/StylesUpdateLinksTestRunner.js +134 -0
  611. package/static/devtools/elements_test_runner/elements_test_runner.js +9 -0
  612. package/static/devtools/elements_test_runner/elements_test_runner_module.js +0 -0
  613. package/static/devtools/emulated_devices/emulated_devices_module.js +0 -0
  614. package/static/devtools/emulated_devices/optimized/MotoG4-landscape.avif +0 -0
  615. package/static/devtools/emulated_devices/optimized/MotoG4-portrait.avif +0 -0
  616. package/static/devtools/emulated_devices/optimized/Nexus5X-landscape.avif +0 -0
  617. package/static/devtools/emulated_devices/optimized/Nexus5X-portrait.avif +0 -0
  618. package/static/devtools/emulated_devices/optimized/Nexus6P-landscape.avif +0 -0
  619. package/static/devtools/emulated_devices/optimized/Nexus6P-portrait.avif +0 -0
  620. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-1x.avif +0 -0
  621. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-default-2x.avif +0 -0
  622. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-1x.avif +0 -0
  623. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-keyboard-2x.avif +0 -0
  624. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-1x.avif +0 -0
  625. package/static/devtools/emulated_devices/optimized/google-nexus-5-horizontal-navigation-2x.avif +0 -0
  626. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-1x.avif +0 -0
  627. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-default-2x.avif +0 -0
  628. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-1x.avif +0 -0
  629. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-keyboard-2x.avif +0 -0
  630. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-1x.avif +0 -0
  631. package/static/devtools/emulated_devices/optimized/google-nexus-5-vertical-navigation-2x.avif +0 -0
  632. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-1x.avif +0 -0
  633. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-default-2x.avif +0 -0
  634. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-1x.avif +0 -0
  635. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-keyboard-2x.avif +0 -0
  636. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-1x.avif +0 -0
  637. package/static/devtools/emulated_devices/optimized/google-nexus-5x-horizontal-navigation-2x.avif +0 -0
  638. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-1x.avif +0 -0
  639. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-default-2x.avif +0 -0
  640. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-1x.avif +0 -0
  641. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-keyboard-2x.avif +0 -0
  642. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-1x.avif +0 -0
  643. package/static/devtools/emulated_devices/optimized/google-nexus-5x-vertical-navigation-2x.avif +0 -0
  644. package/static/devtools/emulated_devices/optimized/iPad-landscape.avif +0 -0
  645. package/static/devtools/emulated_devices/optimized/iPad-portrait.avif +0 -0
  646. package/static/devtools/emulated_devices/optimized/iPhone5-landscape.avif +0 -0
  647. package/static/devtools/emulated_devices/optimized/iPhone5-portrait.avif +0 -0
  648. package/static/devtools/emulated_devices/optimized/iPhone6-landscape.avif +0 -0
  649. package/static/devtools/emulated_devices/optimized/iPhone6-portrait.avif +0 -0
  650. package/static/devtools/emulated_devices/optimized/iPhone6Plus-landscape.avif +0 -0
  651. package/static/devtools/emulated_devices/optimized/iPhone6Plus-portrait.avif +0 -0
  652. package/static/devtools/emulation/emulation-legacy.js +1 -0
  653. package/static/devtools/emulation/emulation-meta.js +1 -0
  654. package/static/devtools/emulation/emulation.js +1 -0
  655. package/static/devtools/event_listeners/event_listeners-legacy.js +1 -0
  656. package/static/devtools/event_listeners/event_listeners.js +1 -0
  657. package/static/devtools/event_listeners/event_listeners_module.js +1 -0
  658. package/static/devtools/extensions/extensions-legacy.js +1 -0
  659. package/static/devtools/extensions/extensions.js +1 -0
  660. package/static/devtools/extensions_test_runner/ExtensionsNetworkTestRunner.js +27 -0
  661. package/static/devtools/extensions_test_runner/ExtensionsTestRunner.js +68 -0
  662. package/static/devtools/extensions_test_runner/extensions_test_runner.js +6 -0
  663. package/static/devtools/extensions_test_runner/extensions_test_runner_module.js +0 -0
  664. package/static/devtools/formatter/formatter-legacy.js +1 -0
  665. package/static/devtools/formatter/formatter.js +1 -0
  666. package/static/devtools/formatter/formatter_module.js +0 -0
  667. package/static/devtools/formatter_worker/FormatterActions.js +1 -0
  668. package/static/devtools/formatter_worker/formatter_worker-entrypoint.js +1 -0
  669. package/static/devtools/formatter_worker/formatter_worker.js +1 -0
  670. package/static/devtools/har_importer/har_importer-legacy.js +1 -0
  671. package/static/devtools/har_importer/har_importer.js +1 -0
  672. package/static/devtools/har_importer/har_importer_module.js +0 -0
  673. package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner.js +740 -0
  674. package/static/devtools/heap_profiler_test_runner/heap_profiler_test_runner_module.js +0 -0
  675. package/static/devtools/heap_snapshot_model/heap_snapshot_model-legacy.js +1 -0
  676. package/static/devtools/heap_snapshot_model/heap_snapshot_model.js +1 -0
  677. package/static/devtools/heap_snapshot_model/heap_snapshot_model_module.js +0 -0
  678. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-entrypoint.js +1 -0
  679. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker-legacy.js +1 -0
  680. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker.js +1 -0
  681. package/static/devtools/heap_snapshot_worker/heap_snapshot_worker_module.js +0 -0
  682. package/static/devtools/help/help-legacy.js +1 -0
  683. package/static/devtools/help/help-meta.js +1 -0
  684. package/static/devtools/help/help.js +1 -0
  685. package/static/devtools/help/help_module.js +1 -0
  686. package/static/devtools/host/host-legacy.js +1 -0
  687. package/static/devtools/host/host.js +1 -0
  688. package/static/devtools/i18n/i18n.js +1 -0
  689. package/static/devtools/i18n/i18n_locales-tsconfig.json +8 -0
  690. package/static/devtools/i18n/locales/en-US.json +3566 -0
  691. package/static/devtools/inline_editor/inline_editor-legacy.js +1 -0
  692. package/static/devtools/inline_editor/inline_editor.js +203 -0
  693. package/static/devtools/inline_editor/inline_editor_module.js +1 -0
  694. package/static/devtools/input/input-legacy.js +1 -0
  695. package/static/devtools/input/input-meta.js +1 -0
  696. package/static/devtools/input/input.js +1 -0
  697. package/static/devtools/input/input_module.js +1 -0
  698. package/static/devtools/inspector.html +20 -0
  699. package/static/devtools/inspector.js +1 -0
  700. package/static/devtools/inspector_main/inspector_main-legacy.js +1 -0
  701. package/static/devtools/inspector_main/inspector_main-meta.js +1 -0
  702. package/static/devtools/inspector_main/inspector_main.js +1 -0
  703. package/static/devtools/integration_test_runner.html +14 -0
  704. package/static/devtools/integration_test_runner.js +2 -0
  705. package/static/devtools/issues/issues-legacy.js +1 -0
  706. package/static/devtools/issues/issues-meta.js +1 -0
  707. package/static/devtools/issues/issues.js +67 -0
  708. package/static/devtools/issues/issues_module.js +1 -0
  709. package/static/devtools/javascript_metadata/javascript_metadata-legacy.js +1 -0
  710. package/static/devtools/javascript_metadata/javascript_metadata.js +1 -0
  711. package/static/devtools/javascript_metadata/javascript_metadata_module.js +0 -0
  712. package/static/devtools/js_app.html +20 -0
  713. package/static/devtools/js_app.js +1 -0
  714. package/static/devtools/js_main/js_main-legacy.js +1 -0
  715. package/static/devtools/js_main/js_main.js +1 -0
  716. package/static/devtools/js_profiler/js_profiler-meta.js +1 -0
  717. package/static/devtools/js_profiler/js_profiler.js +1 -0
  718. package/static/devtools/js_profiler/js_profiler_module.js +0 -0
  719. package/static/devtools/layer_viewer/layer_viewer-legacy.js +1 -0
  720. package/static/devtools/layer_viewer/layer_viewer.js +1 -0
  721. package/static/devtools/layer_viewer/layer_viewer_module.js +1 -0
  722. package/static/devtools/layers/layers-legacy.js +1 -0
  723. package/static/devtools/layers/layers-meta.js +1 -0
  724. package/static/devtools/layers/layers.js +1 -0
  725. package/static/devtools/layers/layers_module.js +0 -0
  726. package/static/devtools/layers_test_runner/layers_test_runner.js +156 -0
  727. package/static/devtools/layers_test_runner/layers_test_runner_module.js +0 -0
  728. package/static/devtools/lighthouse/lighthouse-legacy.js +1 -0
  729. package/static/devtools/lighthouse/lighthouse-meta.js +1 -0
  730. package/static/devtools/lighthouse/lighthouse.js +70 -0
  731. package/static/devtools/lighthouse/lighthouse_module.js +1 -0
  732. package/static/devtools/lighthouse_test_runner/lighthouse_test_runner.js +136 -0
  733. package/static/devtools/lighthouse_test_runner/lighthouse_test_runner_module.js +0 -0
  734. package/static/devtools/lighthouse_worker/LighthouseService.js +195 -0
  735. package/static/devtools/lighthouse_worker/lighthouse_worker.js +6 -0
  736. package/static/devtools/lighthouse_worker.js +1 -0
  737. package/static/devtools/linear_memory_inspector/linear_memory_inspector-legacy.js +1 -0
  738. package/static/devtools/linear_memory_inspector/linear_memory_inspector-meta.js +1 -0
  739. package/static/devtools/linear_memory_inspector/linear_memory_inspector.js +399 -0
  740. package/static/devtools/linear_memory_inspector/linear_memory_inspector_module.js +0 -0
  741. package/static/devtools/main/main-legacy.js +1 -0
  742. package/static/devtools/main/main.js +1 -0
  743. package/static/devtools/media/media-legacy.js +1 -0
  744. package/static/devtools/media/media-meta.js +1 -0
  745. package/static/devtools/media/media.js +1 -0
  746. package/static/devtools/media/media_module.js +1 -0
  747. package/static/devtools/mobile_throttling/mobile_throttling-legacy.js +1 -0
  748. package/static/devtools/mobile_throttling/mobile_throttling-meta.js +1 -0
  749. package/static/devtools/mobile_throttling/mobile_throttling.js +1 -0
  750. package/static/devtools/ndb_app.html +20 -0
  751. package/static/devtools/ndb_app.js +1 -0
  752. package/static/devtools/network/network-legacy.js +1 -0
  753. package/static/devtools/network/network-meta.js +1 -0
  754. package/static/devtools/network/network.js +72 -0
  755. package/static/devtools/network/network_module.js +1 -0
  756. package/static/devtools/network_test_runner/network_test_runner.js +280 -0
  757. package/static/devtools/network_test_runner/network_test_runner_module.js +0 -0
  758. package/static/devtools/node_app.html +20 -0
  759. package/static/devtools/node_app.js +1 -0
  760. package/static/devtools/node_debugger/node_debugger-meta.js +1 -0
  761. package/static/devtools/node_debugger/node_debugger.js +1 -0
  762. package/static/devtools/node_debugger/node_debugger_module.js +0 -0
  763. package/static/devtools/node_main/node_main-legacy.js +1 -0
  764. package/static/devtools/node_main/node_main-meta.js +1 -0
  765. package/static/devtools/node_main/node_main.js +1 -0
  766. package/static/devtools/object_ui/object_ui-legacy.js +1 -0
  767. package/static/devtools/object_ui/object_ui.js +3 -0
  768. package/static/devtools/object_ui/object_ui_module.js +1 -0
  769. package/static/devtools/perf_ui/perf_ui-legacy.js +1 -0
  770. package/static/devtools/perf_ui/perf_ui.js +152 -0
  771. package/static/devtools/perf_ui/perf_ui_module.js +1 -0
  772. package/static/devtools/performance_monitor/performance_monitor-legacy.js +1 -0
  773. package/static/devtools/performance_monitor/performance_monitor-meta.js +1 -0
  774. package/static/devtools/performance_monitor/performance_monitor.js +1 -0
  775. package/static/devtools/performance_monitor/performance_monitor_module.js +1 -0
  776. package/static/devtools/performance_test_runner/TimelineDataTestRunner.js +5375 -0
  777. package/static/devtools/performance_test_runner/TimelineTestRunner.js +446 -0
  778. package/static/devtools/performance_test_runner/performance_test_runner.js +6 -0
  779. package/static/devtools/performance_test_runner/performance_test_runner_module.js +0 -0
  780. package/static/devtools/persistence/persistence-legacy.js +1 -0
  781. package/static/devtools/persistence/persistence-meta.js +1 -0
  782. package/static/devtools/persistence/persistence.js +1 -0
  783. package/static/devtools/platform/platform.js +1 -0
  784. package/static/devtools/profiler/profiler-legacy.js +1 -0
  785. package/static/devtools/profiler/profiler-meta.js +1 -0
  786. package/static/devtools/profiler/profiler.js +8 -0
  787. package/static/devtools/profiler/profiler_module.js +1 -0
  788. package/static/devtools/protocol_client/protocol_client-legacy.js +1 -0
  789. package/static/devtools/protocol_client/protocol_client.js +1 -0
  790. package/static/devtools/protocol_monitor/protocol_monitor-legacy.js +1 -0
  791. package/static/devtools/protocol_monitor/protocol_monitor-meta.js +1 -0
  792. package/static/devtools/protocol_monitor/protocol_monitor.js +1 -0
  793. package/static/devtools/protocol_monitor/protocol_monitor_module.js +1 -0
  794. package/static/devtools/quick_open/quick_open-legacy.js +1 -0
  795. package/static/devtools/quick_open/quick_open.js +1 -0
  796. package/static/devtools/quick_open/quick_open_module.js +1 -0
  797. package/static/devtools/recorder/recorder.js +1 -0
  798. package/static/devtools/resources/resources-legacy.js +1 -0
  799. package/static/devtools/resources/resources-meta.js +1 -0
  800. package/static/devtools/resources/resources.js +28 -0
  801. package/static/devtools/resources/resources_module.js +1 -0
  802. package/static/devtools/root/root-legacy.js +1 -0
  803. package/static/devtools/root/root.js +1 -0
  804. package/static/devtools/screencast/screencast-legacy.js +1 -0
  805. package/static/devtools/screencast/screencast.js +1 -0
  806. package/static/devtools/sdk/sdk-legacy.js +1 -0
  807. package/static/devtools/sdk/sdk.js +2 -0
  808. package/static/devtools/sdk_test_runner/sdk_test_runner.js +297 -0
  809. package/static/devtools/sdk_test_runner/sdk_test_runner_module.js +0 -0
  810. package/static/devtools/search/search-legacy.js +1 -0
  811. package/static/devtools/search/search.js +1 -0
  812. package/static/devtools/search/search_module.js +1 -0
  813. package/static/devtools/security/security-legacy.js +1 -0
  814. package/static/devtools/security/security-meta.js +1 -0
  815. package/static/devtools/security/security.js +1 -0
  816. package/static/devtools/security/security_module.js +1 -0
  817. package/static/devtools/security_test_runner/security_test_runner.js +32 -0
  818. package/static/devtools/security_test_runner/security_test_runner_module.js +0 -0
  819. package/static/devtools/services/services-legacy.js +1 -0
  820. package/static/devtools/services/services.js +1 -0
  821. package/static/devtools/settings/settings-legacy.js +1 -0
  822. package/static/devtools/settings/settings-meta.js +1 -0
  823. package/static/devtools/settings/settings.js +1 -0
  824. package/static/devtools/settings/settings_module.js +1 -0
  825. package/static/devtools/shell.js +1 -0
  826. package/static/devtools/snippets/snippets-legacy.js +1 -0
  827. package/static/devtools/snippets/snippets.js +1 -0
  828. package/static/devtools/snippets/snippets_module.js +0 -0
  829. package/static/devtools/source_frame/source_frame-legacy.js +1 -0
  830. package/static/devtools/source_frame/source_frame.js +1 -0
  831. package/static/devtools/source_frame/source_frame_module.js +1 -0
  832. package/static/devtools/sources/sources-legacy.js +1 -0
  833. package/static/devtools/sources/sources-meta.js +1 -0
  834. package/static/devtools/sources/sources.js +13 -0
  835. package/static/devtools/sources/sources_module.js +1 -0
  836. package/static/devtools/sources_test_runner/AutocompleteTestRunner.js +46 -0
  837. package/static/devtools/sources_test_runner/DebuggerTestRunner.js +895 -0
  838. package/static/devtools/sources_test_runner/EditorTestRunner.js +237 -0
  839. package/static/devtools/sources_test_runner/LiveEditTestRunner.js +33 -0
  840. package/static/devtools/sources_test_runner/SearchTestRunner.js +158 -0
  841. package/static/devtools/sources_test_runner/SourcesTestRunner.js +173 -0
  842. package/static/devtools/sources_test_runner/sources_test_runner.js +10 -0
  843. package/static/devtools/sources_test_runner/sources_test_runner_module.js +0 -0
  844. package/static/devtools/startup/startup.js +1 -0
  845. package/static/devtools/test_runner/test_runner.js +1 -0
  846. package/static/devtools/text_editor/text_editor-legacy.js +1 -0
  847. package/static/devtools/text_editor/text_editor.js +1 -0
  848. package/static/devtools/text_editor/text_editor_module.js +1 -0
  849. package/static/devtools/text_utils/text_utils-legacy.js +1 -0
  850. package/static/devtools/text_utils/text_utils.js +1 -0
  851. package/static/devtools/theme_support/theme_support.js +1 -0
  852. package/static/devtools/third_party/acorn/acorn-tsconfig.json +8 -0
  853. package/static/devtools/third_party/acorn/acorn.js +1 -0
  854. package/static/devtools/third_party/acorn/package/dist/acorn.d.ts +209 -0
  855. package/static/devtools/third_party/acorn/package/dist/acorn.mjs +5261 -0
  856. package/static/devtools/third_party/acorn/package/dist/acorn.mjs.d.ts +2 -0
  857. package/static/devtools/third_party/acorn/package/dist/acorn.mjs.map +1 -0
  858. package/static/devtools/third_party/acorn-loose/acorn-loose-tsconfig.json +8 -0
  859. package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.d.ts +16 -0
  860. package/static/devtools/third_party/acorn-loose/package/dist/acorn-loose.mjs +1418 -0
  861. package/static/devtools/third_party/axe-core/axe.js +16423 -0
  862. package/static/devtools/third_party/chromium/chromium-tsconfig.json +8 -0
  863. package/static/devtools/third_party/chromium/client-variations/ClientVariations.d.ts +13 -0
  864. package/static/devtools/third_party/chromium/client-variations/ClientVariations.js +27 -0
  865. package/static/devtools/third_party/codemirror/codemirror-tsconfig.json +72 -0
  866. package/static/devtools/third_party/codemirror/package/addon/comment/comment.d.ts +4 -0
  867. package/static/devtools/third_party/codemirror/package/addon/comment/comment.js +211 -0
  868. package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.d.ts +1 -0
  869. package/static/devtools/third_party/codemirror/package/addon/edit/closebrackets.js +201 -0
  870. package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.d.ts +1 -0
  871. package/static/devtools/third_party/codemirror/package/addon/edit/matchbrackets.js +158 -0
  872. package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.d.ts +1 -0
  873. package/static/devtools/third_party/codemirror/package/addon/fold/brace-fold.js +105 -0
  874. package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.d.ts +1 -0
  875. package/static/devtools/third_party/codemirror/package/addon/fold/foldcode.js +157 -0
  876. package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.d.ts +1 -0
  877. package/static/devtools/third_party/codemirror/package/addon/fold/foldgutter.js +163 -0
  878. package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.d.ts +1 -0
  879. package/static/devtools/third_party/codemirror/package/addon/mode/multiplex.js +131 -0
  880. package/static/devtools/third_party/codemirror/package/addon/mode/overlay.d.ts +1 -0
  881. package/static/devtools/third_party/codemirror/package/addon/mode/overlay.js +90 -0
  882. package/static/devtools/third_party/codemirror/package/addon/mode/simple.d.ts +1 -0
  883. package/static/devtools/third_party/codemirror/package/addon/mode/simple.js +216 -0
  884. package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.d.ts +1 -0
  885. package/static/devtools/third_party/codemirror/package/addon/runmode/runmode-standalone.js +333 -0
  886. package/static/devtools/third_party/codemirror/package/addon/selection/active-line.d.ts +1 -0
  887. package/static/devtools/third_party/codemirror/package/addon/selection/active-line.js +72 -0
  888. package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.d.ts +1 -0
  889. package/static/devtools/third_party/codemirror/package/addon/selection/mark-selection.js +119 -0
  890. package/static/devtools/third_party/codemirror/package/lib/codemirror.d.ts +1 -0
  891. package/static/devtools/third_party/codemirror/package/lib/codemirror.js +9800 -0
  892. package/static/devtools/third_party/codemirror/package/mode/clike/clike.d.ts +4 -0
  893. package/static/devtools/third_party/codemirror/package/mode/clike/clike.js +935 -0
  894. package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.d.ts +4 -0
  895. package/static/devtools/third_party/codemirror/package/mode/clojure/clojure.js +292 -0
  896. package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.d.ts +4 -0
  897. package/static/devtools/third_party/codemirror/package/mode/coffeescript/coffeescript.js +359 -0
  898. package/static/devtools/third_party/codemirror/package/mode/css/css.d.ts +1 -0
  899. package/static/devtools/third_party/codemirror/package/mode/css/css.js +864 -0
  900. package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.d.ts +1 -0
  901. package/static/devtools/third_party/codemirror/package/mode/htmlembedded/htmlembedded.js +37 -0
  902. package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.d.ts +1 -0
  903. package/static/devtools/third_party/codemirror/package/mode/htmlmixed/htmlmixed.js +153 -0
  904. package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.d.ts +1 -0
  905. package/static/devtools/third_party/codemirror/package/mode/javascript/javascript.js +942 -0
  906. package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.d.ts +4 -0
  907. package/static/devtools/third_party/codemirror/package/mode/jsx/jsx.js +148 -0
  908. package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.d.ts +4 -0
  909. package/static/devtools/third_party/codemirror/package/mode/livescript/livescript.js +280 -0
  910. package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.d.ts +1 -0
  911. package/static/devtools/third_party/codemirror/package/mode/markdown/markdown.js +886 -0
  912. package/static/devtools/third_party/codemirror/package/mode/php/php.d.ts +1 -0
  913. package/static/devtools/third_party/codemirror/package/mode/php/php.js +234 -0
  914. package/static/devtools/third_party/codemirror/package/mode/python/python.d.ts +1 -0
  915. package/static/devtools/third_party/codemirror/package/mode/python/python.js +399 -0
  916. package/static/devtools/third_party/codemirror/package/mode/shell/shell.d.ts +1 -0
  917. package/static/devtools/third_party/codemirror/package/mode/shell/shell.js +168 -0
  918. package/static/devtools/third_party/codemirror/package/mode/wast/wast.d.ts +1 -0
  919. package/static/devtools/third_party/codemirror/package/mode/wast/wast.js +41 -0
  920. package/static/devtools/third_party/codemirror/package/mode/xml/xml.d.ts +1 -0
  921. package/static/devtools/third_party/codemirror/package/mode/xml/xml.js +413 -0
  922. package/static/devtools/third_party/i18n/bundle-tsconfig.json +8 -0
  923. package/static/devtools/third_party/i18n/i18n.d.ts +108 -0
  924. package/static/devtools/third_party/i18n/i18n.js +4336 -0
  925. package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.d.ts +1 -0
  926. package/static/devtools/third_party/lighthouse/lighthouse-dt-bundle.js +1140 -0
  927. package/static/devtools/third_party/lighthouse/lighthouse-tsconfig.json +10 -0
  928. package/static/devtools/third_party/lighthouse/locales/ar-XB.json +2066 -0
  929. package/static/devtools/third_party/lighthouse/locales/ar.json +2066 -0
  930. package/static/devtools/third_party/lighthouse/locales/bg.json +2066 -0
  931. package/static/devtools/third_party/lighthouse/locales/ca.json +2066 -0
  932. package/static/devtools/third_party/lighthouse/locales/cs.json +2066 -0
  933. package/static/devtools/third_party/lighthouse/locales/da.json +2066 -0
  934. package/static/devtools/third_party/lighthouse/locales/de.json +2066 -0
  935. package/static/devtools/third_party/lighthouse/locales/el.json +2066 -0
  936. package/static/devtools/third_party/lighthouse/locales/en-GB.json +2066 -0
  937. package/static/devtools/third_party/lighthouse/locales/en-US.json +2297 -0
  938. package/static/devtools/third_party/lighthouse/locales/en-XA.json +2066 -0
  939. package/static/devtools/third_party/lighthouse/locales/en-XL.json +2297 -0
  940. package/static/devtools/third_party/lighthouse/locales/es-419.json +2066 -0
  941. package/static/devtools/third_party/lighthouse/locales/es.json +2066 -0
  942. package/static/devtools/third_party/lighthouse/locales/fi.json +2066 -0
  943. package/static/devtools/third_party/lighthouse/locales/fil.json +2066 -0
  944. package/static/devtools/third_party/lighthouse/locales/fr.json +2066 -0
  945. package/static/devtools/third_party/lighthouse/locales/he.json +2066 -0
  946. package/static/devtools/third_party/lighthouse/locales/hi.json +2066 -0
  947. package/static/devtools/third_party/lighthouse/locales/hr.json +2066 -0
  948. package/static/devtools/third_party/lighthouse/locales/hu.json +2066 -0
  949. package/static/devtools/third_party/lighthouse/locales/id.json +2066 -0
  950. package/static/devtools/third_party/lighthouse/locales/it.json +2066 -0
  951. package/static/devtools/third_party/lighthouse/locales/ja.json +2066 -0
  952. package/static/devtools/third_party/lighthouse/locales/ko.json +2066 -0
  953. package/static/devtools/third_party/lighthouse/locales/lt.json +2066 -0
  954. package/static/devtools/third_party/lighthouse/locales/lv.json +2066 -0
  955. package/static/devtools/third_party/lighthouse/locales/nl.json +2066 -0
  956. package/static/devtools/third_party/lighthouse/locales/no.json +2066 -0
  957. package/static/devtools/third_party/lighthouse/locales/pl.json +2066 -0
  958. package/static/devtools/third_party/lighthouse/locales/pt-PT.json +2066 -0
  959. package/static/devtools/third_party/lighthouse/locales/pt.json +2066 -0
  960. package/static/devtools/third_party/lighthouse/locales/ro.json +2066 -0
  961. package/static/devtools/third_party/lighthouse/locales/ru.json +2066 -0
  962. package/static/devtools/third_party/lighthouse/locales/sk.json +2066 -0
  963. package/static/devtools/third_party/lighthouse/locales/sl.json +2066 -0
  964. package/static/devtools/third_party/lighthouse/locales/sr-Latn.json +2066 -0
  965. package/static/devtools/third_party/lighthouse/locales/sr.json +2066 -0
  966. package/static/devtools/third_party/lighthouse/locales/sv.json +2066 -0
  967. package/static/devtools/third_party/lighthouse/locales/ta.json +2066 -0
  968. package/static/devtools/third_party/lighthouse/locales/te.json +2066 -0
  969. package/static/devtools/third_party/lighthouse/locales/th.json +2066 -0
  970. package/static/devtools/third_party/lighthouse/locales/tr.json +2066 -0
  971. package/static/devtools/third_party/lighthouse/locales/uk.json +2066 -0
  972. package/static/devtools/third_party/lighthouse/locales/vi.json +2066 -0
  973. package/static/devtools/third_party/lighthouse/locales/zh-HK.json +2066 -0
  974. package/static/devtools/third_party/lighthouse/locales/zh-TW.json +2066 -0
  975. package/static/devtools/third_party/lighthouse/locales/zh.json +2066 -0
  976. package/static/devtools/third_party/lighthouse/report-assets/report-generator.d.ts +1 -0
  977. package/static/devtools/third_party/lighthouse/report-assets/report-generator.js +167 -0
  978. package/static/devtools/third_party/lighthouse/report-assets/report.d.ts +1 -0
  979. package/static/devtools/third_party/lighthouse/report-assets/report.js +5032 -0
  980. package/static/devtools/third_party/lit-html/lit-html-tsconfig.json +22 -0
  981. package/static/devtools/third_party/lit-html/lit-html.js +120 -0
  982. package/static/devtools/third_party/lit-html/package/directives/class-map.d.ts +28 -0
  983. package/static/devtools/third_party/lit-html/package/directives/class-map.js +101 -0
  984. package/static/devtools/third_party/lit-html/package/directives/class-map.js.map +1 -0
  985. package/static/devtools/third_party/lit-html/package/directives/if-defined.d.ts +22 -0
  986. package/static/devtools/third_party/lit-html/package/directives/if-defined.js +37 -0
  987. package/static/devtools/third_party/lit-html/package/directives/if-defined.js.map +1 -0
  988. package/static/devtools/third_party/lit-html/package/directives/live.d.ts +38 -0
  989. package/static/devtools/third_party/lit-html/package/directives/live.js +73 -0
  990. package/static/devtools/third_party/lit-html/package/directives/live.js.map +1 -0
  991. package/static/devtools/third_party/lit-html/package/directives/repeat.d.ts +37 -0
  992. package/static/devtools/third_party/lit-html/package/directives/repeat.js +415 -0
  993. package/static/devtools/third_party/lit-html/package/directives/repeat.js.map +1 -0
  994. package/static/devtools/third_party/lit-html/package/directives/style-map.d.ts +36 -0
  995. package/static/devtools/third_party/lit-html/package/directives/style-map.js +78 -0
  996. package/static/devtools/third_party/lit-html/package/directives/style-map.js.map +1 -0
  997. package/static/devtools/third_party/lit-html/package/lib/default-template-processor.d.ts +39 -0
  998. package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js +52 -0
  999. package/static/devtools/third_party/lit-html/package/lib/default-template-processor.js.map +1 -0
  1000. package/static/devtools/third_party/lit-html/package/lib/directive.d.ts +59 -0
  1001. package/static/devtools/third_party/lit-html/package/lib/directive.js +63 -0
  1002. package/static/devtools/third_party/lit-html/package/lib/directive.js.map +1 -0
  1003. package/static/devtools/third_party/lit-html/package/lib/dom.d.ts +29 -0
  1004. package/static/devtools/third_party/lit-html/package/lib/dom.js +44 -0
  1005. package/static/devtools/third_party/lit-html/package/lib/dom.js.map +1 -0
  1006. package/static/devtools/third_party/lit-html/package/lib/part.d.ts +46 -0
  1007. package/static/devtools/third_party/lit-html/package/lib/part.js +23 -0
  1008. package/static/devtools/third_party/lit-html/package/lib/part.js.map +1 -0
  1009. package/static/devtools/third_party/lit-html/package/lib/parts.d.ts +148 -0
  1010. package/static/devtools/third_party/lit-html/package/lib/parts.js +476 -0
  1011. package/static/devtools/third_party/lit-html/package/lib/parts.js.map +1 -0
  1012. package/static/devtools/third_party/lit-html/package/lib/render.d.ts +33 -0
  1013. package/static/devtools/third_party/lit-html/package/lib/render.js +43 -0
  1014. package/static/devtools/third_party/lit-html/package/lib/render.js.map +1 -0
  1015. package/static/devtools/third_party/lit-html/package/lib/template-factory.d.ts +57 -0
  1016. package/static/devtools/third_party/lit-html/package/lib/template-factory.js +48 -0
  1017. package/static/devtools/third_party/lit-html/package/lib/template-factory.js.map +1 -0
  1018. package/static/devtools/third_party/lit-html/package/lib/template-instance.d.ts +30 -0
  1019. package/static/devtools/third_party/lit-html/package/lib/template-instance.js +134 -0
  1020. package/static/devtools/third_party/lit-html/package/lib/template-instance.js.map +1 -0
  1021. package/static/devtools/third_party/lit-html/package/lib/template-result.d.ts +42 -0
  1022. package/static/devtools/third_party/lit-html/package/lib/template-result.js +131 -0
  1023. package/static/devtools/third_party/lit-html/package/lib/template-result.js.map +1 -0
  1024. package/static/devtools/third_party/lit-html/package/lib/template.d.ts +92 -0
  1025. package/static/devtools/third_party/lit-html/package/lib/template.js +215 -0
  1026. package/static/devtools/third_party/lit-html/package/lib/template.js.map +1 -0
  1027. package/static/devtools/third_party/lit-html/package/lit-html.d.ts +42 -0
  1028. package/static/devtools/third_party/lit-html/package/lit-html.js +59 -0
  1029. package/static/devtools/third_party/lit-html/package/lit-html.js.map +1 -0
  1030. package/static/devtools/third_party/marked/marked-tsconfig.json +8 -0
  1031. package/static/devtools/third_party/marked/marked.js +1 -0
  1032. package/static/devtools/third_party/marked/package/lib/marked.esm.d.ts +1 -0
  1033. package/static/devtools/third_party/marked/package/lib/marked.esm.js +2584 -0
  1034. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +53 -0
  1035. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts.map +1 -0
  1036. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.js +64 -0
  1037. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts +176 -0
  1038. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts.map +1 -0
  1039. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js +356 -0
  1040. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts +21 -0
  1041. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -0
  1042. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +81 -0
  1043. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +423 -0
  1044. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -0
  1045. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +516 -0
  1046. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +39 -0
  1047. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -0
  1048. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +76 -0
  1049. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +26 -0
  1050. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -0
  1051. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -0
  1052. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +120 -0
  1053. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -0
  1054. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +266 -0
  1055. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts +22 -0
  1056. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.d.ts.map +1 -0
  1057. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectionTransport.js +15 -0
  1058. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +72 -0
  1059. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -0
  1060. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +60 -0
  1061. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +181 -0
  1062. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -0
  1063. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +316 -0
  1064. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +174 -0
  1065. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -0
  1066. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +647 -0
  1067. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts +53 -0
  1068. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -0
  1069. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +77 -0
  1070. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +33 -0
  1071. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -0
  1072. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +873 -0
  1073. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +76 -0
  1074. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts.map +1 -0
  1075. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js +92 -0
  1076. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts +25 -0
  1077. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts.map +1 -0
  1078. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js +33 -0
  1079. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +34 -0
  1080. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -0
  1081. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +37 -0
  1082. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +59 -0
  1083. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +1 -0
  1084. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.js +15 -0
  1085. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts +89 -0
  1086. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -0
  1087. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js +109 -0
  1088. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts +82 -0
  1089. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts.map +1 -0
  1090. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js +83 -0
  1091. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +189 -0
  1092. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts.map +1 -0
  1093. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js +313 -0
  1094. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +60 -0
  1095. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts.map +1 -0
  1096. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js +66 -0
  1097. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +735 -0
  1098. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -0
  1099. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +962 -0
  1100. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +276 -0
  1101. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -0
  1102. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +421 -0
  1103. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +128 -0
  1104. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -0
  1105. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +150 -0
  1106. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +322 -0
  1107. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -0
  1108. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +463 -0
  1109. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +439 -0
  1110. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -0
  1111. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +724 -0
  1112. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +62 -0
  1113. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -0
  1114. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +145 -0
  1115. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +80 -0
  1116. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -0
  1117. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +262 -0
  1118. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +152 -0
  1119. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -0
  1120. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +31 -0
  1121. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +910 -0
  1122. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -0
  1123. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +1343 -0
  1124. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts +21 -0
  1125. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.d.ts.map +1 -0
  1126. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Product.js +15 -0
  1127. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +135 -0
  1128. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts.map +1 -0
  1129. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +133 -0
  1130. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts +24 -0
  1131. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.d.ts.map +1 -0
  1132. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/PuppeteerViewport.js +0 -0
  1133. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +66 -0
  1134. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -0
  1135. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +157 -0
  1136. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts +61 -0
  1137. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts.map +1 -0
  1138. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js +72 -0
  1139. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +98 -0
  1140. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -0
  1141. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +137 -0
  1142. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts +28 -0
  1143. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts.map +1 -0
  1144. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js +43 -0
  1145. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts +47 -0
  1146. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -0
  1147. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +94 -0
  1148. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +40 -0
  1149. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts.map +1 -0
  1150. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js +403 -0
  1151. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +102 -0
  1152. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts.map +1 -0
  1153. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +109 -0
  1154. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +22 -0
  1155. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -0
  1156. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +24 -0
  1157. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts +17 -0
  1158. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts.map +1 -0
  1159. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js +20 -0
  1160. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +66 -0
  1161. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -0
  1162. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +288 -0
  1163. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +17 -0
  1164. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -0
  1165. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +16 -0
  1166. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts +18 -0
  1167. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +1 -0
  1168. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js +39 -0
  1169. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts +18 -0
  1170. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts.map +1 -0
  1171. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js +22 -0
  1172. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +132 -0
  1173. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -0
  1174. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +468 -0
  1175. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +40 -0
  1176. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -0
  1177. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +197 -0
  1178. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +42 -0
  1179. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -0
  1180. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +0 -0
  1181. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +16 -0
  1182. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -0
  1183. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +469 -0
  1184. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +29 -0
  1185. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -0
  1186. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +34 -0
  1187. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +31 -0
  1188. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -0
  1189. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +61 -0
  1190. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +156 -0
  1191. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -0
  1192. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +183 -0
  1193. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts +18 -0
  1194. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -0
  1195. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +151 -0
  1196. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts +18 -0
  1197. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts.map +1 -0
  1198. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +23 -0
  1199. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts +18 -0
  1200. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts.map +1 -0
  1201. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/node.js +22 -0
  1202. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +22 -0
  1203. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts.map +1 -0
  1204. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +19 -0
  1205. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts +18 -0
  1206. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts.map +1 -0
  1207. package/static/devtools/third_party/puppeteer/package/lib/esm/puppeteer/web.js +22 -0
  1208. package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts +22 -0
  1209. package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts.map +1 -0
  1210. package/static/devtools/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js +53 -0
  1211. package/static/devtools/third_party/puppeteer/puppeteer-tsconfig.json +58 -0
  1212. package/static/devtools/third_party/puppeteer/puppeteer.js +1 -0
  1213. package/static/devtools/third_party/wasmparser/package/dist/esm/WasmDis.js +1595 -0
  1214. package/static/devtools/third_party/wasmparser/package/dist/esm/WasmParser.js +3120 -0
  1215. package/static/devtools/third_party/wasmparser/wasmparser-tsconfig.json +9 -0
  1216. package/static/devtools/timeline/timeline-legacy.js +1 -0
  1217. package/static/devtools/timeline/timeline-meta.js +1 -0
  1218. package/static/devtools/timeline/timeline.js +1 -0
  1219. package/static/devtools/timeline/timeline_module.js +1 -0
  1220. package/static/devtools/timeline_model/timeline_model-legacy.js +1 -0
  1221. package/static/devtools/timeline_model/timeline_model.js +1 -0
  1222. package/static/devtools/timeline_model/timeline_model_module.js +0 -0
  1223. package/static/devtools/toolbox.html +20 -0
  1224. package/static/devtools/toolbox.js +1 -0
  1225. package/static/devtools/toolbox_bootstrap/toolbox_bootstrap.js +1 -0
  1226. package/static/devtools/ui/components/components.js +378 -0
  1227. package/static/devtools/ui/ui-legacy.js +1 -0
  1228. package/static/devtools/ui/ui.js +3 -0
  1229. package/static/devtools/ui/utils/utils.js +1 -0
  1230. package/static/devtools/wasmparser_worker/wasmparser_worker-entrypoint.js +1 -0
  1231. package/static/devtools/wasmparser_worker/wasmparser_worker.js +1 -0
  1232. package/static/devtools/web_audio/graph_visualizer/graph_visualizer.js +1 -0
  1233. package/static/devtools/web_audio/web_audio-legacy.js +1 -0
  1234. package/static/devtools/web_audio/web_audio-meta.js +1 -0
  1235. package/static/devtools/web_audio/web_audio.js +23 -0
  1236. package/static/devtools/web_audio/web_audio_module.js +1 -0
  1237. package/static/devtools/webauthn/webauthn-legacy.js +1 -0
  1238. package/static/devtools/webauthn/webauthn-meta.js +1 -0
  1239. package/static/devtools/webauthn/webauthn.js +6 -0
  1240. package/static/devtools/webauthn/webauthn_module.js +1 -0
  1241. package/static/devtools/worker_app.html +20 -0
  1242. package/static/devtools/worker_app.js +1 -0
  1243. package/static/devtools/worker_main/worker_main-legacy.js +1 -0
  1244. package/static/devtools/worker_main/worker_main.js +1 -0
  1245. package/static/devtools/worker_service/worker_service.js +1 -0
  1246. package/static/devtools/workspace/workspace-legacy.js +1 -0
  1247. package/static/devtools/workspace/workspace.js +1 -0
  1248. package/static/devtools/workspace_diff/workspace_diff-legacy.js +1 -0
  1249. package/static/devtools/workspace_diff/workspace_diff.js +1 -0
  1250. package/static/devtools/workspace_diff/workspace_diff_module.js +0 -0
  1251. package/static/docs/swagger.json +2337 -279
  1252. package/static/function/client.js +1037 -992
  1253. package/build/routes/chromium/http/json-new.js +0 -23
  1254. package/build/routes/chromium/http/json-version-get.response.json +0 -37
  1255. package/build/routes/chromium/utils/cdp.d.ts +0 -2
  1256. package/build/routes/chromium/utils/cdp.js +0 -14
  1257. package/build/routes/chromium/ws/cdp-chromium.js +0 -10
  1258. package/src/routes/chromium/http/json-list.ts +0 -50
  1259. package/src/routes/chromium/utils/cdp.ts +0 -19
  1260. package/build/routes/{chromium/http/content-post.query.json → chrome/http/content.post.query.json} +0 -0
  1261. package/build/routes/{chromium/http/content-post.response.json → chrome/http/content.post.response.json} +0 -0
  1262. package/build/routes/{chromium/http/download-post.body.json → chrome/http/download.post.body.json} +0 -0
  1263. package/build/routes/{chromium/http/download-post.query.json → chrome/http/download.post.query.json} +0 -0
  1264. package/build/routes/{chromium/http/download-post.response.json → chrome/http/download.post.response.json} +0 -0
  1265. package/build/routes/{chromium/http/function-post.body.json → chrome/http/function.post.body.json} +0 -0
  1266. package/build/routes/{chromium/http/function-post.query.json → chrome/http/function.post.query.json} +0 -0
  1267. package/build/routes/{chromium/http/function-post.response.json → chrome/http/function.post.response.json} +0 -0
  1268. package/build/routes/{chromium/http/json-list.response.json → chrome/http/json-list.get.response.json} +0 -0
  1269. package/build/routes/{chromium/http/json-new.response.json → chrome/http/json-new.put.response.json} +0 -0
  1270. package/build/routes/{chromium/http/json-protocol-get.response.json → chrome/http/json-protocol.get.response.json} +0 -0
  1271. package/build/routes/{chromium/http/pdf-post.query.json → chrome/http/pdf.post.query.json} +0 -0
  1272. package/build/routes/{chromium/http/pdf-post.response.json → chrome/http/pdf.post.response.json} +0 -0
  1273. package/build/routes/{chromium/http/performance.body.json → chrome/http/performance.post.body.json} +0 -0
  1274. package/build/routes/{chromium/http/performance.query.json → chrome/http/performance.post.query.json} +0 -0
  1275. package/build/routes/{chromium/http/performance.response.json → chrome/http/performance.post.response.json} +0 -0
  1276. package/build/routes/{chromium/http/scrape-post.query.json → chrome/http/scrape.post.query.json} +0 -0
  1277. package/build/routes/{chromium/http/scrape-post.response.json → chrome/http/scrape.post.response.json} +0 -0
  1278. package/build/routes/{chromium/http/screenshot-post.query.json → chrome/http/screenshot.post.query.json} +0 -0
  1279. package/build/routes/{chromium/http/screenshot-post.response.json → chrome/http/screenshot.post.response.json} +0 -0
  1280. package/build/routes/{chromium/utils/performance/child.d.ts → chrome/tests/content.spec.d.ts} +0 -0
  1281. package/build/routes/{chromium/utils/performance/types.js → chrome/tests/download.spec.d.ts} +0 -0
  1282. package/build/routes/{chromium/ws/cdp-chromium.query.json → chrome/ws/browser.query.json} +0 -0
  1283. package/build/routes/{chromium/ws/playwright-chromium.query.json → chrome/ws/playwright.query.json} +0 -0
  1284. package/build/routes/{firefox/ws/playwright-firefox.query.json → chromium/ws/playwright.query.json} +0 -0
  1285. package/build/routes/{webkit/ws/playwright-webkit.query.json → firefox/ws/playwright.query.json} +0 -0
  1286. package/build/routes/management/http/{config-get.d.ts → config.get.d.ts} +0 -0
  1287. package/build/routes/management/http/{config-get.js → config.get.js} +0 -0
  1288. package/build/routes/management/http/{config-get.response.json → config.get.response.json} +0 -0
  1289. package/build/routes/management/http/{metrics-total-get.d.ts → metrics-total.get.d.ts} +0 -0
  1290. package/build/routes/management/http/{metrics-total-get.js → metrics-total.get.js} +0 -0
  1291. package/build/routes/management/http/{metrics-total-get.response.json → metrics-total.get.response.json} +0 -0
  1292. package/build/routes/management/http/{metrics-get.d.ts → metrics.get.d.ts} +0 -0
  1293. package/build/routes/management/http/{metrics-get.js → metrics.get.js} +0 -0
  1294. package/build/routes/management/http/{metrics-get.response.json → metrics.get.response.json} +0 -0
  1295. package/build/routes/management/http/{sessions-get.d.ts → sessions.get.d.ts} +0 -0
  1296. package/build/routes/management/http/{sessions-get.js → sessions.get.js} +0 -0
  1297. package/build/routes/management/http/{static-get.d.ts → static.get.d.ts} +0 -0
  1298. package/build/{routes/chromium/http/json-protocol-get.d.ts → shared/json-protocol.http.d.ts} +1 -1
  1299. package/build/{routes/chromium/http/json-version-get.d.ts → shared/json-version.http.d.ts} +1 -1
  1300. /package/build/{routes/chromium → shared}/utils/function/client.d.ts +0 -0
  1301. /package/build/{routes/chromium → shared}/utils/function/client.js +0 -0
  1302. /package/build/{routes/chromium → shared}/utils/function/handler.d.ts +0 -0
  1303. /package/build/{routes/chromium → shared}/utils/function/handler.js +0 -0
  1304. /package/build/{routes/chromium → shared}/utils/performance/child.js +0 -0
  1305. /package/build/{routes/chromium → shared}/utils/performance/main.d.ts +0 -0
  1306. /package/build/{routes/chromium → shared}/utils/performance/types.d.ts +0 -0
  1307. /package/src/routes/management/http/{config-get.ts → config.get.ts} +0 -0
  1308. /package/src/routes/management/http/{metrics-total-get.ts → metrics-total.get.ts} +0 -0
  1309. /package/src/routes/management/http/{metrics-get.ts → metrics.get.ts} +0 -0
  1310. /package/src/routes/management/http/{sessions-get.ts → sessions.get.ts} +0 -0
  1311. /package/src/{routes/chromium → shared}/utils/function/client.ts +0 -0
  1312. /package/src/{routes/chromium → shared}/utils/performance/child.ts +0 -0
  1313. /package/src/{routes/chromium → shared}/utils/performance/types.ts +0 -0
@@ -0,0 +1,2066 @@
1
+ {
2
+ "lighthouse-core/audits/accessibility/accesskeys.js | description": {
3
+ "message": "Các phím truy cập cho phép người dùng chuyển nhanh đến một phần của trang. Để di chuyển đúng cách, mỗi phím truy cập phải là duy nhất. [Tìm hiểu thêm](https://web.dev/accesskeys/)."
4
+ },
5
+ "lighthouse-core/audits/accessibility/accesskeys.js | failureTitle": {
6
+ "message": "Các giá trị của `[accesskey]` không phải là duy nhất"
7
+ },
8
+ "lighthouse-core/audits/accessibility/accesskeys.js | title": {
9
+ "message": "Các giá trị của `[accesskey]` là duy nhất"
10
+ },
11
+ "lighthouse-core/audits/accessibility/aria-allowed-attr.js | description": {
12
+ "message": "Mỗi `role` của Ứng dụng Internet phong phú dễ dùng (ARIA) hỗ trợ một tập hợp con cụ thể các thuộc tính `aria-*`. Nếu không trùng khớp, các thuộc tính `aria-*` sẽ bị vô hiệu. [Tìm hiểu thêm](https://web.dev/aria-allowed-attr/)."
13
+ },
14
+ "lighthouse-core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
15
+ "message": "Các thuộc tính `[aria-*]` không khớp với vai trò tương ứng"
16
+ },
17
+ "lighthouse-core/audits/accessibility/aria-allowed-attr.js | title": {
18
+ "message": "Các thuộc tính `[aria-*]` khớp với vai trò tương ứng"
19
+ },
20
+ "lighthouse-core/audits/accessibility/aria-hidden-body.js | description": {
21
+ "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sẽ hoạt động không nhất quán khi đặt `aria-hidden=\"true\"` trên tài liệu `<body>`. [Tìm hiểu thêm](https://web.dev/aria-hidden-body/)."
22
+ },
23
+ "lighthouse-core/audits/accessibility/aria-hidden-body.js | failureTitle": {
24
+ "message": "Hiện có `[aria-hidden=\"true\"]` trên tài liệu `<body>`"
25
+ },
26
+ "lighthouse-core/audits/accessibility/aria-hidden-body.js | title": {
27
+ "message": "Hiện không có `[aria-hidden=\"true\"]` trên tài liệu `<body>`"
28
+ },
29
+ "lighthouse-core/audits/accessibility/aria-hidden-focus.js | description": {
30
+ "message": "Các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm bên trong một phần tử `[aria-hidden=\"true\"]` sẽ giúp ngăn người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, tiếp cận với các phần tử tương tác đó. [Tìm hiểu thêm](https://web.dev/aria-hidden-focus/)."
31
+ },
32
+ "lighthouse-core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
33
+ "message": "Các phần tử `[aria-hidden=\"true\"]` có chứa các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm"
34
+ },
35
+ "lighthouse-core/audits/accessibility/aria-hidden-focus.js | title": {
36
+ "message": "Các phần tử `[aria-hidden=\"true\"]` không chứa các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm"
37
+ },
38
+ "lighthouse-core/audits/accessibility/aria-input-field-name.js | description": {
39
+ "message": "Khi tên của một trường nhập ở trạng thái không thể tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm](https://web.dev/aria-input-field-name/)."
40
+ },
41
+ "lighthouse-core/audits/accessibility/aria-input-field-name.js | failureTitle": {
42
+ "message": "Tên các trường nhập của ARIA ở trạng thái không thể tiếp cận"
43
+ },
44
+ "lighthouse-core/audits/accessibility/aria-input-field-name.js | title": {
45
+ "message": "Tên các trường nhập của ARIA ở trạng thái có thể tiếp cận"
46
+ },
47
+ "lighthouse-core/audits/accessibility/aria-required-attr.js | description": {
48
+ "message": "Một số vai trò ARIA có các thuộc tính bắt buộc mô tả trạng thái của phần tử cho trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/aria-required-attr/)."
49
+ },
50
+ "lighthouse-core/audits/accessibility/aria-required-attr.js | failureTitle": {
51
+ "message": "`[role]` không có tất cả các thuộc tính `[aria-*]` bắt buộc"
52
+ },
53
+ "lighthouse-core/audits/accessibility/aria-required-attr.js | title": {
54
+ "message": "`[role]` có tất cả các thuộc tính `[aria-*]` bắt buộc"
55
+ },
56
+ "lighthouse-core/audits/accessibility/aria-required-children.js | description": {
57
+ "message": "Một số vai trò mẹ của Ứng dụng Internet phong phú dễ dùng (ARIA) phải chứa vai trò con cụ thể để thực hiện các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm](https://web.dev/aria-required-children/)."
58
+ },
59
+ "lighthouse-core/audits/accessibility/aria-required-children.js | failureTitle": {
60
+ "message": "Các phần tử có `[role]` ARIA yêu cầu phần tử con phải chứa một `[role]` cụ thể hiện đang thiếu một số hoặc tất cả các phần tử con bắt buộc đó."
61
+ },
62
+ "lighthouse-core/audits/accessibility/aria-required-children.js | title": {
63
+ "message": "Các phần tử có `[role]` ARIA yêu cầu phần tử con phải chứa một `[role]` cụ thể có tất cả các phần tử con bắt buộc."
64
+ },
65
+ "lighthouse-core/audits/accessibility/aria-required-parent.js | description": {
66
+ "message": "Các vai trò mẹ cụ thể phải chứa một số vai trò con của Ứng dụng Internet phong phú dễ dùng (ARIA) để thực hiện đúng cách các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm](https://web.dev/aria-required-parent/)."
67
+ },
68
+ "lighthouse-core/audits/accessibility/aria-required-parent.js | failureTitle": {
69
+ "message": "`[role]` không có trong phần tử mẹ bắt buộc tương ứng"
70
+ },
71
+ "lighthouse-core/audits/accessibility/aria-required-parent.js | title": {
72
+ "message": "`[role]` có trong phần tử mẹ bắt buộc tương ứng"
73
+ },
74
+ "lighthouse-core/audits/accessibility/aria-roles.js | description": {
75
+ "message": "Các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA) phải có giá trị hợp lệ để thực hiện những chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm](https://web.dev/aria-roles/)."
76
+ },
77
+ "lighthouse-core/audits/accessibility/aria-roles.js | failureTitle": {
78
+ "message": "Các giá trị của `[role]` là không hợp lệ"
79
+ },
80
+ "lighthouse-core/audits/accessibility/aria-roles.js | title": {
81
+ "message": "Các giá trị của `[role]` là hợp lệ"
82
+ },
83
+ "lighthouse-core/audits/accessibility/aria-toggle-field-name.js | description": {
84
+ "message": "Khi tên của một trường chuyển đổi ở trạng thái không thể tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm](https://web.dev/aria-toggle-field-name/)."
85
+ },
86
+ "lighthouse-core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
87
+ "message": "Tên các trường chuyển đổi của ARIA ở trạng thái không thể tiếp cận"
88
+ },
89
+ "lighthouse-core/audits/accessibility/aria-toggle-field-name.js | title": {
90
+ "message": "Tên các trường chuyển đổi của ARIA ở trạng thái có thể tiếp cận"
91
+ },
92
+ "lighthouse-core/audits/accessibility/aria-valid-attr-value.js | description": {
93
+ "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có giá trị không hợp lệ. [Tìm hiểu thêm](https://web.dev/aria-valid-attr-value/)."
94
+ },
95
+ "lighthouse-core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
96
+ "message": "Giá trị của các thuộc tính `[aria-*]` là không hợp lệ"
97
+ },
98
+ "lighthouse-core/audits/accessibility/aria-valid-attr-value.js | title": {
99
+ "message": "Các thuộc tính `[aria-*]` có giá trị hợp lệ"
100
+ },
101
+ "lighthouse-core/audits/accessibility/aria-valid-attr.js | description": {
102
+ "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải các thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có tên không hợp lệ. [Tìm hiểu thêm](https://web.dev/aria-valid-attr/)."
103
+ },
104
+ "lighthouse-core/audits/accessibility/aria-valid-attr.js | failureTitle": {
105
+ "message": "Các thuộc tính `[aria-*]` là không hợp lệ hoặc bị sai chính tả"
106
+ },
107
+ "lighthouse-core/audits/accessibility/aria-valid-attr.js | title": {
108
+ "message": "Các thuộc tính `[aria-*]` là hợp lệ và không bị sai chính tả"
109
+ },
110
+ "lighthouse-core/audits/accessibility/axe-audit.js | failingElementsHeader": {
111
+ "message": "Các phần tử không đạt"
112
+ },
113
+ "lighthouse-core/audits/accessibility/button-name.js | description": {
114
+ "message": "Khi một nút không có tên có thể tiếp cận, trình đọc màn hình sẽ thông báo đó là \"nút\", khiến người dùng trình đọc màn hình không sử dụng được nút này. [Tìm hiểu thêm](https://web.dev/button-name/)."
115
+ },
116
+ "lighthouse-core/audits/accessibility/button-name.js | failureTitle": {
117
+ "message": "Các nút không có tên có thể tiếp cận được"
118
+ },
119
+ "lighthouse-core/audits/accessibility/button-name.js | title": {
120
+ "message": "Các nút có tên tiếp cận được"
121
+ },
122
+ "lighthouse-core/audits/accessibility/bypass.js | description": {
123
+ "message": "Bằng việc thêm các cách bỏ qua nội dung lặp lại, người dùng bàn phím có thể khám phá trang một cách hiệu quả hơn. [Tìm hiểu thêm](https://web.dev/bypass/)."
124
+ },
125
+ "lighthouse-core/audits/accessibility/bypass.js | failureTitle": {
126
+ "message": "Trang này không chứa tiêu đề, đường liên kết bỏ qua hoặc vùng mốc"
127
+ },
128
+ "lighthouse-core/audits/accessibility/bypass.js | title": {
129
+ "message": "Trang này chứa tiêu đề, phần tử liên kết bỏ qua hoặc vùng mốc"
130
+ },
131
+ "lighthouse-core/audits/accessibility/color-contrast.js | description": {
132
+ "message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. [Tìm hiểu thêm](https://web.dev/color-contrast/)."
133
+ },
134
+ "lighthouse-core/audits/accessibility/color-contrast.js | failureTitle": {
135
+ "message": "Màu nền trước và nền sau không có đủ tỷ lệ tương phản."
136
+ },
137
+ "lighthouse-core/audits/accessibility/color-contrast.js | title": {
138
+ "message": "Màu nền trước và nền sau có đủ tỷ lệ tương phản"
139
+ },
140
+ "lighthouse-core/audits/accessibility/definition-list.js | description": {
141
+ "message": "Khi danh sách định nghĩa không được đánh dấu đúng cách, thì trình đọc màn hình có thể tạo ra thông báo gây nhầm lẫn hoặc không chính xác. [Tìm hiểu thêm](https://web.dev/definition-list/)."
142
+ },
143
+ "lighthouse-core/audits/accessibility/definition-list.js | failureTitle": {
144
+ "message": "`<dl>` không chỉ chứa các nhóm `<dt>` và `<dd>` được sắp xếp đúng cách, các phần tử `<script>`, `<template>` hoặc `<div>`."
145
+ },
146
+ "lighthouse-core/audits/accessibility/definition-list.js | title": {
147
+ "message": "`<dl>` chỉ chứa các nhóm `<dt>` và `<dd>` được sắp xếp đúng cách, các phần tử `<script>`, `<template>` hoặc `<div>`."
148
+ },
149
+ "lighthouse-core/audits/accessibility/dlitem.js | description": {
150
+ "message": "Các mục trong danh sách định nghĩa (`<dt>` và `<dd>`) phải được đưa vào một phần tử `<dl>` mẹ để đảm bảo rằng trình đọc màn hình có thể thông báo đúng cách các mục này. [Tìm hiểu thêm](https://web.dev/dlitem/)."
151
+ },
152
+ "lighthouse-core/audits/accessibility/dlitem.js | failureTitle": {
153
+ "message": "Các phần tử `<dl>` không bao gồm những mục trong danh sách định nghĩa"
154
+ },
155
+ "lighthouse-core/audits/accessibility/dlitem.js | title": {
156
+ "message": "Các phần tử `<dl>` chứa mục trong danh sách định nghĩa"
157
+ },
158
+ "lighthouse-core/audits/accessibility/document-title.js | description": {
159
+ "message": "Tiêu đề giúp người dùng trình đọc màn hình nắm được thông tin tổng quan về trang, và giúp người dùng công cụ tìm kiếm chủ yếu dựa vào tiêu đề này xác định xem một trang có liên quan đến nội dung tìm kiếm của họ hay không. [Tìm hiểu thêm](https://web.dev/document-title/)."
160
+ },
161
+ "lighthouse-core/audits/accessibility/document-title.js | failureTitle": {
162
+ "message": "Tài liệu không có phần tử `<title>`"
163
+ },
164
+ "lighthouse-core/audits/accessibility/document-title.js | title": {
165
+ "message": "Tài liệu có phần tử `<title>`"
166
+ },
167
+ "lighthouse-core/audits/accessibility/duplicate-id-active.js | description": {
168
+ "message": "Để có thể hiển thị với các công nghệ hỗ trợ, `id` của các phần tử có thể lấy tiêu điểm không được trùng nhau. [Tìm hiểu thêm](https://web.dev/duplicate-id-active/)."
169
+ },
170
+ "lighthouse-core/audits/accessibility/duplicate-id-active.js | failureTitle": {
171
+ "message": "Các thuộc tính `[id]` trên những phần tử có thể lấy tiêu điểm đang hoạt động bị trùng nhau"
172
+ },
173
+ "lighthouse-core/audits/accessibility/duplicate-id-active.js | title": {
174
+ "message": "Các thuộc tính `[id]` trên những phần tử có thể lấy tiêu điểm đang hoạt động là duy nhất"
175
+ },
176
+ "lighthouse-core/audits/accessibility/duplicate-id-aria.js | description": {
177
+ "message": "Để các công nghệ hỗ trợ không bỏ qua các phiên bản khác, giá trị mã nhận dạng của ARIA không được trùng nhau. [Tìm hiểu thêm](https://web.dev/duplicate-id-aria/)."
178
+ },
179
+ "lighthouse-core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
180
+ "message": "Mã nhận dạng của ARIA bị trùng lặp"
181
+ },
182
+ "lighthouse-core/audits/accessibility/duplicate-id-aria.js | title": {
183
+ "message": "Mã nhận dạng của Ứng dụng Internet phong phú dễ dùng (ARIA) là duy nhất"
184
+ },
185
+ "lighthouse-core/audits/accessibility/form-field-multiple-labels.js | description": {
186
+ "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sử dụng nhãn đầu tiên, nhãn cuối cùng hoặc tất cả các nhãn có thể thông báo nhầm các trường biểu mẫu có nhiều nhãn. [Tìm hiểu thêm](https://web.dev/form-field-multiple-labels/)."
187
+ },
188
+ "lighthouse-core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
189
+ "message": "Các trường biểu mẫu có nhiều nhãn"
190
+ },
191
+ "lighthouse-core/audits/accessibility/form-field-multiple-labels.js | title": {
192
+ "message": "Không có trường biểu mẫu nào có nhiều nhãn"
193
+ },
194
+ "lighthouse-core/audits/accessibility/frame-title.js | description": {
195
+ "message": "Người dùng trình đọc màn hình dựa vào tiêu đề khung để mô tả nội dung của khung. [Tìm hiểu thêm](https://web.dev/frame-title/)."
196
+ },
197
+ "lighthouse-core/audits/accessibility/frame-title.js | failureTitle": {
198
+ "message": "Phần tử `<frame>` hoặc `<iframe>` không có tiêu đề"
199
+ },
200
+ "lighthouse-core/audits/accessibility/frame-title.js | title": {
201
+ "message": "Các phần tử `<frame>` hoặc `<iframe>` có tiêu đề"
202
+ },
203
+ "lighthouse-core/audits/accessibility/heading-order.js | description": {
204
+ "message": "Nhờ cách thức sắp xếp tiêu đề sao cho không bỏ qua các cấp độ thể hiện cấu trúc ngữ nghĩa của trang, người dùng dễ dàng hiểu được nội dung và thực hiện thao tác bằng công nghệ hỗ trợ hơn. [Tìm hiểu thêm](https://web.dev/heading-order/)."
205
+ },
206
+ "lighthouse-core/audits/accessibility/heading-order.js | failureTitle": {
207
+ "message": "Các phần tử tiêu đề không tuân theo trình tự giảm dần"
208
+ },
209
+ "lighthouse-core/audits/accessibility/heading-order.js | title": {
210
+ "message": "Các phần tử tiêu đề xuất hiện theo trình tự giảm dần"
211
+ },
212
+ "lighthouse-core/audits/accessibility/html-has-lang.js | description": {
213
+ "message": "Nếu một trang chưa chỉ định thuộc tính ngôn ngữ, thì trình đọc màn hình sẽ xem như trang đó đang hiển thị bằng ngôn ngữ mặc định mà người dùng chọn khi thiết lập trình đọc màn hình. Nếu trên thực tế, trang đó không hiển thị bằng ngôn ngữ mặc định, tức là trình đọc màn hình có thể thông báo sai về văn bản của trang đó. [Tìm hiểu thêm](https://web.dev/html-has-lang/)."
214
+ },
215
+ "lighthouse-core/audits/accessibility/html-has-lang.js | failureTitle": {
216
+ "message": "Phần tử `<html>` chưa có thuộc tính `[lang]`"
217
+ },
218
+ "lighthouse-core/audits/accessibility/html-has-lang.js | title": {
219
+ "message": "Phần tử `<html>` có thuộc tính `[lang]`"
220
+ },
221
+ "lighthouse-core/audits/accessibility/html-lang-valid.js | description": {
222
+ "message": "Việc chỉ định [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ sẽ giúp trình đọc màn hình thông báo văn bản đúng cách. [Tìm hiểu thêm](https://web.dev/html-lang-valid/)."
223
+ },
224
+ "lighthouse-core/audits/accessibility/html-lang-valid.js | failureTitle": {
225
+ "message": "Thuộc tính `[lang]` của phần tử `<html>` không có giá trị hợp lệ."
226
+ },
227
+ "lighthouse-core/audits/accessibility/html-lang-valid.js | title": {
228
+ "message": "Thuộc tính `[lang]` của phần tử `<html>` có giá trị hợp lệ"
229
+ },
230
+ "lighthouse-core/audits/accessibility/image-alt.js | description": {
231
+ "message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Có thể bỏ qua phần tử trang trí bằng một thuộc tính alt trống. [Tìm hiểu thêm](https://web.dev/image-alt/)."
232
+ },
233
+ "lighthouse-core/audits/accessibility/image-alt.js | failureTitle": {
234
+ "message": "Phần tử hình ảnh không có thuộc tính `[alt]`"
235
+ },
236
+ "lighthouse-core/audits/accessibility/image-alt.js | title": {
237
+ "message": "Các phần tử hình ảnh có thuộc tính `[alt]`"
238
+ },
239
+ "lighthouse-core/audits/accessibility/input-image-alt.js | description": {
240
+ "message": "Khi dùng một hình ảnh làm nút `<input>`, thì việc cung cấp văn bản thay thế có thể giúp người dùng trình đọc màn hình hiểu rõ mục đích của nút đó. [Tìm hiểu thêm](https://web.dev/input-image-alt/)."
241
+ },
242
+ "lighthouse-core/audits/accessibility/input-image-alt.js | failureTitle": {
243
+ "message": "Các phần tử `<input type=\"image\">` không có văn bản `[alt]`"
244
+ },
245
+ "lighthouse-core/audits/accessibility/input-image-alt.js | title": {
246
+ "message": "Các phần tử `<input type=\"image\">` có văn bản `[alt]`"
247
+ },
248
+ "lighthouse-core/audits/accessibility/label.js | description": {
249
+ "message": "Các nhãn đảm bảo rằng những công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, thông báo các biện pháp kiểm soát biểu mẫu đúng cách. [Tìm hiểu thêm](https://web.dev/label/)."
250
+ },
251
+ "lighthouse-core/audits/accessibility/label.js | failureTitle": {
252
+ "message": "Các phần tử biểu mẫu không có nhãn liên kết"
253
+ },
254
+ "lighthouse-core/audits/accessibility/label.js | title": {
255
+ "message": "Các phần tử biểu mẫu có nhãn liên quan"
256
+ },
257
+ "lighthouse-core/audits/accessibility/link-name.js | description": {
258
+ "message": "Văn bản liên kết (và văn bản thay thế cho hình ảnh, khi dùng làm đường liên kết) có thể thấy rõ, duy nhất và có thể lấy tiêu điểm sẽ cải thiện trải nghiệm khám phá cho người dùng trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/link-name/)."
259
+ },
260
+ "lighthouse-core/audits/accessibility/link-name.js | failureTitle": {
261
+ "message": "Các phần tử liên kết không có tên có thể nhận rõ"
262
+ },
263
+ "lighthouse-core/audits/accessibility/link-name.js | title": {
264
+ "message": "Các phần tử liên kết có tên có thể nhận rõ"
265
+ },
266
+ "lighthouse-core/audits/accessibility/list.js | description": {
267
+ "message": "Các trình đọc màn hình có cách riêng để thông báo về danh sách. Khi danh sách có cấu trúc phù hợp, trình đọc màn hình sẽ thông báo về danh sách chính xác hơn. [Tìm hiểu thêm](https://web.dev/list/)."
268
+ },
269
+ "lighthouse-core/audits/accessibility/list.js | failureTitle": {
270
+ "message": "Danh sách không chỉ chứa các phần tử `<li>` và phần tử hỗ trợ tập lệnh (`<script>` và `<template>`)."
271
+ },
272
+ "lighthouse-core/audits/accessibility/list.js | title": {
273
+ "message": "Danh sách chỉ chứa các phần tử `<li>` và phần tử hỗ trợ tập lệnh (`<script>` và `<template>`)."
274
+ },
275
+ "lighthouse-core/audits/accessibility/listitem.js | description": {
276
+ "message": "Trình đọc màn hình yêu cầu các mục danh sách (`<li>`) phải có trong một `<ul>` hoặc `<ol>` mẹ để được thông báo đúng cách. [Tìm hiểu thêm](https://web.dev/listitem/)."
277
+ },
278
+ "lighthouse-core/audits/accessibility/listitem.js | failureTitle": {
279
+ "message": "Các mục trong danh sách (`<li>`) không có trong phần tử `<ul>` hoặc `<ol>` mẹ."
280
+ },
281
+ "lighthouse-core/audits/accessibility/listitem.js | title": {
282
+ "message": "Các mục trong danh sách (`<li>`) có trong phần tử mẹ `<ul>` hoặc `<ol>`"
283
+ },
284
+ "lighthouse-core/audits/accessibility/meta-refresh.js | description": {
285
+ "message": "Người dùng không muốn trang tự động làm mới. Khi trang tự động làm mới, tiêu điểm sẽ quay về đầu trang. Người dùng có thể cảm thấy khó chịu hoặc bị nhầm lẫn nếu gặp trường hợp này. [Tìm hiểu thêm](https://web.dev/meta-refresh/)."
286
+ },
287
+ "lighthouse-core/audits/accessibility/meta-refresh.js | failureTitle": {
288
+ "message": "Tài liệu này sử dụng `<meta http-equiv=\"refresh\">`"
289
+ },
290
+ "lighthouse-core/audits/accessibility/meta-refresh.js | title": {
291
+ "message": "Tài liệu này không dùng `<meta http-equiv=\"refresh\">`"
292
+ },
293
+ "lighthouse-core/audits/accessibility/meta-viewport.js | description": {
294
+ "message": "Việc tắt tính năng thu phóng sẽ gây trở ngại cho những người dùng có thị lực kém bị lệ thuộc vào chức năng phóng to màn hình để thấy rõ nội dung trang web. [Tìm hiểu thêm](https://web.dev/meta-viewport/)."
295
+ },
296
+ "lighthouse-core/audits/accessibility/meta-viewport.js | failureTitle": {
297
+ "message": "`[user-scalable=\"no\"]` được dùng trong phần tử `<meta name=\"viewport\">` hoặc thuộc tính `[maximum-scale]` nhỏ hơn 5."
298
+ },
299
+ "lighthouse-core/audits/accessibility/meta-viewport.js | title": {
300
+ "message": "`[user-scalable=\"no\"]` không được sử dụng trong phần tử `<meta name=\"viewport\">` và thuộc tính `[maximum-scale]` không nhỏ hơn 5."
301
+ },
302
+ "lighthouse-core/audits/accessibility/object-alt.js | description": {
303
+ "message": "Trình đọc màn hình không thể dịch nội dung không ở dạng văn bản. Khi bạn thêm văn bản thay thế vào các phần tử `<object>`, trình đọc màn hình sẽ truyền đạt được ý nghĩa cho người dùng. [Tìm hiểu thêm](https://web.dev/object-alt/)."
304
+ },
305
+ "lighthouse-core/audits/accessibility/object-alt.js | failureTitle": {
306
+ "message": "Các phần tử `<object>` không có văn bản `[alt]`"
307
+ },
308
+ "lighthouse-core/audits/accessibility/object-alt.js | title": {
309
+ "message": "Các phần tử `<object>` có văn bản `[alt]`"
310
+ },
311
+ "lighthouse-core/audits/accessibility/tabindex.js | description": {
312
+ "message": "Giá trị lớn hơn 0 ngụ ý thứ tự di chuyển rõ ràng. Mặc dù hợp lệ về mặt kỹ thuật nhưng điều này thường tạo ra trải nghiệm khó chịu cho những người dùng bị lệ thuộc vào công nghệ hỗ trợ. [Tìm hiểu thêm](https://web.dev/tabindex/)."
313
+ },
314
+ "lighthouse-core/audits/accessibility/tabindex.js | failureTitle": {
315
+ "message": "Một số phần tử có giá trị `[tabindex]` lớn hơn 0"
316
+ },
317
+ "lighthouse-core/audits/accessibility/tabindex.js | title": {
318
+ "message": "Không phần tử nào có giá trị `[tabindex]` lớn hơn 0"
319
+ },
320
+ "lighthouse-core/audits/accessibility/td-headers-attr.js | description": {
321
+ "message": "Trình đọc màn hình có các tính năng giúp người dùng dễ sử dụng bảng hơn. Việc đảm bảo các ô `<td>` sử dụng thuộc tính `[headers]` chỉ tham chiếu các ô khác trong cùng bảng có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/td-headers-attr/)."
322
+ },
323
+ "lighthouse-core/audits/accessibility/td-headers-attr.js | failureTitle": {
324
+ "message": "Các ô trong phần tử `<table>` sử dụng thuộc tính `[headers]` tham chiếu đến một phần tử `id` không tìm thấy trong cùng một bảng."
325
+ },
326
+ "lighthouse-core/audits/accessibility/td-headers-attr.js | title": {
327
+ "message": "Các ô trong phần tử `<table>` sử dụng thuộc tính `[headers]` tham chiếu đến các ô trong cùng một bảng."
328
+ },
329
+ "lighthouse-core/audits/accessibility/th-has-data-cells.js | description": {
330
+ "message": "Trình đọc màn hình có các tính năng giúp người dùng dễ sử dụng bảng hơn. Việc đảm bảo tiêu đề bảng luôn tham chiếu đến một nhóm ô nào đó có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/th-has-data-cells/)."
331
+ },
332
+ "lighthouse-core/audits/accessibility/th-has-data-cells.js | failureTitle": {
333
+ "message": "Các phần tử `<th>` và phần tử có `[role=\"columnheader\"/\"rowheader\"]` không chứa các ô dữ liệu mà các phần tử đó mô tả."
334
+ },
335
+ "lighthouse-core/audits/accessibility/th-has-data-cells.js | title": {
336
+ "message": "Các phần tử `<th>` và phần tử có `[role=\"columnheader\"/\"rowheader\"]` chứa các ô dữ liệu mà các phần tử này mô tả."
337
+ },
338
+ "lighthouse-core/audits/accessibility/valid-lang.js | description": {
339
+ "message": "Việc chỉ định một [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ cho các phần tử sẽ giúp trình đọc màn hình phát âm văn bản chính xác. [Tìm hiểu thêm](https://web.dev/valid-lang/)."
340
+ },
341
+ "lighthouse-core/audits/accessibility/valid-lang.js | failureTitle": {
342
+ "message": "Các thuộc tính `[lang]` không có giá trị hợp lệ"
343
+ },
344
+ "lighthouse-core/audits/accessibility/valid-lang.js | title": {
345
+ "message": "Các thuộc tính `[lang]` có giá trị hợp lệ"
346
+ },
347
+ "lighthouse-core/audits/accessibility/video-caption.js | description": {
348
+ "message": "Video có phụ đề có thể giúp người dùng bị khiếm thính và nặng tai dễ dàng tiếp cận nội dung video hơn. [Tìm hiểu thêm](https://web.dev/video-caption/)."
349
+ },
350
+ "lighthouse-core/audits/accessibility/video-caption.js | failureTitle": {
351
+ "message": "Các phần tử `<video>` không chứa phần tử `<track>` có `[kind=\"captions\"]`."
352
+ },
353
+ "lighthouse-core/audits/accessibility/video-caption.js | title": {
354
+ "message": "Các phần tử `<video>` chứa phần tử `<track>` có `[kind=\"captions\"]`"
355
+ },
356
+ "lighthouse-core/audits/apple-touch-icon.js | description": {
357
+ "message": "Hãy xác định `apple-touch-icon` để khi người dùng thêm một ứng dụng web tiến bộ vào màn hình chính trên iOS, biểu tượng ứng dụng sẽ hiển thị chính xác. Thuộc tính này phải trỏ đến ảnh PNG vuông có kích thước 192px (hoặc 180px) ở dạng không trong suốt. [Tìm hiểu thêm](https://web.dev/apple-touch-icon/)"
358
+ },
359
+ "lighthouse-core/audits/apple-touch-icon.js | failureTitle": {
360
+ "message": "Chưa cung cấp `apple-touch-icon` hợp lệ"
361
+ },
362
+ "lighthouse-core/audits/apple-touch-icon.js | precomposedWarning": {
363
+ "message": "`apple-touch-icon-precomposed` đã lỗi thời, nên dùng `apple-touch-icon`."
364
+ },
365
+ "lighthouse-core/audits/apple-touch-icon.js | title": {
366
+ "message": "Hãy cung cấp `apple-touch-icon` hợp lệ"
367
+ },
368
+ "lighthouse-core/audits/autocomplete.js | columnCurrent": {
369
+ "message": "Giá trị hiện tại"
370
+ },
371
+ "lighthouse-core/audits/autocomplete.js | columnSuggestions": {
372
+ "message": "Mã thông báo đề xuất"
373
+ },
374
+ "lighthouse-core/audits/autocomplete.js | description": {
375
+ "message": "`autocomplete` giúp người dùng gửi biểu mẫu nhanh hơn. Để thuận tiện cho người dùng, hãy cân nhắc cho phép thuộc tính trên bằng cách đặt một giá trị hợp lệ cho `autocomplete`. [Tìm hiểu thêm](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)"
376
+ },
377
+ "lighthouse-core/audits/autocomplete.js | failureTitle": {
378
+ "message": "Thuộc tính `autocomplete` của các phần tử `<input>` là không chính xác"
379
+ },
380
+ "lighthouse-core/audits/autocomplete.js | manualReview": {
381
+ "message": "Yêu cầu xem xét thủ công"
382
+ },
383
+ "lighthouse-core/audits/autocomplete.js | reviewOrder": {
384
+ "message": "Xem xét thứ tự của các mã thông báo"
385
+ },
386
+ "lighthouse-core/audits/autocomplete.js | title": {
387
+ "message": "Các phần tử `<input>` sử dụng `autocomplete` đúng cách"
388
+ },
389
+ "lighthouse-core/audits/autocomplete.js | warningInvalid": {
390
+ "message": "(Các) mã thông báo `autocomplete`: \"{token}\" là không hợp lệ trong {snippet}"
391
+ },
392
+ "lighthouse-core/audits/autocomplete.js | warningOrder": {
393
+ "message": "Xem xét thứ tự của các mã thông báo: \"{tokens}\" trong {snippet}"
394
+ },
395
+ "lighthouse-core/audits/bootup-time.js | chromeExtensionsWarning": {
396
+ "message": "Các tiện ích của Chrome ảnh hưởng tiêu cực đến hiệu suất tải của trang này. Hãy thử kiểm tra trang ở chế độ ẩn danh hoặc từ một hồ sơ trên Chrome không có tiện ích."
397
+ },
398
+ "lighthouse-core/audits/bootup-time.js | columnScriptEval": {
399
+ "message": "Đánh giá tập lệnh"
400
+ },
401
+ "lighthouse-core/audits/bootup-time.js | columnScriptParse": {
402
+ "message": "Phân tích cú pháp tập lệnh"
403
+ },
404
+ "lighthouse-core/audits/bootup-time.js | columnTotal": {
405
+ "message": "Tổng thời gian của CPU"
406
+ },
407
+ "lighthouse-core/audits/bootup-time.js | description": {
408
+ "message": "Hãy cân nhắc giảm thời gian dùng để phân tích cú pháp, biên soạn và thực thi JS. Bạn có thể giải quyết vấn đề này bằng cách phân phối các tải trọng JS nhỏ hơn. [Tìm hiểu thêm](https://web.dev/bootup-time/)."
409
+ },
410
+ "lighthouse-core/audits/bootup-time.js | failureTitle": {
411
+ "message": "Giảm thời gian thực thi JavaScript"
412
+ },
413
+ "lighthouse-core/audits/bootup-time.js | title": {
414
+ "message": "Thời gian thực thi JavaScript"
415
+ },
416
+ "lighthouse-core/audits/byte-efficiency/duplicated-javascript.js | description": {
417
+ "message": "Xóa các mô-đun JavaScript lớn, trùng lặp khỏi gói để giảm số byte mà hoạt động mạng tiêu thụ một cách không cần thiết. "
418
+ },
419
+ "lighthouse-core/audits/byte-efficiency/duplicated-javascript.js | title": {
420
+ "message": "Xóa các mô-đun trùng lặp trong gói JavaScript"
421
+ },
422
+ "lighthouse-core/audits/byte-efficiency/efficient-animated-content.js | description": {
423
+ "message": "Ảnh GIF lớn không có hiệu quả trong việc phân phối nội dung động. Hãy cân nhắc sử dụng video MPEG4/WebM cho ảnh động và PNG/WebP cho ảnh tĩnh thay vì ảnh GIF để tiết kiệm dữ liệu mạng. [Tìm hiểu thêm](https://web.dev/efficient-animated-content/)"
424
+ },
425
+ "lighthouse-core/audits/byte-efficiency/efficient-animated-content.js | title": {
426
+ "message": "Sử dụng các định dạng video cho nội dung động"
427
+ },
428
+ "lighthouse-core/audits/byte-efficiency/legacy-javascript.js | description": {
429
+ "message": "Mã Polyfill và Transform cho phép trình duyệt cũ dùng các tính năng mới của JavaScript. Tuy nhiên, nhiều tính năng không cần thiết cho trình duyệt mới nữa. Đối với JavaScript trong gói của bạn, hãy áp dụng chiến lược triển khai tập lệnh mới bằng cách dùng cơ chế phát hiện tính năng theo mô-đun/không theo mô-đun để giảm số lượng mã gửi đến trình duyệt mới trong khi vẫn tiếp tục hỗ trợ cho trình duyệt cũ. [Tìm hiểu thêm](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/)"
430
+ },
431
+ "lighthouse-core/audits/byte-efficiency/legacy-javascript.js | title": {
432
+ "message": "Tránh phân phối JavaScript cũ tới các trình duyệt hiện đại"
433
+ },
434
+ "lighthouse-core/audits/byte-efficiency/offscreen-images.js | description": {
435
+ "message": "Hãy cân nhắc tải từng phần các hình ảnh ẩn và nằm ngoài màn hình sau khi tải xong tất cả tài nguyên quan trọng nhằm giảm thời gian tương tác. [Tìm hiểu thêm](https://web.dev/offscreen-images/)."
436
+ },
437
+ "lighthouse-core/audits/byte-efficiency/offscreen-images.js | title": {
438
+ "message": "Trì hoãn tải các hình ảnh ngoài màn hình"
439
+ },
440
+ "lighthouse-core/audits/byte-efficiency/render-blocking-resources.js | description": {
441
+ "message": "Các tài nguyên đang chặn lần hiển thị đầu tiên của trang. Hãy cân nhắc phân phối nội dòng JS/Biểu định kiểu xếp chồng (CSS) quan trọng và trì hoãn mọi JS/kiểu không quan trọng. [Tìm hiểu thêm](https://web.dev/render-blocking-resources/)."
442
+ },
443
+ "lighthouse-core/audits/byte-efficiency/render-blocking-resources.js | title": {
444
+ "message": "Loại bỏ các tài nguyên chặn hiển thị"
445
+ },
446
+ "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | description": {
447
+ "message": "Tải trọng mạng lớn gây tốn kém cho người dùng và thường khiến thời gian tải lâu. [Tìm hiểu thêm](https://web.dev/total-byte-weight/)."
448
+ },
449
+ "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
450
+ "message": "Tổng kích thước là {totalBytes, number, bytes} KiB"
451
+ },
452
+ "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
453
+ "message": "Tránh các tài nguyên lớn trên mạng"
454
+ },
455
+ "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | title": {
456
+ "message": "Tránh tài nguyên lớn trên mạng"
457
+ },
458
+ "lighthouse-core/audits/byte-efficiency/unminified-css.js | description": {
459
+ "message": "Việc giảm kích thước tệp Biểu định kiểu xếp chồng (CSS) có thể giảm kích thước tải trọng mạng. [Tìm hiểu thêm](https://web.dev/unminified-css/)."
460
+ },
461
+ "lighthouse-core/audits/byte-efficiency/unminified-css.js | title": {
462
+ "message": "Rút gọn CSS"
463
+ },
464
+ "lighthouse-core/audits/byte-efficiency/unminified-javascript.js | description": {
465
+ "message": "Việc giảm kích thước tệp JavaScript có thể giảm kích thước tải trọng và thời gian phân tích cú pháp tập lệnh. [Tìm hiểu thêm](https://web.dev/unminified-javascript/)."
466
+ },
467
+ "lighthouse-core/audits/byte-efficiency/unminified-javascript.js | title": {
468
+ "message": "Rút gọn JavaScript"
469
+ },
470
+ "lighthouse-core/audits/byte-efficiency/unused-css-rules.js | description": {
471
+ "message": "Hãy xóa các quy tắc vô hiệu khỏi biểu định kiểu và trì hoãn tải Biểu định kiểu xếp chồng (CSS) không dùng cho nội dung trong màn hình đầu tiên để giảm số byte không cần thiết mà hoạt động mạng sử dụng. [Tìm hiểu thêm](https://web.dev/unused-css-rules/)."
472
+ },
473
+ "lighthouse-core/audits/byte-efficiency/unused-css-rules.js | title": {
474
+ "message": "Xóa biểu định kiểu xếp chồng (CSS) không dùng"
475
+ },
476
+ "lighthouse-core/audits/byte-efficiency/unused-javascript.js | description": {
477
+ "message": "Xóa JavaScript không còn dùng nữa để giảm số byte dành cho hoạt động mạng. [Tìm hiểu thêm](https://web.dev/unused-javascript/)."
478
+ },
479
+ "lighthouse-core/audits/byte-efficiency/unused-javascript.js | title": {
480
+ "message": "Xóa JavaScript không dùng"
481
+ },
482
+ "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
483
+ "message": "Bộ nhớ đệm có thời gian hữu dụng dài có thể giúp tăng tốc số lượt truy cập lặp lại vào trang của bạn. [Tìm hiểu thêm](https://web.dev/uses-long-cache-ttl/)."
484
+ },
485
+ "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": {
486
+ "message": "{itemCount,plural, =1{Đã tìm thấy 1 tài nguyên}other{Đã tìm thấy # tài nguyên}}"
487
+ },
488
+ "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
489
+ "message": "Phân phối các nội dung tĩnh bằng chính sách bộ nhớ đệm hiệu quả"
490
+ },
491
+ "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
492
+ "message": "Sử dụng chính sách bộ nhớ đệm hiệu quả cho các nội dung tĩnh"
493
+ },
494
+ "lighthouse-core/audits/byte-efficiency/uses-optimized-images.js | description": {
495
+ "message": "Hình ảnh được tối ưu hóa sẽ tải nhanh hơn và tiêu tốn ít dữ liệu di động hơn. [Tìm hiểu thêm](https://web.dev/uses-optimized-images/)."
496
+ },
497
+ "lighthouse-core/audits/byte-efficiency/uses-optimized-images.js | title": {
498
+ "message": "Mã hóa hình ảnh hiệu quả"
499
+ },
500
+ "lighthouse-core/audits/byte-efficiency/uses-responsive-images.js | description": {
501
+ "message": "Phân phát hình ảnh có kích thước phù hợp để tiết kiệm dữ liệu di động và cải thiện thời gian tải. [Tìm hiểu thêm](https://web.dev/uses-responsive-images/)."
502
+ },
503
+ "lighthouse-core/audits/byte-efficiency/uses-responsive-images.js | title": {
504
+ "message": "Thay đổi kích thước hình ảnh cho phù hợp"
505
+ },
506
+ "lighthouse-core/audits/byte-efficiency/uses-text-compression.js | description": {
507
+ "message": "Phải phân phát các tài nguyên dựa trên văn bản ở định dạng nén (gzip, deflate hoặc brotli) để giảm thiểu tổng số byte mạng. [Tìm hiểu thêm](https://web.dev/uses-text-compression/)."
508
+ },
509
+ "lighthouse-core/audits/byte-efficiency/uses-text-compression.js | title": {
510
+ "message": "Bật tính năng nén văn bản"
511
+ },
512
+ "lighthouse-core/audits/byte-efficiency/uses-webp-images.js | description": {
513
+ "message": "Các định dạng hình ảnh như JPEG 2000, JPEG XR và WebP thường nén tốt hơn PNG hoặc JPEG, tức là tải xuống nhanh hơn và tiêu tốn ít dữ liệu hơn. [Tìm hiểu thêm](https://web.dev/uses-webp-images/)."
514
+ },
515
+ "lighthouse-core/audits/byte-efficiency/uses-webp-images.js | title": {
516
+ "message": "Phân phối hình ảnh ở định dạng mới và hiệu quả hơn"
517
+ },
518
+ "lighthouse-core/audits/content-width.js | description": {
519
+ "message": "Nếu chiều rộng của nội dung trong ứng dụng không khớp với chiều rộng của khung nhìn, thì ứng dụng có thể không được tối ưu hóa cho màn hình thiết bị di động. [Tìm hiểu thêm](https://web.dev/content-width/)"
520
+ },
521
+ "lighthouse-core/audits/content-width.js | explanation": {
522
+ "message": "Kích thước khung nhìn {innerWidth}px không khớp với kích thước cửa sổ {outerWidth}px."
523
+ },
524
+ "lighthouse-core/audits/content-width.js | failureTitle": {
525
+ "message": "Kích thước của nội dung không phù hợp với khung nhìn"
526
+ },
527
+ "lighthouse-core/audits/content-width.js | title": {
528
+ "message": "Kích thước của nội dung phù hợp với khung nhìn"
529
+ },
530
+ "lighthouse-core/audits/critical-request-chains.js | description": {
531
+ "message": "Các Chuỗi yêu cầu quan trọng dưới đây cho bạn biết những tài nguyên có mức độ ưu tiên cao sẽ được tải. Hãy cân nhắc giảm độ dài chuỗi, giảm kích thước tài nguyên tải xuống hoặc trì hoãn tải xuống các tài nguyên không cần thiết để cải thiện tốc độ tải trang. [Tìm hiểu thêm](https://web.dev/critical-request-chains/)."
532
+ },
533
+ "lighthouse-core/audits/critical-request-chains.js | displayValue": {
534
+ "message": "{itemCount,plural, =1{Đã tìm thấy 1 chuỗi}other{Đã tìm thấy # chuỗi}}"
535
+ },
536
+ "lighthouse-core/audits/critical-request-chains.js | title": {
537
+ "message": "Tránh tạo chuỗi các yêu cầu quan trọng"
538
+ },
539
+ "lighthouse-core/audits/deprecations.js | columnDeprecate": {
540
+ "message": "Không dùng nữa/Cảnh báo"
541
+ },
542
+ "lighthouse-core/audits/deprecations.js | columnLine": {
543
+ "message": "Dòng"
544
+ },
545
+ "lighthouse-core/audits/deprecations.js | description": {
546
+ "message": "Cuối cùng, các API không dùng nữa sẽ bị xóa khỏi trình duyệt. [Tìm hiểu thêm](https://web.dev/deprecations/)."
547
+ },
548
+ "lighthouse-core/audits/deprecations.js | displayValue": {
549
+ "message": "{itemCount,plural, =1{Tìm thấy 1 cảnh báo}other{Tìm thấy # cảnh báo}}"
550
+ },
551
+ "lighthouse-core/audits/deprecations.js | failureTitle": {
552
+ "message": "Sử dụng các API không dùng nữa"
553
+ },
554
+ "lighthouse-core/audits/deprecations.js | title": {
555
+ "message": "Tránh các API không dùng nữa"
556
+ },
557
+ "lighthouse-core/audits/dobetterweb/appcache-manifest.js | description": {
558
+ "message": "Bộ nhớ đệm của ứng dụng không còn dùng nữa. [Tìm hiểu thêm](https://web.dev/appcache-manifest/)."
559
+ },
560
+ "lighthouse-core/audits/dobetterweb/appcache-manifest.js | displayValue": {
561
+ "message": "Tìm thấy \"{AppCacheManifest}\""
562
+ },
563
+ "lighthouse-core/audits/dobetterweb/appcache-manifest.js | failureTitle": {
564
+ "message": "Dùng bộ nhớ đệm của ứng dụng"
565
+ },
566
+ "lighthouse-core/audits/dobetterweb/appcache-manifest.js | title": {
567
+ "message": "Tránh sử dụng bộ nhớ đệm của ứng dụng"
568
+ },
569
+ "lighthouse-core/audits/dobetterweb/charset.js | description": {
570
+ "message": "Cần khai báo hệ thống mã hóa ký tự. Bạn có thể thực hiện việc này bằng thẻ `<meta>` trong 1024 byte đầu tiên của HTML hoặc trong tiêu đề phản hồi HTTP Loại–Nội dung. [Tìm hiểu thêm](https://web.dev/charset/)."
571
+ },
572
+ "lighthouse-core/audits/dobetterweb/charset.js | failureTitle": {
573
+ "message": "Thiếu thông tin khai báo về bộ ký tự hoặc khai báo quá muộn trong HTML"
574
+ },
575
+ "lighthouse-core/audits/dobetterweb/charset.js | title": {
576
+ "message": "Xác định đúng bộ ký tự"
577
+ },
578
+ "lighthouse-core/audits/dobetterweb/doctype.js | description": {
579
+ "message": "Khi bạn chỉ định loại tài liệu, trình duyệt sẽ không chuyển sang chế độ tương thích ngược. [Tìm hiểu thêm](https://web.dev/doctype/)"
580
+ },
581
+ "lighthouse-core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
582
+ "message": "Tên loại tài liệu phải là chuỗi `html` viết thường"
583
+ },
584
+ "lighthouse-core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
585
+ "message": "Tài liệu phải chứa một loại tài liệu"
586
+ },
587
+ "lighthouse-core/audits/dobetterweb/doctype.js | explanationPublicId": {
588
+ "message": "publicId lẽ ra phải là một chuỗi trống"
589
+ },
590
+ "lighthouse-core/audits/dobetterweb/doctype.js | explanationSystemId": {
591
+ "message": "systemId lẽ ra phải là một chuỗi trống"
592
+ },
593
+ "lighthouse-core/audits/dobetterweb/doctype.js | failureTitle": {
594
+ "message": "Trang thiếu loại tài liệu HTML nên đã kích hoạt chế độ tương thích ngược"
595
+ },
596
+ "lighthouse-core/audits/dobetterweb/doctype.js | title": {
597
+ "message": "Trang có loại tài liệu HTML"
598
+ },
599
+ "lighthouse-core/audits/dobetterweb/dom-size.js | columnStatistic": {
600
+ "message": "Thống kê"
601
+ },
602
+ "lighthouse-core/audits/dobetterweb/dom-size.js | columnValue": {
603
+ "message": "Giá trị"
604
+ },
605
+ "lighthouse-core/audits/dobetterweb/dom-size.js | description": {
606
+ "message": "Một DOM lớn sẽ làm tăng mức sử dụng bộ nhớ, khiến [các phép tính về kiểu](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations) dài hơn, đồng thời tạo ra [các quy trình trình bày lại bố cục](https://developers.google.com/speed/articles/reflow) tốn kém. [Tìm hiểu thêm](https://web.dev/dom-size/)."
607
+ },
608
+ "lighthouse-core/audits/dobetterweb/dom-size.js | displayValue": {
609
+ "message": "{itemCount,plural, =1{1 phần tử}other{# phần tử}}"
610
+ },
611
+ "lighthouse-core/audits/dobetterweb/dom-size.js | failureTitle": {
612
+ "message": "Tránh kích thước DOM quá lớn"
613
+ },
614
+ "lighthouse-core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
615
+ "message": "Độ sâu DOM tối đa"
616
+ },
617
+ "lighthouse-core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
618
+ "message": "Tổng số các phần tử DOM"
619
+ },
620
+ "lighthouse-core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
621
+ "message": "Phần tử con tối đa"
622
+ },
623
+ "lighthouse-core/audits/dobetterweb/dom-size.js | title": {
624
+ "message": "Tránh kích thước DOM quá lớn"
625
+ },
626
+ "lighthouse-core/audits/dobetterweb/external-anchors-use-rel-noopener.js | columnFailingAnchors": {
627
+ "message": "Đường liên kết không kiểm tra được"
628
+ },
629
+ "lighthouse-core/audits/dobetterweb/external-anchors-use-rel-noopener.js | description": {
630
+ "message": "Thêm `rel=\"noopener\"` hoặc `rel=\"noreferrer\"` vào mọi đường liên kết ngoài để cải thiện hiệu suất và ngăn chặn các lỗ hổng bảo mật. [Tìm hiểu thêm](https://web.dev/external-anchors-use-rel-noopener/)."
631
+ },
632
+ "lighthouse-core/audits/dobetterweb/external-anchors-use-rel-noopener.js | failureTitle": {
633
+ "message": "Các đường liên kết đến các trang đích trên nhiều nguồn gốc là không an toàn"
634
+ },
635
+ "lighthouse-core/audits/dobetterweb/external-anchors-use-rel-noopener.js | title": {
636
+ "message": "Các đường liên kết đến các trang đích trên nhiều nguồn gốc là an toàn"
637
+ },
638
+ "lighthouse-core/audits/dobetterweb/external-anchors-use-rel-noopener.js | warning": {
639
+ "message": "Không thể xác định trang đích cho phần tử neo ({anchorHTML}). Nếu không dùng làm siêu liên kết, hãy cân nhắc xóa target=_blank."
640
+ },
641
+ "lighthouse-core/audits/dobetterweb/geolocation-on-start.js | description": {
642
+ "message": "Các trang web yêu cầu vị trí của người dùng mà không cung cấp ngữ cảnh sẽ khiến người dùng không tin tưởng hoặc bối rối. Hãy cân nhắc liên kết yêu cầu với hành động của người dùng. [Tìm hiểu thêm](https://web.dev/geolocation-on-start/)."
643
+ },
644
+ "lighthouse-core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
645
+ "message": "Yêu cầu quyền truy cập vị trí địa lý khi tải trang"
646
+ },
647
+ "lighthouse-core/audits/dobetterweb/geolocation-on-start.js | title": {
648
+ "message": "Tránh yêu cầu quyền truy cập vị trí địa lý khi tải trang"
649
+ },
650
+ "lighthouse-core/audits/dobetterweb/js-libraries.js | columnVersion": {
651
+ "message": "Phiên bản"
652
+ },
653
+ "lighthouse-core/audits/dobetterweb/js-libraries.js | description": {
654
+ "message": "Phát hiện tất cả thư viện JavaScript ở phía giao diện người dùng trên trang này. [Tìm hiểu thêm](https://web.dev/js-libraries/)"
655
+ },
656
+ "lighthouse-core/audits/dobetterweb/js-libraries.js | title": {
657
+ "message": "Thư viện JavaScript phát hiện được"
658
+ },
659
+ "lighthouse-core/audits/dobetterweb/no-document-write.js | description": {
660
+ "message": "Đối với những người dùng có kết nối chậm, các tập lệnh bên ngoài tự động được đưa vào qua `document.write()` có thể làm trang tải chậm hàng chục giây. [Tìm hiểu thêm](https://web.dev/no-document-write/)."
661
+ },
662
+ "lighthouse-core/audits/dobetterweb/no-document-write.js | failureTitle": {
663
+ "message": "Tránh `document.write()`"
664
+ },
665
+ "lighthouse-core/audits/dobetterweb/no-document-write.js | title": {
666
+ "message": "Tránh `document.write()`"
667
+ },
668
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | columnSeverity": {
669
+ "message": "Mức độ nghiêm trọng cao nhất"
670
+ },
671
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | columnVersion": {
672
+ "message": "Phiên bản thư viện"
673
+ },
674
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | columnVuln": {
675
+ "message": "Số lượng lỗ hổng"
676
+ },
677
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | description": {
678
+ "message": "Một số tập lệnh của bên thứ ba có thể chứa các lỗ hổng bảo mật đã biết mà kẻ tấn công dễ dàng xác định và khai thác. [Tìm hiểu thêm](https://web.dev/no-vulnerable-libraries/)."
679
+ },
680
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | displayValue": {
681
+ "message": "{itemCount,plural, =1{Phát hiện thấy 1 lỗ hổng}other{Phát hiện thấy # lỗ hổng}}"
682
+ },
683
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | failureTitle": {
684
+ "message": "Bao gồm các thư viện giao diện người dùng JavaScript có những lỗ hổng bảo mật đã biết"
685
+ },
686
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | rowSeverityHigh": {
687
+ "message": "Cao"
688
+ },
689
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | rowSeverityLow": {
690
+ "message": "Thấp"
691
+ },
692
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | rowSeverityMedium": {
693
+ "message": "Trung bình"
694
+ },
695
+ "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | title": {
696
+ "message": "Tránh các thư viện giao diện người dùng JavaScript có lỗ hổng bảo mật đã biết"
697
+ },
698
+ "lighthouse-core/audits/dobetterweb/notification-on-start.js | description": {
699
+ "message": "Các trang web gửi thông báo không có ngữ cảnh sẽ khiến người dùng không tin tưởng hoặc bối rối. Hãy cân nhắc liên kết yêu cầu với cử chỉ của người dùng. [Tìm hiểu thêm](https://web.dev/notification-on-start/)."
700
+ },
701
+ "lighthouse-core/audits/dobetterweb/notification-on-start.js | failureTitle": {
702
+ "message": "Yêu cầu quyền truy cập thông báo khi tải trang"
703
+ },
704
+ "lighthouse-core/audits/dobetterweb/notification-on-start.js | title": {
705
+ "message": "Tránh yêu cầu quyền truy cập thông báo khi tải trang"
706
+ },
707
+ "lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | description": {
708
+ "message": "Việc ngăn dán mật khẩu sẽ làm giảm tác dụng của chính sách bảo mật hiệu quả. [Tìm hiểu thêm](https://web.dev/password-inputs-can-be-pasted-into/)."
709
+ },
710
+ "lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | failureTitle": {
711
+ "message": "Ngăn người dùng dán vào các trường mật khẩu"
712
+ },
713
+ "lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | title": {
714
+ "message": "Cho phép người dùng dán vào các trường mật khẩu"
715
+ },
716
+ "lighthouse-core/audits/dobetterweb/uses-http2.js | columnProtocol": {
717
+ "message": "Giao thức"
718
+ },
719
+ "lighthouse-core/audits/dobetterweb/uses-http2.js | description": {
720
+ "message": "HTTP/2 mang lại nhiều lợi ích hơn HTTP/1.1, trong đó có tiêu đề nhị phân, đa hợp và máy chủ tự quyết. [Tìm hiểu thêm](https://web.dev/uses-http2/)."
721
+ },
722
+ "lighthouse-core/audits/dobetterweb/uses-http2.js | displayValue": {
723
+ "message": "{itemCount,plural, =1{Chưa phân phát 1 yêu cầu qua HTTP/2}other{Chưa phân phát # yêu cầu qua HTTP/2}}"
724
+ },
725
+ "lighthouse-core/audits/dobetterweb/uses-http2.js | title": {
726
+ "message": "Sử dụng HTTP/2"
727
+ },
728
+ "lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
729
+ "message": "Hãy cân nhắc đánh dấu trình xử lý sự kiện chạm và di chuyển con lăn là `passive` để cải thiện hiệu suất cuộn trên trang. [Tìm hiểu thêm](https://web.dev/uses-passive-event-listeners/)."
730
+ },
731
+ "lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": {
732
+ "message": "Không sử dụng trình nghe bị động để cải thiện hiệu suất cuộn"
733
+ },
734
+ "lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
735
+ "message": "Sử dụng trình nghe bị động để cải thiện hiệu suất cuộn"
736
+ },
737
+ "lighthouse-core/audits/errors-in-console.js | description": {
738
+ "message": "Các lỗi được ghi vào bảng điều khiển là những sự cố chưa giải quyết. Những sự cố này có thể do lỗi yêu cầu mạng và các vấn đề khác của trình duyệt gây ra. [Tìm hiểu thêm](https://web.dev/errors-in-console/)"
739
+ },
740
+ "lighthouse-core/audits/errors-in-console.js | failureTitle": {
741
+ "message": "Đã ghi lỗi của trình duyệt vào bảng điều khiển"
742
+ },
743
+ "lighthouse-core/audits/errors-in-console.js | title": {
744
+ "message": "Chưa ghi lỗi nào của trình duyệt vào bảng điều khiển"
745
+ },
746
+ "lighthouse-core/audits/font-display.js | description": {
747
+ "message": "Sử dụng tính năng Biểu định kiểu xếp chồng (CSS) hiển thị phông chữ để đảm bảo văn bản hiển thị với người dùng khi phông chữ web đang tải. [Tìm hiểu thêm](https://web.dev/font-display/)."
748
+ },
749
+ "lighthouse-core/audits/font-display.js | failureTitle": {
750
+ "message": "Đảm bảo văn bản vẫn hiển thị trong khi tải phông chữ web"
751
+ },
752
+ "lighthouse-core/audits/font-display.js | title": {
753
+ "message": "Tất cả văn bản vẫn hiển thị trong khi tải phông chữ web"
754
+ },
755
+ "lighthouse-core/audits/font-display.js | undeclaredFontOriginWarning": {
756
+ "message": "{fontCountForOrigin,plural, =1{Lighthouse không thể tự động kiểm tra giá trị `font-display` cho {fontOrigin} gốc.}other{Lighthouse không thể tự động kiểm tra các giá trị `font-display` cho {fontOrigin} gốc.}}"
757
+ },
758
+ "lighthouse-core/audits/image-aspect-ratio.js | columnActual": {
759
+ "message": "Tỷ lệ khung hình (Thực tế)"
760
+ },
761
+ "lighthouse-core/audits/image-aspect-ratio.js | columnDisplayed": {
762
+ "message": "Tỷ lệ khung hình (Hiển thị)"
763
+ },
764
+ "lighthouse-core/audits/image-aspect-ratio.js | description": {
765
+ "message": "Kích thước hiển thị của hình ảnh phải khớp với tỷ lệ khung hình tự nhiên. [Tìm hiểu thêm](https://web.dev/image-aspect-ratio/)."
766
+ },
767
+ "lighthouse-core/audits/image-aspect-ratio.js | failureTitle": {
768
+ "message": "Hiển thị hình ảnh có tỷ lệ khung hình không chính xác"
769
+ },
770
+ "lighthouse-core/audits/image-aspect-ratio.js | title": {
771
+ "message": "Hiển thị hình ảnh có tỷ lệ khung hình chính xác"
772
+ },
773
+ "lighthouse-core/audits/image-size-responsive.js | columnActual": {
774
+ "message": "Kích thước thực"
775
+ },
776
+ "lighthouse-core/audits/image-size-responsive.js | columnDisplayed": {
777
+ "message": "Kích thước hiển thị"
778
+ },
779
+ "lighthouse-core/audits/image-size-responsive.js | columnExpected": {
780
+ "message": "Kích thước mong muốn"
781
+ },
782
+ "lighthouse-core/audits/image-size-responsive.js | description": {
783
+ "message": "Kích thước tự nhiên của hình ảnh phải tỷ lệ với kích thước màn hình và tỷ lệ pixel để hình ảnh rõ nét nhất có thể. [Tìm hiểu thêm](https://web.dev/serve-responsive-images/)."
784
+ },
785
+ "lighthouse-core/audits/image-size-responsive.js | failureTitle": {
786
+ "message": "Phân phối hình ảnh có độ phân giải thấp"
787
+ },
788
+ "lighthouse-core/audits/image-size-responsive.js | title": {
789
+ "message": "Phân phối hình ảnh có độ phân giải phù hợp"
790
+ },
791
+ "lighthouse-core/audits/installable-manifest.js | description": {
792
+ "message": "Các trình duyệt có thể chủ động nhắc người dùng thêm ứng dụng của bạn vào màn hình chính để tăng mức độ tương tác. [Tìm hiểu thêm](https://web.dev/installable-manifest/)"
793
+ },
794
+ "lighthouse-core/audits/installable-manifest.js | failureTitle": {
795
+ "message": "Tệp kê khai ứng dụng web không đáp ứng các yêu cầu về khả năng cài đặt"
796
+ },
797
+ "lighthouse-core/audits/installable-manifest.js | title": {
798
+ "message": "Tệp kê khai ứng dụng web đáp ứng các yêu cầu về khả năng cài đặt"
799
+ },
800
+ "lighthouse-core/audits/is-on-https.js | allowed": {
801
+ "message": "Được phép"
802
+ },
803
+ "lighthouse-core/audits/is-on-https.js | blocked": {
804
+ "message": "Bị chặn"
805
+ },
806
+ "lighthouse-core/audits/is-on-https.js | columnInsecureURL": {
807
+ "message": "URL không an toàn"
808
+ },
809
+ "lighthouse-core/audits/is-on-https.js | columnResolution": {
810
+ "message": "Cách xử lý yêu cầu"
811
+ },
812
+ "lighthouse-core/audits/is-on-https.js | description": {
813
+ "message": "Bạn phải bảo vệ tất cả các trang web bằng HTTPS, kể cả những trang web không xử lý dữ liệu nhạy cảm. Điều này bao gồm tránh [nội dung hỗn hợp](https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content), trong đó một số tài nguyên được tải qua HTTP cho dù yêu cầu ban đầu được gửi qua HTTPS. HTTPS ngăn kẻ xâm nhập can thiệp hoặc vô tình biết được nội dung trao đổi giữa ứng dụng và người dùng của bạn, đồng thời là điều kiện tiên quyết nếu bạn muốn dùng HTTP/2 và nhiều API nền tảng web mới. [Tìm hiểu thêm](https://web.dev/is-on-https/)."
814
+ },
815
+ "lighthouse-core/audits/is-on-https.js | displayValue": {
816
+ "message": "{itemCount,plural, =1{Tìm thấy 1 yêu cầu không an toàn}other{Tìm thấy # yêu cầu không an toàn}}"
817
+ },
818
+ "lighthouse-core/audits/is-on-https.js | failureTitle": {
819
+ "message": "Không sử dụng HTTPS"
820
+ },
821
+ "lighthouse-core/audits/is-on-https.js | title": {
822
+ "message": "Sử dụng HTTPS"
823
+ },
824
+ "lighthouse-core/audits/is-on-https.js | upgraded": {
825
+ "message": "Đã tự động nâng cấp lên HTTPS"
826
+ },
827
+ "lighthouse-core/audits/is-on-https.js | warning": {
828
+ "message": "Được phép nhưng có cảnh báo"
829
+ },
830
+ "lighthouse-core/audits/large-javascript-libraries.js | columnLibraryName": {
831
+ "message": "Thư viện"
832
+ },
833
+ "lighthouse-core/audits/large-javascript-libraries.js | description": {
834
+ "message": "Các thư viện JavaScript lớn có thể dẫn đến hiệu suất kém. Hãy ưu tiên các thư viện nhỏ hơn, có chức năng tương đương để giảm kích thước gói của bạn. [Tìm hiểu thêm](https://developers.google.com/web/fundamentals/performance/webpack/decrease-frontend-size#optimize_dependencies)"
835
+ },
836
+ "lighthouse-core/audits/large-javascript-libraries.js | displayValue": {
837
+ "message": "{libraryCount,plural, =1{Tìm thấy 1 thư viện lớn}other{Tìm thấy # thư viện lớn}}"
838
+ },
839
+ "lighthouse-core/audits/large-javascript-libraries.js | failureTitle": {
840
+ "message": "Thay thế các thư viện JavaScript lớn không cần thiết"
841
+ },
842
+ "lighthouse-core/audits/large-javascript-libraries.js | title": {
843
+ "message": "Dùng các thư viện JavaScript nhỏ thay cho thư viện lớn"
844
+ },
845
+ "lighthouse-core/audits/largest-contentful-paint-element.js | description": {
846
+ "message": "Đây là thành phần nội dung lớn nhất hiển thị trong khung nhìn. [Tìm hiểu thêm](https://web.dev/lighthouse-largest-contentful-paint/)"
847
+ },
848
+ "lighthouse-core/audits/largest-contentful-paint-element.js | title": {
849
+ "message": "Thành phần Thời gian hiển thị nội dung lớn nhất"
850
+ },
851
+ "lighthouse-core/audits/layout-shift-elements.js | columnContribution": {
852
+ "message": "Mức đóng góp vào CLS"
853
+ },
854
+ "lighthouse-core/audits/layout-shift-elements.js | description": {
855
+ "message": "Những thành phần DOM này đóng góp nhiều nhất vào Điểm số tổng hợp về mức thay đổi bố cục (CLS) của trang."
856
+ },
857
+ "lighthouse-core/audits/layout-shift-elements.js | title": {
858
+ "message": "Tránh các thay đổi lớn về bố cục"
859
+ },
860
+ "lighthouse-core/audits/long-tasks.js | description": {
861
+ "message": "Liệt kê những việc cần nhiều thời gian thực hiện nhất trong chuỗi chính. Thông tin này khá hữu ích trong việc xác định những thành phần có thời gian phản hồi tương tác chậm nhất. [Tìm hiểu thêm](https://web.dev/long-tasks-devtools/)"
862
+ },
863
+ "lighthouse-core/audits/long-tasks.js | displayValue": {
864
+ "message": "{itemCount,plural, =1{Phát hiện thấy # việc cần nhiều thời gian thực hiện}other{Phát hiện thấy # việc cần nhiều thời gian thực hiện}}"
865
+ },
866
+ "lighthouse-core/audits/long-tasks.js | title": {
867
+ "message": "Tránh những việc cần nhiều thời gian thực hiện trong chuỗi chính"
868
+ },
869
+ "lighthouse-core/audits/mainthread-work-breakdown.js | columnCategory": {
870
+ "message": "Danh mục"
871
+ },
872
+ "lighthouse-core/audits/mainthread-work-breakdown.js | description": {
873
+ "message": "Hãy cân nhắc giảm thời gian dùng để phân tích cú pháp, biên soạn và thực thi JS. Bạn có thể giải quyết vấn đề này bằng cách phân phối các tải trọng JS nhỏ hơn. [Tìm hiểu thêm](https://web.dev/mainthread-work-breakdown/)"
874
+ },
875
+ "lighthouse-core/audits/mainthread-work-breakdown.js | failureTitle": {
876
+ "message": "Giảm thiểu công việc theo chuỗi chính"
877
+ },
878
+ "lighthouse-core/audits/mainthread-work-breakdown.js | title": {
879
+ "message": "Giảm thiểu công việc theo chuỗi chính"
880
+ },
881
+ "lighthouse-core/audits/manual/pwa-cross-browser.js | description": {
882
+ "message": "Để tiếp cận nhiều người dùng nhất, các trang web phải hoạt động trên mọi trình duyệt chính. [Tìm hiểu thêm](https://web.dev/pwa-cross-browser/)"
883
+ },
884
+ "lighthouse-core/audits/manual/pwa-cross-browser.js | title": {
885
+ "message": "Trang web hoạt động trên nhiều trình duyệt"
886
+ },
887
+ "lighthouse-core/audits/manual/pwa-each-page-has-url.js | description": {
888
+ "message": "Đảm bảo từng trang có thể liên kết sâu qua URL và URL là duy nhất để có thể chia sẻ trên mạng xã hội. [Tìm hiểu thêm](https://web.dev/pwa-each-page-has-url/)"
889
+ },
890
+ "lighthouse-core/audits/manual/pwa-each-page-has-url.js | title": {
891
+ "message": "Mỗi trang có một URL"
892
+ },
893
+ "lighthouse-core/audits/manual/pwa-page-transitions.js | description": {
894
+ "message": "Quá trình chuyển tiếp phải diễn ra ngay khi bạn nhấn vào, kể cả khi mạng chậm. Trải nghiệm này là một yếu tố quan trọng quyết định cảm nhận của người dùng về hiệu suất. [Tìm hiểu thêm](https://web.dev/pwa-page-transitions/)"
895
+ },
896
+ "lighthouse-core/audits/manual/pwa-page-transitions.js | title": {
897
+ "message": "Người dùng không cảm thấy mạng chậm khi chuyển trang"
898
+ },
899
+ "lighthouse-core/audits/maskable-icon.js | description": {
900
+ "message": "Một biểu tượng che mờ được sẽ đảm bảo rằng hình ảnh lấp đầy toàn bộ hình dạng mà không bị hiệu ứng hòm thư khi cài đặt ứng dụng trên một thiết bị. [Tìm hiểu thêm](https://web.dev/maskable-icon-audit/)."
901
+ },
902
+ "lighthouse-core/audits/maskable-icon.js | failureTitle": {
903
+ "message": "Tệp kê khai không có biểu tượng che mờ được"
904
+ },
905
+ "lighthouse-core/audits/maskable-icon.js | title": {
906
+ "message": "Tệp kê khai có một biểu tượng che mờ được"
907
+ },
908
+ "lighthouse-core/audits/metrics/cumulative-layout-shift.js | description": {
909
+ "message": "Điểm số tổng hợp về mức thay đổi bố cục đo lường mức độ dịch chuyển của các thành phần hiển thị trong khung nhìn. [Tìm hiểu thêm](https://web.dev/cls/)."
910
+ },
911
+ "lighthouse-core/audits/metrics/estimated-input-latency.js | description": {
912
+ "message": "Thời gian chờ nhập thông tin theo ước tính là thời gian ước tính mà ứng dụng cần để phản hồi thông tin do người dùng nhập (tính bằng mili giây) trong khoảng thời gian 5 giây tải nhiều trang nhất. Nếu người dùng phải chờ quá 50 mili giây, thì ứng dụng của bạn bị coi là chạy chậm. [Tìm hiểu thêm](https://web.dev/estimated-input-latency/)."
913
+ },
914
+ "lighthouse-core/audits/metrics/first-contentful-paint.js | description": {
915
+ "message": "Chỉ số Hiển thị nội dung đầu tiên đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh đầu tiên. [Tìm hiểu thêm](https://web.dev/first-contentful-paint/)."
916
+ },
917
+ "lighthouse-core/audits/metrics/first-cpu-idle.js | description": {
918
+ "message": "Chỉ số CPU nhàn rỗi đầu tiên đánh dấu thời điểm đầu tiên chuỗi chính của trang không phải xử lý quá nhiều thông tin nhập vào. [Tìm hiểu thêm](https://web.dev/first-cpu-idle/)"
919
+ },
920
+ "lighthouse-core/audits/metrics/first-meaningful-paint.js | description": {
921
+ "message": "Chỉ số Hiển thị nội dung đầu tiên đo lường thời điểm hiển thị nội dung chính của trang. [Tìm hiểu thêm](https://web.dev/first-meaningful-paint/)."
922
+ },
923
+ "lighthouse-core/audits/metrics/interactive.js | description": {
924
+ "message": "Thời điểm tương tác là khoảng thời gian mà trang cần để trở nên hoàn toàn tương tác. [Tìm hiểu thêm](https://web.dev/interactive/)."
925
+ },
926
+ "lighthouse-core/audits/metrics/largest-contentful-paint.js | description": {
927
+ "message": "Chỉ số Hiển thị nội dung có kích thước lớn nhất đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh có kích thước lớn nhất. [Tìm hiểu thêm](https://web.dev/lighthouse-largest-contentful-paint/)"
928
+ },
929
+ "lighthouse-core/audits/metrics/max-potential-fid.js | description": {
930
+ "message": "Thời gian phản hồi lần tương tác đầu tiên tối đa mà người dùng có thể gặp phải là thời gian thực hiện nhiệm vụ lâu nhất. [Tìm hiểu thêm](https://web.dev/lighthouse-max-potential-fid/)."
931
+ },
932
+ "lighthouse-core/audits/metrics/speed-index.js | description": {
933
+ "message": "Chỉ số tốc độ cho biết nội dung của một trang hiển thị nhanh chóng đến mức nào. [Tìm hiểu thêm](https://web.dev/speed-index/)."
934
+ },
935
+ "lighthouse-core/audits/metrics/total-blocking-time.js | description": {
936
+ "message": "Tổng tất cả các khoảng thời gian giữa thời điểm Hiển thị nội dung đầu tiên (FCP) và Thời điểm tương tác khi thời gian của nhiệm vụ vượt quá 50 mili giây được biểu thị bằng đơn vị mili giây. [Tìm hiểu thêm](https://web.dev/lighthouse-total-blocking-time/)."
937
+ },
938
+ "lighthouse-core/audits/network-rtt.js | description": {
939
+ "message": "Thời gian trọn vòng (RTT) của mạng có ảnh hưởng lớn đến hiệu suất. Nếu mất nhiều thời gian trọn vòng (RTT) để đến một nguồn gốc, tức là máy chủ càng gần người dùng thì hiệu quả càng cao. [Tìm hiểu thêm](https://hpbn.co/primer-on-latency-and-bandwidth/)."
940
+ },
941
+ "lighthouse-core/audits/network-rtt.js | title": {
942
+ "message": "Thời gian trọn vòng của mạng"
943
+ },
944
+ "lighthouse-core/audits/network-server-latency.js | description": {
945
+ "message": "Thời gian chờ của máy chủ có thể ảnh hưởng đến hiệu suất của trang web. Nếu máy chủ của một nguồn gốc có thời gian chờ cao, tức là máy chủ bị quá tải hoặc có hiệu suất phụ trợ thấp. [Tìm hiểu thêm](https://hpbn.co/primer-on-web-performance/#analyzing-the-resource-waterfall)."
946
+ },
947
+ "lighthouse-core/audits/network-server-latency.js | title": {
948
+ "message": "Thời gian dưới nền của máy chủ"
949
+ },
950
+ "lighthouse-core/audits/no-unload-listeners.js | description": {
951
+ "message": "Sự kiện `unload` kích hoạt không ổn định và việc làm theo sự kiện này có thể ngăn chặn các hoạt động tối ưu hóa trình duyệt, chẳng hạn như Bộ nhớ đệm cho thao tác tiến/lùi. Hãy cân nhắc dùng sự kiện `pagehide` hoặc `visibilitychange`. [Tìm hiểu thêm](https://developers.google.com/web/updates/2018/07/page-lifecycle-api#the-unload-event)"
952
+ },
953
+ "lighthouse-core/audits/no-unload-listeners.js | failureTitle": {
954
+ "message": "Đăng ký trình xử lý sự kiện `unload`"
955
+ },
956
+ "lighthouse-core/audits/no-unload-listeners.js | title": {
957
+ "message": "Tránh dùng trình xử lý sự kiện `unload`"
958
+ },
959
+ "lighthouse-core/audits/non-composited-animations.js | description": {
960
+ "message": "Các ảnh động không được ghép có thể kém chất lượng và làm tăng CLS (Điểm số tổng hợp về mức thay đổi bố cục). [Tìm hiểu thêm](https://web.dev/non-composited-animations)"
961
+ },
962
+ "lighthouse-core/audits/non-composited-animations.js | displayValue": {
963
+ "message": "{itemCount,plural, =1{Tìm thấy # phần tử ảnh động}other{Tìm thấy # phần tử ảnh động}}"
964
+ },
965
+ "lighthouse-core/audits/non-composited-animations.js | filterMayMovePixels": {
966
+ "message": "Thuộc tính liên quan đến bộ lọc có thể di chuyển pixel"
967
+ },
968
+ "lighthouse-core/audits/non-composited-animations.js | incompatibleAnimations": {
969
+ "message": "Mục tiêu có một ảnh động khác không tương thích"
970
+ },
971
+ "lighthouse-core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
972
+ "message": "Hiệu ứng có chế độ ghép không phải là \"replace\""
973
+ },
974
+ "lighthouse-core/audits/non-composited-animations.js | title": {
975
+ "message": "Tránh dùng các ảnh động không được ghép"
976
+ },
977
+ "lighthouse-core/audits/non-composited-animations.js | transformDependsBoxSize": {
978
+ "message": "Thuộc tính liên quan đến biến đổi phụ thuộc vào kích thước hộp"
979
+ },
980
+ "lighthouse-core/audits/non-composited-animations.js | unsupportedCSSProperty": {
981
+ "message": "{propertyCount,plural, =1{Thuộc tính CSS không được hỗ trợ: {properties}}other{Các thuộc tính CSS không được hỗ trợ: {properties}}}"
982
+ },
983
+ "lighthouse-core/audits/non-composited-animations.js | unsupportedTimingParameters": {
984
+ "message": "Hiệu ứng có tham số thời gian không được hỗ trợ"
985
+ },
986
+ "lighthouse-core/audits/performance-budget.js | description": {
987
+ "message": "Đảm bảo số lượng và quy mô của yêu cầu mạng thấp hơn mục tiêu đặt ra của ngân sách hiệu suất đã cung cấp. [Tìm hiểu thêm](https://developers.google.com/web/tools/lighthouse/audits/budgets)."
988
+ },
989
+ "lighthouse-core/audits/performance-budget.js | requestCountOverBudget": {
990
+ "message": "{count,plural, =1{1 yêu cầu}other{# yêu cầu}}"
991
+ },
992
+ "lighthouse-core/audits/performance-budget.js | title": {
993
+ "message": "Ngân sách hiệu suất"
994
+ },
995
+ "lighthouse-core/audits/preload-fonts.js | description": {
996
+ "message": "Tải trước phông chữ có `optional` để khách truy cập lần đầu có thể sử dụng. [Tìm hiểu thêm](https://web.dev/preload-optional-fonts/)"
997
+ },
998
+ "lighthouse-core/audits/preload-fonts.js | failureTitle": {
999
+ "message": "Chưa tải trước phông chữ có `font-display: optional`"
1000
+ },
1001
+ "lighthouse-core/audits/preload-fonts.js | title": {
1002
+ "message": "Đã tải trước phông chữ có `font-display: optional`"
1003
+ },
1004
+ "lighthouse-core/audits/preload-lcp-image.js | description": {
1005
+ "message": "Tải trước hình ảnh mà thành phần LCP (Thời gian hiển thị nội dung lớn nhất) sử dụng nhằm cải thiện thời gian LCP của bạn. [Tìm hiểu thêm](https://web.dev/optimize-lcp/#preload-important-resources)"
1006
+ },
1007
+ "lighthouse-core/audits/preload-lcp-image.js | title": {
1008
+ "message": "Tải trước hình ảnh có Thời gian hiển thị nội dung lớn nhất"
1009
+ },
1010
+ "lighthouse-core/audits/redirects-http.js | description": {
1011
+ "message": "Nếu bạn thiết lập HTTPS từ trước, hãy nhớ chuyển hướng toàn bộ lưu lượng truy cập HTTP tới HTTPS để bật các tính năng web an toàn cho tất cả người dùng. [Tìm hiểu thêm](https://web.dev/redirects-http/)"
1012
+ },
1013
+ "lighthouse-core/audits/redirects-http.js | failureTitle": {
1014
+ "message": "Không chuyển hướng lưu lượng truy cập HTTP tới HTTPS"
1015
+ },
1016
+ "lighthouse-core/audits/redirects-http.js | title": {
1017
+ "message": "Chuyển hướng lưu lượng truy cập HTTP tới HTTPS"
1018
+ },
1019
+ "lighthouse-core/audits/redirects.js | description": {
1020
+ "message": "Các lần chuyển hướng sẽ làm giảm tốc độ tải trang. [Tìm hiểu thêm](https://web.dev/redirects/)."
1021
+ },
1022
+ "lighthouse-core/audits/redirects.js | title": {
1023
+ "message": "Tránh chuyển hướng trang nhiều lần"
1024
+ },
1025
+ "lighthouse-core/audits/resource-summary.js | description": {
1026
+ "message": "Để thiết lập ngân sách cho số lượng và quy mô của tài nguyên trang, hãy thêm tệp budget.json. [Tìm hiểu thêm](https://web.dev/use-lighthouse-for-performance-budgets/)."
1027
+ },
1028
+ "lighthouse-core/audits/resource-summary.js | displayValue": {
1029
+ "message": "{requestCount,plural, =1{1 yêu cầu • {byteCount, number, bytes} KiB}other{# yêu cầu • {byteCount, number, bytes} KiB}}"
1030
+ },
1031
+ "lighthouse-core/audits/resource-summary.js | title": {
1032
+ "message": "Giảm số lượng yêu cầu và chuyển những tài nguyên có kích thước nhỏ"
1033
+ },
1034
+ "lighthouse-core/audits/seo/canonical.js | description": {
1035
+ "message": "Phần tử liên kết chính tắc đề xuất URL nào nên hiển thị trong kết quả tìm kiếm. [Tìm hiểu thêm](https://web.dev/canonical/)."
1036
+ },
1037
+ "lighthouse-core/audits/seo/canonical.js | explanationConflict": {
1038
+ "message": "Nhiều URL xung đột ({urlList})"
1039
+ },
1040
+ "lighthouse-core/audits/seo/canonical.js | explanationDifferentDomain": {
1041
+ "message": "Trỏ đến một miền khác ({url})"
1042
+ },
1043
+ "lighthouse-core/audits/seo/canonical.js | explanationInvalid": {
1044
+ "message": "URL không hợp lệ ({url})."
1045
+ },
1046
+ "lighthouse-core/audits/seo/canonical.js | explanationPointsElsewhere": {
1047
+ "message": "Trỏ đến một vị trí `hreflang` khác ({url})"
1048
+ },
1049
+ "lighthouse-core/audits/seo/canonical.js | explanationRelative": {
1050
+ "message": "URL tương đối ({url})"
1051
+ },
1052
+ "lighthouse-core/audits/seo/canonical.js | explanationRoot": {
1053
+ "message": "Trỏ đến URL gốc của miền (trang chủ) thay vì trang nội dung tương đương"
1054
+ },
1055
+ "lighthouse-core/audits/seo/canonical.js | failureTitle": {
1056
+ "message": "Tài liệu không có `rel=canonical` hợp lệ"
1057
+ },
1058
+ "lighthouse-core/audits/seo/canonical.js | title": {
1059
+ "message": "Tài liệu có `rel=canonical` hợp lệ"
1060
+ },
1061
+ "lighthouse-core/audits/seo/crawlable-anchors.js | columnFailingLink": {
1062
+ "message": "Đường liên kết không thể thu thập dữ liệu"
1063
+ },
1064
+ "lighthouse-core/audits/seo/crawlable-anchors.js | description": {
1065
+ "message": "Công cụ tìm kiếm có thể dùng các thuộc tính `href` trên đường liên kết để thu thập dữ liệu các trang web. Hãy đảm bảo rằng thuộc tính `href` của các thành phần neo liên kết đến một trang đích phù hợp để có thể phát hiện thêm nhiều trang khác của trang web. [Tìm hiểu thêm](https://support.google.com/webmasters/answer/9112205)"
1066
+ },
1067
+ "lighthouse-core/audits/seo/crawlable-anchors.js | failureTitle": {
1068
+ "message": "Các đường liên kết không thể thu thập thông tin"
1069
+ },
1070
+ "lighthouse-core/audits/seo/crawlable-anchors.js | title": {
1071
+ "message": "Các đường liên kết có thể thu thập thông tin"
1072
+ },
1073
+ "lighthouse-core/audits/seo/font-size.js | additionalIllegibleText": {
1074
+ "message": "Văn bản bổ sung khó đọc"
1075
+ },
1076
+ "lighthouse-core/audits/seo/font-size.js | columnFontSize": {
1077
+ "message": "Cỡ chữ"
1078
+ },
1079
+ "lighthouse-core/audits/seo/font-size.js | columnPercentPageText": {
1080
+ "message": "% văn bản trên trang"
1081
+ },
1082
+ "lighthouse-core/audits/seo/font-size.js | columnSelector": {
1083
+ "message": "Bộ chọn"
1084
+ },
1085
+ "lighthouse-core/audits/seo/font-size.js | description": {
1086
+ "message": "Cỡ chữ dưới 12 pixel là quá nhỏ và khó đọc, buộc khách truy cập trên thiết bị di động phải “chụm để thu phóng” mới đọc được. Tốt nhất là hơn 60% văn bản trên trang có cỡ chữ lớn hơn hoặc bằng 12 pixel. [Tìm hiểu thêm](https://web.dev/font-size/)."
1087
+ },
1088
+ "lighthouse-core/audits/seo/font-size.js | displayValue": {
1089
+ "message": "{decimalProportion, number, extendedPercent} văn bản dễ đọc"
1090
+ },
1091
+ "lighthouse-core/audits/seo/font-size.js | explanationViewport": {
1092
+ "message": "Văn bản không đọc được vì không có thẻ meta viewport nào được tối ưu hóa cho màn hình thiết bị di động."
1093
+ },
1094
+ "lighthouse-core/audits/seo/font-size.js | failureTitle": {
1095
+ "message": "Tài liệu không sử dụng cỡ chữ dễ đọc"
1096
+ },
1097
+ "lighthouse-core/audits/seo/font-size.js | legibleText": {
1098
+ "message": "Văn bản dễ đọc"
1099
+ },
1100
+ "lighthouse-core/audits/seo/font-size.js | title": {
1101
+ "message": "Tài liệu sử dụng cỡ chữ dễ đọc"
1102
+ },
1103
+ "lighthouse-core/audits/seo/hreflang.js | description": {
1104
+ "message": "Các phần tử liên kết hreflang cho công cụ tìm kiếm biết nên liệt kê phiên bản trang nào trong kết quả tìm kiếm cho một ngôn ngữ hoặc khu vực cụ thể. [Tìm hiểu thêm](https://web.dev/hreflang/)."
1105
+ },
1106
+ "lighthouse-core/audits/seo/hreflang.js | failureTitle": {
1107
+ "message": "Tài liệu không có `hreflang` hợp lệ"
1108
+ },
1109
+ "lighthouse-core/audits/seo/hreflang.js | notFullyQualified": {
1110
+ "message": "Giá trị href tương đối"
1111
+ },
1112
+ "lighthouse-core/audits/seo/hreflang.js | title": {
1113
+ "message": "Tài liệu có `hreflang` hợp lệ"
1114
+ },
1115
+ "lighthouse-core/audits/seo/hreflang.js | unexpectedLanguage": {
1116
+ "message": "Mã ngôn ngữ không mong muốn"
1117
+ },
1118
+ "lighthouse-core/audits/seo/http-status-code.js | description": {
1119
+ "message": "Các trang có mã trạng thái HTTP không thành công có thể được lập chỉ mục không chính xác. [Tìm hiểu thêm](https://web.dev/http-status-code/)."
1120
+ },
1121
+ "lighthouse-core/audits/seo/http-status-code.js | failureTitle": {
1122
+ "message": "Trang có mã trạng thái HTTP không thành công"
1123
+ },
1124
+ "lighthouse-core/audits/seo/http-status-code.js | title": {
1125
+ "message": "Trang có mã trạng thái HTTP thành công"
1126
+ },
1127
+ "lighthouse-core/audits/seo/is-crawlable.js | description": {
1128
+ "message": "Các công cụ tìm kiếm không thể đưa trang của bạn vào kết quả tìm kiếm nếu bạn không cấp cho các công cụ này quyền thu thập thông tin của trang. [Tìm hiểu thêm](https://web.dev/is-crawable/)."
1129
+ },
1130
+ "lighthouse-core/audits/seo/is-crawlable.js | failureTitle": {
1131
+ "message": "Trang bị chặn lập chỉ mục"
1132
+ },
1133
+ "lighthouse-core/audits/seo/is-crawlable.js | title": {
1134
+ "message": "Trang không bị chặn lập chỉ mục"
1135
+ },
1136
+ "lighthouse-core/audits/seo/link-text.js | description": {
1137
+ "message": "Văn bản mô tả trên đường liên kết giúp công cụ tìm kiếm hiểu được nội dung của bạn. [Tìm hiểu thêm](https://web.dev/link-text/)."
1138
+ },
1139
+ "lighthouse-core/audits/seo/link-text.js | displayValue": {
1140
+ "message": "{itemCount,plural, =1{Đã tìm thấy 1 liên kết}other{Đã tìm thấy # liên kết}}"
1141
+ },
1142
+ "lighthouse-core/audits/seo/link-text.js | failureTitle": {
1143
+ "message": "Các phần tử liên kết không có văn bản mô tả"
1144
+ },
1145
+ "lighthouse-core/audits/seo/link-text.js | title": {
1146
+ "message": "Các phần tử liên kết có văn bản mô tả"
1147
+ },
1148
+ "lighthouse-core/audits/seo/manual/structured-data.js | description": {
1149
+ "message": "Chạy [Công cụ kiểm tra dữ liệu có cấu trúc](https://search.google.com/structured-data/testing-tool/) và [Công cụ khử lỗi dữ liệu có cấu trúc](http://linter.structured-data.org/) để xác thực loại dữ liệu này. [Tìm hiểu thêm](https://web.dev/structured-data/)."
1150
+ },
1151
+ "lighthouse-core/audits/seo/manual/structured-data.js | title": {
1152
+ "message": "Dữ liệu có cấu trúc là hợp lệ"
1153
+ },
1154
+ "lighthouse-core/audits/seo/meta-description.js | description": {
1155
+ "message": "Bạn có thể thêm phần mô tả meta vào kết quả tìm kiếm để tóm tắt ngắn gọn nội dung trang. [Tìm hiểu thêm](https://web.dev/meta-description/)."
1156
+ },
1157
+ "lighthouse-core/audits/seo/meta-description.js | explanation": {
1158
+ "message": "Văn bản mô tả hiện đang trống."
1159
+ },
1160
+ "lighthouse-core/audits/seo/meta-description.js | failureTitle": {
1161
+ "message": "Tài liệu không có phần mô tả meta"
1162
+ },
1163
+ "lighthouse-core/audits/seo/meta-description.js | title": {
1164
+ "message": "Tài liệu có phần mô tả meta"
1165
+ },
1166
+ "lighthouse-core/audits/seo/plugins.js | description": {
1167
+ "message": "Các công cụ tìm kiếm không thể lập chỉ mục nội dung plugin và nhiều thiết bị hạn chế hoặc không hỗ trợ plugin. [Tìm hiểu thêm](https://web.dev/plugins/)."
1168
+ },
1169
+ "lighthouse-core/audits/seo/plugins.js | failureTitle": {
1170
+ "message": "Tài liệu sử dụng plugin"
1171
+ },
1172
+ "lighthouse-core/audits/seo/plugins.js | title": {
1173
+ "message": "Tài liệu tránh sử dụng plugin"
1174
+ },
1175
+ "lighthouse-core/audits/seo/robots-txt.js | description": {
1176
+ "message": "Nếu định dạng của tệp robots.txt không đúng, thì trình thu thập thông tin có thể không hiểu được cách bạn muốn thu thập thông tin hoặc lập chỉ mục trang web của mình. [Tìm hiểu thêm](https://web.dev/robots-txt/)"
1177
+ },
1178
+ "lighthouse-core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
1179
+ "message": "Yêu cầu robots.txt trả về trạng thái HTTP: {statusCode}"
1180
+ },
1181
+ "lighthouse-core/audits/seo/robots-txt.js | displayValueValidationError": {
1182
+ "message": "{itemCount,plural, =1{Đã tìm thấy 1 lỗi}other{Đã tìm thấy # lỗi}}"
1183
+ },
1184
+ "lighthouse-core/audits/seo/robots-txt.js | explanation": {
1185
+ "message": "Lighthouse không tải được tệp robots.txt xuống"
1186
+ },
1187
+ "lighthouse-core/audits/seo/robots-txt.js | failureTitle": {
1188
+ "message": "robots.txt không hợp lệ"
1189
+ },
1190
+ "lighthouse-core/audits/seo/robots-txt.js | title": {
1191
+ "message": "robots.txt hợp lệ"
1192
+ },
1193
+ "lighthouse-core/audits/seo/tap-targets.js | description": {
1194
+ "message": "Các phần tử tương tác, chẳng hạn như nút và phần tử liên kết, nên có kích thước đủ lớn (48x48 pixel) và khoảng cách xung quanh các phần tử này đủ để nhấn mà không chồng chéo lên các phần tử khác. [Tìm hiểu thêm](https://web.dev/tap-targets/)."
1195
+ },
1196
+ "lighthouse-core/audits/seo/tap-targets.js | displayValue": {
1197
+ "message": "{decimalProportion, number, percent} mục tiêu nhấn có kích thước phù hợp"
1198
+ },
1199
+ "lighthouse-core/audits/seo/tap-targets.js | explanationViewportMetaNotOptimized": {
1200
+ "message": "Mục tiêu nhấn có kích thước quá nhỏ do không có thẻ meta viewport nào được tối ưu hóa cho màn hình thiết bị di động"
1201
+ },
1202
+ "lighthouse-core/audits/seo/tap-targets.js | failureTitle": {
1203
+ "message": "Các mục tiêu nhấn có kích thước không phù hợp"
1204
+ },
1205
+ "lighthouse-core/audits/seo/tap-targets.js | overlappingTargetHeader": {
1206
+ "message": "Mục tiêu chồng chéo"
1207
+ },
1208
+ "lighthouse-core/audits/seo/tap-targets.js | tapTargetHeader": {
1209
+ "message": "Mục tiêu nhấn"
1210
+ },
1211
+ "lighthouse-core/audits/seo/tap-targets.js | title": {
1212
+ "message": "Mục tiêu nhấn có kích thước phù hợp"
1213
+ },
1214
+ "lighthouse-core/audits/server-response-time.js | description": {
1215
+ "message": "Giữ cho máy chủ phản hồi trong thời gian ngắn đối với tài liệu chính vì tất cả các yêu cầu khác phụ thuộc vào thời gian đó. [Tìm hiểu thêm](https://web.dev/time-to-first-byte/)."
1216
+ },
1217
+ "lighthouse-core/audits/server-response-time.js | displayValue": {
1218
+ "message": "Tài liệu gốc mất {timeInMs, number, milliseconds} mili giây"
1219
+ },
1220
+ "lighthouse-core/audits/server-response-time.js | failureTitle": {
1221
+ "message": "Giảm thời gian phản hồi ban đầu của máy chủ"
1222
+ },
1223
+ "lighthouse-core/audits/server-response-time.js | title": {
1224
+ "message": "Thời gian phản hồi ban đầu của máy chủ là ngắn"
1225
+ },
1226
+ "lighthouse-core/audits/service-worker.js | description": {
1227
+ "message": "Trình chạy dịch vụ là công nghệ cho phép ứng dụng của bạn dùng nhiều tính năng của Ứng dụng web tiến bộ, chẳng hạn như hoạt động khi không có mạng, thêm vào màn hình chính, và thông báo đẩy. [Tìm hiểu thêm](https://web.dev/service-worker/)"
1228
+ },
1229
+ "lighthouse-core/audits/service-worker.js | explanationBadManifest": {
1230
+ "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, không tìm thấy `start_url` vì tệp kê khai không thể phân tích cú pháp thành tệp JSON hợp lệ"
1231
+ },
1232
+ "lighthouse-core/audits/service-worker.js | explanationBadStartUrl": {
1233
+ "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, `start_url` ({startUrl}) không thuộc phạm vi của trình chạy dịch vụ này ({scopeUrl})"
1234
+ },
1235
+ "lighthouse-core/audits/service-worker.js | explanationNoManifest": {
1236
+ "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, không tìm thấy `start_url` vì không tìm nạp được tệp kê khai."
1237
+ },
1238
+ "lighthouse-core/audits/service-worker.js | explanationOutOfScope": {
1239
+ "message": "Nguồn gốc này có một hoặc nhiều trình chạy dịch vụ. Tuy nhiên, trang ({pageUrl}) không thuộc phạm vi của các trình chạy dịch vụ này."
1240
+ },
1241
+ "lighthouse-core/audits/service-worker.js | failureTitle": {
1242
+ "message": "Không đăng ký một trình chạy dịch vụ kiểm soát trang và `start_url`"
1243
+ },
1244
+ "lighthouse-core/audits/service-worker.js | title": {
1245
+ "message": "Đăng ký một trình chạy dịch vụ kiểm soát trang và `start_url`"
1246
+ },
1247
+ "lighthouse-core/audits/splash-screen.js | description": {
1248
+ "message": "Màn hình chờ có giao diện giúp đảm bảo người dùng có trải nghiệm chất lượng cao khi chạy ứng dụng từ màn hình chính. [Tìm hiểu thêm](https://web.dev/splash-screen/)"
1249
+ },
1250
+ "lighthouse-core/audits/splash-screen.js | failureTitle": {
1251
+ "message": "Chưa được định cấu hình cho màn hình chờ tùy chỉnh"
1252
+ },
1253
+ "lighthouse-core/audits/splash-screen.js | title": {
1254
+ "message": "Đã định cấu hình cho màn hình chờ tùy chỉnh"
1255
+ },
1256
+ "lighthouse-core/audits/themed-omnibox.js | description": {
1257
+ "message": "Bạn có thể đặt giao diện cho thanh địa chỉ trên trình duyệt để phù hợp với trang web của mình. [Tìm hiểu thêm](https://web.dev/themed-omnibox/)"
1258
+ },
1259
+ "lighthouse-core/audits/themed-omnibox.js | failureTitle": {
1260
+ "message": "Không đặt màu giao diện cho thanh địa chỉ."
1261
+ },
1262
+ "lighthouse-core/audits/themed-omnibox.js | title": {
1263
+ "message": "Đặt màu giao diện cho thanh địa chỉ."
1264
+ },
1265
+ "lighthouse-core/audits/third-party-summary.js | columnThirdParty": {
1266
+ "message": "Bên thứ ba"
1267
+ },
1268
+ "lighthouse-core/audits/third-party-summary.js | description": {
1269
+ "message": "Mã của bên thứ ba có thể tác động đáng kể đến hiệu suất tải. Hãy hạn chế số nhà cung cấp bên thứ ba dư thừa và cố gắng tải mã của bên thứ ba sau khi trang của bạn hoàn thành phần lớn quá trình tải. [Tìm hiểu thêm](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)."
1270
+ },
1271
+ "lighthouse-core/audits/third-party-summary.js | displayValue": {
1272
+ "message": "Mã của bên thứ ba đã chặn chuỗi chính trong {timeInMs, number, milliseconds} mili giây"
1273
+ },
1274
+ "lighthouse-core/audits/third-party-summary.js | failureTitle": {
1275
+ "message": "Giảm mức ảnh hưởng của mã bên thứ ba"
1276
+ },
1277
+ "lighthouse-core/audits/third-party-summary.js | title": {
1278
+ "message": "Giảm thiểu mức sử dụng của bên thứ ba"
1279
+ },
1280
+ "lighthouse-core/audits/timing-budget.js | columnMeasurement": {
1281
+ "message": "Đo lường"
1282
+ },
1283
+ "lighthouse-core/audits/timing-budget.js | columnTimingMetric": {
1284
+ "message": "Chỉ số"
1285
+ },
1286
+ "lighthouse-core/audits/timing-budget.js | description": {
1287
+ "message": "Khi đặt giới hạn về thời gian, bạn sẽ có thể theo dõi được hiệu suất trang web của mình. Các trang có hiệu suất cao sẽ tải và phản hồi nhanh với các sự kiện nhập của người dùng. [Tìm hiểu thêm](https://developers.google.com/web/tools/lighthouse/audits/budgets)."
1288
+ },
1289
+ "lighthouse-core/audits/timing-budget.js | title": {
1290
+ "message": "Giới hạn về thời gian"
1291
+ },
1292
+ "lighthouse-core/audits/unsized-images.js | description": {
1293
+ "message": "Đặt chiều rộng và chiều cao rõ ràng đối với các phần tử hình ảnh để giảm sự thay đổi về bố cục và cải thiện CLS. [Tìm hiểu thêm](https://web.dev/optimize-cls/#images-without-dimensions)"
1294
+ },
1295
+ "lighthouse-core/audits/unsized-images.js | failureTitle": {
1296
+ "message": "Các phần tử hình ảnh không có `width` và `height` rõ ràng"
1297
+ },
1298
+ "lighthouse-core/audits/unsized-images.js | title": {
1299
+ "message": "Các phần tử hình ảnh có `width` và `height` rõ ràng"
1300
+ },
1301
+ "lighthouse-core/audits/user-timings.js | columnType": {
1302
+ "message": "Loại"
1303
+ },
1304
+ "lighthouse-core/audits/user-timings.js | description": {
1305
+ "message": "Hãy cân nhắc trang bị API Thời gian người dùng cho ứng dụng để đo lường hiệu suất thực tế của ứng dụng trong trải nghiệm người dùng chính. [Tìm hiểu thêm](https://web.dev/user-timings/)."
1306
+ },
1307
+ "lighthouse-core/audits/user-timings.js | displayValue": {
1308
+ "message": "{itemCount,plural, =1{1 dấu thời gian người dùng}other{# dấu thời gian người dùng}}"
1309
+ },
1310
+ "lighthouse-core/audits/user-timings.js | title": {
1311
+ "message": "Các thời điểm cụ thể và khoảng thời gian được ghi lại bằng API Thời gian người dùng"
1312
+ },
1313
+ "lighthouse-core/audits/uses-rel-preconnect.js | crossoriginWarning": {
1314
+ "message": "Đã tìm thấy `<link rel=preconnect>` cho \"{securityOrigin}\" nhưng trình duyệt không sử dụng thuộc tính này. Hãy kiểm tra để đảm bảo rằng bạn đang sử dụng thuộc tính `crossorigin` đúng cách."
1315
+ },
1316
+ "lighthouse-core/audits/uses-rel-preconnect.js | description": {
1317
+ "message": "Hãy cân nhắc thêm các gợi ý về tài nguyên `preconnect` hoặc `dns-prefetch` để thiết lập kết nối sớm tới những nguồn gốc quan trọng của bên thứ ba. [Tìm hiểu thêm](https://web.dev/uses-rel-preconnect/)"
1318
+ },
1319
+ "lighthouse-core/audits/uses-rel-preconnect.js | title": {
1320
+ "message": "Kết nối trước với các tên miền bắt buộc"
1321
+ },
1322
+ "lighthouse-core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
1323
+ "message": "Đã phát hiện có hơn 2 đường kết nối `<link rel=preconnect>`. Bạn nên dùng những đường kết nối này một cách hợp lý và chỉ dùng cho các điểm gốc quan trọng nhất."
1324
+ },
1325
+ "lighthouse-core/audits/uses-rel-preconnect.js | unusedWarning": {
1326
+ "message": "Đã tìm thấy `<link rel=preconnect>` cho \"{securityOrigin}\" nhưng trình duyệt không sử dụng thuộc tính này. Chỉ sử dụng `preconnect` cho những điểm gốc quan trọng mà trang chắc chắn sẽ yêu cầu."
1327
+ },
1328
+ "lighthouse-core/audits/uses-rel-preload.js | crossoriginWarning": {
1329
+ "message": "Đã tìm thấy `<link>` tải trước cho \"{preloadURL}\" nhưng trình duyệt không sử dụng thuộc tính này. Hãy kiểm tra để đảm bảo rằng bạn đang sử dụng thuộc tính `crossorigin` đúng cách."
1330
+ },
1331
+ "lighthouse-core/audits/uses-rel-preload.js | description": {
1332
+ "message": "Hãy cân nhắc sử dụng `<link rel=preload>` để ưu tiên tìm nạp các tài nguyên đang được yêu cầu vào một thời điểm khác trong quá trình tải trang. [Tìm hiểu thêm](https://web.dev/uses-rel-preload/)."
1333
+ },
1334
+ "lighthouse-core/audits/uses-rel-preload.js | title": {
1335
+ "message": "Tải trước các yêu cầu chính"
1336
+ },
1337
+ "lighthouse-core/audits/valid-source-maps.js | columnMapURL": {
1338
+ "message": "URL của bản đồ"
1339
+ },
1340
+ "lighthouse-core/audits/valid-source-maps.js | description": {
1341
+ "message": "Bản đồ nguồn sẽ chuyển mã đã giảm thiểu thành mã nguồn gốc. Việc này giúp các nhà phát triển gỡ lỗi trong bản phát hành chính thức. Ngoài ra, Lighthouse cũng có thể cung cấp thêm thông tin chi tiết. Hãy cân nhắc triển khai bản đồ nguồn để tận dụng những lợi ích này. [Tìm hiểu thêm](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps)"
1342
+ },
1343
+ "lighthouse-core/audits/valid-source-maps.js | failureTitle": {
1344
+ "message": "Thiếu bản đồ nguồn cho JavaScript lớn của bên thứ nhất"
1345
+ },
1346
+ "lighthouse-core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
1347
+ "message": "Tệp JavaScript lớn thiếu bản đồ nguồn"
1348
+ },
1349
+ "lighthouse-core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
1350
+ "message": "{missingItems,plural, =1{Cảnh báo: thiếu 1 mục trong `.sourcesContent`}other{Cảnh báo: thiếu # mục trong `.sourcesContent`}}"
1351
+ },
1352
+ "lighthouse-core/audits/valid-source-maps.js | title": {
1353
+ "message": "Trang có bản đồ nguồn hợp lệ"
1354
+ },
1355
+ "lighthouse-core/audits/viewport.js | description": {
1356
+ "message": "Thêm thẻ `<meta name=\"viewport\">` để tối ưu hóa ứng dụng của bạn cho màn hình thiết bị di động. [Tìm hiểu thêm](https://web.dev/viewport/)"
1357
+ },
1358
+ "lighthouse-core/audits/viewport.js | explanationNoTag": {
1359
+ "message": "Không tìm thấy thẻ `<meta name=\"viewport\">`"
1360
+ },
1361
+ "lighthouse-core/audits/viewport.js | failureTitle": {
1362
+ "message": "Không có thẻ `<meta name=\"viewport\">` có `width` hoặc `initial-scale`"
1363
+ },
1364
+ "lighthouse-core/audits/viewport.js | title": {
1365
+ "message": "Có thẻ `<meta name=\"viewport\">` có `width` hoặc `initial-scale`"
1366
+ },
1367
+ "lighthouse-core/config/default-config.js | a11yAriaGroupDescription": {
1368
+ "message": "Đây là những cơ hội giúp cải thiện việc sử dụng ARIA trong ứng dụng của bạn, nhờ đó có thể nâng cao trải nghiệm cho người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
1369
+ },
1370
+ "lighthouse-core/config/default-config.js | a11yAriaGroupTitle": {
1371
+ "message": "ARIA"
1372
+ },
1373
+ "lighthouse-core/config/default-config.js | a11yAudioVideoGroupDescription": {
1374
+ "message": "Đây là các cơ hội để cung cấp nội dung thay thế cho âm thanh và video. Điều này có thể cải thiện trải nghiệm của người dùng khiếm thính hoặc khiếm thị."
1375
+ },
1376
+ "lighthouse-core/config/default-config.js | a11yAudioVideoGroupTitle": {
1377
+ "message": "Âm thanh và video"
1378
+ },
1379
+ "lighthouse-core/config/default-config.js | a11yBestPracticesGroupDescription": {
1380
+ "message": "Những mục này nêu bật các phương pháp hay nhất thường dùng cho hỗ trợ tiếp cận"
1381
+ },
1382
+ "lighthouse-core/config/default-config.js | a11yBestPracticesGroupTitle": {
1383
+ "message": "Các phương pháp hay nhất"
1384
+ },
1385
+ "lighthouse-core/config/default-config.js | a11yCategoryDescription": {
1386
+ "message": "Các hoạt động kiểm tra này giúp xác định cơ hội [cải thiện khả năng hỗ trợ tiếp cận của ứng dụng web](https://developers.google.com/web/fundamentals/accessibility). Các hoạt động này chỉ có thể tự động phát hiện một phần vấn đề liên quan đến khả năng hỗ trợ tiếp cận, do đó, bạn nên kiểm tra cả theo cách thủ công."
1387
+ },
1388
+ "lighthouse-core/config/default-config.js | a11yCategoryManualDescription": {
1389
+ "message": "Các mục này nằm trong vùng không thể sử dụng công cụ kiểm tra tự động. Tìm hiểu thêm trong hướng dẫn của chúng tôi về cách [đánh giá khả năng hỗ trợ tiếp cận](https://developers.google.com/web/fundamentals/accessibility/how-to-review)."
1390
+ },
1391
+ "lighthouse-core/config/default-config.js | a11yCategoryTitle": {
1392
+ "message": "Hỗ trợ tiếp cận"
1393
+ },
1394
+ "lighthouse-core/config/default-config.js | a11yColorContrastGroupDescription": {
1395
+ "message": "Đây là các cơ hội giúp cải thiện độ dễ đọc cho nội dung của bạn."
1396
+ },
1397
+ "lighthouse-core/config/default-config.js | a11yColorContrastGroupTitle": {
1398
+ "message": "Độ tương phản"
1399
+ },
1400
+ "lighthouse-core/config/default-config.js | a11yLanguageGroupDescription": {
1401
+ "message": "Đây là những cơ hội giúp cải thiện khả năng diễn giải của người dùng đối với nội dung của bạn ở các ngôn ngữ khác nhau."
1402
+ },
1403
+ "lighthouse-core/config/default-config.js | a11yLanguageGroupTitle": {
1404
+ "message": "Quốc tế hóa và bản địa hóa"
1405
+ },
1406
+ "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupDescription": {
1407
+ "message": "Đây là những cơ hội giúp cải thiện chức năng diễn giải ngữ nghĩa của các biện pháp kiểm soát trong ứng dụng của bạn. Điều này có thể nâng cao trải nghiệm cho những người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
1408
+ },
1409
+ "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupTitle": {
1410
+ "message": "Tên và nhãn"
1411
+ },
1412
+ "lighthouse-core/config/default-config.js | a11yNavigationGroupDescription": {
1413
+ "message": "Đây là các cơ hội để cải thiện khả năng điều hướng bằng bàn phím trong ứng dụng của bạn."
1414
+ },
1415
+ "lighthouse-core/config/default-config.js | a11yNavigationGroupTitle": {
1416
+ "message": "Điều hướng"
1417
+ },
1418
+ "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
1419
+ "message": "Đây là những cơ hội để cải thiện trải nghiệm đọc dữ liệu trong bảng hoặc danh sách bằng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
1420
+ },
1421
+ "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
1422
+ "message": "Bảng và danh sách"
1423
+ },
1424
+ "lighthouse-core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
1425
+ "message": "Khả năng tương thích của trình duyệt"
1426
+ },
1427
+ "lighthouse-core/config/default-config.js | bestPracticesCategoryTitle": {
1428
+ "message": "Phương pháp hay nhất"
1429
+ },
1430
+ "lighthouse-core/config/default-config.js | bestPracticesGeneralGroupTitle": {
1431
+ "message": "Chung"
1432
+ },
1433
+ "lighthouse-core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
1434
+ "message": "Tin cậy và an toàn"
1435
+ },
1436
+ "lighthouse-core/config/default-config.js | bestPracticesUXGroupTitle": {
1437
+ "message": "Trải nghiệm người dùng"
1438
+ },
1439
+ "lighthouse-core/config/default-config.js | budgetsGroupDescription": {
1440
+ "message": "Phần Ngân sách hiệu suất đặt ra tiêu chuẩn về hiệu suất của trang web."
1441
+ },
1442
+ "lighthouse-core/config/default-config.js | budgetsGroupTitle": {
1443
+ "message": "Ngân sách"
1444
+ },
1445
+ "lighthouse-core/config/default-config.js | diagnosticsGroupDescription": {
1446
+ "message": "Thông tin bổ sung về hiệu suất của ứng dụng. Những số liệu này không [trực tiếp ảnh hưởng](https://web.dev/performance-scoring/) đến Điểm hiệu suất."
1447
+ },
1448
+ "lighthouse-core/config/default-config.js | diagnosticsGroupTitle": {
1449
+ "message": "Chẩn đoán"
1450
+ },
1451
+ "lighthouse-core/config/default-config.js | firstPaintImprovementsGroupDescription": {
1452
+ "message": "Khía cạnh quan trọng nhất của hiệu suất là tốc độ hiển thị pixel nhanh chóng trên màn hình. Các chỉ số chính: Hình ảnh có nội dung đầu tiên, Hình ảnh có ý nghĩa đầu tiên"
1453
+ },
1454
+ "lighthouse-core/config/default-config.js | firstPaintImprovementsGroupTitle": {
1455
+ "message": "Các thao tác để cải thiện thời gian hiển thị hình ảnh đầu tiên"
1456
+ },
1457
+ "lighthouse-core/config/default-config.js | loadOpportunitiesGroupDescription": {
1458
+ "message": "Những đề xuất này có thể giúp trang của bạn tải nhanh hơn, chứ không [trực tiếp ảnh hưởng](https://web.dev/performance-scoring/) đến Điểm hiệu suất."
1459
+ },
1460
+ "lighthouse-core/config/default-config.js | loadOpportunitiesGroupTitle": {
1461
+ "message": "Cơ hội"
1462
+ },
1463
+ "lighthouse-core/config/default-config.js | metricGroupTitle": {
1464
+ "message": "Các chỉ số"
1465
+ },
1466
+ "lighthouse-core/config/default-config.js | overallImprovementsGroupDescription": {
1467
+ "message": "Cải thiện trải nghiệm tải tổng thể để trang phản hồi và sẵn sàng cho bạn sử dụng sớm nhất có thể. Các số liệu chính: Thời điểm tương tác, Chỉ số tốc độ"
1468
+ },
1469
+ "lighthouse-core/config/default-config.js | overallImprovementsGroupTitle": {
1470
+ "message": "Các thao tác để cải thiện hiệu suất tổng thể"
1471
+ },
1472
+ "lighthouse-core/config/default-config.js | performanceCategoryTitle": {
1473
+ "message": "Hiệu suất"
1474
+ },
1475
+ "lighthouse-core/config/default-config.js | pwaCategoryDescription": {
1476
+ "message": "Những hoạt động kiểm tra này sẽ xác thực các khía cạnh của một Ứng dụng web tiến bộ. [Tìm hiểu thêm](https://developers.google.com/web/progressive-web-apps/checklist)."
1477
+ },
1478
+ "lighthouse-core/config/default-config.js | pwaCategoryManualDescription": {
1479
+ "message": "Đây là những hoạt động kiểm tra được chỉ định trong [Danh sách kiểm tra ứng dụng web tiến bộ (PWA)](https://developers.google.com/web/progressive-web-apps/checklist) cơ bản, nhưng Lighthouse không tự động kiểm tra các mục này. Các hoạt động kiểm tra này không ảnh hưởng đến điểm số của bạn, nhưng bạn nên xác minh theo cách thủ công."
1480
+ },
1481
+ "lighthouse-core/config/default-config.js | pwaCategoryTitle": {
1482
+ "message": "Ứng dụng web tiến bộ"
1483
+ },
1484
+ "lighthouse-core/config/default-config.js | pwaInstallableGroupTitle": {
1485
+ "message": "Có thể cài đặt"
1486
+ },
1487
+ "lighthouse-core/config/default-config.js | pwaOptimizedGroupTitle": {
1488
+ "message": "PWA đã tối ưu hóa"
1489
+ },
1490
+ "lighthouse-core/config/default-config.js | seoCategoryDescription": {
1491
+ "message": "Các hoạt động kiểm tra này đảm bảo rằng trang của bạn được tối ưu hóa cho thứ hạng trong kết quả của công cụ tìm kiếm. Những yếu tố bổ sung mà Lighthouse không kiểm tra có thể ảnh hưởng đến thứ hạng của bạn trong kết quả tìm kiếm. [Tìm hiểu thêm](https://support.google.com/webmasters/answer/35769)."
1492
+ },
1493
+ "lighthouse-core/config/default-config.js | seoCategoryManualDescription": {
1494
+ "message": "Chạy những trình xác thực bổ sung này trên trang web của bạn để xem thêm các phương pháp hay nhất dành cho quy trình Tối ưu hóa cho công cụ tìm kiếm (SEO)."
1495
+ },
1496
+ "lighthouse-core/config/default-config.js | seoCategoryTitle": {
1497
+ "message": "SEO"
1498
+ },
1499
+ "lighthouse-core/config/default-config.js | seoContentGroupDescription": {
1500
+ "message": "Định dạng HTML sao cho các trình thu thập thông tin có thể hiểu rõ hơn nội dung trong ứng dụng của bạn."
1501
+ },
1502
+ "lighthouse-core/config/default-config.js | seoContentGroupTitle": {
1503
+ "message": "Các phương pháp hay nhất về nội dung"
1504
+ },
1505
+ "lighthouse-core/config/default-config.js | seoCrawlingGroupDescription": {
1506
+ "message": "Để xuất hiện trong kết quả tìm kiếm, các trình thu thập thông tin cần quyền truy cập vào ứng dụng của bạn."
1507
+ },
1508
+ "lighthouse-core/config/default-config.js | seoCrawlingGroupTitle": {
1509
+ "message": "Thu thập thông tin và lập chỉ mục"
1510
+ },
1511
+ "lighthouse-core/config/default-config.js | seoMobileGroupDescription": {
1512
+ "message": "Đảm bảo các trang của bạn thân thiện với thiết bị di động để người dùng có thể đọc các trang nội dung mà không cần phải chụm hoặc thu phóng. [Tìm hiểu thêm](https://developers.google.com/search/mobile-sites/)."
1513
+ },
1514
+ "lighthouse-core/config/default-config.js | seoMobileGroupTitle": {
1515
+ "message": "Thân thiện với thiết bị di động"
1516
+ },
1517
+ "lighthouse-core/gather/driver.js | warningData": {
1518
+ "message": "{locationCount,plural, =1{Dữ liệu đã lưu trữ có thể ảnh hưởng đến hiệu suất tải ở vị trí này: {locations}. Hãy kiểm tra trang này trong một cửa sổ ẩn danh để ngăn các tài nguyên đó ảnh hưởng đến điểm hiệu suất của bạn.}other{Dữ liệu đã lưu trữ có thể ảnh hưởng đến hiệu suất tải ở các vị trí này: {locations}. Hãy kiểm tra trang này trong một cửa sổ ẩn danh để ngăn các tài nguyên đó ảnh hưởng đến điểm hiệu suất của bạn.}}"
1519
+ },
1520
+ "lighthouse-core/gather/gather-runner.js | warningRedirected": {
1521
+ "message": "Trang có thể không tải như dự kiến do URL kiểm tra của bạn ({requested}) đã được chuyển hướng tới {final}. Hãy thử kiểm tra trực tiếp URL thứ hai."
1522
+ },
1523
+ "lighthouse-core/gather/gather-runner.js | warningTimeout": {
1524
+ "message": "Trang này tải quá chậm nên không hoàn tất được trong giới hạn thời gian. Các kết quả có thể chưa hoàn chỉnh."
1525
+ },
1526
+ "lighthouse-core/lib/i18n/i18n.js | columnCacheTTL": {
1527
+ "message": "Thời gian tồn tại (TTL) của bộ nhớ đệm"
1528
+ },
1529
+ "lighthouse-core/lib/i18n/i18n.js | columnDuration": {
1530
+ "message": "Thời lượng"
1531
+ },
1532
+ "lighthouse-core/lib/i18n/i18n.js | columnElement": {
1533
+ "message": "Phần tử"
1534
+ },
1535
+ "lighthouse-core/lib/i18n/i18n.js | columnFailingElem": {
1536
+ "message": "Các phần tử không đạt"
1537
+ },
1538
+ "lighthouse-core/lib/i18n/i18n.js | columnLocation": {
1539
+ "message": "Vị trí"
1540
+ },
1541
+ "lighthouse-core/lib/i18n/i18n.js | columnName": {
1542
+ "message": "Tên"
1543
+ },
1544
+ "lighthouse-core/lib/i18n/i18n.js | columnOverBudget": {
1545
+ "message": "Vượt ngân sách"
1546
+ },
1547
+ "lighthouse-core/lib/i18n/i18n.js | columnRequests": {
1548
+ "message": "Số yêu cầu"
1549
+ },
1550
+ "lighthouse-core/lib/i18n/i18n.js | columnResourceSize": {
1551
+ "message": "Kích thước tài nguyên"
1552
+ },
1553
+ "lighthouse-core/lib/i18n/i18n.js | columnResourceType": {
1554
+ "message": "Loại tài nguyên"
1555
+ },
1556
+ "lighthouse-core/lib/i18n/i18n.js | columnSize": {
1557
+ "message": "Kích thước"
1558
+ },
1559
+ "lighthouse-core/lib/i18n/i18n.js | columnSource": {
1560
+ "message": "Nguồn"
1561
+ },
1562
+ "lighthouse-core/lib/i18n/i18n.js | columnStartTime": {
1563
+ "message": "Thời gian bắt đầu"
1564
+ },
1565
+ "lighthouse-core/lib/i18n/i18n.js | columnTimeSpent": {
1566
+ "message": "Thời gian sử dụng"
1567
+ },
1568
+ "lighthouse-core/lib/i18n/i18n.js | columnTransferSize": {
1569
+ "message": "Kích thước cần chuyển"
1570
+ },
1571
+ "lighthouse-core/lib/i18n/i18n.js | columnURL": {
1572
+ "message": "URL"
1573
+ },
1574
+ "lighthouse-core/lib/i18n/i18n.js | columnWastedBytes": {
1575
+ "message": "Lượng dữ liệu có thể tiết kiệm được"
1576
+ },
1577
+ "lighthouse-core/lib/i18n/i18n.js | columnWastedMs": {
1578
+ "message": "Thời gian có thể tiết kiệm được"
1579
+ },
1580
+ "lighthouse-core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
1581
+ "message": "Cumulative Layout Shift"
1582
+ },
1583
+ "lighthouse-core/lib/i18n/i18n.js | displayValueByteSavings": {
1584
+ "message": "Lượng dữ liệu có thể tiết kiệm được là {wastedBytes, number, bytes} KiB"
1585
+ },
1586
+ "lighthouse-core/lib/i18n/i18n.js | displayValueElementsFound": {
1587
+ "message": "{nodeCount,plural, =1{Tìm thấy 1 phần tử}other{Tìm thấy # phần tử}}"
1588
+ },
1589
+ "lighthouse-core/lib/i18n/i18n.js | displayValueMsSavings": {
1590
+ "message": "Thời gian có thể tiết kiệm được là {wastedMs, number, milliseconds} mili giây"
1591
+ },
1592
+ "lighthouse-core/lib/i18n/i18n.js | documentResourceType": {
1593
+ "message": "Tài liệu"
1594
+ },
1595
+ "lighthouse-core/lib/i18n/i18n.js | estimatedInputLatencyMetric": {
1596
+ "message": "Thời gian chờ nhập thông tin theo ước tính"
1597
+ },
1598
+ "lighthouse-core/lib/i18n/i18n.js | firstCPUIdleMetric": {
1599
+ "message": "CPU nhàn rỗi đầu tiên"
1600
+ },
1601
+ "lighthouse-core/lib/i18n/i18n.js | firstContentfulPaintMetric": {
1602
+ "message": "First Contentful Paint"
1603
+ },
1604
+ "lighthouse-core/lib/i18n/i18n.js | firstMeaningfulPaintMetric": {
1605
+ "message": "Hình ảnh có ý nghĩa đầu tiên"
1606
+ },
1607
+ "lighthouse-core/lib/i18n/i18n.js | fontResourceType": {
1608
+ "message": "Phông chữ"
1609
+ },
1610
+ "lighthouse-core/lib/i18n/i18n.js | imageResourceType": {
1611
+ "message": "Hình ảnh"
1612
+ },
1613
+ "lighthouse-core/lib/i18n/i18n.js | interactiveMetric": {
1614
+ "message": "Time to Interactive"
1615
+ },
1616
+ "lighthouse-core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
1617
+ "message": "Largest Contentful Paint"
1618
+ },
1619
+ "lighthouse-core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
1620
+ "message": "Thời gian phản hồi lần tương tác đầu tiên tối đa có thể"
1621
+ },
1622
+ "lighthouse-core/lib/i18n/i18n.js | mediaResourceType": {
1623
+ "message": "Nội dung nghe nhìn"
1624
+ },
1625
+ "lighthouse-core/lib/i18n/i18n.js | ms": {
1626
+ "message": "{timeInMs, number, milliseconds} mili giây"
1627
+ },
1628
+ "lighthouse-core/lib/i18n/i18n.js | otherResourceType": {
1629
+ "message": "Khác"
1630
+ },
1631
+ "lighthouse-core/lib/i18n/i18n.js | scriptResourceType": {
1632
+ "message": "Tập lệnh"
1633
+ },
1634
+ "lighthouse-core/lib/i18n/i18n.js | seconds": {
1635
+ "message": "{timeInMs, number, seconds} giây"
1636
+ },
1637
+ "lighthouse-core/lib/i18n/i18n.js | speedIndexMetric": {
1638
+ "message": "Speed Index"
1639
+ },
1640
+ "lighthouse-core/lib/i18n/i18n.js | stylesheetResourceType": {
1641
+ "message": "Biểu định kiểu"
1642
+ },
1643
+ "lighthouse-core/lib/i18n/i18n.js | thirdPartyResourceType": {
1644
+ "message": "Bên thứ ba"
1645
+ },
1646
+ "lighthouse-core/lib/i18n/i18n.js | totalBlockingTimeMetric": {
1647
+ "message": "Total Blocking Time"
1648
+ },
1649
+ "lighthouse-core/lib/i18n/i18n.js | totalResourceType": {
1650
+ "message": "Tổng"
1651
+ },
1652
+ "lighthouse-core/lib/lh-error.js | badTraceRecording": {
1653
+ "message": "Đã xảy ra lỗi khi ghi dấu vết quá trình tải trang của bạn. Vui lòng chạy lại Lighthouse. ({errorCode})"
1654
+ },
1655
+ "lighthouse-core/lib/lh-error.js | criTimeout": {
1656
+ "message": "Đã hết thời gian chờ kết nối với Giao thức của trình gỡ lỗi ban đầu ban đầu."
1657
+ },
1658
+ "lighthouse-core/lib/lh-error.js | didntCollectScreenshots": {
1659
+ "message": "Chrome không thu thập được bất kỳ ảnh chụp màn hình nào trong quá trình tải trang. Hãy đảm bảo trang có nội dung hiển thị, sau đó thử chạy lại Lighthouse. ({errorCode})"
1660
+ },
1661
+ "lighthouse-core/lib/lh-error.js | dnsFailure": {
1662
+ "message": "Máy chủ DNS không thể phân giải miền đã cung cấp."
1663
+ },
1664
+ "lighthouse-core/lib/lh-error.js | erroredRequiredArtifact": {
1665
+ "message": "Trình thu thập {artifactName} bắt buộc đã gặp lỗi: {errorMessage}"
1666
+ },
1667
+ "lighthouse-core/lib/lh-error.js | internalChromeError": {
1668
+ "message": "Đã xảy ra lỗi Chrome nội bộ. Vui lòng khởi động lại Chrome và thử chạy lại Lighthouse."
1669
+ },
1670
+ "lighthouse-core/lib/lh-error.js | missingRequiredArtifact": {
1671
+ "message": "Trình thu thập {artifactName} bắt buộc không chạy."
1672
+ },
1673
+ "lighthouse-core/lib/lh-error.js | notHtml": {
1674
+ "message": "Trang đã cung cấp không phải là HTML (được phân phối ở dạng loại MIME {mimeType})."
1675
+ },
1676
+ "lighthouse-core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
1677
+ "message": "Phiên bản Chrome này đã quá cũ nên không hỗ trợ \"{featureName}\". Hãy sử dụng phiên bản mới hơn để xem kết quả đầy đủ."
1678
+ },
1679
+ "lighthouse-core/lib/lh-error.js | pageLoadFailed": {
1680
+ "message": "Lighthouse không thể tải trang bạn đã yêu cầu một cách đáng tin cậy. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách."
1681
+ },
1682
+ "lighthouse-core/lib/lh-error.js | pageLoadFailedHung": {
1683
+ "message": "Lighthouse không thể tải URL bạn yêu cầu một cách đáng tin cậy vì trang này đã ngừng phản hồi."
1684
+ },
1685
+ "lighthouse-core/lib/lh-error.js | pageLoadFailedInsecure": {
1686
+ "message": "URL bạn cung cấp không có chứng chỉ bảo mật hợp lệ. {securityMessages}"
1687
+ },
1688
+ "lighthouse-core/lib/lh-error.js | pageLoadFailedInterstitial": {
1689
+ "message": "Chrome đã ngăn tải trang có quảng cáo xen kẽ. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách."
1690
+ },
1691
+ "lighthouse-core/lib/lh-error.js | pageLoadFailedWithDetails": {
1692
+ "message": "Lighthouse không thể tải trang bạn đã yêu cầu một cách đáng tin cậy. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách. (Chi tiết: {errorDetails})"
1693
+ },
1694
+ "lighthouse-core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
1695
+ "message": "Lighthouse không thể tải trang bạn đã yêu cầu một cách đáng tin cậy. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách. (Mã trạng thái: {statusCode})"
1696
+ },
1697
+ "lighthouse-core/lib/lh-error.js | pageLoadTookTooLong": {
1698
+ "message": "Thời gian tải trang quá lâu. Hãy thực hiện các khuyến nghị trong báo cáo để giảm thời gian tải trang rồi thử chạy lại Lighthouse. ({errorCode})"
1699
+ },
1700
+ "lighthouse-core/lib/lh-error.js | protocolTimeout": {
1701
+ "message": "Quá trình chờ phản hồi của giao thức DevTools đã vượt quá thời gian phân bổ. (Phương thức: {protocolMethod})"
1702
+ },
1703
+ "lighthouse-core/lib/lh-error.js | requestContentTimeout": {
1704
+ "message": "Quá trình tìm nạp nội dung tài nguyên đã vượt quá thời gian phân bổ"
1705
+ },
1706
+ "lighthouse-core/lib/lh-error.js | urlInvalid": {
1707
+ "message": "URL bạn cung cấp có vẻ không hợp lệ."
1708
+ },
1709
+ "lighthouse-core/report/html/renderer/util.js | auditGroupExpandTooltip": {
1710
+ "message": "Hiển thị kết quả kiểm tra"
1711
+ },
1712
+ "lighthouse-core/report/html/renderer/util.js | calculatorLink": {
1713
+ "message": "Xem máy tính."
1714
+ },
1715
+ "lighthouse-core/report/html/renderer/util.js | crcInitialNavigation": {
1716
+ "message": "Điều hướng ban đầu"
1717
+ },
1718
+ "lighthouse-core/report/html/renderer/util.js | crcLongestDurationLabel": {
1719
+ "message": "Độ trễ tối đa của đường dẫn quan trọng:"
1720
+ },
1721
+ "lighthouse-core/report/html/renderer/util.js | dropdownCopyJSON": {
1722
+ "message": "Sao chép đối tượng JSON"
1723
+ },
1724
+ "lighthouse-core/report/html/renderer/util.js | dropdownDarkTheme": {
1725
+ "message": "Bật/tắt Giao diện tối"
1726
+ },
1727
+ "lighthouse-core/report/html/renderer/util.js | dropdownPrintExpanded": {
1728
+ "message": "Mở rộng trong hộp thoại in"
1729
+ },
1730
+ "lighthouse-core/report/html/renderer/util.js | dropdownPrintSummary": {
1731
+ "message": "Báo cáo tóm tắt trong hộp thoại in"
1732
+ },
1733
+ "lighthouse-core/report/html/renderer/util.js | dropdownSaveGist": {
1734
+ "message": "Lưu dưới dạng Gist"
1735
+ },
1736
+ "lighthouse-core/report/html/renderer/util.js | dropdownSaveHTML": {
1737
+ "message": "Lưu dưới dạng HTML"
1738
+ },
1739
+ "lighthouse-core/report/html/renderer/util.js | dropdownSaveJSON": {
1740
+ "message": "Lưu dưới dạng JSON"
1741
+ },
1742
+ "lighthouse-core/report/html/renderer/util.js | dropdownViewer": {
1743
+ "message": "Mở trong trình xem"
1744
+ },
1745
+ "lighthouse-core/report/html/renderer/util.js | errorLabel": {
1746
+ "message": "Lỗi!"
1747
+ },
1748
+ "lighthouse-core/report/html/renderer/util.js | errorMissingAuditInfo": {
1749
+ "message": "Lỗi báo cáo: không có thông tin kiểm tra"
1750
+ },
1751
+ "lighthouse-core/report/html/renderer/util.js | footerIssue": {
1752
+ "message": "Tạo vấn đề"
1753
+ },
1754
+ "lighthouse-core/report/html/renderer/util.js | labDataTitle": {
1755
+ "message": "Dữ liệu của phòng thí nghiệm"
1756
+ },
1757
+ "lighthouse-core/report/html/renderer/util.js | lsPerformanceCategoryDescription": {
1758
+ "message": "Kết quả phân tích [Lighthouse](https://developers.google.com/web/tools/lighthouse/) cho trang hiện tại dựa trên một mạng di động mô phỏng. Các giá trị chỉ là ước tính và có thể thay đổi."
1759
+ },
1760
+ "lighthouse-core/report/html/renderer/util.js | manualAuditsGroupTitle": {
1761
+ "message": "Các mục bổ sung cần kiểm tra theo cách thủ công"
1762
+ },
1763
+ "lighthouse-core/report/html/renderer/util.js | notApplicableAuditsGroupTitle": {
1764
+ "message": "Không áp dụng"
1765
+ },
1766
+ "lighthouse-core/report/html/renderer/util.js | opportunityResourceColumnLabel": {
1767
+ "message": "Cơ hội"
1768
+ },
1769
+ "lighthouse-core/report/html/renderer/util.js | opportunitySavingsColumnLabel": {
1770
+ "message": "Thời lượng tiết kiệm được theo ước tính"
1771
+ },
1772
+ "lighthouse-core/report/html/renderer/util.js | passedAuditsGroupTitle": {
1773
+ "message": "Số lần kiểm tra đạt yêu cầu"
1774
+ },
1775
+ "lighthouse-core/report/html/renderer/util.js | runtimeDesktopEmulation": {
1776
+ "message": "Màn hình mô phỏng"
1777
+ },
1778
+ "lighthouse-core/report/html/renderer/util.js | runtimeMobileEmulation": {
1779
+ "message": "Mô phỏng Moto G4"
1780
+ },
1781
+ "lighthouse-core/report/html/renderer/util.js | runtimeNoEmulation": {
1782
+ "message": "Chưa đặt tùy chọn mô phỏng"
1783
+ },
1784
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsAxeVersion": {
1785
+ "message": "Phiên bản Axe"
1786
+ },
1787
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsBenchmark": {
1788
+ "message": "Công suất CPU/Bộ nhớ"
1789
+ },
1790
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsCPUThrottling": {
1791
+ "message": "Điều tiết CPU"
1792
+ },
1793
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsChannel": {
1794
+ "message": "Kênh"
1795
+ },
1796
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsDevice": {
1797
+ "message": "Thiết bị"
1798
+ },
1799
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsFetchTime": {
1800
+ "message": "Thời gian tìm nạp"
1801
+ },
1802
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsNetworkThrottling": {
1803
+ "message": "Hạn chế băng thông mạng"
1804
+ },
1805
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsTitle": {
1806
+ "message": "Các tùy chọn cài đặt thời gian chạy"
1807
+ },
1808
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsUA": {
1809
+ "message": "Tác nhân người dùng (máy chủ)"
1810
+ },
1811
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsUANetwork": {
1812
+ "message": "Tác nhân người dùng (mạng)"
1813
+ },
1814
+ "lighthouse-core/report/html/renderer/util.js | runtimeSettingsUrl": {
1815
+ "message": "URL"
1816
+ },
1817
+ "lighthouse-core/report/html/renderer/util.js | runtimeUnknown": {
1818
+ "message": "Không xác định"
1819
+ },
1820
+ "lighthouse-core/report/html/renderer/util.js | snippetCollapseButtonLabel": {
1821
+ "message": "Thu gọn đoạn mã"
1822
+ },
1823
+ "lighthouse-core/report/html/renderer/util.js | snippetExpandButtonLabel": {
1824
+ "message": "Mở rộng đoạn mã"
1825
+ },
1826
+ "lighthouse-core/report/html/renderer/util.js | thirdPartyResourcesLabel": {
1827
+ "message": "Hiển thị tài nguyên của bên thứ ba"
1828
+ },
1829
+ "lighthouse-core/report/html/renderer/util.js | throttlingProvided": {
1830
+ "message": "Cung cấp theo môi trường"
1831
+ },
1832
+ "lighthouse-core/report/html/renderer/util.js | toplevelWarningsMessage": {
1833
+ "message": "Đã xảy ra sự cố ảnh hưởng đến lần chạy Lighthouse này:"
1834
+ },
1835
+ "lighthouse-core/report/html/renderer/util.js | varianceDisclaimer": {
1836
+ "message": "Các giá trị chỉ là ước tính và có thể thay đổi. [Điểm hiệu quả được tính](https://web.dev/performance-scoring/) trực tiếp từ những chỉ số này."
1837
+ },
1838
+ "lighthouse-core/report/html/renderer/util.js | warningAuditsGroupTitle": {
1839
+ "message": "Đã vượt qua bài kiểm tra nhưng có cảnh báo"
1840
+ },
1841
+ "lighthouse-core/report/html/renderer/util.js | warningHeader": {
1842
+ "message": "Cảnh báo: "
1843
+ },
1844
+ "node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
1845
+ "message": "Đối với nội dung động, hãy sử dụng [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) để giảm thiểu mức sử dụng CPU khi nội dung nằm ngoài màn hình."
1846
+ },
1847
+ "node_modules/lighthouse-stack-packs/packs/amp.js | offscreen-images": {
1848
+ "message": "Đảm bảo rằng bạn đang sử dụng [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) cho quá trình tự động tải từng phần đối với hình ảnh. [Tìm hiểu thêm](https://amp.dev/documentation/guides-and-tutorials/develop/media_iframes_3p/?format=websites#images)."
1849
+ },
1850
+ "node_modules/lighthouse-stack-packs/packs/amp.js | render-blocking-resources": {
1851
+ "message": "Sử dụng các công cụ như [Trình tối ưu hóa AMP](https://github.com/ampproject/amp-toolbox/tree/master/packages/optimizer) để [hiển thị các bố cục AMP ở phía máy chủ](https://amp.dev/documentation/guides-and-tutorials/optimize-and-measure/server-side-rendering/)."
1852
+ },
1853
+ "node_modules/lighthouse-stack-packs/packs/amp.js | unminified-css": {
1854
+ "message": "Tham khảo [tài liệu về AMP](https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/style_pages/) để đảm bảo tất cả các kiểu đều được hỗ trợ."
1855
+ },
1856
+ "node_modules/lighthouse-stack-packs/packs/amp.js | uses-responsive-images": {
1857
+ "message": "Thành phần [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) hỗ trợ thuộc tính [`srcset`](https://web.dev/use-srcset-to-automatically-choose-the-right-image/) để chỉ định tài sản hình ảnh sẽ sử dụng dựa trên kích thước màn hình. [Tìm hiểu thêm](https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/art_direction/)."
1858
+ },
1859
+ "node_modules/lighthouse-stack-packs/packs/amp.js | uses-webp-images": {
1860
+ "message": "Cân nhắc hiển thị tất cả các thành phần [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) của bạn ở định dạng WebP, đồng thời chỉ định phương án dự phòng thích hợp cho các trình duyệt khác. [Tìm hiểu thêm](https://amp.dev/documentation/components/amp-img/#example:-specifying-a-fallback-image)."
1861
+ },
1862
+ "node_modules/lighthouse-stack-packs/packs/angular.js | dom-size": {
1863
+ "message": "Cân nhắc cuộn ảo bằng Component Dev Kit (CDK) nếu đang hiển thị danh sách rất lớn. [Tìm hiểu thêm](https://web.dev/virtualize-lists-with-angular-cdk/)."
1864
+ },
1865
+ "node_modules/lighthouse-stack-packs/packs/angular.js | total-byte-weight": {
1866
+ "message": "Áp dụng tùy chọn [phân tách mã cấp định tuyến](https://web.dev/route-level-code-splitting-in-angular/) để giảm thiểu kích thước của các gói JavaScript. Đồng thời, cân nhắc lưu trước vào bộ nhớ đệm các tài sản có [trình chạy dịch vụ Angular](https://web.dev/precaching-with-the-angular-service-worker/)."
1867
+ },
1868
+ "node_modules/lighthouse-stack-packs/packs/angular.js | unminified-warning": {
1869
+ "message": "Nếu bạn đang dùng giao diện dòng lệnh (CLI) Angular, hãy đảm bảo các bản dựng được tạo ở chế độ sản xuất. [Tìm hiểu thêm](https://angular.io/guide/deployment#enable-runtime-production-mode)."
1870
+ },
1871
+ "node_modules/lighthouse-stack-packs/packs/angular.js | unused-javascript": {
1872
+ "message": "Nếu bạn đang dùng giao diện dòng lệnh (CLI) Angular, hãy đưa các sơ đồ nguồn vào bản phát hành chính thức để kiểm tra các gói của bạn. [Tìm hiểu thêm](https://angular.io/guide/deployment#inspect-the-bundles)."
1873
+ },
1874
+ "node_modules/lighthouse-stack-packs/packs/angular.js | uses-rel-preload": {
1875
+ "message": "Tải trước các mục định tuyến để di chuyển nhanh hơn. [Tìm hiểu thêm](https://web.dev/route-preloading-in-angular/)."
1876
+ },
1877
+ "node_modules/lighthouse-stack-packs/packs/angular.js | uses-responsive-images": {
1878
+ "message": "Cân nhắc dùng tiện ích `BreakpointObserver` trong Component Dev Kit (CDK) để quản lý các điểm ngắt hình ảnh. [Tìm hiểu thêm](https://material.angular.io/cdk/layout/overview)."
1879
+ },
1880
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | efficient-animated-content": {
1881
+ "message": "Hãy cân nhắc tải ảnh GIF lên một dịch vụ để có thể nhúng ảnh này ở dạng video HTML5."
1882
+ },
1883
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | font-display": {
1884
+ "message": "Chỉ định `@font-display` khi xác định phông chữ tùy chỉnh trong giao diện của bạn."
1885
+ },
1886
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | offscreen-images": {
1887
+ "message": "Cài đặt [một mô-đun Drupal](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A67&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=%22lazy+load%22&solrsort=iss_project_release_usage+desc&op=Search) có thể tải từng phần hình ảnh. Những mô-đun như vậy cung cấp khả năng trì hoãn mọi hình ảnh ngoài màn hình nhằm cải thiện hiệu suất."
1888
+ },
1889
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | render-blocking-resources": {
1890
+ "message": "Hãy cân nhắc sử dụng một mô-đun cùng dòng với CSS và JavaScript quan trọng, hoặc có khả năng tải không đồng bộ các tài sản qua JavaScript, chẳng hạn như mô-đun [Tổng hợp CSS/JavaScript nâng cao](https://www.drupal.org/project/advagg). Hãy lưu ý rằng những tùy chọn tối ưu hóa mà mô-đun này cung cấp có thể làm hỏng trang web của bạn. Do đó, bạn có thể phải thay đổi mã."
1891
+ },
1892
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | time-to-first-byte": {
1893
+ "message": "Giao diện, mô-đun và thông số máy chủ đều tác động đến thời gian phản hồi của máy chủ. Hãy cân nhắc tìm một giao diện tối ưu hóa hơn, lựa chọn cẩn thận mô-đun tối ưu hóa và/hoặc nâng cấp máy chủ. Các máy chủ lưu trữ nên tận dụng tính năng lưu mã vận hành PHP vào bộ nhớ đệm, tính năng lưu vào bộ nhớ đệm để giảm thiểu số lần truy vấn cơ sở dữ liệu, chẳng hạn như Redis hoặc Memcached, cũng như tận dụng logic của ứng dụng được tối ưu hóa để tải trang nhanh hơn."
1894
+ },
1895
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | total-byte-weight": {
1896
+ "message": "Hãy cân nhắc sử dụng [Kiểu hình ảnh thích ứng](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) để giảm kích thước của hình ảnh tải trên trang. Nếu bạn đang sử dụng Views để hiển thị nhiều mục nội dung trên một trang, hãy cân nhắc triển khai quá trình phân trang để giới hạn số mục nội dung hiển thị trên trang cụ thể."
1897
+ },
1898
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-css": {
1899
+ "message": "Đảm bảo bạn đã bật tùy chọn \"Aggregate CSS files\" (Tổng hợp các tệp CSS) trên trang \"Administration » Configuration » Development\" (Quản trị > Cấu hình > Phát triển). Bạn cũng có thể định cấu hình những tùy chọn tổng hợp nâng cao hơn thông qua các [mô-đun bổ sung](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=css+aggregation&solrsort=iss_project_release_usage+desc&op=Search) để tăng tốc độ của trang web bằng cách ghép nối, giảm kích thước và nén các kiểu CSS."
1900
+ },
1901
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-javascript": {
1902
+ "message": "Đảm bảo bạn đã bật tùy chọn \"Aggregate JavaScript files\" (Tổng hợp các tệp JavaScript) trên trang \"Administration » Configuration » Development\" (Quản trị > Cấu hình > Phát triển). Bạn cũng có thể định cấu hình những tùy chọn tổng hợp nâng cao hơn thông qua các [mô-đun bổ sung](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=javascript+aggregation&solrsort=iss_project_release_usage+desc&op=Search) để tăng tốc độ của trang web bằng cách ghép nối, giảm kích thước và nén các tài sản JavaScript."
1903
+ },
1904
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-css-rules": {
1905
+ "message": "Hãy cân nhắc xóa các quy tắc CSS không dùng đến và chỉ đính kèm các thư viện Drupal cần thiết vào trang hoặc thành phần liên quan trên trang. Truy cập vào [đường liên kết đến tài liệu về Drupal](https://www.drupal.org/docs/8/creating-custom-modules/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-module#library) để biết thông tin chi tiết. Để xác định các thư viện đã đính kèm đang thêm CSS không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định giao diện/mô-đun gây ra tình trạng này từ URL của tệp định kiểu khi tính năng tổng hợp CSS bị tắt trên trang web Drupal. Hãy chú ý đến những giao diện/mô-đun có nhiều tệp định kiểu trong danh sách. Những giao diện/mô-đun này có nhiều màu đỏ trong phạm vi của mã. Mỗi giao diện/mô-đun chỉ nên thêm một tệp định kiểu vào hàng đợi nếu tệp định kiểu đó thực sự được sử dụng trên trang."
1906
+ },
1907
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-javascript": {
1908
+ "message": "Hãy cân nhắc xóa những tài sản JavaScript không dùng đến và chỉ đính kèm các thư viện Drupal cần thiết vào trang hoặc thành phần liên quan trên trang. Truy cập vào [đường liên kết đến tài liệu về Drupal](https://www.drupal.org/docs/8/creating-custom-modules/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-module#library) để biết thông tin chi tiết. Để xác định các thư viện đã đính kèm đang thêm JavaScript không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định giao diện/mô-đun gây ra tình trạng này từ URL của tập lệnh khi tính năng tổng hợp JavaScript bị tắt trên trang web Drupal. Hãy chú ý đến những giao diện/mô-đun có nhiều tập lệnh trong danh sách. Những giao diện/mô-đun này có nhiều màu đỏ trong phạm vi của mã. Mỗi giao diện/mô-đun chỉ nên thêm một tập lệnh vào hàng đợi nếu tập lệnh đó thực sự được sử dụng trên trang."
1909
+ },
1910
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-long-cache-ttl": {
1911
+ "message": "Đặt \"Browser and proxy cache maximum age\" (Thời gian tồn tại tối đa của bộ nhớ đệm proxy và trình duyệt) trên trang \"Administration » Configuration » Development\" (Quản trị > Cấu hình > Phát triển). Hãy đọc về [Bộ nhớ đệm Drupal và tối ưu hóa cho hiệu suất](https://www.drupal.org/docs/7/managing-site-performance-and-scalability/caching-to-improve-performance/caching-overview#s-drupal-performance-resources)."
1912
+ },
1913
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-optimized-images": {
1914
+ "message": "Hãy cân nhắc sử dụng [một mô-đun](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=optimize+images&solrsort=iss_project_release_usage+desc&op=Search) tự động tối ưu hóa và giảm kích thước của hình ảnh tải lên qua trang web trong khi vẫn giữ được chất lượng. Ngoài ra, hãy đảm bảo bạn đang sử dụng [Kiểu hình ảnh thích ứng](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) gốc do Drupal cung cấp (có trong Drupal 8 trở lên) cho tất cả hình ảnh hiển thị trên trang web."
1915
+ },
1916
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-rel-preconnect": {
1917
+ "message": "Bạn có thể thêm các gợi ý về tài nguyên kết nối trước hoặc tìm nạp DNS trước bằng cách cài đặt và định cấu hình [một mô-đun](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=dns-prefetch&solrsort=iss_project_release_usage+desc&op=Search) cung cấp các công cụ để gợi ý tài nguyên cho tác nhân người dùng."
1918
+ },
1919
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-responsive-images": {
1920
+ "message": "Đảm bảo rằng bạn đang sử dụng [Kiểu hình ảnh thích ứng](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) gốc do Drupal cung cấp (có trong Drupal 8 trở lên). Hãy sử dụng Kiểu hình ảnh thích ứng khi hiển thị các trường hình ảnh thông qua chế độ xem, giao diện xem hoặc hình ảnh tải lên bằng trình chỉnh sửa WYSIWYG."
1921
+ },
1922
+ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-webp-images": {
1923
+ "message": "Hãy cân nhắc cài đặt và định cấu hình [một mô-đun để tận dụng các định dạng hình ảnh WebP](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=webp&solrsort=iss_project_release_usage+desc&op=Search) trên trang web của bạn. Những mô-đun như vậy sẽ tự động tạo một phiên bản WebP của hình ảnh mà bạn đã tải lên để tối ưu hóa thời gian tải."
1924
+ },
1925
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | efficient-animated-content": {
1926
+ "message": "Hãy cân nhắc tải ảnh GIF lên một dịch vụ để có thể nhúng ảnh này ở dạng video HTML5."
1927
+ },
1928
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | offscreen-images": {
1929
+ "message": "Hãy cài đặt một [plugin tải từng phần của Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=lazy%20loading) giúp trì hoãn mọi hình ảnh ngoài màn hình, hoặc chuyển sang một mẫu cung cấp chức năng đó. Kể từ Joomla 4.0, bạn có thể bật plugin tải từng phần chuyên dụng bằng cách sử dụng plugin \"Content – Lazy Loading Images\". Ngoài ra, hãy cân nhắc sử dụng [plugin Accelerated Mobile Pages (AMP)](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=amp)."
1930
+ },
1931
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | render-blocking-resources": {
1932
+ "message": "Một số trình bổ trợ của Joomla có thể giúp bạn [đưa các tài sản quan trọng vào cùng dòng](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) hoặc [trì hoãn những tài nguyên ít quan trọng hơn](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance). Hãy lưu ý rằng những tùy chọn tối ưu hóa mà các trình bổ trợ này cung cấp có thể phá hỏng tính năng của mẫu hoặc trình bổ trợ. Do đó, bạn cần thử nghiệm kỹ lưỡng các tùy chọn này."
1933
+ },
1934
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | server-response-time": {
1935
+ "message": "Mẫu, tiện ích và thông số máy chủ đều tác động đến thời gian phản hồi của máy chủ. Hãy cân nhắc tìm một mẫu tối ưu hóa hơn, lựa chọn cẩn thận tiện ích tối ưu hóa và/hoặc nâng cấp máy chủ."
1936
+ },
1937
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | total-byte-weight": {
1938
+ "message": "Hãy cân nhắc hiển thị phần trích dẫn trong danh mục bài viết của bạn (ví dụ: thông qua đường liên kết đọc thêm), giảm số lượng bài viết hiển thị trên một trang cụ thể, chia các bài viết dài thành nhiều trang hoặc sử dụng một trình bổ trợ để tải nhận xét theo từng phần."
1939
+ },
1940
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | unminified-css": {
1941
+ "message": "Một số [tiện ích Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) có thể làm tăng tốc độ của trang web bằng cách ghép nối, giảm kích thước và nén các kiểu CSS. Ngoài ra, còn có các mẫu cung cấp chức năng này."
1942
+ },
1943
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | unminified-javascript": {
1944
+ "message": "Một số [tiện ích Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) có thể làm tăng tốc độ của trang web bằng cách ghép nối, giảm kích thước và nén các tập lệnh. Ngoài ra, còn có các mẫu cung cấp chức năng này."
1945
+ },
1946
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | unused-css-rules": {
1947
+ "message": "Hãy cân nhắc giảm hoặc chuyển đổi số lượng [tiện ích Joomla](https://extensions.joomla.org/) tải CSS không dùng đến trên trang của bạn. Để xác định các tiện ích đang thêm CSS không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định giao diện/trình bổ trợ gây ra tình trạng này từ URL của tệp định kiểu. Hãy chú ý đến những trình bổ trợ có nhiều tệp định kiểu trong danh sách. Những trình bổ trợ này có nhiều màu đỏ trong phạm vi của mã. Mỗi trình bổ trợ chỉ nên thêm một tệp định kiểu vào hàng đợi nếu tệp định kiểu đó thực sự được sử dụng trên trang."
1948
+ },
1949
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | unused-javascript": {
1950
+ "message": "Hãy cân nhắc giảm hoặc chuyển đổi số lượng [tiện ích Joomla](https://extensions.joomla.org/) tải các tệp JavaScript không dùng đến trên trang của bạn. Để xác định các trình bổ trợ đang thêm JavaScript không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định tiện ích gây ra tình trạng này từ URL của tập lệnh. Hãy chú ý đến những tiện ích có nhiều tập lệnh trong danh sách. Những tiện ích này có nhiều màu đỏ trong phạm vi của mã. Mỗi tiện ích chỉ nên thêm một tập lệnh vào hàng đợi nếu tập lệnh đó thực sự được sử dụng trên trang."
1951
+ },
1952
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-long-cache-ttl": {
1953
+ "message": "Hãy đọc về tính năng [Lưu vào bộ nhớ đệm của trình duyệt trong Joomla](https://docs.joomla.org/Cache)."
1954
+ },
1955
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-optimized-images": {
1956
+ "message": "Hãy cân nhắc sử dụng một [trình bổ trợ tối ưu hóa hình ảnh](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) có khả năng nén hình ảnh mà vẫn giữ được chất lượng."
1957
+ },
1958
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-responsive-images": {
1959
+ "message": "Hãy cân nhắc dùng một [trình bổ trợ hình ảnh thích ứng](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=responsive%20images) để sử dụng các hình ảnh thích ứng trong nội dung của bạn."
1960
+ },
1961
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-text-compression": {
1962
+ "message": "Bạn có thể bật tính năng nén văn bản bằng cách bật tính năng Nén trang Gzip trong Joomla (System > Global configuration > Server (Hệ thống > Cấu hình chung > Máy chủ))."
1963
+ },
1964
+ "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-webp-images": {
1965
+ "message": "Hãy cân nhắc sử dụng một [trình bổ trợ](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=webp) hoặc dịch vụ tự động chuyển đổi các hình ảnh đã tải lên sang định dạng tối ưu."
1966
+ },
1967
+ "node_modules/lighthouse-stack-packs/packs/magento.js | critical-request-chains": {
1968
+ "message": "Nếu bạn hiện không nhóm các nội dung JavaScript của mình, hãy cân nhắc dùng [trình đóng gói](https://github.com/magento/baler)."
1969
+ },
1970
+ "node_modules/lighthouse-stack-packs/packs/magento.js | disable-bundling": {
1971
+ "message": "Tắt tùy chọn [giảm kích thước và nhóm JavaScript](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) tích hợp của Magento, đồng thời cân nhắc dùng [trình đóng gói](https://github.com/magento/baler/)."
1972
+ },
1973
+ "node_modules/lighthouse-stack-packs/packs/magento.js | font-display": {
1974
+ "message": "Chỉ định `@font-display` khi [xác định phông chữ tùy chỉnh](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/css-topics/using-fonts.html)."
1975
+ },
1976
+ "node_modules/lighthouse-stack-packs/packs/magento.js | offscreen-images": {
1977
+ "message": "Cân nhắc sửa đổi mẫu danh mục và sản phẩm để tận dụng tính năng [tải từng phần](https://web.dev/native-lazy-loading) của nền tảng web."
1978
+ },
1979
+ "node_modules/lighthouse-stack-packs/packs/magento.js | time-to-first-byte": {
1980
+ "message": "Sử dụng tính năng [tích hợp Varnish](https://devdocs.magento.com/guides/v2.3/config-guide/varnish/config-varnish.html) của Magento."
1981
+ },
1982
+ "node_modules/lighthouse-stack-packs/packs/magento.js | unminified-css": {
1983
+ "message": "Bật tùy chọn \"Giảm kích thước tệp CSS\" trong phần cài đặt dành cho Nhà phát triển của cửa hàng. [Tìm hiểu thêm](https://devdocs.magento.com/guides/v2.3/performance-best-practices/configuration.html?itm_source=devdocs&itm_medium=search_page&itm_campaign=federated_search&itm_term=minify%20css%20files)."
1984
+ },
1985
+ "node_modules/lighthouse-stack-packs/packs/magento.js | unminified-javascript": {
1986
+ "message": "Sử dụng [Terser](https://www.npmjs.com/package/terser) để giảm kích thước của tất cả tài sản JavaScript trong quá trình triển khai nội dung tĩnh, đồng thời tắt tính năng giảm kích thước tích hợp."
1987
+ },
1988
+ "node_modules/lighthouse-stack-packs/packs/magento.js | unused-javascript": {
1989
+ "message": "Tắt tùy chọn [nhóm JavaScript](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) tích hợp của Magento."
1990
+ },
1991
+ "node_modules/lighthouse-stack-packs/packs/magento.js | uses-optimized-images": {
1992
+ "message": "Cân nhắc tìm kiếm nhiều tiện ích của bên thứ ba trên [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=optimize%20image) để tối ưu hóa hình ảnh."
1993
+ },
1994
+ "node_modules/lighthouse-stack-packs/packs/magento.js | uses-rel-preconnect": {
1995
+ "message": "Có thể thêm các gợi ý về tài nguyên kết nối trước hoặc tìm nạp DNS trước bằng cách [sửa đổi bố cục của một giao diện](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/xml-manage.html)."
1996
+ },
1997
+ "node_modules/lighthouse-stack-packs/packs/magento.js | uses-rel-preload": {
1998
+ "message": "Có thể thêm thẻ `<link rel=preload>` bằng cách [sửa đổi bố cục của một giao diện](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/xml-manage.html)."
1999
+ },
2000
+ "node_modules/lighthouse-stack-packs/packs/magento.js | uses-webp-images": {
2001
+ "message": "Cân nhắc tìm kiếm nhiều tiện ích của bên thứ ba trên [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=webp) để tận dụng những định dạng hình ảnh mới."
2002
+ },
2003
+ "node_modules/lighthouse-stack-packs/packs/react.js | dom-size": {
2004
+ "message": "Hãy cân nhắc dùng một thư viện “tạo cửa sổ” như `react-window` để giảm thiểu số nút DOM được tạo nếu bạn đang hiển thị nhiều phần tử lặp lại trên trang. [Tìm hiểu thêm](https://web.dev/virtualize-long-lists-react-window/). Đồng thời, hãy giảm thiểu các thao tác hiển thị lại không cần thiết bằng [`shouldComponentUpdate`](https://reactjs.org/docs/optimizing-performance.html#shouldcomponentupdate-in-action), [`PureComponent`](https://reactjs.org/docs/react-api.html#reactpurecomponent) hoặc [`React.memo`](https://reactjs.org/docs/react-api.html#reactmemo) và tùy chọn [bỏ qua hiệu ứng](https://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects) cho đến khi một số phần phụ thuộc thay đổi, nếu bạn đang dùng `Effect` hook để cải thiện hiệu suất trong thời gian chạy."
2005
+ },
2006
+ "node_modules/lighthouse-stack-packs/packs/react.js | redirects": {
2007
+ "message": "Nếu bạn đang dùng React Router, hãy giảm thiểu mức sử dụng thành phần `<Redirect>` để [định tuyến](https://reacttraining.com/react-router/web/api/Redirect)."
2008
+ },
2009
+ "node_modules/lighthouse-stack-packs/packs/react.js | time-to-first-byte": {
2010
+ "message": "Nếu bạn đang hiển thị bất kỳ thành phần React nào ở phía máy chủ, hãy cân nhắc dùng `renderToNodeStream()` hoặc `renderToStaticNodeStream()` để cho phép ứng dụng nhận và nhập những phần khác nhau của mục đánh dấu thay vì tất cả cùng lúc. [Tìm hiểu thêm](https://reactjs.org/docs/react-dom-server.html#rendertonodestream)."
2011
+ },
2012
+ "node_modules/lighthouse-stack-packs/packs/react.js | unminified-css": {
2013
+ "message": "Nếu hệ thống bản dựng của bạn tự động giảm kích thước tệp CSS, hãy đảm bảo rằng bạn đang triển khai bản phát hành chính thức của ứng dụng. Bạn có thể kiểm tra điều này bằng tiện ích React Developer Tools. [Tìm hiểu thêm](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)."
2014
+ },
2015
+ "node_modules/lighthouse-stack-packs/packs/react.js | unminified-javascript": {
2016
+ "message": "Nếu hệ thống bản dựng của bạn tự động giảm kích thước tệp JS, hãy đảm bảo rằng bạn đang triển khai bản phát hành chính thức của ứng dụng. Bạn có thể kiểm tra điều này bằng tiện ích React Developer Tools. [Tìm hiểu thêm](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)."
2017
+ },
2018
+ "node_modules/lighthouse-stack-packs/packs/react.js | unused-javascript": {
2019
+ "message": "Nếu bạn không định hiển thị phía máy chủ, hãy [phân tách các gói JavaScript](https://web.dev/code-splitting-suspense/) bằng `React.lazy()`. Nếu không, hãy phân tách mã bằng một thư viện của bên thứ ba như [các thành phần có thể tải](https://www.smooth-code.com/open-source/loadable-components/docs/getting-started/)."
2020
+ },
2021
+ "node_modules/lighthouse-stack-packs/packs/react.js | user-timings": {
2022
+ "message": "Sử dụng Trình phân tích tài nguyên React DevTools, công cụ dùng API Trình phân tích tài nguyên để đo lường hiệu suất hiển thị của các thành phần. [Tìm hiểu thêm.](https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)"
2023
+ },
2024
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | efficient-animated-content": {
2025
+ "message": "Hãy cân nhắc tải ảnh GIF lên một dịch vụ để có thể nhúng ảnh này ở dạng video HTML5."
2026
+ },
2027
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | offscreen-images": {
2028
+ "message": "Cài đặt một [plugin tải từng phần của WordPress](https://wordpress.org/plugins/search/lazy+load/) để trì hoãn mọi hình ảnh ngoài màn hình, hoặc chuyển sang một giao diện cung cấp chức năng đó. Ngoài ra, hãy cân nhắc sử dụng [plugin AMP (Accelerated Mobile Pages)](https://wordpress.org/plugins/amp/)."
2029
+ },
2030
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | render-blocking-resources": {
2031
+ "message": "Có một số plugin của WordPress có thể giúp bạn [đưa phần tử quan trọng vào nội tuyến](https://wordpress.org/plugins/search/critical+css/) hoặc [trì hoãn tài nguyên ít quan trọng hơn](https://wordpress.org/plugins/search/defer+css+javascript/). Xin lưu ý rằng những phương thức tối ưu hóa mà các plugin này cung cấp có thể làm gián đoạn tính năng của giao diện hoặc plugin, do đó, có thể bạn cần thay đổi mã."
2032
+ },
2033
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | time-to-first-byte": {
2034
+ "message": "Giao diện, plugin và thông số máy chủ đều tác động đến thời gian phản hồi của máy chủ. Hãy cân nhắc tìm một giao diện được tối ưu hóa, lựa chọn cẩn thận một plugin tối ưu hóa và/hoặc nâng cấp máy chủ."
2035
+ },
2036
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | total-byte-weight": {
2037
+ "message": "Hãy cân nhắc hiển thị phần trích dẫn trong danh sách bài đăng (ví dụ như qua thẻ thêm), giảm số lượng bài đăng hiển thị trên một trang cụ thể, chia các bài đăng dài thành nhiều trang hoặc sử dụng một plugin để tải nhận xét theo từng phần."
2038
+ },
2039
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | unminified-css": {
2040
+ "message": "Một số [plugin của WordPress](https://wordpress.org/plugins/search/minify+css/) có thể làm tăng tốc độ của trang web bằng cách ghép, giảm kích thước và nén kiểu. Bạn cũng có thể dùng quy trình tạo để tiến hành thu nhỏ trước, nếu có thể."
2041
+ },
2042
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | unminified-javascript": {
2043
+ "message": "Một số [plugin của WordPress](https://wordpress.org/plugins/search/minify+javascript/) có thể làm tăng tốc độ của trang web bằng cách ghép, giảm kích thước và nén tập lệnh. Ngoài ra, bạn nên dùng quy trình tạo để tiến hành thu nhỏ trước, nếu có thể."
2044
+ },
2045
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-css-rules": {
2046
+ "message": "Hãy cân nhắc giảm hoặc chuyển đổi số lượng [plugin của WordPress](https://wordpress.org/plugins/) tải Biểu định kiểu xếp chồng (CSS) không dùng đến trong trang của bạn. Để xác định các plugin đang thêm Biểu định kiểu xếp chồng (CSS) không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định giao diện/plugin gây ra tình trạng này từ URL của biểu định kiểu. Hãy chú ý đến những plugin có nhiều biểu định kiểu trong danh sách. Những plugin này có nhiều màu đỏ trong phạm vi của mã. Một plugin chỉ nên thêm một biểu định kiểu vào hàng đợi nếu biểu định kiểu đó thực sự được sử dụng trên trang."
2047
+ },
2048
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-javascript": {
2049
+ "message": "Hãy cân nhắc giảm hoặc chuyển đổi số lượng [plugin của WordPress](https://wordpress.org/plugins/) tải JavaScript không dùng đến trong trang của bạn. Để xác định các plugin đang thêm JS không liên quan, hãy thử chạy [phạm vi của mã](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) trong Chrome DevTools. Bạn có thể xác định giao diện/plugin gây ra tình trạng này từ URL của tập lệnh. Hãy chú ý đến những plugin có nhiều tập lệnh trong danh sách. Những plugin này có nhiều màu đỏ trong phạm vi của mã. Một plugin chỉ nên thêm một tập lệnh vào hàng đợi nếu tập lệnh đó thực sự được dùng trên trang."
2050
+ },
2051
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-long-cache-ttl": {
2052
+ "message": "Hãy đọc về [Bộ nhớ đệm của trình duyệt trong WordPress](https://wordpress.org/support/article/optimization/#browser-caching)."
2053
+ },
2054
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-optimized-images": {
2055
+ "message": "Hãy cân nhắc sử dụng một [trình bổ trợ tối ưu hóa hình ảnh của WordPress](https://wordpress.org/plugins/search/optimize+images/) có khả năng nén hình ảnh mà vẫn đảm bảo chất lượng."
2056
+ },
2057
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-responsive-images": {
2058
+ "message": "Trực tiếp tải hình ảnh lên thông qua [thư viện nội dung đa phương tiện](https://wordpress.org/support/article/media-library-screen/) để đảm bảo có các kích thước hình ảnh theo yêu cầu, sau đó chèn hình ảnh từ thư viện nội dung đa phương tiện hoặc sử dụng tiện ích hình ảnh để đảm bảo sử dụng kích thước hình ảnh tối ưu (bao gồm cả các kích thước dành cho điểm ngắt thích ứng). Tránh sử dụng hình ảnh có `Full Size` trừ khi những hình ảnh đó có kích thước phù hợp. [Tìm hiểu thêm](https://wordpress.org/support/article/inserting-images-into-posts-and-pages/)."
2059
+ },
2060
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-text-compression": {
2061
+ "message": "Bạn có thể bật tính năng nén văn bản trong cấu hình máy chủ web."
2062
+ },
2063
+ "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-webp-images": {
2064
+ "message": "Hãy cân nhắc sử dụng một [trình bổ trợ](https://wordpress.org/plugins/search/convert+webp/) hoặc dịch vụ tự động chuyển đổi các hình ảnh đã tải lên sang định dạng tối ưu."
2065
+ }
2066
+ }