uomtiles 0.1.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 (507) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/1d1PDhA4.js +1 -0
  3. package/.output/public/_nuxt/3B2XYGg4.js +1 -0
  4. package/.output/public/_nuxt/981KwFWf.js +1 -0
  5. package/.output/public/_nuxt/B30dSvM4.js +1 -0
  6. package/.output/public/_nuxt/BN1Gp4Dm.js +1 -0
  7. package/.output/public/_nuxt/BQlj8Xoe.js +6 -0
  8. package/.output/public/_nuxt/BRkljK8J.js +1 -0
  9. package/.output/public/_nuxt/BSdHYVlE2.js +1 -0
  10. package/.output/public/_nuxt/B_MqTg2k2.js +1 -0
  11. package/.output/public/_nuxt/BiWblTbb2.js +64 -0
  12. package/.output/public/_nuxt/BrPwntMr.js +1 -0
  13. package/.output/public/_nuxt/BskybydR.js +1 -0
  14. package/.output/public/_nuxt/ByRlKR9F.js +1 -0
  15. package/.output/public/_nuxt/C0Zdl2EE2.js +1 -0
  16. package/.output/public/_nuxt/C4qlzA4o.js +1 -0
  17. package/.output/public/_nuxt/C7HxHbxA.js +1 -0
  18. package/.output/public/_nuxt/C97TfNgP.js +3 -0
  19. package/.output/public/_nuxt/CNs_Ozdc.js +1 -0
  20. package/.output/public/_nuxt/CPuhwLY1.js +1 -0
  21. package/.output/public/_nuxt/CVE291Pi.js +1 -0
  22. package/.output/public/_nuxt/C_0VY3Cv2.js +4 -0
  23. package/.output/public/_nuxt/Ce26t8_Y.js +1 -0
  24. package/.output/public/_nuxt/CfW544W5.js +1 -0
  25. package/.output/public/_nuxt/CgMd2Y5s.js +2 -0
  26. package/.output/public/_nuxt/CgdzV712.js +1 -0
  27. package/.output/public/_nuxt/D1wVNWS0.js +1 -0
  28. package/.output/public/_nuxt/DC3bhq63.js +1 -0
  29. package/.output/public/_nuxt/DK3Fl9T5.js +1 -0
  30. package/.output/public/_nuxt/DL1MZZLI.js +1 -0
  31. package/.output/public/_nuxt/DXm-42Fi.js +1 -0
  32. package/.output/public/_nuxt/Djg3Kzfv.js +1 -0
  33. package/.output/public/_nuxt/DkcySee1.js +1 -0
  34. package/.output/public/_nuxt/DmN-PKW1.js +1 -0
  35. package/.output/public/_nuxt/DtFVCXI9.js +1 -0
  36. package/.output/public/_nuxt/Dz7VMlHR.js +1 -0
  37. package/.output/public/_nuxt/NL65vbjG2.js +1 -0
  38. package/.output/public/_nuxt/Oxy7pKSk.js +3 -0
  39. package/.output/public/_nuxt/Pik8or8N2.js +1 -0
  40. package/.output/public/_nuxt/XZ59tThl.js +1 -0
  41. package/.output/public/_nuxt/ZpWjFsgV.js +1 -0
  42. package/.output/public/_nuxt/builds/latest.json +1 -0
  43. package/.output/public/_nuxt/builds/meta/9f85104e-738d-4a74-8daa-40b136ce17d5.json +1 -0
  44. package/.output/public/_nuxt/dXz6dFgW2.js +1 -0
  45. package/.output/public/_nuxt/entry.P6tFNE31.css +1 -0
  46. package/.output/public/_nuxt/error-404.Biv0P6cJ.css +1 -0
  47. package/.output/public/_nuxt/error-500.8ok468rV.css +1 -0
  48. package/.output/public/_nuxt/j0MRD-c3.js +1 -0
  49. package/.output/public/_nuxt/local-pixel-diff.worker-C6RdZoCq.js +2 -0
  50. package/.output/public/_nuxt/maplibre-gl-worker.nfnkSQvL.mjs +6 -0
  51. package/.output/public/_nuxt/nearest-area.worker-iSLH0Y_s.js +2 -0
  52. package/.output/public/_nuxt/q7DkoVkj.js +828 -0
  53. package/.output/public/_nuxt/raster-tile.worker-BFlOgJig.js +2 -0
  54. package/.output/public/_nuxt/services._3nQizF8.css +1 -0
  55. package/.output/public/_nuxt/sql-wasm.DfANybxk.wasm +0 -0
  56. package/.output/public/_nuxt/tile-diff.worker-CvWWI_eu.js +1 -0
  57. package/.output/public/_nuxt/zZ1EGR7Y.js +1 -0
  58. package/.output/public/apple-touch-icon.png +0 -0
  59. package/.output/public/favicon.ico +0 -0
  60. package/.output/public/favicon.svg +8 -0
  61. package/.output/public/icon-192.png +0 -0
  62. package/.output/public/icon-512.png +0 -0
  63. package/.output/public/site.webmanifest +11 -0
  64. package/.output/server/chunks/_/config.mjs +208 -0
  65. package/.output/server/chunks/_/config.mjs.map +1 -0
  66. package/.output/server/chunks/_/data-directory.mjs +24 -0
  67. package/.output/server/chunks/_/data-directory.mjs.map +1 -0
  68. package/.output/server/chunks/_/error-500.mjs +20 -0
  69. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  70. package/.output/server/chunks/_/file-workspace.mjs +910 -0
  71. package/.output/server/chunks/_/file-workspace.mjs.map +1 -0
  72. package/.output/server/chunks/_/icons.mjs +6269 -0
  73. package/.output/server/chunks/_/icons.mjs.map +1 -0
  74. package/.output/server/chunks/_/map-service.mjs +233 -0
  75. package/.output/server/chunks/_/map-service.mjs.map +1 -0
  76. package/.output/server/chunks/_/missing-tile.mjs +104 -0
  77. package/.output/server/chunks/_/missing-tile.mjs.map +1 -0
  78. package/.output/server/chunks/_/pixel-diff.mjs +78 -0
  79. package/.output/server/chunks/_/pixel-diff.mjs.map +1 -0
  80. package/.output/server/chunks/_/uom-auth.mjs +334 -0
  81. package/.output/server/chunks/_/uom-auth.mjs.map +1 -0
  82. package/.output/server/chunks/_/uom-map.mjs +265 -0
  83. package/.output/server/chunks/_/uom-map.mjs.map +1 -0
  84. package/.output/server/chunks/build/Alert-0ngTJXxP.mjs +5076 -0
  85. package/.output/server/chunks/build/Alert-0ngTJXxP.mjs.map +1 -0
  86. package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs +569 -0
  87. package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs.map +1 -0
  88. package/.output/server/chunks/build/Empty-CkW3mADt.mjs +359 -0
  89. package/.output/server/chunks/build/Empty-CkW3mADt.mjs.map +1 -0
  90. package/.output/server/chunks/build/FocusScope-Cf0lg0zt.mjs +207 -0
  91. package/.output/server/chunks/build/FocusScope-Cf0lg0zt.mjs.map +1 -0
  92. package/.output/server/chunks/build/FormField-CEUZHcv7.mjs +278 -0
  93. package/.output/server/chunks/build/FormField-CEUZHcv7.mjs.map +1 -0
  94. package/.output/server/chunks/build/Input-BeNavYXb.mjs +592 -0
  95. package/.output/server/chunks/build/Input-BeNavYXb.mjs.map +1 -0
  96. package/.output/server/chunks/build/MapBaseLayerTabs-4445J6yh.mjs +2003 -0
  97. package/.output/server/chunks/build/MapBaseLayerTabs-4445J6yh.mjs.map +1 -0
  98. package/.output/server/chunks/build/Modal-DNZtVxca.mjs +1326 -0
  99. package/.output/server/chunks/build/Modal-DNZtVxca.mjs.map +1 -0
  100. package/.output/server/chunks/build/OnlineMap-CKwiuqUY.mjs +146 -0
  101. package/.output/server/chunks/build/OnlineMap-CKwiuqUY.mjs.map +1 -0
  102. package/.output/server/chunks/build/Pagination-CDHx4HTZ.mjs +1025 -0
  103. package/.output/server/chunks/build/Pagination-CDHx4HTZ.mjs.map +1 -0
  104. package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs +2066 -0
  105. package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs.map +1 -0
  106. package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs +379 -0
  107. package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs.map +1 -0
  108. package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs +1087 -0
  109. package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs.map +1 -0
  110. package/.output/server/chunks/build/Tooltip-CkpSktvJ.mjs +1345 -0
  111. package/.output/server/chunks/build/Tooltip-CkpSktvJ.mjs.map +1 -0
  112. package/.output/server/chunks/build/_virtual_public-CeOptKUP.mjs +7 -0
  113. package/.output/server/chunks/build/_virtual_public-CeOptKUP.mjs.map +1 -0
  114. package/.output/server/chunks/build/advanced-D1onodoF.mjs +1430 -0
  115. package/.output/server/chunks/build/advanced-D1onodoF.mjs.map +1 -0
  116. package/.output/server/chunks/build/compare-DmSAW8oA.mjs +1093 -0
  117. package/.output/server/chunks/build/compare-DmSAW8oA.mjs.map +1 -0
  118. package/.output/server/chunks/build/dashboard-BJxrZ19n.mjs +3217 -0
  119. package/.output/server/chunks/build/dashboard-BJxrZ19n.mjs.map +1 -0
  120. package/.output/server/chunks/build/details-CBMqXYyo.mjs +3714 -0
  121. package/.output/server/chunks/build/details-CBMqXYyo.mjs.map +1 -0
  122. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs +86 -0
  123. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs.map +1 -0
  124. package/.output/server/chunks/build/error-404-styles.DciiguV6.mjs +9 -0
  125. package/.output/server/chunks/build/error-404-styles.DciiguV6.mjs.map +1 -0
  126. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs +74 -0
  127. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs.map +1 -0
  128. package/.output/server/chunks/build/error-500-styles.C562DYMR.mjs +9 -0
  129. package/.output/server/chunks/build/error-500-styles.C562DYMR.mjs.map +1 -0
  130. package/.output/server/chunks/build/esm-Dp2lJXbp.mjs +1121 -0
  131. package/.output/server/chunks/build/esm-Dp2lJXbp.mjs.map +1 -0
  132. package/.output/server/chunks/build/interval-BxUMpo78.mjs +411 -0
  133. package/.output/server/chunks/build/interval-BxUMpo78.mjs.map +1 -0
  134. package/.output/server/chunks/build/login-lbtjN0MV.mjs +642 -0
  135. package/.output/server/chunks/build/login-lbtjN0MV.mjs.map +1 -0
  136. package/.output/server/chunks/build/pages-Ba0Eixbd.mjs +220 -0
  137. package/.output/server/chunks/build/pages-Ba0Eixbd.mjs.map +1 -0
  138. package/.output/server/chunks/build/services-DuJwjAB8.mjs +3005 -0
  139. package/.output/server/chunks/build/services-DuJwjAB8.mjs.map +1 -0
  140. package/.output/server/chunks/build/services-styles.eoO16BY9.mjs +9 -0
  141. package/.output/server/chunks/build/services-styles.eoO16BY9.mjs.map +1 -0
  142. package/.output/server/chunks/build/tasks-CyN9x492.mjs +915 -0
  143. package/.output/server/chunks/build/tasks-CyN9x492.mjs.map +1 -0
  144. package/.output/server/chunks/build/tasks-D_Q5EDnn.mjs +87 -0
  145. package/.output/server/chunks/build/tasks-D_Q5EDnn.mjs.map +1 -0
  146. package/.output/server/chunks/nitro/nitro.mjs +6215 -0
  147. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  148. package/.output/server/chunks/routes/api/auth/captcha.post.mjs +21 -0
  149. package/.output/server/chunks/routes/api/auth/captcha.post.mjs.map +1 -0
  150. package/.output/server/chunks/routes/api/auth/login.post.mjs +27 -0
  151. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -0
  152. package/.output/server/chunks/routes/api/auth/logout.post.mjs +22 -0
  153. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -0
  154. package/.output/server/chunks/routes/api/auth/map-token.post.mjs +22 -0
  155. package/.output/server/chunks/routes/api/auth/map-token.post.mjs.map +1 -0
  156. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs +31 -0
  157. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs.map +1 -0
  158. package/.output/server/chunks/routes/api/auth/status.get.mjs +21 -0
  159. package/.output/server/chunks/routes/api/auth/status.get.mjs.map +1 -0
  160. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs +44 -0
  161. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs.map +1 -0
  162. package/.output/server/chunks/routes/api/map/live/status.get.mjs +32 -0
  163. package/.output/server/chunks/routes/api/map/live/status.get.mjs.map +1 -0
  164. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs +48 -0
  165. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs.map +1 -0
  166. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs +46 -0
  167. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs.map +1 -0
  168. package/.output/server/chunks/routes/api/map-service/config.post.mjs +38 -0
  169. package/.output/server/chunks/routes/api/map-service/config.post.mjs.map +1 -0
  170. package/.output/server/chunks/routes/api/map-service/file.post.mjs +41 -0
  171. package/.output/server/chunks/routes/api/map-service/file.post.mjs.map +1 -0
  172. package/.output/server/chunks/routes/api/map-service/source.post.mjs +35 -0
  173. package/.output/server/chunks/routes/api/map-service/source.post.mjs.map +1 -0
  174. package/.output/server/chunks/routes/api/map-service/status.get.mjs +32 -0
  175. package/.output/server/chunks/routes/api/map-service/status.get.mjs.map +1 -0
  176. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs +47 -0
  177. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs.map +1 -0
  178. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs +38 -0
  179. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs.map +1 -0
  180. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs +42 -0
  181. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs.map +1 -0
  182. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs +48 -0
  183. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs.map +1 -0
  184. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs +45 -0
  185. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs.map +1 -0
  186. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs +32 -0
  187. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs.map +1 -0
  188. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs +38 -0
  189. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs.map +1 -0
  190. package/.output/server/chunks/routes/api/workspace/compare.post.mjs +33 -0
  191. package/.output/server/chunks/routes/api/workspace/compare.post.mjs.map +1 -0
  192. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs +33 -0
  193. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs.map +1 -0
  194. package/.output/server/chunks/routes/api/workspace/files.get.mjs +27 -0
  195. package/.output/server/chunks/routes/api/workspace/files.get.mjs.map +1 -0
  196. package/.output/server/chunks/routes/api/workspace/files.post.mjs +38 -0
  197. package/.output/server/chunks/routes/api/workspace/files.post.mjs.map +1 -0
  198. package/.output/server/chunks/routes/api/workspace/stop.post.mjs +32 -0
  199. package/.output/server/chunks/routes/api/workspace/stop.post.mjs.map +1 -0
  200. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs +36 -0
  201. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs.map +1 -0
  202. package/.output/server/chunks/routes/renderer.mjs +422 -0
  203. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  204. package/.output/server/chunks/routes/services/wms.get.mjs +54 -0
  205. package/.output/server/chunks/routes/services/wms.get.mjs.map +1 -0
  206. package/.output/server/chunks/routes/services/wmts.get.mjs +54 -0
  207. package/.output/server/chunks/routes/services/wmts.get.mjs.map +1 -0
  208. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  209. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  210. package/.output/server/chunks/virtual/entry.mjs +18545 -0
  211. package/.output/server/chunks/virtual/entry.mjs.map +1 -0
  212. package/.output/server/chunks/virtual/precomputed.mjs +4 -0
  213. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -0
  214. package/.output/server/chunks/virtual/styles.mjs +10 -0
  215. package/.output/server/chunks/virtual/styles.mjs.map +1 -0
  216. package/.output/server/index.mjs +12 -0
  217. package/.output/server/index.mjs.map +1 -0
  218. package/.output/server/node_modules/@babel/parser/lib/index.js +14611 -0
  219. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  220. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +295 -0
  221. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +701 -0
  222. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +75 -0
  223. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +39 -0
  224. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +47 -0
  225. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +128 -0
  226. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +19 -0
  227. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +13 -0
  228. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +17 -0
  229. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +16 -0
  230. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +30 -0
  231. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +78 -0
  232. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +100 -0
  233. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +28 -0
  234. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +58 -0
  235. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +48 -0
  236. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +203 -0
  237. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +33 -0
  238. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +132 -0
  239. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +165 -0
  240. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +79 -0
  241. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +92 -0
  242. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +26 -0
  243. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +76 -0
  244. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +66 -0
  245. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +45 -0
  246. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +103 -0
  247. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +36 -0
  248. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +92 -0
  249. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +62 -0
  250. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +25 -0
  251. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +16 -0
  252. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +57 -0
  253. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +33 -0
  254. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +12 -0
  255. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +125 -0
  256. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +19 -0
  257. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +25 -0
  258. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +36 -0
  259. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +91 -0
  260. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +46 -0
  261. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +23 -0
  262. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +42 -0
  263. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +123 -0
  264. package/.output/server/node_modules/@iconify/utils/lib/index.js +52 -0
  265. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +30 -0
  266. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +26 -0
  267. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +27 -0
  268. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +105 -0
  269. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +26 -0
  270. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +26 -0
  271. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +9 -0
  272. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +113 -0
  273. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +31 -0
  274. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +13 -0
  275. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +9 -0
  276. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +41 -0
  277. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +22 -0
  278. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +67 -0
  279. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +54 -0
  280. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +27 -0
  281. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +7 -0
  282. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +22 -0
  283. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +8 -0
  284. package/.output/server/node_modules/@iconify/utils/package.json +119 -0
  285. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6801 -0
  286. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  287. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +692 -0
  288. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  289. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1420 -0
  290. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  291. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1903 -0
  292. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  293. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6976 -0
  294. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  295. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1841 -0
  296. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  297. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +904 -0
  298. package/.output/server/node_modules/@vue/server-renderer/package.json +53 -0
  299. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +609 -0
  300. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  301. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  302. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  303. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  304. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  305. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  306. package/.output/server/node_modules/consola/package.json +136 -0
  307. package/.output/server/node_modules/devalue/index.js +17 -0
  308. package/.output/server/node_modules/devalue/package.json +39 -0
  309. package/.output/server/node_modules/devalue/src/base64.js +60 -0
  310. package/.output/server/node_modules/devalue/src/constants.js +12 -0
  311. package/.output/server/node_modules/devalue/src/operations.js +193 -0
  312. package/.output/server/node_modules/devalue/src/parse.js +270 -0
  313. package/.output/server/node_modules/devalue/src/stringify.js +428 -0
  314. package/.output/server/node_modules/devalue/src/uneval.js +582 -0
  315. package/.output/server/node_modules/devalue/src/utils.js +185 -0
  316. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  317. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  318. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  319. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  320. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  321. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  322. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  323. package/.output/server/node_modules/entities/package.json +120 -0
  324. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  325. package/.output/server/node_modules/estree-walker/package.json +37 -0
  326. package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
  327. package/.output/server/node_modules/fflate/package.json +128 -0
  328. package/.output/server/node_modules/fnv1a-64/dist/index.mjs +95 -0
  329. package/.output/server/node_modules/fnv1a-64/package.json +75 -0
  330. package/.output/server/node_modules/hookable/dist/index.mjs +257 -0
  331. package/.output/server/node_modules/hookable/package.json +53 -0
  332. package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +19 -0
  333. package/.output/server/node_modules/nostics/dist/index.mjs +187 -0
  334. package/.output/server/node_modules/nostics/package.json +125 -0
  335. package/.output/server/node_modules/object-identity/index.js +60 -0
  336. package/.output/server/node_modules/object-identity/package.json +40 -0
  337. package/.output/server/node_modules/p-limit/index.js +104 -0
  338. package/.output/server/node_modules/p-limit/package.json +58 -0
  339. package/.output/server/node_modules/pmtiles/dist/esm/index.js +2 -0
  340. package/.output/server/node_modules/pmtiles/package.json +50 -0
  341. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  342. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  343. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  344. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  345. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  346. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  347. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  348. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  349. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  350. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  351. package/.output/server/node_modules/source-map-js/package.json +71 -0
  352. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  353. package/.output/server/node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs +1 -0
  354. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
  355. package/.output/server/node_modules/tailwindcss/package.json +89 -0
  356. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  357. package/.output/server/node_modules/ufo/package.json +48 -0
  358. package/.output/server/node_modules/unhead/dist/client.mjs +22 -0
  359. package/.output/server/node_modules/unhead/dist/index.mjs +52 -0
  360. package/.output/server/node_modules/unhead/dist/legacy.mjs +33 -0
  361. package/.output/server/node_modules/unhead/dist/minify.mjs +183 -0
  362. package/.output/server/node_modules/unhead/dist/parser.mjs +518 -0
  363. package/.output/server/node_modules/unhead/dist/plugins.mjs +631 -0
  364. package/.output/server/node_modules/unhead/dist/scripts.node.mjs +6 -0
  365. package/.output/server/node_modules/unhead/dist/server.mjs +99 -0
  366. package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +673 -0
  367. package/.output/server/node_modules/unhead/dist/shared/unhead.BGFxPGPQ.mjs +47 -0
  368. package/.output/server/node_modules/unhead/dist/shared/unhead.BQWSw36o.mjs +192 -0
  369. package/.output/server/node_modules/unhead/dist/shared/unhead.Bb4d5b9h.mjs +67 -0
  370. package/.output/server/node_modules/unhead/dist/shared/unhead.BdK3SLPN.mjs +585 -0
  371. package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +6 -0
  372. package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +17 -0
  373. package/.output/server/node_modules/unhead/dist/shared/unhead.C3b2Ipoj.mjs +223 -0
  374. package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +32 -0
  375. package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +7 -0
  376. package/.output/server/node_modules/unhead/dist/shared/unhead.CTjuIdzk.mjs +27 -0
  377. package/.output/server/node_modules/unhead/dist/shared/unhead.CfKy3Kuq.mjs +196 -0
  378. package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +59 -0
  379. package/.output/server/node_modules/unhead/dist/shared/unhead.DNKiVLV7.mjs +400 -0
  380. package/.output/server/node_modules/unhead/dist/shared/unhead.MC5RsXLj.mjs +19 -0
  381. package/.output/server/node_modules/unhead/dist/shared/unhead.jEy9BmRq.mjs +264 -0
  382. package/.output/server/node_modules/unhead/dist/shared/unhead.tQnRaXfX.mjs +240 -0
  383. package/.output/server/node_modules/unhead/dist/stream/client.mjs +28 -0
  384. package/.output/server/node_modules/unhead/dist/stream/iife.mjs +2 -0
  385. package/.output/server/node_modules/unhead/dist/stream/server.mjs +264 -0
  386. package/.output/server/node_modules/unhead/dist/utils.mjs +7 -0
  387. package/.output/server/node_modules/unhead/package.json +179 -0
  388. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  389. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  390. package/.output/server/node_modules/vue/index.js +7 -0
  391. package/.output/server/node_modules/vue/index.mjs +1 -0
  392. package/.output/server/node_modules/vue/package.json +112 -0
  393. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  394. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +278 -0
  395. package/.output/server/node_modules/vue-bundle-renderer/package.json +54 -0
  396. package/.output/server/node_modules/yocto-queue/index.js +90 -0
  397. package/.output/server/node_modules/yocto-queue/package.json +48 -0
  398. package/.output/server/node_modules/zod/index.js +4 -0
  399. package/.output/server/node_modules/zod/package.json +135 -0
  400. package/.output/server/node_modules/zod/v4/classic/checks.js +1 -0
  401. package/.output/server/node_modules/zod/v4/classic/coerce.js +17 -0
  402. package/.output/server/node_modules/zod/v4/classic/compat.js +31 -0
  403. package/.output/server/node_modules/zod/v4/classic/errors.js +48 -0
  404. package/.output/server/node_modules/zod/v4/classic/external.js +20 -0
  405. package/.output/server/node_modules/zod/v4/classic/from-json-schema.js +599 -0
  406. package/.output/server/node_modules/zod/v4/classic/iso.js +30 -0
  407. package/.output/server/node_modules/zod/v4/classic/package.json +7 -0
  408. package/.output/server/node_modules/zod/v4/classic/parse.js +15 -0
  409. package/.output/server/node_modules/zod/v4/classic/schemas.js +1395 -0
  410. package/.output/server/node_modules/zod/v4/core/api.js +1087 -0
  411. package/.output/server/node_modules/zod/v4/core/checks.js +575 -0
  412. package/.output/server/node_modules/zod/v4/core/core.js +78 -0
  413. package/.output/server/node_modules/zod/v4/core/doc.js +35 -0
  414. package/.output/server/node_modules/zod/v4/core/errors.js +185 -0
  415. package/.output/server/node_modules/zod/v4/core/index.js +16 -0
  416. package/.output/server/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  417. package/.output/server/node_modules/zod/v4/core/json-schema-processors.js +601 -0
  418. package/.output/server/node_modules/zod/v4/core/json-schema.js +1 -0
  419. package/.output/server/node_modules/zod/v4/core/package.json +7 -0
  420. package/.output/server/node_modules/zod/v4/core/parse.js +93 -0
  421. package/.output/server/node_modules/zod/v4/core/regexes.js +139 -0
  422. package/.output/server/node_modules/zod/v4/core/registries.js +51 -0
  423. package/.output/server/node_modules/zod/v4/core/schemas.js +2239 -0
  424. package/.output/server/node_modules/zod/v4/core/to-json-schema.js +448 -0
  425. package/.output/server/node_modules/zod/v4/core/util.js +674 -0
  426. package/.output/server/node_modules/zod/v4/core/versions.js +5 -0
  427. package/.output/server/node_modules/zod/v4/locales/ar.js +106 -0
  428. package/.output/server/node_modules/zod/v4/locales/az.js +105 -0
  429. package/.output/server/node_modules/zod/v4/locales/be.js +156 -0
  430. package/.output/server/node_modules/zod/v4/locales/bg.js +120 -0
  431. package/.output/server/node_modules/zod/v4/locales/ca.js +107 -0
  432. package/.output/server/node_modules/zod/v4/locales/cs.js +111 -0
  433. package/.output/server/node_modules/zod/v4/locales/da.js +115 -0
  434. package/.output/server/node_modules/zod/v4/locales/de.js +108 -0
  435. package/.output/server/node_modules/zod/v4/locales/el.js +109 -0
  436. package/.output/server/node_modules/zod/v4/locales/en.js +113 -0
  437. package/.output/server/node_modules/zod/v4/locales/eo.js +109 -0
  438. package/.output/server/node_modules/zod/v4/locales/es.js +132 -0
  439. package/.output/server/node_modules/zod/v4/locales/fa.js +114 -0
  440. package/.output/server/node_modules/zod/v4/locales/fi.js +112 -0
  441. package/.output/server/node_modules/zod/v4/locales/fr-CA.js +107 -0
  442. package/.output/server/node_modules/zod/v4/locales/fr.js +125 -0
  443. package/.output/server/node_modules/zod/v4/locales/he.js +214 -0
  444. package/.output/server/node_modules/zod/v4/locales/hr.js +122 -0
  445. package/.output/server/node_modules/zod/v4/locales/hu.js +108 -0
  446. package/.output/server/node_modules/zod/v4/locales/hy.js +147 -0
  447. package/.output/server/node_modules/zod/v4/locales/id.js +106 -0
  448. package/.output/server/node_modules/zod/v4/locales/index.js +52 -0
  449. package/.output/server/node_modules/zod/v4/locales/is.js +109 -0
  450. package/.output/server/node_modules/zod/v4/locales/it.js +108 -0
  451. package/.output/server/node_modules/zod/v4/locales/ja.js +107 -0
  452. package/.output/server/node_modules/zod/v4/locales/ka.js +112 -0
  453. package/.output/server/node_modules/zod/v4/locales/kh.js +5 -0
  454. package/.output/server/node_modules/zod/v4/locales/km.js +110 -0
  455. package/.output/server/node_modules/zod/v4/locales/ko.js +111 -0
  456. package/.output/server/node_modules/zod/v4/locales/lt.js +203 -0
  457. package/.output/server/node_modules/zod/v4/locales/mk.js +109 -0
  458. package/.output/server/node_modules/zod/v4/locales/ms.js +107 -0
  459. package/.output/server/node_modules/zod/v4/locales/nl.js +110 -0
  460. package/.output/server/node_modules/zod/v4/locales/no.js +108 -0
  461. package/.output/server/node_modules/zod/v4/locales/ota.js +109 -0
  462. package/.output/server/node_modules/zod/v4/locales/package.json +7 -0
  463. package/.output/server/node_modules/zod/v4/locales/pl.js +109 -0
  464. package/.output/server/node_modules/zod/v4/locales/ps.js +114 -0
  465. package/.output/server/node_modules/zod/v4/locales/pt.js +108 -0
  466. package/.output/server/node_modules/zod/v4/locales/ro.js +119 -0
  467. package/.output/server/node_modules/zod/v4/locales/ru.js +156 -0
  468. package/.output/server/node_modules/zod/v4/locales/sl.js +109 -0
  469. package/.output/server/node_modules/zod/v4/locales/sv.js +110 -0
  470. package/.output/server/node_modules/zod/v4/locales/ta.js +110 -0
  471. package/.output/server/node_modules/zod/v4/locales/th.js +110 -0
  472. package/.output/server/node_modules/zod/v4/locales/tr.js +105 -0
  473. package/.output/server/node_modules/zod/v4/locales/ua.js +5 -0
  474. package/.output/server/node_modules/zod/v4/locales/uk.js +108 -0
  475. package/.output/server/node_modules/zod/v4/locales/ur.js +110 -0
  476. package/.output/server/node_modules/zod/v4/locales/uz.js +110 -0
  477. package/.output/server/node_modules/zod/v4/locales/vi.js +108 -0
  478. package/.output/server/node_modules/zod/v4/locales/yo.js +107 -0
  479. package/.output/server/node_modules/zod/v4/locales/zh-CN.js +109 -0
  480. package/.output/server/node_modules/zod/v4/locales/zh-TW.js +107 -0
  481. package/.output/server/package.json +37 -0
  482. package/LICENSE +3 -0
  483. package/README.md +125 -0
  484. package/dist/src/bbox.js +55 -0
  485. package/dist/src/cli.js +255 -0
  486. package/dist/src/config.js +56 -0
  487. package/dist/src/core/fetch-process.js +19 -0
  488. package/dist/src/core/grid-renderer.js +149 -0
  489. package/dist/src/core/lease.js +103 -0
  490. package/dist/src/core/paths.js +13 -0
  491. package/dist/src/core/png.js +192 -0
  492. package/dist/src/core/raster-style.js +33 -0
  493. package/dist/src/core/uomtiles.js +307 -0
  494. package/dist/src/fetcher.js +208 -0
  495. package/dist/src/geographic-grid.js +162 -0
  496. package/dist/src/grid-crawl.js +478 -0
  497. package/dist/src/mask-image.js +16 -0
  498. package/dist/src/official-grid.js +51 -0
  499. package/dist/src/quality.js +30 -0
  500. package/dist/src/token.js +206 -0
  501. package/package.json +68 -0
  502. package/public/apple-touch-icon.png +0 -0
  503. package/public/favicon.ico +0 -0
  504. package/public/favicon.svg +8 -0
  505. package/public/icon-192.png +0 -0
  506. package/public/icon-512.png +0 -0
  507. package/public/site.webmanifest +11 -0
@@ -0,0 +1,673 @@
1
+ const URL_META_KEYS = /* @__PURE__ */ new Set([
2
+ "og:url",
3
+ "og:image",
4
+ "og:image:url",
5
+ "og:image:secure_url",
6
+ "og:video",
7
+ "og:video:url",
8
+ "og:video:secure_url",
9
+ "og:audio",
10
+ "og:audio:url",
11
+ "og:audio:secure_url",
12
+ "twitter:image",
13
+ "twitter:image:src",
14
+ "twitter:player",
15
+ "twitter:player:stream",
16
+ "payment:success_url"
17
+ ]);
18
+ const KNOWN_META_PROPERTIES = /* @__PURE__ */ new Set([
19
+ "article:author",
20
+ "article:expiration_time",
21
+ "article:modified_time",
22
+ "article:published_time",
23
+ "article:section",
24
+ "article:tag",
25
+ "book:author",
26
+ "book:isbn",
27
+ "book:release_date",
28
+ "book:tag",
29
+ "fb:app_id",
30
+ "og:audio",
31
+ "og:audio:secure_url",
32
+ "og:audio:type",
33
+ "og:audio:url",
34
+ "og:description",
35
+ "og:determiner",
36
+ "og:image",
37
+ "og:image:alt",
38
+ "og:image:height",
39
+ "og:image:secure_url",
40
+ "og:image:type",
41
+ "og:image:url",
42
+ "og:image:width",
43
+ "og:locale",
44
+ "og:locale:alternate",
45
+ "og:site_name",
46
+ "og:title",
47
+ "og:type",
48
+ "og:url",
49
+ "og:video",
50
+ "og:video:alt",
51
+ "og:video:duration",
52
+ "og:video:height",
53
+ "og:video:secure_url",
54
+ "og:video:type",
55
+ "og:video:url",
56
+ "og:video:width",
57
+ "payment:amount",
58
+ "payment:currency",
59
+ "payment:description",
60
+ "payment:expires_at",
61
+ "payment:id",
62
+ "payment:status",
63
+ "payment:success_url",
64
+ "profile:first_name",
65
+ "profile:gender",
66
+ "profile:last_name",
67
+ "profile:username"
68
+ ]);
69
+ const KNOWN_META_NAMES = /* @__PURE__ */ new Set([
70
+ "apple-itunes-app",
71
+ "apple-mobile-web-app-capable",
72
+ "apple-mobile-web-app-status-bar-style",
73
+ "apple-mobile-web-app-title",
74
+ "application-name",
75
+ "author",
76
+ "color-scheme",
77
+ "creator",
78
+ "description",
79
+ "fb:app_id",
80
+ "fediverse:creator",
81
+ "format-detection",
82
+ "generator",
83
+ "google-site-verification",
84
+ "google",
85
+ "googlebot",
86
+ "keywords",
87
+ "mobile-web-app-capable",
88
+ "msapplication-config",
89
+ "msapplication-tilecolor",
90
+ "msapplication-tileimage",
91
+ "publisher",
92
+ "rating",
93
+ "referrer",
94
+ "robots",
95
+ "theme-color",
96
+ "viewport",
97
+ "twitter:app:id:googleplay",
98
+ "twitter:app:id:ipad",
99
+ "twitter:app:id:iphone",
100
+ "twitter:app:name:googleplay",
101
+ "twitter:app:name:ipad",
102
+ "twitter:app:name:iphone",
103
+ "twitter:app:url:googleplay",
104
+ "twitter:app:url:ipad",
105
+ "twitter:app:url:iphone",
106
+ "twitter:card",
107
+ "twitter:creator",
108
+ "twitter:creator:id",
109
+ "twitter:data:1",
110
+ "twitter:data:2",
111
+ "twitter:description",
112
+ "twitter:image",
113
+ "twitter:image:alt",
114
+ "twitter:label:1",
115
+ "twitter:label:2",
116
+ "twitter:player",
117
+ "twitter:player:height",
118
+ "twitter:player:stream",
119
+ "twitter:player:width",
120
+ "twitter:site",
121
+ "twitter:site:id",
122
+ "twitter:title"
123
+ ]);
124
+ const TAG_PRIORITY_ALIASES = ["critical", "high", "low"];
125
+ const DEPRECATED_PROPS = {
126
+ children: { replacement: "innerHTML", ruleId: "deprecated-prop-children" },
127
+ hid: { replacement: "key", ruleId: "deprecated-prop-hid-vmid" },
128
+ vmid: { replacement: "key", ruleId: "deprecated-prop-hid-vmid" },
129
+ body: { replacement: "tagPosition: 'bodyClose'", ruleId: "deprecated-prop-body" }
130
+ };
131
+
132
+ function levenshtein(a, b) {
133
+ const m = a.length;
134
+ const n = b.length;
135
+ const d = Array.from({ length: n + 1 }, (_, i) => i);
136
+ for (let i = 1; i <= m; i++) {
137
+ let prev = i - 1;
138
+ d[0] = i;
139
+ for (let j = 1; j <= n; j++) {
140
+ const tmp = d[j];
141
+ d[j] = a[i - 1] === b[j - 1] ? prev : 1 + Math.min(prev, d[j], d[j - 1]);
142
+ prev = tmp;
143
+ }
144
+ }
145
+ return d[n];
146
+ }
147
+ function findClosestMatch(value, knownSet) {
148
+ const threshold = value.length <= 8 ? 2 : 3;
149
+ let best;
150
+ let bestDist = threshold + 1;
151
+ for (const known of knownSet) {
152
+ if (Math.abs(known.length - value.length) > threshold)
153
+ continue;
154
+ const dist = levenshtein(value, known);
155
+ if (dist < bestDist) {
156
+ bestDist = dist;
157
+ best = known;
158
+ }
159
+ }
160
+ return best;
161
+ }
162
+
163
+ const emptyMetaContent = (tag) => {
164
+ if (tag.tagType !== "meta")
165
+ return [];
166
+ if (!tag.keys.has("content"))
167
+ return [];
168
+ if (tag.props.content !== "")
169
+ return [];
170
+ const key = typeof tag.props.name === "string" && tag.props.name || typeof tag.props.property === "string" && tag.props.property || "meta";
171
+ const diag = {
172
+ ruleId: "empty-meta-content",
173
+ message: `Meta tag "${key}" has empty content.`,
174
+ at: { kind: "prop", key: "content" }
175
+ };
176
+ return [diag];
177
+ };
178
+
179
+ const RESOLVABLE_OBJECT = ["boolean", "function", "null", "object"];
180
+ const RESOLVABLE_TAG_LIST = ["array", "boolean", "function", "null"];
181
+ const RESOLVABLE_TITLE = ["boolean", "function", "null", "number", "object", "string"];
182
+ const ATTRIBUTE_SCALAR = ["boolean", "function", "null", "number", "string"];
183
+ const ATTRIBUTE_STRUCTURED = ["array", "boolean", "function", "null", "number", "object", "string"];
184
+ const INPUT_SHAPE_FIELDS = {
185
+ base: {
186
+ canonical: "base",
187
+ contexts: { head: RESOLVABLE_OBJECT }
188
+ },
189
+ bodyattrs: {
190
+ canonical: "bodyAttrs",
191
+ contexts: { head: RESOLVABLE_OBJECT }
192
+ },
193
+ class: {
194
+ canonical: "class",
195
+ contexts: {
196
+ bodyAttrs: ATTRIBUTE_STRUCTURED,
197
+ htmlAttrs: ATTRIBUTE_STRUCTURED
198
+ }
199
+ },
200
+ htmlattrs: {
201
+ canonical: "htmlAttrs",
202
+ contexts: { head: RESOLVABLE_OBJECT }
203
+ },
204
+ link: {
205
+ canonical: "link",
206
+ contexts: { head: RESOLVABLE_TAG_LIST }
207
+ },
208
+ meta: {
209
+ canonical: "meta",
210
+ contexts: { head: RESOLVABLE_TAG_LIST }
211
+ },
212
+ noscript: {
213
+ canonical: "noscript",
214
+ contexts: { head: RESOLVABLE_TAG_LIST }
215
+ },
216
+ script: {
217
+ canonical: "script",
218
+ contexts: { head: RESOLVABLE_TAG_LIST }
219
+ },
220
+ style: {
221
+ canonical: "style",
222
+ contexts: {
223
+ bodyAttrs: ATTRIBUTE_STRUCTURED,
224
+ head: RESOLVABLE_TAG_LIST,
225
+ htmlAttrs: ATTRIBUTE_STRUCTURED
226
+ }
227
+ },
228
+ templateparams: {
229
+ canonical: "templateParams",
230
+ contexts: { head: ["object"] }
231
+ },
232
+ title: {
233
+ canonical: "title",
234
+ contexts: {
235
+ bodyAttrs: ATTRIBUTE_SCALAR,
236
+ head: RESOLVABLE_TITLE,
237
+ htmlAttrs: ATTRIBUTE_SCALAR,
238
+ seoMeta: RESOLVABLE_TITLE
239
+ }
240
+ },
241
+ titletemplate: {
242
+ canonical: "titleTemplate",
243
+ contexts: {
244
+ head: ["function", "null", "object", "string"],
245
+ seoMeta: ["function", "null", "object", "string"]
246
+ }
247
+ }
248
+ };
249
+ function includes(kinds, kind) {
250
+ return kinds?.includes(kind) === true;
251
+ }
252
+ function formatKinds(kinds) {
253
+ return kinds.join(", ");
254
+ }
255
+ function invalidKnownHeadField(input, key, shape, kind) {
256
+ const expected = shape.contexts[input.context];
257
+ if (includes(expected, kind))
258
+ return void 0;
259
+ if ((input.context === "htmlAttrs" || input.context === "bodyAttrs") && kind === "null")
260
+ return void 0;
261
+ if (input.context === "head") {
262
+ return {
263
+ ruleId: "invalid-input-shape",
264
+ message: `"${shape.canonical}" in a head input must be one of: ${formatKinds(expected || [])}. Received ${kind}.`,
265
+ at: { kind: "prop-value", key }
266
+ };
267
+ }
268
+ if (includes(shape.contexts.head, kind)) {
269
+ return {
270
+ ruleId: "invalid-input-shape",
271
+ message: `"${shape.canonical}" has a head input shape but appears in ${input.context}. Move it to the top-level head input.`,
272
+ at: { kind: "prop-value", key }
273
+ };
274
+ }
275
+ }
276
+ function invalidAttributeField(input, key, kind) {
277
+ if (includes(ATTRIBUTE_SCALAR, kind))
278
+ return void 0;
279
+ return {
280
+ ruleId: "invalid-input-shape",
281
+ message: `"${key}" in ${input.context} must resolve to a scalar attribute value. Received ${kind}.`,
282
+ at: { kind: "prop-value", key }
283
+ };
284
+ }
285
+ function validateInputShape(input) {
286
+ const diagnostics = [];
287
+ const isAttributes = input.context === "htmlAttrs" || input.context === "bodyAttrs";
288
+ for (const key of input.keys) {
289
+ const kind = input.valueKinds.get(key) ?? "unknown";
290
+ if (kind === "unknown")
291
+ continue;
292
+ const shape = INPUT_SHAPE_FIELDS[key.toLowerCase()];
293
+ const knownDiagnostic = shape ? invalidKnownHeadField(input, key, shape, kind) : void 0;
294
+ if (knownDiagnostic) {
295
+ diagnostics.push(knownDiagnostic);
296
+ continue;
297
+ }
298
+ if (isAttributes && !shape?.contexts[input.context]) {
299
+ const attributeDiagnostic = invalidAttributeField(input, key, kind);
300
+ if (attributeDiagnostic)
301
+ diagnostics.push(attributeDiagnostic);
302
+ }
303
+ }
304
+ return diagnostics;
305
+ }
306
+
307
+ const noDeprecatedProps = (tag) => {
308
+ const out = [];
309
+ for (const key of tag.keys) {
310
+ if (!(key in DEPRECATED_PROPS))
311
+ continue;
312
+ const { replacement } = DEPRECATED_PROPS[key];
313
+ if (key === "body") {
314
+ if (tag.props.body !== true)
315
+ continue;
316
+ const fix2 = tag.keys.has("tagPosition") ? void 0 : { type: "replace-prop", key: "body", newSource: `tagPosition: 'bodyClose'` };
317
+ out.push({
318
+ ruleId: "deprecated-prop-body",
319
+ message: `"body" was removed in v3 of unhead. Use "${replacement}" instead.`,
320
+ at: { kind: "prop", key },
321
+ fix: fix2
322
+ });
323
+ continue;
324
+ }
325
+ const newKey = key === "children" ? "innerHTML" : "key";
326
+ const fix = tag.keys.has(newKey) ? void 0 : { type: "rename-prop", key, newKey };
327
+ out.push({
328
+ ruleId: key === "children" ? "deprecated-prop-children" : "deprecated-prop-hid-vmid",
329
+ message: `"${key}" was removed in v3 of unhead. Use "${replacement}" instead.`,
330
+ at: { kind: "prop", key },
331
+ fix
332
+ });
333
+ }
334
+ return out;
335
+ };
336
+
337
+ const HTML_CHARS_RE = /[<>]/;
338
+ const noHtmlInTitle = (input) => {
339
+ const title = input.props.title;
340
+ if (typeof title !== "string" || !HTML_CHARS_RE.test(title))
341
+ return [];
342
+ const diag = {
343
+ ruleId: "html-in-title",
344
+ message: `Title contains HTML characters which will be escaped, not rendered: "${title}".`,
345
+ at: { kind: "prop-value", key: "title" }
346
+ };
347
+ return [diag];
348
+ };
349
+
350
+ const OG_PREFIX_RE = /^(?:og|article|book|profile|fb):/;
351
+ const noUnknownMeta = (tag) => {
352
+ if (tag.tagType !== "meta")
353
+ return [];
354
+ const out = [];
355
+ const property = tag.props.property;
356
+ if (typeof property === "string" && !KNOWN_META_PROPERTIES.has(property) && OG_PREFIX_RE.test(property)) {
357
+ const suggestion = findClosestMatch(property, KNOWN_META_PROPERTIES);
358
+ if (suggestion) {
359
+ out.push({
360
+ ruleId: "possible-typo",
361
+ message: `Unknown meta property "${property}". Did you mean "${suggestion}"?`,
362
+ at: { kind: "prop-value", key: "property" },
363
+ fix: { type: "replace-prop-value", key: "property", newSource: `'${suggestion}'` }
364
+ });
365
+ }
366
+ }
367
+ const name = tag.props.name;
368
+ if (typeof name === "string") {
369
+ const lower = name.toLowerCase();
370
+ if (!KNOWN_META_NAMES.has(lower) && (lower.startsWith("twitter:") || lower.startsWith("fediverse:") || !lower.includes(":"))) {
371
+ const suggestion = findClosestMatch(lower, KNOWN_META_NAMES);
372
+ if (suggestion) {
373
+ out.push({
374
+ ruleId: "possible-typo",
375
+ message: `Unknown meta name "${name}". Did you mean "${suggestion}"?`,
376
+ at: { kind: "prop-value", key: "name" },
377
+ fix: { type: "replace-prop-value", key: "name", newSource: `'${suggestion}'` }
378
+ });
379
+ }
380
+ }
381
+ }
382
+ return out;
383
+ };
384
+
385
+ function isAbsolute(url) {
386
+ return url.startsWith("http://") || url.startsWith("https://");
387
+ }
388
+ const nonAbsoluteCanonical = (tag) => {
389
+ if (tag.tagType !== "link")
390
+ return [];
391
+ if (tag.props.rel !== "canonical")
392
+ return [];
393
+ const href = tag.props.href;
394
+ if (typeof href !== "string")
395
+ return [];
396
+ if (isAbsolute(href))
397
+ return [];
398
+ const diag = {
399
+ ruleId: "non-absolute-canonical",
400
+ message: `Canonical URL should be absolute, received "${href}".`,
401
+ at: { kind: "prop-value", key: "href" }
402
+ };
403
+ return [diag];
404
+ };
405
+
406
+ const ALIASES = ["critical", "high", "low"];
407
+ const numericTagPriority = (tag) => {
408
+ const value = tag.props.tagPriority;
409
+ if (typeof value !== "number")
410
+ return [];
411
+ const diag = {
412
+ ruleId: "numeric-tag-priority",
413
+ message: `Numeric tagPriority (${value}) is brittle. Prefer an alias ('critical' | 'high' | 'low') or 'before:<key>' / 'after:<key>'.`,
414
+ at: { kind: "prop-value", key: "tagPriority" },
415
+ suggestions: ALIASES.map((alias) => ({
416
+ message: `Replace with '${alias}'`,
417
+ fix: { type: "replace-prop-value", key: "tagPriority", newSource: `'${alias}'` }
418
+ }))
419
+ };
420
+ return [diag];
421
+ };
422
+
423
+ const TAG_TO_HELPER = {
424
+ link: "defineLink",
425
+ script: "defineScript"
426
+ };
427
+ const preferDefineHelpers = (tag, ctx) => {
428
+ if (!tag.inArray)
429
+ return [];
430
+ const helper = TAG_TO_HELPER[tag.tagType];
431
+ if (!helper)
432
+ return [];
433
+ const localName = ctx?.importedHelpers?.get(helper);
434
+ const imported = localName !== void 0;
435
+ const fix = { type: "wrap-tag", wrapWith: localName ?? helper };
436
+ const diag = {
437
+ ruleId: "prefer-define-helpers",
438
+ message: `Wrap this ${tag.tagType} entry in \`${helper}()\` so unhead can narrow its type.`,
439
+ fix: imported ? fix : void 0,
440
+ suggestions: imported ? void 0 : [{ message: `Wrap in \`${helper}()\` (you may need to import it).`, fix: { type: "wrap-tag", wrapWith: helper } }]
441
+ };
442
+ return [diag];
443
+ };
444
+
445
+ const preloadMissingAs = (tag) => {
446
+ if (tag.tagType !== "link")
447
+ return [];
448
+ if (tag.props.rel !== "preload")
449
+ return [];
450
+ if (tag.keys.has("as"))
451
+ return [];
452
+ const diag = {
453
+ ruleId: "preload-missing-as",
454
+ message: 'Preload link is missing the required "as" attribute.'
455
+ };
456
+ return [diag];
457
+ };
458
+ const preloadFontCrossorigin = (tag) => {
459
+ if (tag.tagType !== "link")
460
+ return [];
461
+ if (tag.props.rel !== "preload")
462
+ return [];
463
+ if (tag.props.as !== "font")
464
+ return [];
465
+ if (tag.keys.has("crossorigin"))
466
+ return [];
467
+ const diag = {
468
+ ruleId: "preload-font-crossorigin",
469
+ message: 'Font preload requires "crossorigin" \u2014 without it the font will be fetched twice.',
470
+ fix: { type: "insert-after-prop", afterKey: "as", insert: `, crossorigin: 'anonymous'` }
471
+ };
472
+ return [diag];
473
+ };
474
+
475
+ const robotsConflict = (tag) => {
476
+ if (tag.tagType !== "meta")
477
+ return [];
478
+ if (tag.props.name !== "robots")
479
+ return [];
480
+ const content = tag.props.content;
481
+ if (typeof content !== "string")
482
+ return [];
483
+ const directives = content.toLowerCase().split(",").map((d) => d.trim());
484
+ const out = [];
485
+ if (directives.includes("index") && directives.includes("noindex")) {
486
+ out.push({
487
+ ruleId: "robots-conflict",
488
+ message: 'Robots meta has conflicting "index" and "noindex" directives.'
489
+ });
490
+ }
491
+ if (directives.includes("follow") && directives.includes("nofollow")) {
492
+ out.push({
493
+ ruleId: "robots-conflict",
494
+ message: 'Robots meta has conflicting "follow" and "nofollow" directives.'
495
+ });
496
+ }
497
+ return out;
498
+ };
499
+
500
+ const deferOnModuleScript = (tag) => {
501
+ if (tag.tagType !== "script")
502
+ return [];
503
+ if (tag.props.type !== "module")
504
+ return [];
505
+ if (tag.props.defer !== true)
506
+ return [];
507
+ const diag = {
508
+ ruleId: "defer-on-module-script",
509
+ message: '"defer" is redundant on module scripts. Modules are deferred by default.',
510
+ at: { kind: "prop", key: "defer" },
511
+ fix: { type: "remove-prop", key: "defer" }
512
+ };
513
+ return [diag];
514
+ };
515
+ const scriptSrcWithContent = (tag) => {
516
+ if (tag.tagType !== "script")
517
+ return [];
518
+ if (typeof tag.props.src !== "string")
519
+ return [];
520
+ const hasInner = tag.keys.has("innerHTML") && tag.props.innerHTML !== "" || tag.keys.has("textContent") && tag.props.textContent !== "";
521
+ if (!hasInner)
522
+ return [];
523
+ const diag = {
524
+ ruleId: "script-src-with-content",
525
+ message: 'Script has both "src" and inline content. The browser will ignore the inline content.'
526
+ };
527
+ return [diag];
528
+ };
529
+
530
+ const NUMERIC_RE = /^\d+$/;
531
+ const twitterHandleMissingAt = (tag) => {
532
+ if (tag.tagType !== "meta")
533
+ return [];
534
+ const name = tag.props.name;
535
+ if (name !== "twitter:site" && name !== "twitter:creator")
536
+ return [];
537
+ const content = tag.props.content;
538
+ if (typeof content !== "string")
539
+ return [];
540
+ if (content.startsWith("@") || NUMERIC_RE.test(content))
541
+ return [];
542
+ const fixedSource = JSON.stringify(`@${content}`);
543
+ const diag = {
544
+ ruleId: "twitter-handle-missing-at",
545
+ message: `${name} should start with "@", received "${content}".`,
546
+ at: { kind: "prop-value", key: "content" },
547
+ fix: { type: "replace-prop-value", key: "content", newSource: fixedSource }
548
+ };
549
+ return [diag];
550
+ };
551
+
552
+ const USER_SCALABLE_NO_RE = /user-scalable\s*=\s*(?:no|0|false)(?:[\s,;]|$)/i;
553
+ const MAX_SCALE_RE = /maximum-scale\s*=\s*1(?:\.\d+)?(?:[\s,;]|$)/i;
554
+ const viewportUserScalable = (tag) => {
555
+ if (tag.tagType !== "meta")
556
+ return [];
557
+ if (tag.props.name !== "viewport")
558
+ return [];
559
+ const content = tag.props.content;
560
+ if (typeof content !== "string")
561
+ return [];
562
+ const out = [];
563
+ if (USER_SCALABLE_NO_RE.test(content)) {
564
+ out.push({
565
+ ruleId: "viewport-user-scalable",
566
+ message: 'viewport "user-scalable=no" prevents zooming and harms accessibility.'
567
+ });
568
+ }
569
+ if (MAX_SCALE_RE.test(content)) {
570
+ out.push({
571
+ ruleId: "viewport-user-scalable",
572
+ message: 'viewport "maximum-scale=1" limits zooming and may harm accessibility.'
573
+ });
574
+ }
575
+ return out;
576
+ };
577
+
578
+ const TAG_TYPES = /* @__PURE__ */ new Set(["meta", "link", "script", "noscript", "style"]);
579
+ function valueKind(value) {
580
+ if (value === null)
581
+ return "null";
582
+ if (Array.isArray(value))
583
+ return "array";
584
+ const kind = typeof value;
585
+ if (kind === "boolean" || kind === "function" || kind === "number" || kind === "object" || kind === "string")
586
+ return kind;
587
+ return "unknown";
588
+ }
589
+ function inputShapeFromRuntime(context, input) {
590
+ const keys = /* @__PURE__ */ new Set();
591
+ const valueKinds = /* @__PURE__ */ new Map();
592
+ for (const [key, value] of Object.entries(input)) {
593
+ keys.add(key);
594
+ valueKinds.set(key, valueKind(value));
595
+ }
596
+ return { context, keys, valueKinds };
597
+ }
598
+ function tagInputFromRuntime(tag) {
599
+ if (!TAG_TYPES.has(tag.tag))
600
+ return void 0;
601
+ const props = {};
602
+ const keys = /* @__PURE__ */ new Set();
603
+ for (const [k, v] of Object.entries(tag.props)) {
604
+ keys.add(k);
605
+ if (v == null) {
606
+ if (tag.tag === "meta" && k === "content")
607
+ props[k] = "";
608
+ continue;
609
+ }
610
+ if (typeof v === "string" || typeof v === "number" || typeof v === "boolean") {
611
+ if (tag.tag === "meta" && k === "name" && typeof v === "string")
612
+ props[k] = v.toLowerCase();
613
+ else
614
+ props[k] = v;
615
+ } else {
616
+ props[k] = String(v);
617
+ }
618
+ }
619
+ if (tag.tag === "script" || tag.tag === "style" || tag.tag === "noscript") {
620
+ if (tag.innerHTML != null && tag.innerHTML !== "") {
621
+ keys.add("innerHTML");
622
+ }
623
+ if (tag.textContent != null && tag.textContent !== "") {
624
+ keys.add("textContent");
625
+ }
626
+ }
627
+ if (tag.tagPriority != null) {
628
+ keys.add("tagPriority");
629
+ if (typeof tag.tagPriority === "string" || typeof tag.tagPriority === "number")
630
+ props.tagPriority = tag.tagPriority;
631
+ }
632
+ return {
633
+ tagType: tag.tag,
634
+ props,
635
+ keys
636
+ };
637
+ }
638
+ function titleInputFromRuntime(titleTag) {
639
+ if (titleTag.tag !== "title")
640
+ return void 0;
641
+ const text = titleTag.textContent ?? titleTag.innerHTML ?? "";
642
+ return {
643
+ callee: "runtime",
644
+ props: { title: text },
645
+ keys: /* @__PURE__ */ new Set(["title"])
646
+ };
647
+ }
648
+
649
+ const tagPredicates = {
650
+ "defer-on-module-script": deferOnModuleScript,
651
+ "empty-meta-content": emptyMetaContent,
652
+ "no-deprecated-props": noDeprecatedProps,
653
+ "no-unknown-meta": noUnknownMeta,
654
+ "non-absolute-canonical": nonAbsoluteCanonical,
655
+ "numeric-tag-priority": numericTagPriority,
656
+ "preload-font-crossorigin": preloadFontCrossorigin,
657
+ "preload-missing-as": preloadMissingAs,
658
+ "robots-conflict": robotsConflict,
659
+ "script-src-with-content": scriptSrcWithContent,
660
+ "twitter-handle-missing-at": twitterHandleMissingAt,
661
+ "viewport-user-scalable": viewportUserScalable
662
+ };
663
+ const inputShapePredicates = {
664
+ "invalid-input-shape": validateInputShape
665
+ };
666
+ const migrationTagPredicates = {
667
+ "prefer-define-helpers": preferDefineHelpers
668
+ };
669
+ const headInputPredicates = {
670
+ "no-html-in-title": noHtmlInTitle
671
+ };
672
+
673
+ export { DEPRECATED_PROPS as D, INPUT_SHAPE_FIELDS as I, KNOWN_META_NAMES as K, TAG_PRIORITY_ALIASES as T, URL_META_KEYS as U, KNOWN_META_PROPERTIES as a, inputShapePredicates as b, noHtmlInTitle as c, deferOnModuleScript as d, emptyMetaContent as e, findClosestMatch as f, noUnknownMeta as g, headInputPredicates as h, inputShapeFromRuntime as i, nonAbsoluteCanonical as j, numericTagPriority as k, levenshtein as l, migrationTagPredicates as m, noDeprecatedProps as n, preloadFontCrossorigin as o, preferDefineHelpers as p, preloadMissingAs as q, robotsConflict as r, scriptSrcWithContent as s, tagInputFromRuntime as t, tagPredicates as u, titleInputFromRuntime as v, twitterHandleMissingAt as w, validateInputShape as x, viewportUserScalable as y };