urlpurify 2.2.0 → 2.3.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 (376) hide show
  1. package/README.md +96 -45
  2. package/dist/clean.d.mts +1 -0
  3. package/dist/clean.mjs +56 -20
  4. package/dist/defaults.d.mts +7 -1
  5. package/dist/defaults.mjs +160 -3
  6. package/dist/index.d.mts +79 -4
  7. package/dist/index.mjs +79 -4
  8. package/dist/node_modules/entities/dist/decode-codepoint.mjs +2 -2
  9. package/dist/node_modules/entities/dist/decode.mjs +262 -247
  10. package/dist/node_modules/entities/dist/generated/decode-data-html.mjs +8 -4
  11. package/dist/node_modules/entities/dist/internal/decode-data-format.mjs +116 -0
  12. package/dist/node_modules/trousse/dist/is.mjs +7 -1
  13. package/dist/node_modules/trousse/dist/locales.mjs +21 -0
  14. package/dist/node_modules/trousse/dist/matching.mjs +23 -13
  15. package/dist/node_modules/trousse/dist/urls.mjs +203 -51
  16. package/dist/pathTarget.mjs +2 -2
  17. package/dist/tracking/clickAttribution.mjs +26 -1
  18. package/dist/tracking/housekeeping.mjs +13 -1
  19. package/dist/tracking/session.d.mts +2 -0
  20. package/dist/tracking/session.mjs +12 -0
  21. package/dist/types.d.mts +7 -1
  22. package/dist/unwraps/a8Net.mjs +1 -1
  23. package/dist/unwraps/acast.mjs +1 -1
  24. package/dist/unwraps/accesstrade.mjs +1 -1
  25. package/dist/unwraps/aceml.mjs +2 -2
  26. package/dist/unwraps/adcell.mjs +1 -1
  27. package/dist/unwraps/addThis.d.mts +2 -0
  28. package/dist/unwraps/addThis.mjs +17 -0
  29. package/dist/unwraps/addToAny.d.mts +2 -0
  30. package/dist/unwraps/addToAny.mjs +21 -0
  31. package/dist/unwraps/addToAnySubscribe.d.mts +2 -0
  32. package/dist/unwraps/addToAnySubscribe.mjs +8 -0
  33. package/dist/unwraps/addToMyYahoo.d.mts +2 -0
  34. package/dist/unwraps/addToMyYahoo.mjs +29 -0
  35. package/dist/unwraps/adfly.mjs +1 -1
  36. package/dist/unwraps/admitad.mjs +1 -1
  37. package/dist/unwraps/affilae.mjs +3 -1
  38. package/dist/unwraps/affiliatesOne.mjs +1 -1
  39. package/dist/unwraps/allblog.mjs +1 -1
  40. package/dist/unwraps/amazonAffiliate.mjs +5 -4
  41. package/dist/unwraps/amazonSes.mjs +2 -2
  42. package/dist/unwraps/ampCache.mjs +4 -3
  43. package/dist/unwraps/ampCacheImage.mjs +1 -1
  44. package/dist/unwraps/anchor.mjs +1 -1
  45. package/dist/unwraps/anonymouse.mjs +1 -1
  46. package/dist/unwraps/antennaPod.d.mts +2 -0
  47. package/dist/unwraps/antennaPod.mjs +15 -0
  48. package/dist/unwraps/anytimePlayer.d.mts +2 -0
  49. package/dist/unwraps/anytimePlayer.mjs +17 -0
  50. package/dist/unwraps/apptrkr.mjs +3 -2
  51. package/dist/unwraps/archiveToday.mjs +2 -2
  52. package/dist/unwraps/arquivo.mjs +1 -1
  53. package/dist/unwraps/arttrack.mjs +1 -1
  54. package/dist/unwraps/augure.mjs +3 -3
  55. package/dist/unwraps/awesound.mjs +1 -1
  56. package/dist/unwraps/axigen.mjs +2 -1
  57. package/dist/unwraps/bacLacWebArchive.mjs +1 -1
  58. package/dist/unwraps/bananatag.mjs +1 -1
  59. package/dist/unwraps/big5Gate.mjs +1 -1
  60. package/dist/unwraps/bing.mjs +7 -7
  61. package/dist/unwraps/bingAds.mjs +4 -4
  62. package/dist/unwraps/bitrix.mjs +2 -1
  63. package/dist/unwraps/bitrixBanner.mjs +2 -1
  64. package/dist/unwraps/blinkList.d.mts +2 -0
  65. package/dist/unwraps/blinkList.mjs +8 -0
  66. package/dist/unwraps/bloggerBlogThis.d.mts +2 -0
  67. package/dist/unwraps/bloggerBlogThis.mjs +16 -0
  68. package/dist/unwraps/bloggerImageProxy.mjs +2 -1
  69. package/dist/unwraps/bloglines.d.mts +2 -0
  70. package/dist/unwraps/bloglines.mjs +21 -0
  71. package/dist/unwraps/bridgyFed.mjs +1 -1
  72. package/dist/unwraps/buffer.d.mts +2 -0
  73. package/dist/unwraps/buffer.mjs +23 -0
  74. package/dist/unwraps/buybox.mjs +1 -1
  75. package/dist/unwraps/buzzstream.mjs +1 -1
  76. package/dist/unwraps/cake.mjs +2 -2
  77. package/dist/unwraps/checkPointHarmony.mjs +2 -2
  78. package/dist/unwraps/cjNetwork.mjs +3 -3
  79. package/dist/unwraps/claritas.mjs +2 -2
  80. package/dist/unwraps/cleverbridge.mjs +3 -3
  81. package/dist/unwraps/cloudhq.mjs +1 -1
  82. package/dist/unwraps/cloze.mjs +1 -1
  83. package/dist/unwraps/cohst.mjs +1 -1
  84. package/dist/unwraps/contactMonkey.mjs +3 -2
  85. package/dist/unwraps/convertiser.mjs +1 -1
  86. package/dist/unwraps/cse360.mjs +1 -1
  87. package/dist/unwraps/dasBlog.mjs +1 -1
  88. package/dist/unwraps/datalifeEngine.mjs +5 -4
  89. package/dist/unwraps/delicious.d.mts +2 -0
  90. package/dist/unwraps/delicious.mjs +15 -0
  91. package/dist/unwraps/deployer.mjs +3 -3
  92. package/dist/unwraps/derefMail.mjs +4 -3
  93. package/dist/unwraps/deviantartOutgoing.mjs +1 -1
  94. package/dist/unwraps/diasporaShare.d.mts +2 -0
  95. package/dist/unwraps/diasporaShare.mjs +16 -0
  96. package/dist/unwraps/diggSubmit.d.mts +2 -0
  97. package/dist/unwraps/diggSubmit.mjs +11 -0
  98. package/dist/unwraps/digikala.mjs +3 -3
  99. package/dist/unwraps/diigoPost.d.mts +2 -0
  100. package/dist/unwraps/diigoPost.mjs +12 -0
  101. package/dist/unwraps/disqus.mjs +2 -1
  102. package/dist/unwraps/drupalOembed.mjs +3 -5
  103. package/dist/unwraps/dstats.mjs +2 -2
  104. package/dist/unwraps/eClick.mjs +1 -1
  105. package/dist/unwraps/easyMarketing.mjs +3 -3
  106. package/dist/unwraps/ebayRover.mjs +1 -1
  107. package/dist/unwraps/ebuzzing.mjs +1 -1
  108. package/dist/unwraps/edgepilot.mjs +1 -1
  109. package/dist/unwraps/effiliation.mjs +1 -1
  110. package/dist/unwraps/elasticEmail.mjs +3 -2
  111. package/dist/unwraps/epn.mjs +1 -1
  112. package/dist/unwraps/eulerian.mjs +1 -1
  113. package/dist/unwraps/evernoteClip.d.mts +2 -0
  114. package/dist/unwraps/evernoteClip.mjs +8 -0
  115. package/dist/unwraps/exciteTranslate.mjs +1 -1
  116. package/dist/unwraps/facebook.mjs +1 -1
  117. package/dist/unwraps/facebookShare.d.mts +2 -0
  118. package/dist/unwraps/facebookShare.mjs +25 -0
  119. package/dist/unwraps/feed2js.d.mts +2 -0
  120. package/dist/unwraps/feed2js.mjs +16 -0
  121. package/dist/unwraps/feedStatistics.mjs +2 -2
  122. package/dist/unwraps/feedValidator.d.mts +2 -0
  123. package/dist/unwraps/feedValidator.mjs +12 -0
  124. package/dist/unwraps/feedblitz.mjs +4 -5
  125. package/dist/unwraps/feedland.d.mts +2 -0
  126. package/dist/unwraps/feedland.mjs +12 -0
  127. package/dist/unwraps/feedly.d.mts +2 -0
  128. package/dist/unwraps/feedly.mjs +28 -0
  129. package/dist/unwraps/feedsportal.mjs +1 -1
  130. package/dist/unwraps/finalsite.mjs +2 -2
  131. package/dist/unwraps/firebaseDynamicLinks.mjs +3 -2
  132. package/dist/unwraps/firstory.mjs +3 -3
  133. package/dist/unwraps/fiveByFive.mjs +2 -2
  134. package/dist/unwraps/flattrSubmit.d.mts +2 -0
  135. package/dist/unwraps/flattrSubmit.mjs +8 -0
  136. package/dist/unwraps/flipboardShare.d.mts +2 -0
  137. package/dist/unwraps/flipboardShare.mjs +15 -0
  138. package/dist/unwraps/fortimail.mjs +3 -2
  139. package/dist/unwraps/friendFeed.d.mts +2 -0
  140. package/dist/unwraps/friendFeed.mjs +18 -0
  141. package/dist/unwraps/gabCompose.d.mts +2 -0
  142. package/dist/unwraps/gabCompose.mjs +8 -0
  143. package/dist/unwraps/genericCarrier.d.mts +2 -0
  144. package/dist/unwraps/genericCarrier.mjs +31 -0
  145. package/dist/unwraps/gfnLinkProxy.mjs +3 -3
  146. package/dist/unwraps/godcaster.mjs +2 -2
  147. package/dist/unwraps/googleAmpViewer.mjs +2 -2
  148. package/dist/unwraps/googleBookmarks.d.mts +2 -0
  149. package/dist/unwraps/googleBookmarks.mjs +8 -0
  150. package/dist/unwraps/googleBuzz.d.mts +2 -0
  151. package/dist/unwraps/googleBuzz.mjs +8 -0
  152. package/dist/unwraps/googleNewsModern.mjs +2 -3
  153. package/dist/unwraps/googlePlusShare.d.mts +2 -0
  154. package/dist/unwraps/googlePlusShare.mjs +11 -0
  155. package/dist/unwraps/googlePodcasts.d.mts +2 -0
  156. package/dist/unwraps/googlePodcasts.mjs +27 -0
  157. package/dist/unwraps/googleReader.d.mts +2 -0
  158. package/dist/unwraps/googleReader.mjs +20 -0
  159. package/dist/unwraps/googleTranslate.mjs +13 -13
  160. package/dist/unwraps/govdelivery.mjs +3 -2
  161. package/dist/unwraps/hackerNewsSubmit.d.mts +2 -0
  162. package/dist/unwraps/hackerNewsSubmit.mjs +8 -0
  163. package/dist/unwraps/hasoffers.mjs +3 -2
  164. package/dist/unwraps/hatenaBookmark.d.mts +2 -0
  165. package/dist/unwraps/hatenaBookmark.mjs +22 -0
  166. package/dist/unwraps/hirkereso.mjs +1 -1
  167. package/dist/unwraps/horde.mjs +1 -1
  168. package/dist/unwraps/hubspotSidekick.mjs +1 -1
  169. package/dist/unwraps/impact.mjs +2 -2
  170. package/dist/unwraps/indexHu.mjs +2 -1
  171. package/dist/unwraps/inoreader.d.mts +2 -0
  172. package/dist/unwraps/inoreader.mjs +22 -0
  173. package/dist/unwraps/instapaperSave.d.mts +2 -0
  174. package/dist/unwraps/instapaperSave.mjs +11 -0
  175. package/dist/unwraps/invisionNoExternalLinks.mjs +1 -1
  176. package/dist/unwraps/involveAsia.mjs +1 -1
  177. package/dist/unwraps/jive.mjs +2 -1
  178. package/dist/unwraps/klook.mjs +2 -1
  179. package/dist/unwraps/lazada.mjs +1 -1
  180. package/dist/unwraps/letscast.mjs +1 -1
  181. package/dist/unwraps/lineShare.d.mts +2 -0
  182. package/dist/unwraps/lineShare.mjs +25 -0
  183. package/dist/unwraps/linkA.mjs +1 -1
  184. package/dist/unwraps/linkedin.mjs +1 -1
  185. package/dist/unwraps/linkedinShare.d.mts +2 -0
  186. package/dist/unwraps/linkedinShare.mjs +15 -0
  187. package/dist/unwraps/linksynergy.mjs +2 -2
  188. package/dist/unwraps/linktrust.mjs +3 -3
  189. package/dist/unwraps/linkwise.mjs +1 -1
  190. package/dist/unwraps/livedoorReader.d.mts +2 -0
  191. package/dist/unwraps/livedoorReader.mjs +12 -0
  192. package/dist/unwraps/locWebArchive.mjs +1 -1
  193. package/dist/unwraps/locaweb.mjs +3 -1
  194. package/dist/unwraps/logicboard.mjs +1 -1
  195. package/dist/unwraps/magellan.mjs +1 -1
  196. package/dist/unwraps/mail2easy.mjs +1 -1
  197. package/dist/unwraps/mailchimp.mjs +1 -1
  198. package/dist/unwraps/mailinblack.mjs +6 -4
  199. package/dist/unwraps/mailstat.mjs +1 -1
  200. package/dist/unwraps/mailtrack.mjs +1 -1
  201. package/dist/unwraps/mandrill.mjs +3 -3
  202. package/dist/unwraps/medium.mjs +5 -5
  203. package/dist/unwraps/meneameSubmit.d.mts +2 -0
  204. package/dist/unwraps/meneameSubmit.mjs +11 -0
  205. package/dist/unwraps/meweShare.d.mts +2 -0
  206. package/dist/unwraps/meweShare.mjs +8 -0
  207. package/dist/unwraps/mimecast.mjs +1 -1
  208. package/dist/unwraps/ministryCloud.mjs +1 -1
  209. package/dist/unwraps/mintDownloads.mjs +1 -1
  210. package/dist/unwraps/mintFeeder.mjs +3 -2
  211. package/dist/unwraps/mohtwize.mjs +6 -4
  212. package/dist/unwraps/morss.d.mts +2 -0
  213. package/dist/unwraps/morss.mjs +13 -0
  214. package/dist/unwraps/mozillaOutgoing.mjs +3 -3
  215. package/dist/unwraps/myAolFeeds.d.mts +2 -0
  216. package/dist/unwraps/myAolFeeds.mjs +8 -0
  217. package/dist/unwraps/narrativ.mjs +1 -1
  218. package/dist/unwraps/natlibNz.mjs +1 -1
  219. package/dist/unwraps/ncls.mjs +2 -1
  220. package/dist/unwraps/ndlWarp.mjs +2 -2
  221. package/dist/unwraps/netaffiliation.mjs +1 -1
  222. package/dist/unwraps/netvibes.d.mts +2 -0
  223. package/dist/unwraps/netvibes.mjs +7 -0
  224. package/dist/unwraps/newsGator.d.mts +2 -0
  225. package/dist/unwraps/newsGator.mjs +17 -0
  226. package/dist/unwraps/newswire.mjs +3 -3
  227. package/dist/unwraps/nicoMs.mjs +1 -1
  228. package/dist/unwraps/nimble.mjs +1 -1
  229. package/dist/unwraps/nlaWebarchive.mjs +3 -3
  230. package/dist/unwraps/okRu.mjs +3 -2
  231. package/dist/unwraps/okShare.d.mts +2 -0
  232. package/dist/unwraps/okShare.mjs +23 -0
  233. package/dist/unwraps/op3.mjs +1 -1
  234. package/dist/unwraps/outlookSafelinks.mjs +1 -1
  235. package/dist/unwraps/pageflakes.d.mts +2 -0
  236. package/dist/unwraps/pageflakes.mjs +8 -0
  237. package/dist/unwraps/pagefreezer.mjs +2 -2
  238. package/dist/unwraps/partnerAds.mjs +2 -2
  239. package/dist/unwraps/pbs.mjs +1 -1
  240. package/dist/unwraps/pinterestPin.d.mts +2 -0
  241. package/dist/unwraps/pinterestPin.mjs +85 -0
  242. package/dist/unwraps/pipedrive.mjs +1 -1
  243. package/dist/unwraps/playerFm.d.mts +2 -0
  244. package/dist/unwraps/playerFm.mjs +16 -0
  245. package/dist/unwraps/pocketSave.d.mts +2 -0
  246. package/dist/unwraps/pocketSave.mjs +15 -0
  247. package/dist/unwraps/podcastAddict.d.mts +2 -0
  248. package/dist/unwraps/podcastAddict.mjs +14 -0
  249. package/dist/unwraps/podcastReady.d.mts +2 -0
  250. package/dist/unwraps/podcastReady.mjs +8 -0
  251. package/dist/unwraps/podcorn.mjs +1 -1
  252. package/dist/unwraps/podkite.mjs +1 -1
  253. package/dist/unwraps/podscribe.mjs +1 -1
  254. package/dist/unwraps/podsights.mjs +1 -1
  255. package/dist/unwraps/podup.mjs +2 -3
  256. package/dist/unwraps/postAffiliatePro.mjs +1 -1
  257. package/dist/unwraps/postmark.mjs +1 -1
  258. package/dist/unwraps/prNewswire.mjs +2 -2
  259. package/dist/unwraps/prezly.mjs +1 -1
  260. package/dist/unwraps/proofpointV2.mjs +1 -1
  261. package/dist/unwraps/proofpointV3.mjs +3 -3
  262. package/dist/unwraps/prweb.mjs +2 -2
  263. package/dist/unwraps/prxPlayer.d.mts +2 -0
  264. package/dist/unwraps/prxPlayer.mjs +16 -0
  265. package/dist/unwraps/qqMailReader.d.mts +2 -0
  266. package/dist/unwraps/qqMailReader.mjs +8 -0
  267. package/dist/unwraps/qualityClick.mjs +4 -3
  268. package/dist/unwraps/qzoneShare.d.mts +2 -0
  269. package/dist/unwraps/qzoneShare.mjs +8 -0
  270. package/dist/unwraps/rakutenAffiliate.mjs +3 -3
  271. package/dist/unwraps/redditOut.mjs +1 -1
  272. package/dist/unwraps/redditSubmit.d.mts +2 -0
  273. package/dist/unwraps/redditSubmit.mjs +19 -0
  274. package/dist/unwraps/researchgate.mjs +1 -1
  275. package/dist/unwraps/reviveAdserver.mjs +4 -4
  276. package/dist/unwraps/rssBoardValidator.d.mts +2 -0
  277. package/dist/unwraps/rssBoardValidator.mjs +8 -0
  278. package/dist/unwraps/salesdoubler.mjs +1 -1
  279. package/dist/unwraps/saleshandy.mjs +1 -1
  280. package/dist/unwraps/segmentfault.mjs +2 -2
  281. package/dist/unwraps/serendipity.mjs +4 -4
  282. package/dist/unwraps/shareaholic.d.mts +2 -0
  283. package/dist/unwraps/shareaholic.mjs +12 -0
  284. package/dist/unwraps/slashdotBookmark.d.mts +2 -0
  285. package/dist/unwraps/slashdotBookmark.mjs +11 -0
  286. package/dist/unwraps/smartredirect.mjs +1 -1
  287. package/dist/unwraps/sophos.mjs +2 -2
  288. package/dist/unwraps/soundOn.mjs +1 -1
  289. package/dist/unwraps/stay22.mjs +1 -1
  290. package/dist/unwraps/streamsend.mjs +1 -1
  291. package/dist/unwraps/stumbleuponSubmit.d.mts +2 -0
  292. package/dist/unwraps/stumbleuponSubmit.mjs +14 -0
  293. package/dist/unwraps/subscribeByEmail.d.mts +2 -0
  294. package/dist/unwraps/subscribeByEmail.mjs +10 -0
  295. package/dist/unwraps/subscribeOnAndroid.d.mts +2 -0
  296. package/dist/unwraps/subscribeOnAndroid.mjs +10 -0
  297. package/dist/unwraps/subscribeRu.mjs +1 -1
  298. package/dist/unwraps/substack.mjs +2 -3
  299. package/dist/unwraps/surly.mjs +1 -1
  300. package/dist/unwraps/swap.mjs +1 -1
  301. package/dist/unwraps/symantecClicktime.mjs +1 -1
  302. package/dist/unwraps/symplicity.mjs +1 -1
  303. package/dist/unwraps/teacup.mjs +3 -2
  304. package/dist/unwraps/technoratiFaves.d.mts +2 -0
  305. package/dist/unwraps/technoratiFaves.mjs +10 -0
  306. package/dist/unwraps/telegramShare.d.mts +2 -0
  307. package/dist/unwraps/telegramShare.mjs +18 -0
  308. package/dist/unwraps/theRegister.mjs +1 -1
  309. package/dist/unwraps/threadsIntent.d.mts +2 -0
  310. package/dist/unwraps/threadsIntent.mjs +16 -0
  311. package/dist/unwraps/toucharcade.mjs +1 -1
  312. package/dist/unwraps/tracdelight.mjs +3 -2
  313. package/dist/unwraps/trxHub.mjs +1 -1
  314. package/dist/unwraps/tumblrShare.d.mts +2 -0
  315. package/dist/unwraps/tumblrShare.mjs +13 -0
  316. package/dist/unwraps/twitterIntent.d.mts +2 -0
  317. package/dist/unwraps/twitterIntent.mjs +17 -0
  318. package/dist/unwraps/twoCheckout.mjs +4 -3
  319. package/dist/unwraps/ukWebArchive.mjs +1 -1
  320. package/dist/unwraps/ukgwa.mjs +1 -1
  321. package/dist/unwraps/unescoWebArchive.mjs +1 -1
  322. package/dist/unwraps/unisender.mjs +4 -4
  323. package/dist/unwraps/upAudio.mjs +1 -1
  324. package/dist/unwraps/vadeSecure.mjs +1 -1
  325. package/dist/unwraps/valuePress.mjs +2 -2
  326. package/dist/unwraps/vanilla.mjs +1 -1
  327. package/dist/unwraps/vbulletin.mjs +1 -1
  328. package/dist/unwraps/vefsafn.mjs +2 -2
  329. package/dist/unwraps/vgWort.mjs +1 -1
  330. package/dist/unwraps/vkShare.d.mts +2 -0
  331. package/dist/unwraps/vkShare.mjs +16 -0
  332. package/dist/unwraps/vocus.mjs +1 -1
  333. package/dist/unwraps/voxnest.mjs +1 -1
  334. package/dist/unwraps/w3cFeedValidator.d.mts +2 -0
  335. package/dist/unwraps/w3cFeedValidator.mjs +8 -0
  336. package/dist/unwraps/webArchive.mjs +5 -5
  337. package/dist/unwraps/webcitation.mjs +1 -1
  338. package/dist/unwraps/webharvest.mjs +1 -1
  339. package/dist/unwraps/weiboShare.d.mts +2 -0
  340. package/dist/unwraps/weiboShare.mjs +8 -0
  341. package/dist/unwraps/weserv.mjs +2 -2
  342. package/dist/unwraps/wikizero.mjs +2 -2
  343. package/dist/unwraps/windowsLive.d.mts +2 -0
  344. package/dist/unwraps/windowsLive.mjs +13 -0
  345. package/dist/unwraps/windowsLiveFavorites.d.mts +2 -0
  346. package/dist/unwraps/windowsLiveFavorites.mjs +8 -0
  347. package/dist/unwraps/worldNomads.mjs +2 -1
  348. package/dist/unwraps/wpPoczta.mjs +2 -2
  349. package/dist/unwraps/wykop.d.mts +2 -0
  350. package/dist/unwraps/wykop.mjs +11 -0
  351. package/dist/unwraps/xengentr.mjs +4 -3
  352. package/dist/unwraps/xianguo.d.mts +2 -0
  353. package/dist/unwraps/xianguo.mjs +8 -0
  354. package/dist/unwraps/xiaoyuzhou.mjs +1 -1
  355. package/dist/unwraps/ximalaya.mjs +3 -3
  356. package/dist/unwraps/xingShare.d.mts +2 -0
  357. package/dist/unwraps/xingShare.mjs +16 -0
  358. package/dist/unwraps/yahooBookmarks.d.mts +2 -0
  359. package/dist/unwraps/yahooBookmarks.mjs +38 -0
  360. package/dist/unwraps/yahooJapan.mjs +2 -3
  361. package/dist/unwraps/yahooJapanAmpViewer.mjs +2 -2
  362. package/dist/unwraps/yahooMailImage.mjs +2 -1
  363. package/dist/unwraps/yahooSearch.mjs +2 -2
  364. package/dist/unwraps/yamm.mjs +2 -1
  365. package/dist/unwraps/yandexMail.mjs +4 -3
  366. package/dist/unwraps/yandexTranslate.mjs +1 -1
  367. package/dist/unwraps/yandexTurbo.mjs +4 -4
  368. package/dist/unwraps/yesware.mjs +2 -2
  369. package/dist/unwraps/yourMembership.mjs +3 -2
  370. package/dist/unwraps/zencastr.mjs +1 -1
  371. package/dist/unwraps/zix.mjs +1 -1
  372. package/dist/unwraps/zscalerIsolation.mjs +1 -1
  373. package/dist/utils.mjs +9 -42
  374. package/package.json +4 -4
  375. package/dist/node_modules/entities/dist/internal/bin-trie-flags.mjs +0 -50
  376. package/dist/node_modules/entities/dist/internal/decode-shared.mjs +0 -143
@@ -1,7 +1,7 @@
1
1
  import { decodePercent, isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/cse360.ts
3
3
  const encodedSchemeRegex = /^https?%3A/i;
4
- const clickPathRegex = /^\/Click\/AddCampaignEmailClick\/[0-9a-f-]{36}\/([^/]+)\/[0-9a-f-]{36}\/[^/]+\/(?:True|False)$/;
4
+ const clickPathRegex = /^\/Click\/AddCampaignEmailClick\/[0-9a-f-]{36}\/([^/]+)\/[0-9a-f-]{36}\/[^/]+\/(?:True|False)$/i;
5
5
  const unwrapCse360 = (url) => {
6
6
  if (!isHostOf(url, "click.cse360.com.br")) return;
7
7
  const match = clickPathRegex.exec(url.pathname);
@@ -1,7 +1,7 @@
1
1
  import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getParamTarget } from "../utils.mjs";
3
3
  // src/unwraps/dasBlog.ts
4
- const pathRegex = /^(?:\/[^/]+)?\/ct\.ashx$/;
4
+ const pathRegex = /^(?:\/[^/]+)?\/ct\.ashx$/i;
5
5
  const unwrapDasBlog = (url) => {
6
6
  if (!pathRegex.test(url.pathname)) return;
7
7
  const target = getParamTarget(url, "url", -1);
@@ -1,9 +1,10 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { decodeBase64, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64, getQueryParam, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
3
+ import { getParamValues } from "../utils.mjs";
3
4
  // src/unwraps/datalifeEngine.ts
4
5
  const unwrapDatalifeEngine = (url) => {
5
- const isEngineGo = url.pathname === "/engine/go.php";
6
- const isIndexGo = url.pathname === "/index.php" && url.searchParams.get("do") === "go";
6
+ const isEngineGo = isAnyOf(url.pathname, "/engine/go.php");
7
+ const isIndexGo = isAnyOf(url.pathname, "/index.php") && getQueryParam(url, "do") === "go";
7
8
  if (!isEngineGo && !isIndexGo) return;
8
9
  const raw = getParamValues(url, "url").at(0);
9
10
  if (!raw) return;
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapDelicious: UrlUnwrapper;
@@ -0,0 +1,15 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { getParamTarget } from "../utils.mjs";
4
+ // src/unwraps/delicious.ts
5
+ const hosts = [
6
+ "del.icio.us",
7
+ "delicious.com",
8
+ "www.delicious.com"
9
+ ];
10
+ const paths = ["/post", "/save"];
11
+ const unwrapDelicious = (url) => {
12
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, paths)) return;
13
+ return getParamTarget(url, "url");
14
+ };
15
+ export { unwrapDelicious };
@@ -1,5 +1,5 @@
1
- import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { decodeBase64, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64, hasQueryParam, isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/deployer.ts
4
4
  const hosts = [
5
5
  "daily.news.humanevents.com",
@@ -8,7 +8,7 @@ const hosts = [
8
8
  ];
9
9
  const paths = ["/link.php", "/wta/link.php"];
10
10
  const unwrapDeployer = (url) => {
11
- if (!isHostOf(url, hosts) || !paths.includes(url.pathname) || !url.searchParams.has("AGENCY")) return;
11
+ if (!isHostOf(url, hosts) || !paths.includes(url.pathname) || !hasQueryParam(url, "AGENCY")) return;
12
12
  const value = getParamValues(url, "drurl").at(0)?.replaceAll(" ", "+");
13
13
  if (!value) return;
14
14
  const target = decodeBase64(value);
@@ -1,3 +1,4 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
1
2
  import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
3
  import { createParamExtractor, getParamTarget } from "../utils.mjs";
3
4
  // src/unwraps/derefMail.ts
@@ -22,8 +23,8 @@ const clientHosts = [
22
23
  "3c-lxa.mail.com"
23
24
  ];
24
25
  const lightmailerHosts = ["lightmailer.mail.com", "lightmailer-bs.gmx.net"];
25
- const pathRegex = /^\/mail\/client\/(?:[\w-]+\/)?dereferrer\/$/;
26
- const lightmailerPathRegex = /^\/[\w-]+\/deref\/$/;
26
+ const pathRegex = /^\/mail\/client\/(?:[\w-]+\/)?dereferrer\/$/i;
27
+ const lightmailerPathRegex = /^\/[\w-]+\/deref\/$/i;
27
28
  const extractLegacy = createParamExtractor({
28
29
  hosts: "service.gmx.net",
29
30
  path: "/de/cgi/derefer",
@@ -50,7 +51,7 @@ const extractFreemailJump = createParamExtractor({
50
51
  });
51
52
  const unwrapDerefMail = (url) => {
52
53
  const isDerefHost = isHostOf(url, hosts) && pathRegex.test(url.pathname);
53
- const isClientHost = isHostOf(url, clientHosts) && url.pathname === "/mail/client/dereferrer";
54
+ const isClientHost = isHostOf(url, clientHosts) && isAnyOf(url.pathname, "/mail/client/dereferrer");
54
55
  const isLightmailerHost = isHostOf(url, lightmailerHosts) && lightmailerPathRegex.test(url.pathname);
55
56
  if (!isDerefHost && !isClientHost && !isLightmailerHost) return extractLegacy(url) ?? extractLeaving(url) ?? extractUiDeref(url) ?? extractFreemailJump(url);
56
57
  const target = getParamTarget(url, "redirectUrl");
@@ -1,6 +1,6 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/deviantartOutgoing.ts
3
- const pathRegex = /^\/[^/]+\/outgoing$/;
3
+ const pathRegex = /^\/[^/]+\/outgoing$/i;
4
4
  const unwrapDeviantartOutgoing = (url) => {
5
5
  if (!isHostOf(url, ["www.deviantart.com", "deviantart.com"]) || !pathRegex.test(url.pathname)) return;
6
6
  const target = url.search.slice(1);
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapDiasporaShare: UrlUnwrapper;
@@ -0,0 +1,16 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { getParamTarget } from "../utils.mjs";
4
+ // src/unwraps/diasporaShare.ts
5
+ const hosts = ["share.diasporafoundation.org"];
6
+ const paths = [
7
+ "/",
8
+ "/index",
9
+ "/index/",
10
+ "/index.html"
11
+ ];
12
+ const unwrapDiasporaShare = (url) => {
13
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, paths)) return;
14
+ return getParamTarget(url, "url");
15
+ };
16
+ export { unwrapDiasporaShare };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapDiggSubmit: UrlUnwrapper;
@@ -0,0 +1,11 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { getParamTarget } from "../utils.mjs";
4
+ // src/unwraps/diggSubmit.ts
5
+ const hosts = ["digg.com", "www.digg.com"];
6
+ const pathRegex = /^\/(?:submit|share|tools\/diggthis\/login)\/?$/i;
7
+ const unwrapDiggSubmit = (url) => {
8
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, pathRegex)) return;
9
+ return getParamTarget(url, "url");
10
+ };
11
+ export { unwrapDiggSubmit };
@@ -1,7 +1,7 @@
1
- import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { decodeBase64, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64, isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/digikala.ts
4
- const pathRegex = /^\/api\/v1\/Click\/b\/[A-Za-z0-9]+$/;
4
+ const pathRegex = /^\/api\/v1\/Click\/b\/[A-Za-z0-9]+$/i;
5
5
  const unwrapDigikala = (url) => {
6
6
  if (!isHostOf(url, "dgkl.io") || !pathRegex.test(url.pathname)) return;
7
7
  const encoded = getParamValues(url, "b64").at(0);
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapDiigoPost: UrlUnwrapper;
@@ -0,0 +1,12 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/diigoPost.ts
3
+ const unwrapDiigoPost = createParamExtractor({
4
+ hosts: [
5
+ "www.diigo.com",
6
+ "diigo.com",
7
+ "secure.diigo.com"
8
+ ],
9
+ path: "/post",
10
+ params: ["url"]
11
+ });
12
+ export { unwrapDiigoPost };
@@ -1,3 +1,4 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
1
2
  import { createParamExtractor } from "../utils.mjs";
2
3
  // src/unwraps/disqus.ts
3
4
  const paths = ["/", "/url"];
@@ -9,7 +10,7 @@ const extractTarget = createParamExtractor({
9
10
  const unwrapDisqus = (url) => {
10
11
  if (!paths.includes(url.pathname)) return;
11
12
  const target = extractTarget(url);
12
- if (url.pathname !== "/url") return target;
13
+ if (!isAnyOf(url.pathname, "/url")) return target;
13
14
  return target?.replace(signatureRegex, "");
14
15
  };
15
16
  export { unwrapDisqus };
@@ -1,12 +1,10 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
+ import { getQueryParam, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/drupalOembed.ts
4
- const pathRegex = /^(?:\/[^/]+)*\/media\/oembed$/;
5
- const hashRegex = /^[\w-]{43}$/;
4
+ const pathRegex = /^(?:\/[^/]+)*\/media\/oembed$/i;
6
5
  const unwrapDrupalOembed = (url) => {
7
6
  if (!pathRegex.test(url.pathname)) return;
8
- const hash = url.searchParams.get("hash");
9
- if (!hash || !hashRegex.test(hash)) return;
7
+ if (!getQueryParam(url, "hash")) return;
10
8
  const target = getParamValues(url, "url").at(-1);
11
9
  if (!target || !isHttpUrl(target)) return;
12
10
  return target;
@@ -1,8 +1,8 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
- import { createParamExtractor } from "../utils.mjs";
3
2
  import { getPathTarget } from "../pathTarget.mjs";
3
+ import { createParamExtractor } from "../utils.mjs";
4
4
  // src/unwraps/dstats.ts
5
- const downloadPrefixRegex = /^\/download\/(?=https?:\/)/;
5
+ const downloadPrefixRegex = /^\/download\/(?=https?:\/)/i;
6
6
  const extractDownload = createParamExtractor({
7
7
  hosts: "dstats.net",
8
8
  path: "/download.php",
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/eClick.ts
3
- const pathRegex = /^\/redirects\/direct\/\d+\/\d+\/$/;
3
+ const pathRegex = /^\/redirects\/direct\/\d+\/\d+\/$/i;
4
4
  const extractUrl = createParamExtractor({
5
5
  hosts: "www.e-click.jp",
6
6
  params: ["url"]
@@ -1,7 +1,7 @@
1
- import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { decodeBase64Url, getParamTarget, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64Url, isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { getParamTarget, getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/easyMarketing.ts
4
- const pathRegex = /^\/trck\/eclick\/[0-9a-f]{32}$/;
4
+ const pathRegex = /^\/trck\/eclick\/[0-9a-f]{32}$/i;
5
5
  const hosts = [
6
6
  "partnerprogramm.otto.de",
7
7
  "pvn.mediamarkt.de",
@@ -2,7 +2,7 @@ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
2
  import { createParamExtractor } from "../utils.mjs";
3
3
  // src/unwraps/ebayRover.ts
4
4
  const roverHostRegex = /^rover\.ebay\.(?:com|[a-z]{2,3}(?:\.[a-z]{2,3})?)$/;
5
- const roverPathRegex = /^\/rover\/\d+\/[\d-]+\/\d+$/;
5
+ const roverPathRegex = /^\/rover\/\d+\/[\d-]+\/\d+$/i;
6
6
  const extractTarget = createParamExtractor({
7
7
  hosts: roverHostRegex,
8
8
  params: ["mpre", "loc"]
@@ -9,7 +9,7 @@ const hosts = [
9
9
  "www.ebuzzing.es",
10
10
  "www.ebuzzing.co.uk"
11
11
  ];
12
- const pathRegex = /^\/rd\/[\d_]+\/([^/:]*\.[^/:]*(?:\/.*)?)$/;
12
+ const pathRegex = /^\/rd\/[\d_]+\/([^/:]*\.[^/:]*(?:\/.*)?)$/i;
13
13
  const unwrapEbuzzing = (url) => {
14
14
  if (!isHostOf(url, hosts)) return;
15
15
  const match = pathRegex.exec(url.pathname);
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/edgepilot.ts
3
- const linkPathRegex = /^\/(?:s\/[0-9a-f]+\/[\w-]+|x\/[\w-]+)$/;
3
+ const linkPathRegex = /^\/(?:s\/[0-9a-f]+\/[\w-]+|x\/[\w-]+)$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: "link.edgepilot.com",
6
6
  params: ["u"]
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/effiliation.ts
3
- const pathRegex = /^\/servlet\/effi\.(?:redir|product)$/;
3
+ const pathRegex = /^\/servlet\/effi\.(?:redir|product)$/i;
4
4
  const extractUrl = createParamExtractor({
5
5
  hosts: "track.effiliation.com",
6
6
  params: ["url"]
@@ -1,8 +1,9 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
+ import { hasQueryParam, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
3
  import { getParamTarget } from "../utils.mjs";
3
4
  // src/unwraps/elasticEmail.ts
4
5
  const unwrapElasticEmail = (url) => {
5
- if (url.pathname !== "/tracking/click" || !url.searchParams.has("msgid")) return;
6
+ if (!isAnyOf(url.pathname, "/tracking/click") || !hasQueryParam(url, "msgid")) return;
6
7
  const target = getParamTarget(url, "target");
7
8
  if (!target || !isHttpUrl(target)) return;
8
9
  return target;
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/epn.ts
3
- const pathRegex = /^\/redirect\/cpa\/o\/[a-z0-9]{32}\/$/;
3
+ const pathRegex = /^\/redirect\/cpa\/o\/[a-z0-9]{32}\/$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: [
6
6
  "alipromo.com",
@@ -1,7 +1,7 @@
1
1
  import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getParamTarget } from "../utils.mjs";
3
3
  // src/unwraps/eulerian.ts
4
- const pathRegex = /^\/dynclick\/[^/]+\/$/;
4
+ const pathRegex = /^\/dynclick\/[^/]+\/$/i;
5
5
  const unwrapEulerian = (url) => {
6
6
  if (!pathRegex.test(url.pathname)) return;
7
7
  const target = getParamTarget(url, "eurl");
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapEvernoteClip: UrlUnwrapper;
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/evernoteClip.ts
3
+ const unwrapEvernoteClip = createParamExtractor({
4
+ hosts: ["evernote.com", "www.evernote.com"],
5
+ path: "/clip.action",
6
+ params: ["url"]
7
+ });
8
+ export { unwrapEvernoteClip };
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/exciteTranslate.ts
3
- const pathRegex = /^\/world\/[a-z]+\/web(?:\/body)?\/?$/;
3
+ const pathRegex = /^\/world\/[a-z]+\/web(?:\/body)?\/?$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: [
6
6
  "www.excite.co.jp",
@@ -1,7 +1,7 @@
1
1
  import { decodePercent, isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { createParamExtractor } from "../utils.mjs";
3
3
  // src/unwraps/facebook.ts
4
- const legacyTargetRegex = /^\/l\/[\w-]+[/;]\/*([^/].*)$/;
4
+ const legacyTargetRegex = /^\/l\/[\w-]+[/;]\/*([^/].*)$/i;
5
5
  const legacyEncodedSchemeRegex = /^https?%(?:25)?3A/i;
6
6
  const encodedSchemeRegex = /^https?%3A/i;
7
7
  const schemeRegex = /^https?:/i;
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFacebookShare: UrlUnwrapper;
@@ -0,0 +1,25 @@
1
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { getParamTarget } from "../utils.mjs";
3
+ // src/unwraps/facebookShare.ts
4
+ const hosts = [
5
+ "www.facebook.com",
6
+ "facebook.com",
7
+ "m.facebook.com",
8
+ "pt-br.facebook.com",
9
+ "de.facebook.com"
10
+ ];
11
+ const sharerPathRegex = /^\/(?:sharer(?:\/sharer)?(?:\.php)?|share\.php)\/?$/i;
12
+ const shareDialogPathRegex = /^\/dialog\/share\/?$/i;
13
+ const linkDialogPathRegex = /^\/dialog\/(?:feed|send)\/?$/i;
14
+ const hrefPrefixRegex = /^href=(?=https?:)/i;
15
+ const unwrapFacebookShare = (url) => {
16
+ if (!isHostOf(url, hosts)) return;
17
+ if (sharerPathRegex.test(url.pathname)) {
18
+ const target = getParamTarget(url, "u");
19
+ if (target) return target.replace(hrefPrefixRegex, "");
20
+ return getParamTarget(url, "p[url]");
21
+ }
22
+ if (shareDialogPathRegex.test(url.pathname)) return getParamTarget(url, "href");
23
+ if (linkDialogPathRegex.test(url.pathname)) return getParamTarget(url, "link");
24
+ };
25
+ export { unwrapFacebookShare };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFeed2js: UrlUnwrapper;
@@ -0,0 +1,16 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/feed2js.ts
3
+ const unwrapFeed2jsOrg = createParamExtractor({
4
+ hosts: ["feed2js.org", "www.feed2js.org"],
5
+ path: "/feed2js.php",
6
+ params: ["src"]
7
+ });
8
+ const unwrapFeedroll = createParamExtractor({
9
+ hosts: ["feedroll.com", "www.feedroll.com"],
10
+ path: "/rssviewer/feed2js.php",
11
+ params: ["src"]
12
+ });
13
+ const unwrapFeed2js = (url) => {
14
+ return unwrapFeed2jsOrg(url) ?? unwrapFeedroll(url);
15
+ };
16
+ export { unwrapFeed2js };
@@ -1,5 +1,5 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { decodeBase64, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/feedStatistics.ts
4
4
  const pathRegex = /^\/(?:[^/]+\/){0,2}$/;
5
5
  const unwrapFeedStatistics = (url) => {
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFeedValidator: UrlUnwrapper;
@@ -0,0 +1,12 @@
1
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { getParamTarget } from "../utils.mjs";
3
+ // src/unwraps/feedValidator.ts
4
+ const hosts = ["feedvalidator.org", "www.feedvalidator.org"];
5
+ const pathRegex = /^\/check(?:\.cgi)?$/i;
6
+ const atomEnabledPathRegex = /^\/feedvalidator\/check(?:\.cgi)?$/i;
7
+ const archivePathRegex = /^\/validator\/check(?:\.cgi)?$/i;
8
+ const unwrapFeedValidator = (url) => {
9
+ if (!(isHostOf(url, hosts) && pathRegex.test(url.pathname) || isHostOf(url, "www.atomenabled.org") && atomEnabledPathRegex.test(url.pathname) || isHostOf(url, "feeds.archive.org") && archivePathRegex.test(url.pathname))) return;
10
+ return getParamTarget(url, "url");
11
+ };
12
+ export { unwrapFeedValidator };
@@ -1,11 +1,10 @@
1
- import { addMissingProtocol, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/feedblitz.ts
3
- const pathRegex = /^\/~\/t\/0\/[0_]\/[^/]+(?:\/full)?\/~(.+)$/;
3
+ const pathRegex = /^\/~\/t\/0\/[0_]\/[^/]+(?:\/full)?\/~(.+)$/i;
4
4
  const unwrapFeedblitz = (url) => {
5
- if (url.hostname !== "feeds.feedblitz.com") return;
5
+ if (!isHostOf(url, "feeds.feedblitz.com")) return;
6
6
  const match = pathRegex.exec(url.pathname);
7
7
  if (!match?.[1]) return;
8
- const target = addMissingProtocol(`${match[1]}${url.search}${url.hash}`);
9
- if (isHttpUrl(target)) return target;
8
+ return `${match[1]}${url.search}${url.hash}`;
10
9
  };
11
10
  export { unwrapFeedblitz };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFeedland: UrlUnwrapper;
@@ -0,0 +1,12 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/feedland.ts
3
+ const unwrapFeedland = createParamExtractor({
4
+ hosts: [
5
+ "feedland.org",
6
+ "blue.feedland.org",
7
+ "feedland.com"
8
+ ],
9
+ path: "/",
10
+ params: ["river", "feedurl"]
11
+ });
12
+ export { unwrapFeedland };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFeedly: UrlUnwrapper;
@@ -0,0 +1,28 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { decodeEncodedScheme, getParamTarget } from "../utils.mjs";
4
+ // src/unwraps/feedly.ts
5
+ const feedPathRegex = /^\/i\/(?:subscription|discover\/sources\/search)\/feed(?:\/|%2F)(?<target>.+)$/i;
6
+ const feedFragmentRegex = /^#subscription(?:\/|%2F)feed(?:\/|%2F)(?<target>.+)$/i;
7
+ const hosts = [
8
+ "feedly.com",
9
+ "www.feedly.com",
10
+ "cloud.feedly.com"
11
+ ];
12
+ const paramPath = "/i/subscription/feed";
13
+ const fragmentPaths = [
14
+ "/",
15
+ "/index.html",
16
+ "/home"
17
+ ];
18
+ const unwrapFeedly = (url) => {
19
+ if (!isHostOf(url, hosts)) return;
20
+ if (isAnyOf(url.pathname, paramPath)) return getParamTarget(url, "url");
21
+ const pathMatch = url.pathname.match(feedPathRegex);
22
+ if (pathMatch?.groups) return `${decodeEncodedScheme(pathMatch.groups.target)}${url.search}${url.hash}`;
23
+ if (!isAnyOf(url.pathname, fragmentPaths)) return;
24
+ const fragmentMatch = url.hash.match(feedFragmentRegex);
25
+ if (!fragmentMatch?.groups) return;
26
+ return decodeEncodedScheme(fragmentMatch.groups.target);
27
+ };
28
+ export { unwrapFeedly };
@@ -1,6 +1,6 @@
1
1
  import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/feedsportal.ts
3
- const feedsportalPathRegex = /\/([0-9A-Za-z]{20,})\/story01\.htm$/;
3
+ const feedsportalPathRegex = /\/([0-9A-Za-z]{20,})\/story01\.htm$/i;
4
4
  const feedsportalAlphabet = {
5
5
  A: "0",
6
6
  B: ".",
@@ -1,9 +1,9 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
+ import { hasQueryParam, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getParamTarget } from "../utils.mjs";
3
3
  // src/unwraps/finalsite.ts
4
4
  const paths = ["/forward.cfm", "/cf_news/forward.cfm"];
5
5
  const unwrapFinalsite = (url) => {
6
- if (!paths.includes(url.pathname) || !url.searchParams.has("destkey")) return;
6
+ if (!paths.includes(url.pathname) || !hasQueryParam(url, "destkey")) return;
7
7
  const target = getParamTarget(url, "dest", -1);
8
8
  if (!target || !isHttpUrl(target)) return;
9
9
  return target;
@@ -1,6 +1,7 @@
1
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
1
2
  import { createParamExtractor } from "../utils.mjs";
2
3
  // src/unwraps/firebaseDynamicLinks.ts
3
- const appPathRegex = /^\/app\/[\w-]+$/;
4
+ const appPathRegex = /^\/app\/[\w-]+$/i;
4
5
  const params = ["ofl", "link"];
5
6
  const extractTarget = createParamExtractor({
6
7
  domains: ["app.goo.gl", "page.link"],
@@ -12,7 +13,7 @@ const extractGooGlTarget = createParamExtractor({
12
13
  params
13
14
  });
14
15
  const unwrapFirebaseDynamicLinks = (url) => {
15
- if (url.hostname !== "goo.gl") return extractTarget(url);
16
+ if (!isHostOf(url, "goo.gl")) return extractTarget(url);
16
17
  if (!appPathRegex.test(url.pathname)) return;
17
18
  return extractGooGlTarget(url);
18
19
  };
@@ -1,10 +1,10 @@
1
1
  import { decodePercent, isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
- import { getParamTarget } from "../utils.mjs";
3
2
  import { getPathTarget } from "../pathTarget.mjs";
3
+ import { getParamTarget } from "../utils.mjs";
4
4
  // src/unwraps/firstory.ts
5
- const trackPrefixRegex = /^\/track\/[^/]+\/[^/]+\//;
5
+ const trackPrefixRegex = /^\/track\/[^/]+\/[^/]+\//i;
6
6
  const playPathRegex = /^\/play\.[a-z0-9]+$/i;
7
- const shortPrefixRegex = /^\/p\/[^/]+\//;
7
+ const shortPrefixRegex = /^\/p\/[^/]+\//i;
8
8
  const trackHosts = ["m.cdn.firstory.me", "v1.firstory.me"];
9
9
  const playHosts = [...trackHosts, "backend.endpoints.firstory-709db.cloud.goog"];
10
10
  const unwrapFirstory = (url) => {
@@ -1,8 +1,8 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getPathTarget } from "../pathTarget.mjs";
3
3
  // src/unwraps/fiveByFive.ts
4
- const showPrefixRegex = /^\/d\/[^/]+\//;
5
- const redirectPrefixRegex = /^\/(?:pts\/)?redirect\.mp3\//;
4
+ const showPrefixRegex = /^\/d\/[^/]+\//i;
5
+ const redirectPrefixRegex = /^\/(?:pts\/)?redirect\.mp3\//i;
6
6
  const unwrapFiveByFive = (url) => {
7
7
  if (isHostOf(url, "fdlyr.co")) return getPathTarget(url, showPrefixRegex, "http:");
8
8
  if (!isHostOf(url, ["d.5by5.net", "d.ahoy.co"])) return;
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFlattrSubmit: UrlUnwrapper;
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/flattrSubmit.ts
3
+ const unwrapFlattrSubmit = createParamExtractor({
4
+ hosts: "flattr.com",
5
+ path: "/submit/auto",
6
+ params: ["url"]
7
+ });
8
+ export { unwrapFlattrSubmit };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFlipboardShare: UrlUnwrapper;
@@ -0,0 +1,15 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { getParamTarget } from "../utils.mjs";
4
+ // src/unwraps/flipboardShare.ts
5
+ const pathRegex = /^\/bookmarklet\/popout\/?$/i;
6
+ const hosts = [
7
+ "share.flipboard.com",
8
+ "flipboard.com",
9
+ "www.flipboard.com"
10
+ ];
11
+ const unwrapFlipboardShare = (url) => {
12
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, pathRegex)) return;
13
+ return getParamTarget(url, "url");
14
+ };
15
+ export { unwrapFlipboardShare };
@@ -1,8 +1,9 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
+ import { hasQueryParam, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
3
  import { getParamTarget } from "../utils.mjs";
3
4
  // src/unwraps/fortimail.ts
4
5
  const unwrapFortimail = (url) => {
5
- if (url.pathname !== "/fmlurlsvc/" || !url.searchParams.has("fewReq")) return;
6
+ if (!isAnyOf(url.pathname, "/fmlurlsvc/") || !hasQueryParam(url, "fewReq")) return;
6
7
  const target = getParamTarget(url, "url");
7
8
  if (!target || !isHttpUrl(target)) return;
8
9
  return target;
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapFriendFeed: UrlUnwrapper;