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,48 @@
1
+ import { getEmojiSequenceFromString, getUnqualifiedEmojiSequence } from "./cleanup.js";
2
+ import { getEmojiSequenceKeyword } from "./format.js";
3
+ import { parseEmojiTestFile } from "./test/parse.js";
4
+ import { getQualifiedEmojiVariations } from "./test/variations.js";
5
+ import { findMissingEmojis } from "./test/missing.js";
6
+ import { createOptimisedRegexForEmojiSequences } from "./regex/create.js";
7
+ import { combineSimilarEmojiTestData } from "./test/similar.js";
8
+ import { getEmojiTestDataTree } from "./test/tree.js";
9
+ /**
10
+ * Prepare emoji for icons list
11
+ *
12
+ * Test data should be fetched from 'https://unicode.org/Public/emoji/17.0/emoji-test.txt'
13
+ * It is used to detect missing emojis and optimise regular expression
14
+ */
15
+ function prepareEmojiForIconsList(icons, rawTestData) {
16
+ const testData = rawTestData ? parseEmojiTestFile(rawTestData) : void 0;
17
+ let iconsList = [];
18
+ for (const char in icons) {
19
+ const sequence = getEmojiSequenceFromString(char);
20
+ iconsList.push({
21
+ icon: icons[char],
22
+ sequence
23
+ });
24
+ }
25
+ iconsList = getQualifiedEmojiVariations(iconsList);
26
+ if (testData) iconsList = iconsList.concat(findMissingEmojis(iconsList, getEmojiTestDataTree(combineSimilarEmojiTestData(testData))));
27
+ const preparedIcons = iconsList.map((item) => {
28
+ const sequence = getEmojiSequenceKeyword(getUnqualifiedEmojiSequence(item.sequence));
29
+ return {
30
+ icon: item.icon,
31
+ sequence
32
+ };
33
+ });
34
+ return {
35
+ regex: createOptimisedRegexForEmojiSequences(iconsList.map((item) => item.sequence)),
36
+ icons: preparedIcons
37
+ };
38
+ }
39
+ /**
40
+ * Prepare emoji for an icon set
41
+ *
42
+ * Test data should be fetched from 'https://unicode.org/Public/emoji/15.1/emoji-test.txt'
43
+ * It is used to detect missing emojis and optimise regular expression
44
+ */
45
+ function prepareEmojiForIconSet(iconSet, rawTestData) {
46
+ return prepareEmojiForIconsList(iconSet.chars || {}, rawTestData);
47
+ }
48
+ export { prepareEmojiForIconSet, prepareEmojiForIconsList };
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Convert number to string
3
+ */
4
+ function toString(number) {
5
+ if (number < 255) {
6
+ if (number > 32 && number < 127) {
7
+ const char = String.fromCharCode(number);
8
+ if (number > 47 && number < 58 || number > 64 && number < 91 || number > 94 && number < 123) return char;
9
+ return "\\" + char;
10
+ }
11
+ return "\\x" + (number < 16 ? "0" : "") + number.toString(16).toUpperCase();
12
+ }
13
+ return "\\u" + number.toString(16).toUpperCase();
14
+ }
15
+ /**
16
+ * Typescript stuff
17
+ */
18
+ function assertNever(v) {}
19
+ /**
20
+ * Wrap regex in group
21
+ */
22
+ function wrapRegexInGroup(regex) {
23
+ return "(?:" + regex + ")";
24
+ }
25
+ /**
26
+ * Update UTF16 item, return regex
27
+ */
28
+ function updateUTF16EmojiRegexItem(item) {
29
+ const numbers = item.numbers;
30
+ if (numbers.length === 1) {
31
+ const num = numbers[0];
32
+ return item.regex = toString(num);
33
+ }
34
+ numbers.sort((a, b) => a - b);
35
+ const chars = [];
36
+ let range = null;
37
+ const addRange = () => {
38
+ if (range) {
39
+ const { start, last, numbers } = range;
40
+ range = null;
41
+ if (last > start + 1) chars.push(toString(start) + "-" + toString(last));
42
+ else for (let i = 0; i < numbers.length; i++) chars.push(toString(numbers[i]));
43
+ }
44
+ };
45
+ for (let i = 0; i < numbers.length; i++) {
46
+ const num = numbers[i];
47
+ if (range) {
48
+ if (range.last === num) continue;
49
+ if (range.last === num - 1) {
50
+ range.numbers.push(num);
51
+ range.last = num;
52
+ continue;
53
+ }
54
+ }
55
+ addRange();
56
+ range = {
57
+ start: num,
58
+ last: num,
59
+ numbers: [num]
60
+ };
61
+ }
62
+ addRange();
63
+ if (!chars.length) throw new Error("Unexpected empty range");
64
+ return item.regex = "[" + chars.join("") + "]";
65
+ }
66
+ /**
67
+ * Create UTF-16 regex
68
+ */
69
+ function createUTF16EmojiRegexItem(numbers) {
70
+ const result = {
71
+ type: "utf16",
72
+ regex: "",
73
+ numbers,
74
+ length: 1,
75
+ group: true
76
+ };
77
+ updateUTF16EmojiRegexItem(result);
78
+ return result;
79
+ }
80
+ /**
81
+ * Update sequence regex. Does not update group
82
+ */
83
+ function updateSequenceEmojiRegexItem(item) {
84
+ return item.regex = item.items.map((childItem) => {
85
+ if (!childItem.group && childItem.type === "set") return wrapRegexInGroup(childItem.regex);
86
+ return childItem.regex;
87
+ }).join("");
88
+ }
89
+ /**
90
+ * Create sequence regex
91
+ */
92
+ function createSequenceEmojiRegexItem(sequence, numbers) {
93
+ let items = [];
94
+ sequence.forEach((item) => {
95
+ if (item.type === "sequence") items = items.concat(item.items);
96
+ else items.push(item);
97
+ });
98
+ if (!items.length) throw new Error("Empty sequence");
99
+ const result = {
100
+ type: "sequence",
101
+ items,
102
+ regex: "",
103
+ length: items.reduce((length, item) => item.length + length, 0),
104
+ group: false
105
+ };
106
+ if (sequence.length === 1) {
107
+ const firstItem = sequence[0];
108
+ result.group = firstItem.group;
109
+ if (firstItem.type !== "optional") {
110
+ const numbers = firstItem.numbers;
111
+ if (numbers) result.numbers = numbers;
112
+ }
113
+ }
114
+ if (numbers) result.numbers = numbers;
115
+ updateSequenceEmojiRegexItem(result);
116
+ return result;
117
+ }
118
+ /**
119
+ * Update set regex and group
120
+ */
121
+ function updateSetEmojiRegexItem(item) {
122
+ if (item.sets.length === 1) {
123
+ const firstItem = item.sets[0];
124
+ item.group = firstItem.group;
125
+ return item.regex = firstItem.regex;
126
+ }
127
+ item.group = false;
128
+ return item.regex = item.sets.map((childItem) => childItem.regex).join("|");
129
+ }
130
+ /**
131
+ * Create set regex
132
+ */
133
+ function createSetEmojiRegexItem(set) {
134
+ let sets = [];
135
+ let numbers = [];
136
+ set.forEach((item) => {
137
+ if (item.type === "set") sets = sets.concat(item.sets);
138
+ else sets.push(item);
139
+ if (numbers) if (item.type === "optional" || !item.numbers) numbers = null;
140
+ else numbers = [...numbers, ...item.numbers];
141
+ });
142
+ sets.sort((a, b) => {
143
+ if (a.length === b.length) return a.regex.localeCompare(b.regex);
144
+ return b.length - a.length;
145
+ });
146
+ const result = {
147
+ type: "set",
148
+ sets,
149
+ regex: "",
150
+ length: sets.reduce((length, item) => length ? Math.min(length, item.length) : item.length, 0),
151
+ group: false
152
+ };
153
+ if (numbers) result.numbers = numbers;
154
+ if (set.length === 1) result.group = set[0].group;
155
+ updateSetEmojiRegexItem(result);
156
+ return result;
157
+ }
158
+ /**
159
+ * Update optional regex
160
+ */
161
+ function updateOptionalEmojiRegexItem(item) {
162
+ const childItem = item.item;
163
+ return item.regex = (childItem.group ? childItem.regex : wrapRegexInGroup(childItem.regex)) + "?";
164
+ }
165
+ /**
166
+ * Create optional item
167
+ */
168
+ function createOptionalEmojiRegexItem(item) {
169
+ if (item.type === "optional") return item;
170
+ const result = {
171
+ type: "optional",
172
+ item,
173
+ regex: "",
174
+ length: item.length,
175
+ group: true
176
+ };
177
+ updateOptionalEmojiRegexItem(result);
178
+ return result;
179
+ }
180
+ /**
181
+ * Clone item
182
+ */
183
+ function cloneEmojiRegexItem(item, shallow = false) {
184
+ const result = { ...item };
185
+ if (result.type !== "optional" && result.numbers) result.numbers = [...result.numbers];
186
+ switch (result.type) {
187
+ case "utf16": break;
188
+ case "sequence":
189
+ if (shallow) result.items = [...result.items];
190
+ else result.items = result.items.map((item) => cloneEmojiRegexItem(item, false));
191
+ break;
192
+ case "set":
193
+ if (shallow) result.sets = [...result.sets];
194
+ else result.sets = result.sets.map((item) => cloneEmojiRegexItem(item, false));
195
+ break;
196
+ case "optional":
197
+ if (!shallow) result.item = cloneEmojiRegexItem(result.item, false);
198
+ break;
199
+ default: assertNever(result);
200
+ }
201
+ return result;
202
+ }
203
+ export { cloneEmojiRegexItem, createOptionalEmojiRegexItem, createSequenceEmojiRegexItem, createSetEmojiRegexItem, createUTF16EmojiRegexItem, updateOptionalEmojiRegexItem, updateSequenceEmojiRegexItem, updateSetEmojiRegexItem, updateUTF16EmojiRegexItem, wrapRegexInGroup };
@@ -0,0 +1,33 @@
1
+ import { convertEmojiSequenceToUTF32 } from "../convert.js";
2
+ import { getSequenceFromEmojiStringOrKeyword } from "../cleanup.js";
3
+ import { getQualifiedEmojiVariations } from "../test/variations.js";
4
+ import { createEmojisTree, parseEmojiTree } from "./tree.js";
5
+ /**
6
+ * Create optimised regex
7
+ */
8
+ function createOptimisedRegexForEmojiSequences(sequences) {
9
+ sequences = sequences.map((item) => convertEmojiSequenceToUTF32(item));
10
+ return parseEmojiTree(createEmojisTree(sequences)).regex;
11
+ }
12
+ /**
13
+ * Create optimised regex for emojis
14
+ *
15
+ * First parameter is array of emojis, entry can be either list of
16
+ * code points or emoji sequence as a string
17
+ *
18
+ * Examples of acceptable strings (case insensitive):
19
+ * '1F636 200D 1F32B FE0F' - space separated UTF32 sequence
20
+ * '1f636-200d-1f32b-fe0f' - dash separated UTF32 sequence
21
+ * 'd83d-de36-200d-d83c-df2b-fe0f' - dash separated UTF16 sequence
22
+ * '\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B\\uFE0F' - UTF16 sequence escaped with '\\u'
23
+ *
24
+ * All examples above refer to the same emoji and will generate the same regex result
25
+ */
26
+ function createOptimisedRegex(emojis) {
27
+ let sequences = emojis.map((item) => typeof item === "string" ? getSequenceFromEmojiStringOrKeyword(item) : item);
28
+ sequences = getQualifiedEmojiVariations(sequences.map((sequence) => {
29
+ return { sequence };
30
+ })).map((item) => item.sequence);
31
+ return createOptimisedRegexForEmojiSequences(sequences);
32
+ }
33
+ export { createOptimisedRegex, createOptimisedRegexForEmojiSequences };
@@ -0,0 +1,132 @@
1
+ import "../data.js";
2
+ import { splitUTF32Number } from "../convert.js";
3
+ import { createOptionalEmojiRegexItem, createSequenceEmojiRegexItem, createSetEmojiRegexItem, createUTF16EmojiRegexItem } from "./base.js";
4
+ /**
5
+ * Create regex item for set of numbers
6
+ */
7
+ function createEmojiRegexItemForNumbers(numbers) {
8
+ const utf32 = [];
9
+ const utf16 = [];
10
+ numbers.sort((a, b) => a - b);
11
+ let lastNumber;
12
+ for (let i = 0; i < numbers.length; i++) {
13
+ const number = numbers[i];
14
+ if (number === lastNumber) continue;
15
+ lastNumber = number;
16
+ const split = splitUTF32Number(number);
17
+ if (!split) {
18
+ utf16.push(number);
19
+ continue;
20
+ }
21
+ const [first, second] = split;
22
+ const item = utf32.find((item) => item.first === first);
23
+ if (item) {
24
+ item.second.push(second);
25
+ item.numbers.push(number);
26
+ } else utf32.push({
27
+ first,
28
+ second: [second],
29
+ numbers: [number]
30
+ });
31
+ }
32
+ const results = [];
33
+ if (utf16.length) results.push(createUTF16EmojiRegexItem(utf16));
34
+ if (utf32.length) {
35
+ const utf32Set = [];
36
+ for (let i = 0; i < utf32.length; i++) {
37
+ const item = utf32[i];
38
+ const secondRegex = createUTF16EmojiRegexItem(item.second);
39
+ const listItem = utf32Set.find((item) => item.second.regex === secondRegex.regex);
40
+ if (listItem) {
41
+ listItem.first.push(item.first);
42
+ listItem.numbers = [...listItem.numbers, ...item.numbers];
43
+ } else utf32Set.push({
44
+ second: secondRegex,
45
+ first: [item.first],
46
+ numbers: [...item.numbers]
47
+ });
48
+ }
49
+ for (let i = 0; i < utf32Set.length; i++) {
50
+ const item = utf32Set[i];
51
+ const firstRegex = createUTF16EmojiRegexItem(item.first);
52
+ const secondRegex = item.second;
53
+ results.push(createSequenceEmojiRegexItem([firstRegex, secondRegex], item.numbers));
54
+ }
55
+ }
56
+ return results.length === 1 ? results[0] : createSetEmojiRegexItem(results);
57
+ }
58
+ /**
59
+ * Create sequence of numbers
60
+ */
61
+ function createRegexForNumbersSequence(numbers, optionalVariations = true) {
62
+ const items = [];
63
+ for (let i = 0; i < numbers.length; i++) {
64
+ const num = numbers[i];
65
+ const split = splitUTF32Number(num);
66
+ if (!split) {
67
+ const item = createUTF16EmojiRegexItem([num]);
68
+ if (optionalVariations && num === 65039) items.push(createOptionalEmojiRegexItem(item));
69
+ else items.push(item);
70
+ } else {
71
+ items.push(createUTF16EmojiRegexItem([split[0]]));
72
+ items.push(createUTF16EmojiRegexItem([split[1]]));
73
+ }
74
+ }
75
+ if (items.length === 1) return items[0];
76
+ const result = createSequenceEmojiRegexItem(items);
77
+ if (numbers.length === 1 && items[0].type === "utf16") result.numbers = [...numbers];
78
+ return result;
79
+ }
80
+ /**
81
+ * Attempt to optimise numbers in a set
82
+ */
83
+ function optimiseNumbersSet(set) {
84
+ const mandatoryMatches = {
85
+ numbers: [],
86
+ items: []
87
+ };
88
+ const optionalMatches = {
89
+ numbers: [],
90
+ items: []
91
+ };
92
+ const filteredItems = set.sets.filter((item) => {
93
+ if (item.type === "optional") {
94
+ const parentItem = item.item;
95
+ if (parentItem.numbers) {
96
+ optionalMatches.items.push(item);
97
+ optionalMatches.numbers = optionalMatches.numbers.concat(parentItem.numbers);
98
+ return false;
99
+ }
100
+ return true;
101
+ }
102
+ if (item.numbers) {
103
+ mandatoryMatches.items.push(item);
104
+ mandatoryMatches.numbers = mandatoryMatches.numbers.concat(item.numbers);
105
+ return false;
106
+ }
107
+ return true;
108
+ });
109
+ if (mandatoryMatches.items.length + optionalMatches.items.length < 2) return set;
110
+ const optionalNumbers = new Set(optionalMatches.numbers);
111
+ let foundMatches = false;
112
+ mandatoryMatches.numbers = mandatoryMatches.numbers.filter((number) => {
113
+ if (optionalNumbers.has(number)) {
114
+ foundMatches = true;
115
+ return false;
116
+ }
117
+ return true;
118
+ });
119
+ if (mandatoryMatches.items.length) {
120
+ if (!foundMatches && mandatoryMatches.items.length === 1) filteredItems.push(mandatoryMatches.items[0]);
121
+ else if (mandatoryMatches.numbers.length) filteredItems.push(createEmojiRegexItemForNumbers(mandatoryMatches.numbers));
122
+ }
123
+ switch (optionalMatches.items.length) {
124
+ case 0: break;
125
+ case 1:
126
+ filteredItems.push(optionalMatches.items[0]);
127
+ break;
128
+ default: filteredItems.push(createOptionalEmojiRegexItem(createEmojiRegexItemForNumbers(optionalMatches.numbers)));
129
+ }
130
+ return filteredItems.length === 1 ? filteredItems[0] : createSetEmojiRegexItem(filteredItems);
131
+ }
132
+ export { createEmojiRegexItemForNumbers, createRegexForNumbersSequence, optimiseNumbersSet };
@@ -0,0 +1,165 @@
1
+ import { cloneEmojiRegexItem, createOptionalEmojiRegexItem, createSequenceEmojiRegexItem, createSetEmojiRegexItem } from "./base.js";
2
+ import { optimiseNumbersSet } from "./numbers.js";
3
+ /**
4
+ * Typescript stuff
5
+ */
6
+ function assertNever(v) {}
7
+ /**
8
+ * Find similar item sequences
9
+ *
10
+ * Returns sequence(s) with highest score. Only one of results should be
11
+ * applied to items. If there are multiple sequences, clone items list,
12
+ * attempt to apply each sequence, run further optimisations on each fork
13
+ * and see which one returns better result.
14
+ *
15
+ * Returns undefined if no common sequences found
16
+ */
17
+ function findSimilarRegexItemSequences(items) {
18
+ const startRegex = Object.create(null);
19
+ const endRegex = Object.create(null);
20
+ const addMapItem = (target, index, regex, slice) => {
21
+ if (!target[regex]) {
22
+ target[regex] = {
23
+ score: 0,
24
+ slices: [{
25
+ index,
26
+ slice
27
+ }]
28
+ };
29
+ return;
30
+ }
31
+ const item = target[regex];
32
+ item.score += regex.length;
33
+ item.slices.push({
34
+ index,
35
+ slice
36
+ });
37
+ };
38
+ for (let index = 0; index < items.length; index++) {
39
+ const baseItem = items[index];
40
+ switch (baseItem.type) {
41
+ case "optional":
42
+ case "utf16":
43
+ addMapItem(startRegex, index, baseItem.regex, "full");
44
+ addMapItem(endRegex, index, baseItem.regex, "full");
45
+ break;
46
+ case "sequence": {
47
+ addMapItem(startRegex, index, baseItem.regex, "full");
48
+ addMapItem(endRegex, index, baseItem.regex, "full");
49
+ const sequence = baseItem.items;
50
+ for (let i = 1; i < sequence.length; i++) {
51
+ const startSequence = createSequenceEmojiRegexItem(sequence.slice(0, i));
52
+ addMapItem(startRegex, index, startSequence.regex, i);
53
+ const endSequence = createSequenceEmojiRegexItem(sequence.slice(i));
54
+ addMapItem(endRegex, index, endSequence.regex, i);
55
+ }
56
+ break;
57
+ }
58
+ case "set": throw new Error("Unexpected set within a set");
59
+ default: assertNever(baseItem);
60
+ }
61
+ }
62
+ let result;
63
+ const checkResults = (target, type) => {
64
+ for (const regex in target) {
65
+ const item = target[regex];
66
+ if (!item.score) continue;
67
+ if (!result || result.score < item.score) {
68
+ result = {
69
+ score: item.score,
70
+ sequences: [{
71
+ type,
72
+ slices: item.slices
73
+ }]
74
+ };
75
+ continue;
76
+ }
77
+ if (result.score === item.score) result.sequences.push({
78
+ type,
79
+ slices: item.slices
80
+ });
81
+ }
82
+ };
83
+ checkResults(startRegex, "start");
84
+ checkResults(endRegex, "end");
85
+ return result;
86
+ }
87
+ /**
88
+ * Merge similar sequences
89
+ *
90
+ * Accepts callback to run optimisation on created subset
91
+ */
92
+ function mergeSimilarRegexItemSequences(items, merge, optimise) {
93
+ const { type, slices } = merge;
94
+ const indexes = /* @__PURE__ */ new Set();
95
+ let hasFullSequence = false;
96
+ let longestMatch = 0;
97
+ let longestMatchIndex = -1;
98
+ const differentSequences = [];
99
+ for (let i = 0; i < slices.length; i++) {
100
+ const { index, slice } = slices[i];
101
+ const item = items[index];
102
+ let length;
103
+ if (slice === "full") {
104
+ hasFullSequence = true;
105
+ if (item.type === "sequence") length = item.items.length;
106
+ else length = 1;
107
+ } else {
108
+ if (item.type !== "sequence") throw new Error(`Unexpected partial match for type "${item.type}"`);
109
+ length = type === "start" ? slice : item.items.length - slice;
110
+ differentSequences.push(type === "start" ? item.items.slice(slice) : item.items.slice(0, slice));
111
+ }
112
+ if (length > longestMatch) {
113
+ longestMatchIndex = index;
114
+ longestMatch = length;
115
+ }
116
+ indexes.add(index);
117
+ }
118
+ if (longestMatch < 1 || longestMatchIndex < 0) throw new Error("Cannot find common sequence");
119
+ const commonItem = items[longestMatchIndex];
120
+ let sequence;
121
+ if (commonItem.type !== "sequence") {
122
+ if (longestMatch !== 1) throw new Error("Something went wrong. Cannot have long match in non-sequence");
123
+ sequence = [commonItem];
124
+ } else sequence = type === "start" ? commonItem.items.slice(0, longestMatch) : commonItem.items.slice(commonItem.items.length - longestMatch);
125
+ const setItems = [];
126
+ for (let i = 0; i < differentSequences.length; i++) {
127
+ const list = differentSequences[i];
128
+ if (list.length === 1) setItems.push(list[0]);
129
+ else setItems.push(createSequenceEmojiRegexItem(list));
130
+ }
131
+ const set = createSetEmojiRegexItem(setItems);
132
+ let mergedChunk = set.sets.length === 1 ? set.sets[0] : optimise ? optimise(set) : set;
133
+ if (hasFullSequence) mergedChunk = createOptionalEmojiRegexItem(mergedChunk);
134
+ sequence[type === "start" ? "push" : "unshift"](mergedChunk);
135
+ return [createSequenceEmojiRegexItem(sequence), ...items.filter((item, index) => !indexes.has(index))];
136
+ }
137
+ /**
138
+ * Merge similar items
139
+ */
140
+ function mergeSimilarItemsInSet(set) {
141
+ const updatedSet = optimiseNumbersSet(set);
142
+ if (updatedSet.type !== "set") return updatedSet;
143
+ set = updatedSet;
144
+ let merges;
145
+ while (merges = findSimilarRegexItemSequences(set.sets)) {
146
+ const sequences = merges.sequences;
147
+ if (sequences.length === 1) {
148
+ const merged = mergeSimilarRegexItemSequences(set.sets.map((item) => cloneEmojiRegexItem(item, true)), sequences[0], mergeSimilarItemsInSet);
149
+ if (merged.length === 1) return merged[0];
150
+ set = createSetEmojiRegexItem(merged);
151
+ continue;
152
+ }
153
+ let newItem;
154
+ for (let i = 0; i < sequences.length; i++) {
155
+ const merged = mergeSimilarRegexItemSequences(set.sets.map((item) => cloneEmojiRegexItem(item, true)), sequences[i], mergeSimilarItemsInSet);
156
+ const mergedItem = merged.length === 1 ? merged[0] : createSetEmojiRegexItem(merged);
157
+ if (!newItem || mergedItem.regex.length < newItem.regex.length) newItem = mergedItem;
158
+ }
159
+ if (!newItem) throw new Error("Empty sequences list");
160
+ if (newItem.type !== "set") return newItem;
161
+ set = newItem;
162
+ }
163
+ return set;
164
+ }
165
+ export { findSimilarRegexItemSequences, mergeSimilarItemsInSet, mergeSimilarRegexItemSequences };
@@ -0,0 +1,79 @@
1
+ import { joinerEmoji } from "../data.js";
2
+ import { convertEmojiSequenceToUTF32 } from "../convert.js";
3
+ import { splitEmojiSequences } from "../cleanup.js";
4
+ import { createOptionalEmojiRegexItem, createSequenceEmojiRegexItem, createSetEmojiRegexItem, createUTF16EmojiRegexItem } from "./base.js";
5
+ import { createRegexForNumbersSequence } from "./numbers.js";
6
+ import { mergeSimilarItemsInSet } from "./similar.js";
7
+ /**
8
+ * Create tree
9
+ */
10
+ function createEmojisTree(sequences) {
11
+ const root = [];
12
+ for (let i = 0; i < sequences.length; i++) {
13
+ const split = splitEmojiSequences(convertEmojiSequenceToUTF32(sequences[i]));
14
+ let parent = root;
15
+ for (let j = 0; j < split.length; j++) {
16
+ const regex = createRegexForNumbersSequence(split[j]);
17
+ let item;
18
+ const match = parent.find((item) => item.regex.regex === regex.regex);
19
+ if (!match) {
20
+ item = { regex };
21
+ parent.push(item);
22
+ } else item = match;
23
+ if (j === split.length - 1) {
24
+ item.end = true;
25
+ break;
26
+ }
27
+ parent = item.children || (item.children = []);
28
+ }
29
+ }
30
+ return root;
31
+ }
32
+ /**
33
+ * Parse tree
34
+ */
35
+ function parseEmojiTree(items) {
36
+ function mergeParsedChildren(items) {
37
+ const parsedItems = [];
38
+ const mapWithoutEnd = Object.create(null);
39
+ const mapWithEnd = Object.create(null);
40
+ for (let i = 0; i < items.length; i++) {
41
+ const item = items[i];
42
+ const children = item.children;
43
+ if (children) {
44
+ const fullItem = item;
45
+ const target = item.end ? mapWithEnd : mapWithoutEnd;
46
+ const regex = children.regex;
47
+ if (!target[regex]) target[regex] = [fullItem];
48
+ else target[regex].push(fullItem);
49
+ } else parsedItems.push(item.regex);
50
+ }
51
+ [mapWithEnd, mapWithoutEnd].forEach((source) => {
52
+ for (const regex in source) {
53
+ const items = source[regex];
54
+ const firstItem = items[0];
55
+ let childSequence = [createUTF16EmojiRegexItem([joinerEmoji]), firstItem.children];
56
+ if (firstItem.end) childSequence = [createOptionalEmojiRegexItem(createSequenceEmojiRegexItem(childSequence))];
57
+ let mergedRegex;
58
+ if (items.length === 1) mergedRegex = firstItem.regex;
59
+ else mergedRegex = mergeSimilarItemsInSet(createSetEmojiRegexItem(items.map((item) => item.regex)));
60
+ const sequence = createSequenceEmojiRegexItem([mergedRegex, ...childSequence]);
61
+ parsedItems.push(sequence);
62
+ }
63
+ });
64
+ if (parsedItems.length === 1) return parsedItems[0];
65
+ return mergeSimilarItemsInSet(createSetEmojiRegexItem(parsedItems));
66
+ }
67
+ function parseItemChildren(item) {
68
+ const result = {
69
+ regex: item.regex,
70
+ end: !!item.end
71
+ };
72
+ const children = item.children;
73
+ if (!children) return result;
74
+ result.children = mergeParsedChildren(children.map(parseItemChildren));
75
+ return result;
76
+ }
77
+ return mergeParsedChildren(items.map(parseItemChildren));
78
+ }
79
+ export { createEmojisTree, parseEmojiTree };