renovate-log-parser 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/README.md +119 -34
  2. package/dist/commands/install-analyze-skill.d.ts +0 -1
  3. package/dist/commands/install-analyze-skill.js +15 -12
  4. package/dist/commands/install-analyze-skill.js.map +1 -1
  5. package/dist/commands/web.d.ts +2 -1
  6. package/dist/commands/web.js +23 -11
  7. package/dist/commands/web.js.map +1 -1
  8. package/dist/core/skill-template.js +17 -3
  9. package/dist/core/skill-template.js.map +1 -1
  10. package/dist/server/api.d.ts +16 -0
  11. package/dist/server/api.js +173 -0
  12. package/dist/server/api.js.map +1 -0
  13. package/dist/server/http-error.d.ts +18 -0
  14. package/dist/server/http-error.js +23 -0
  15. package/dist/server/http-error.js.map +1 -0
  16. package/dist/server/index.d.ts +34 -0
  17. package/dist/server/index.js +54 -0
  18. package/dist/server/index.js.map +1 -0
  19. package/dist/server/log-registry.d.ts +34 -0
  20. package/dist/server/log-registry.js +157 -0
  21. package/dist/server/log-registry.js.map +1 -0
  22. package/dist/server/server-main.d.ts +1 -0
  23. package/dist/server/server-main.js +31 -0
  24. package/dist/server/server-main.js.map +1 -0
  25. package/dist/server/translate-filters.d.ts +58 -0
  26. package/dist/server/translate-filters.js +119 -0
  27. package/dist/server/translate-filters.js.map +1 -0
  28. package/package.json +13 -5
  29. package/web/.output/public/200.html +1 -0
  30. package/web/.output/public/404.html +1 -0
  31. package/web/.output/public/_nuxt/BDNMzG2s.js +1 -0
  32. package/web/.output/public/_nuxt/BjDV6v2h.js +1 -0
  33. package/web/.output/public/_nuxt/CVlqYHPc.js +6 -0
  34. package/web/.output/public/_nuxt/CuOsDQlp.js +1 -0
  35. package/web/.output/public/_nuxt/CztOM3Aq.js +28 -0
  36. package/web/.output/public/_nuxt/D3wuHpM_.js +3 -0
  37. package/web/.output/public/_nuxt/DK3Fl9T5.js +1 -0
  38. package/web/.output/public/_nuxt/DUXEQ2Eh.js +3 -0
  39. package/web/.output/public/_nuxt/DVWtRbHb.js +1 -0
  40. package/web/.output/public/_nuxt/DeS15jQo.js +1 -0
  41. package/web/.output/public/_nuxt/XP9RigIT.js +1 -0
  42. package/web/.output/public/_nuxt/builds/latest.json +1 -1
  43. package/web/.output/public/_nuxt/builds/meta/f68582c9-55a9-4352-b85a-d7f8de6f7202.json +1 -0
  44. package/web/.output/public/_nuxt/entry.BlZrUrUl.css +2 -0
  45. package/web/.output/public/_nuxt/error-404.zKZBzOko.css +1 -0
  46. package/web/.output/public/_nuxt/error-500.DwXcJPfY.css +1 -0
  47. package/web/.output/public/_nuxt/lGYp6_9X.js +1 -0
  48. package/web/.output/public/_nuxt/pages.BDcbBSnU.css +1 -0
  49. package/web/.output/public/_nuxt/public-sans-latin-400-italic.B1appi_f.woff2 +0 -0
  50. package/web/.output/public/_nuxt/public-sans-latin-400-italic.DsCWG5h0.woff +0 -0
  51. package/web/.output/public/_nuxt/public-sans-latin-400-normal.8Rpg0ruU.woff2 +0 -0
  52. package/web/.output/public/_nuxt/public-sans-latin-400-normal.SBbinRkI.woff +0 -0
  53. package/web/.output/public/_nuxt/public-sans-latin-500-normal.NlrCPXnF.woff2 +0 -0
  54. package/web/.output/public/_nuxt/public-sans-latin-500-normal.vCxiVFAq.woff +0 -0
  55. package/web/.output/public/_nuxt/public-sans-latin-600-normal.BR59oU-I.woff +0 -0
  56. package/web/.output/public/_nuxt/public-sans-latin-600-normal.Fru-LXNs.woff2 +0 -0
  57. package/web/.output/public/_nuxt/public-sans-latin-700-normal.BqJmxWdE.woff2 +0 -0
  58. package/web/.output/public/_nuxt/public-sans-latin-700-normal.Dm-oTPSL.woff +0 -0
  59. package/web/.output/public/favicon-dark.svg +32 -0
  60. package/web/.output/public/favicon-light.svg +32 -0
  61. package/web/.output/public/index.html +1 -0
  62. package/web/.output/nitro.json +0 -15
  63. package/web/.output/public/_fonts/57NSSoFy1VLVs2gqly8Ls9awBnZMFyXGrefpmqvdqmc-zJfbBtpgM4cDmcXBsqZNW79_kFnlpPd62b48glgdydA.woff2 +0 -0
  64. package/web/.output/public/_fonts/8VR2wSMN-3U4NbWAVYXlkRV6hA0jFBXP-0RtL3X7fko-x2gYI4qfmkRdxyQQUPaBZdZdgl1TeVrquF_TxHeM4lM.woff2 +0 -0
  65. package/web/.output/public/_fonts/GsKUclqeNLJ96g5AU593ug6yanivOiwjW_7zESNPChw-jHA4tBeM1bjF7LATGUpfBuSTyomIFrWBTzjF7txVYfg.woff2 +0 -0
  66. package/web/.output/public/_fonts/Ld1FnTo3yTIwDyGfTQ5-Fws9AWsCbKfMvgxduXr7JcY-W25bL8NF1fjpLRSOgJb7RoZPHqGQNwMTM7S9tHVoxx8.woff2 +0 -0
  67. package/web/.output/public/_fonts/NdzqRASp2bovDUhQT1IRE_EMqKJ2KYQdTCfFcBvL8yw-KhwZiS86o3fErOe5GGMExHUemmI_dBfaEFxjISZrBd0.woff2 +0 -0
  68. package/web/.output/public/_fonts/iTkrULNFJJkTvihIg1Vqi5IODRH_9btXCioVF5l98I8-AndUyau2HR2felA_ra8V2mutQgschhasE5FD1dXGJX8.woff2 +0 -0
  69. package/web/.output/public/_nuxt/BWja8e3M.js +0 -37
  70. package/web/.output/public/_nuxt/BgApMHS1.js +0 -1
  71. package/web/.output/public/_nuxt/CGPWRqbc.js +0 -1
  72. package/web/.output/public/_nuxt/DlAUqK2U.js +0 -1
  73. package/web/.output/public/_nuxt/Sgtec1U0.js +0 -1
  74. package/web/.output/public/_nuxt/builds/meta/785e7885-8d38-4aac-a7f6-735f68d27e63.json +0 -1
  75. package/web/.output/public/_nuxt/entry.9mB-pyEY.css +0 -1
  76. package/web/.output/public/_nuxt/error-404.B_PvSG-P.css +0 -1
  77. package/web/.output/public/_nuxt/error-500.CghkKCEr.css +0 -1
  78. package/web/.output/public/_nuxt/index.BlvAG7F6.css +0 -1
  79. package/web/.output/public/favicon.ico +0 -0
  80. package/web/.output/server/chunks/_/error-500.mjs +0 -19
  81. package/web/.output/server/chunks/_/error-500.mjs.map +0 -1
  82. package/web/.output/server/chunks/_/icons.mjs +0 -6153
  83. package/web/.output/server/chunks/_/icons.mjs.map +0 -1
  84. package/web/.output/server/chunks/_/icons2.mjs +0 -11494
  85. package/web/.output/server/chunks/_/icons2.mjs.map +0 -1
  86. package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs +0 -10
  87. package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map +0 -1
  88. package/web/.output/server/chunks/build/client.precomputed.mjs +0 -4
  89. package/web/.output/server/chunks/build/client.precomputed.mjs.map +0 -1
  90. package/web/.output/server/chunks/build/error-404-DOK13euR.mjs +0 -106
  91. package/web/.output/server/chunks/build/error-404-DOK13euR.mjs.map +0 -1
  92. package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs +0 -8
  93. package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs.map +0 -1
  94. package/web/.output/server/chunks/build/error-500-DKHEaocY.mjs +0 -89
  95. package/web/.output/server/chunks/build/error-500-DKHEaocY.mjs.map +0 -1
  96. package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs +0 -8
  97. package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs.map +0 -1
  98. package/web/.output/server/chunks/build/index-D_lNB6LA.mjs +0 -19675
  99. package/web/.output/server/chunks/build/index-D_lNB6LA.mjs.map +0 -1
  100. package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs +0 -8
  101. package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs.map +0 -1
  102. package/web/.output/server/chunks/build/server.mjs +0 -7910
  103. package/web/.output/server/chunks/build/server.mjs.map +0 -1
  104. package/web/.output/server/chunks/build/styles.mjs +0 -10
  105. package/web/.output/server/chunks/build/styles.mjs.map +0 -1
  106. package/web/.output/server/chunks/nitro/nitro.mjs +0 -6944
  107. package/web/.output/server/chunks/nitro/nitro.mjs.map +0 -1
  108. package/web/.output/server/chunks/routes/api/fields.get.mjs +0 -27
  109. package/web/.output/server/chunks/routes/api/fields.get.mjs.map +0 -1
  110. package/web/.output/server/chunks/routes/api/findings.get.mjs +0 -30
  111. package/web/.output/server/chunks/routes/api/findings.get.mjs.map +0 -1
  112. package/web/.output/server/chunks/routes/api/log/contents.post.mjs +0 -29
  113. package/web/.output/server/chunks/routes/api/log/contents.post.mjs.map +0 -1
  114. package/web/.output/server/chunks/routes/api/log/path.post.mjs +0 -30
  115. package/web/.output/server/chunks/routes/api/log/path.post.mjs.map +0 -1
  116. package/web/.output/server/chunks/routes/api/repositories.get.mjs +0 -27
  117. package/web/.output/server/chunks/routes/api/repositories.get.mjs.map +0 -1
  118. package/web/.output/server/chunks/routes/api/rows.get.mjs +0 -48
  119. package/web/.output/server/chunks/routes/api/rows.get.mjs.map +0 -1
  120. package/web/.output/server/chunks/routes/renderer.mjs +0 -451
  121. package/web/.output/server/chunks/routes/renderer.mjs.map +0 -1
  122. package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs +0 -4
  123. package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +0 -1
  124. package/web/.output/server/index.mjs +0 -16
  125. package/web/.output/server/index.mjs.map +0 -1
  126. package/web/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs +0 -290
  127. package/web/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +0 -49
  128. package/web/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +0 -257
  129. package/web/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +0 -53
  130. package/web/.output/server/node_modules/@babel/parser/lib/index.js +0 -14599
  131. package/web/.output/server/node_modules/@babel/parser/package.json +0 -50
  132. package/web/.output/server/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +0 -1038
  133. package/web/.output/server/node_modules/@floating-ui/core/package.json +0 -63
  134. package/web/.output/server/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +0 -789
  135. package/web/.output/server/node_modules/@floating-ui/dom/package.json +0 -72
  136. package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +0 -165
  137. package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +0 -136
  138. package/web/.output/server/node_modules/@floating-ui/utils/package.json +0 -70
  139. package/web/.output/server/node_modules/@floating-ui/vue/dist/floating-ui.vue.mjs +0 -190
  140. package/web/.output/server/node_modules/@floating-ui/vue/package.json +0 -71
  141. package/web/.output/server/node_modules/@iconify/utils/lib/colors/index.js +0 -295
  142. package/web/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +0 -701
  143. package/web/.output/server/node_modules/@iconify/utils/lib/css/common.js +0 -75
  144. package/web/.output/server/node_modules/@iconify/utils/lib/css/format.js +0 -39
  145. package/web/.output/server/node_modules/@iconify/utils/lib/css/icon.js +0 -47
  146. package/web/.output/server/node_modules/@iconify/utils/lib/css/icons.js +0 -128
  147. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +0 -19
  148. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +0 -13
  149. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +0 -17
  150. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +0 -16
  151. package/web/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +0 -30
  152. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +0 -78
  153. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +0 -100
  154. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +0 -28
  155. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +0 -58
  156. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +0 -48
  157. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +0 -203
  158. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +0 -33
  159. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +0 -132
  160. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +0 -165
  161. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +0 -79
  162. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +0 -92
  163. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +0 -26
  164. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +0 -76
  165. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +0 -66
  166. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +0 -45
  167. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +0 -103
  168. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +0 -36
  169. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +0 -92
  170. package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +0 -62
  171. package/web/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +0 -25
  172. package/web/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +0 -16
  173. package/web/.output/server/node_modules/@iconify/utils/lib/icon/name.js +0 -57
  174. package/web/.output/server/node_modules/@iconify/utils/lib/icon/square.js +0 -33
  175. package/web/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +0 -12
  176. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +0 -125
  177. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +0 -19
  178. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +0 -25
  179. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +0 -36
  180. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +0 -91
  181. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +0 -46
  182. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +0 -23
  183. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +0 -42
  184. package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +0 -123
  185. package/web/.output/server/node_modules/@iconify/utils/lib/index.js +0 -52
  186. package/web/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +0 -30
  187. package/web/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +0 -26
  188. package/web/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +0 -27
  189. package/web/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +0 -105
  190. package/web/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +0 -26
  191. package/web/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +0 -26
  192. package/web/.output/server/node_modules/@iconify/utils/lib/misc/title.js +0 -9
  193. package/web/.output/server/node_modules/@iconify/utils/lib/svg/build.js +0 -113
  194. package/web/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +0 -31
  195. package/web/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +0 -13
  196. package/web/.output/server/node_modules/@iconify/utils/lib/svg/html.js +0 -9
  197. package/web/.output/server/node_modules/@iconify/utils/lib/svg/id.js +0 -41
  198. package/web/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +0 -22
  199. package/web/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +0 -67
  200. package/web/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +0 -54
  201. package/web/.output/server/node_modules/@iconify/utils/lib/svg/size.js +0 -27
  202. package/web/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +0 -7
  203. package/web/.output/server/node_modules/@iconify/utils/lib/svg/url.js +0 -22
  204. package/web/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +0 -8
  205. package/web/.output/server/node_modules/@iconify/utils/package.json +0 -119
  206. package/web/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +0 -1896
  207. package/web/.output/server/node_modules/@iconify/vue/package.json +0 -62
  208. package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +0 -1268
  209. package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +0 -34
  210. package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +0 -74
  211. package/web/.output/server/node_modules/@tanstack/virtual-core/package.json +0 -56
  212. package/web/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +0 -66
  213. package/web/.output/server/node_modules/@tanstack/vue-virtual/package.json +0 -68
  214. package/web/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6759
  215. package/web/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
  216. package/web/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -689
  217. package/web/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
  218. package/web/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1413
  219. package/web/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
  220. package/web/.output/server/node_modules/@vue/devtools-api/dist/index.js +0 -2
  221. package/web/.output/server/node_modules/@vue/devtools-api/package.json +0 -34
  222. package/web/.output/server/node_modules/@vue/devtools-kit/dist/index.js +0 -5670
  223. package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/dist/index.mjs +0 -290
  224. package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/package.json +0 -49
  225. package/web/.output/server/node_modules/@vue/devtools-kit/package.json +0 -44
  226. package/web/.output/server/node_modules/@vue/devtools-shared/dist/index.js +0 -239
  227. package/web/.output/server/node_modules/@vue/devtools-shared/package.json +0 -33
  228. package/web/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1899
  229. package/web/.output/server/node_modules/@vue/reactivity/package.json +0 -55
  230. package/web/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6940
  231. package/web/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
  232. package/web/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1822
  233. package/web/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
  234. package/web/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -896
  235. package/web/.output/server/node_modules/@vue/server-renderer/package.json +0 -55
  236. package/web/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +0 -604
  237. package/web/.output/server/node_modules/@vue/shared/package.json +0 -47
  238. package/web/.output/server/node_modules/@vueuse/core/dist/index.js +0 -8464
  239. package/web/.output/server/node_modules/@vueuse/core/package.json +0 -49
  240. package/web/.output/server/node_modules/@vueuse/shared/dist/index.js +0 -2013
  241. package/web/.output/server/node_modules/@vueuse/shared/package.json +0 -42
  242. package/web/.output/server/node_modules/aria-hidden/dist/es5/index.js +0 -174
  243. package/web/.output/server/node_modules/aria-hidden/package.json +0 -71
  244. package/web/.output/server/node_modules/birpc/dist/index.mjs +0 -291
  245. package/web/.output/server/node_modules/birpc/package.json +0 -57
  246. package/web/.output/server/node_modules/consola/dist/chunks/prompt.mjs +0 -280
  247. package/web/.output/server/node_modules/consola/dist/core.mjs +0 -512
  248. package/web/.output/server/node_modules/consola/dist/index.mjs +0 -651
  249. package/web/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +0 -72
  250. package/web/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +0 -288
  251. package/web/.output/server/node_modules/consola/package.json +0 -136
  252. package/web/.output/server/node_modules/devalue/index.js +0 -4
  253. package/web/.output/server/node_modules/devalue/package.json +0 -40
  254. package/web/.output/server/node_modules/devalue/src/base64.js +0 -60
  255. package/web/.output/server/node_modules/devalue/src/constants.js +0 -12
  256. package/web/.output/server/node_modules/devalue/src/parse.js +0 -283
  257. package/web/.output/server/node_modules/devalue/src/stringify.js +0 -401
  258. package/web/.output/server/node_modules/devalue/src/uneval.js +0 -552
  259. package/web/.output/server/node_modules/devalue/src/utils.js +0 -160
  260. package/web/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +0 -77
  261. package/web/.output/server/node_modules/entities/dist/commonjs/decode.js +0 -568
  262. package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +0 -7
  263. package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +0 -7
  264. package/web/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +0 -21
  265. package/web/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +0 -31
  266. package/web/.output/server/node_modules/entities/dist/commonjs/package.json +0 -3
  267. package/web/.output/server/node_modules/entities/package.json +0 -120
  268. package/web/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
  269. package/web/.output/server/node_modules/estree-walker/package.json +0 -37
  270. package/web/.output/server/node_modules/hookable/dist/index.mjs +0 -257
  271. package/web/.output/server/node_modules/hookable/package.json +0 -53
  272. package/web/.output/server/node_modules/nostics/dist/index.mjs +0 -179
  273. package/web/.output/server/node_modules/nostics/package.json +0 -124
  274. package/web/.output/server/node_modules/perfect-debounce/dist/index.mjs +0 -89
  275. package/web/.output/server/node_modules/perfect-debounce/package.json +0 -41
  276. package/web/.output/server/node_modules/rou3/dist/index.mjs +0 -501
  277. package/web/.output/server/node_modules/rou3/package.json +0 -48
  278. package/web/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
  279. package/web/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  280. package/web/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
  281. package/web/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
  282. package/web/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
  283. package/web/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
  284. package/web/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  285. package/web/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  286. package/web/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
  287. package/web/.output/server/node_modules/source-map-js/lib/util.js +0 -594
  288. package/web/.output/server/node_modules/source-map-js/package.json +0 -71
  289. package/web/.output/server/node_modules/source-map-js/source-map.js +0 -8
  290. package/web/.output/server/node_modules/srvx/dist/_chunks/_body-limit.mjs +0 -39
  291. package/web/.output/server/node_modules/srvx/dist/_chunks/_plugins.mjs +0 -56
  292. package/web/.output/server/node_modules/srvx/dist/_chunks/_trust-proxy.mjs +0 -58
  293. package/web/.output/server/node_modules/srvx/dist/_chunks/_url.mjs +0 -134
  294. package/web/.output/server/node_modules/srvx/dist/_chunks/_utils.mjs +0 -15
  295. package/web/.output/server/node_modules/srvx/dist/_chunks/_utils2.mjs +0 -75
  296. package/web/.output/server/node_modules/srvx/dist/adapters/node.mjs +0 -976
  297. package/web/.output/server/node_modules/srvx/package.json +0 -102
  298. package/web/.output/server/node_modules/tailwind-merge/dist/bundle-mjs.mjs +0 -3365
  299. package/web/.output/server/node_modules/tailwind-merge/package.json +0 -93
  300. package/web/.output/server/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js +0 -112
  301. package/web/.output/server/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js +0 -269
  302. package/web/.output/server/node_modules/tailwind-variants/dist/index.js +0 -38
  303. package/web/.output/server/node_modules/tailwind-variants/package.json +0 -122
  304. package/web/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +0 -1
  305. package/web/.output/server/node_modules/tailwindcss/dist/colors.mjs +0 -1
  306. package/web/.output/server/node_modules/tailwindcss/package.json +0 -89
  307. package/web/.output/server/node_modules/ufo/dist/index.mjs +0 -645
  308. package/web/.output/server/node_modules/ufo/package.json +0 -48
  309. package/web/.output/server/node_modules/unhead/dist/index.mjs +0 -9
  310. package/web/.output/server/node_modules/unhead/dist/parser.mjs +0 -508
  311. package/web/.output/server/node_modules/unhead/dist/plugins.mjs +0 -101
  312. package/web/.output/server/node_modules/unhead/dist/scripts.mjs +0 -30
  313. package/web/.output/server/node_modules/unhead/dist/server.mjs +0 -180
  314. package/web/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +0 -207
  315. package/web/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +0 -43
  316. package/web/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +0 -269
  317. package/web/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +0 -182
  318. package/web/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +0 -71
  319. package/web/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +0 -236
  320. package/web/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +0 -196
  321. package/web/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +0 -44
  322. package/web/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +0 -166
  323. package/web/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +0 -38
  324. package/web/.output/server/node_modules/unhead/dist/utils.mjs +0 -5
  325. package/web/.output/server/node_modules/unhead/node_modules/hookable/dist/index.mjs +0 -257
  326. package/web/.output/server/node_modules/unhead/node_modules/hookable/package.json +0 -53
  327. package/web/.output/server/node_modules/unhead/package.json +0 -105
  328. package/web/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
  329. package/web/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
  330. package/web/.output/server/node_modules/vue/index.js +0 -7
  331. package/web/.output/server/node_modules/vue/index.mjs +0 -1
  332. package/web/.output/server/node_modules/vue/package.json +0 -112
  333. package/web/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
  334. package/web/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -249
  335. package/web/.output/server/node_modules/vue-bundle-renderer/package.json +0 -57
  336. package/web/.output/server/node_modules/vue-demi/lib/index.mjs +0 -34
  337. package/web/.output/server/node_modules/vue-demi/package.json +0 -47
  338. package/web/.output/server/node_modules/vue-router/dist/devtools-Bpr7ZAVB.js +0 -1056
  339. package/web/.output/server/node_modules/vue-router/dist/useApi-CROJJdhE.js +0 -436
  340. package/web/.output/server/node_modules/vue-router/dist/vue-router.js +0 -1543
  341. package/web/.output/server/node_modules/vue-router/package.json +0 -214
  342. package/web/.output/server/node_modules/vue-router/vue-router.node.mjs +0 -2
  343. package/web/.output/server/package.json +0 -51
@@ -1,48 +0,0 @@
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 };
@@ -1,203 +0,0 @@
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 };
@@ -1,33 +0,0 @@
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 };
@@ -1,132 +0,0 @@
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 };
@@ -1,165 +0,0 @@
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 };
@@ -1,79 +0,0 @@
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 };