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,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/linkwise.ts
3
- const pathRegex = /^\/z\/\d+-\d+\/CD\d+\/$/;
3
+ const pathRegex = /^\/z\/\d+-\d+\/CD\d+\/$/i;
4
4
  const extractLink = createParamExtractor({
5
5
  hosts: "go.linkwi.se",
6
6
  params: ["lnkurl"]
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapLivedoorReader: UrlUnwrapper;
@@ -0,0 +1,12 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { getPathTarget } from "../pathTarget.mjs";
4
+ import { getParamTarget } from "../utils.mjs";
5
+ // src/unwraps/livedoorReader.ts
6
+ const feedPrefixRegex = /^\/subscribe\/(?=https?:)/i;
7
+ const unwrapLivedoorReader = (url) => {
8
+ if (!isHostOf(url, "reader.livedoor.com")) return;
9
+ if (isAnyOf(url.pathname, "/subscribe/")) return getParamTarget(url, "url");
10
+ return getPathTarget(url, feedPrefixRegex);
11
+ };
12
+ export { unwrapLivedoorReader };
@@ -1,6 +1,6 @@
1
1
  import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/locWebArchive.ts
3
- const pathRegex = /^\/(?:all|legacy|congressional-record)\/\d{14}\/(.+)$/;
3
+ const pathRegex = /^\/(?:all|legacy|congressional-record)\/\d{14}\/(.+)$/i;
4
4
  const unwrapLocWebArchive = (url) => {
5
5
  if (!isHostOf(url, "webarchive.loc.gov")) return;
6
6
  const match = pathRegex.exec(url.pathname);
@@ -1,8 +1,10 @@
1
+ import { getQueryParam } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
1
3
  import { getParamValues } from "../utils.mjs";
2
4
  // src/unwraps/locaweb.ts
3
5
  const idRegex = /^T?H\|(?:\d+|teste)\|\d+\|\d+$/;
4
6
  const unwrapLocaweb = (url) => {
5
- if (url.pathname !== "/registra_clique.php" || !idRegex.test(url.searchParams.get("id") ?? "")) return;
7
+ if (!isAnyOf(url.pathname, "/registra_clique.php") || !idRegex.test(getQueryParam(url, "id") ?? "")) return;
6
8
  return getParamValues(url, "url").at(0);
7
9
  };
8
10
  export { unwrapLocaweb };
@@ -1,7 +1,7 @@
1
1
  import { decodePercent, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/logicboard.ts
4
- const pathRegex = /^(?:\/[^/]+){0,2}\/away\.php$/;
4
+ const pathRegex = /^(?:\/[^/]+){0,2}\/away\.php$/i;
5
5
  const encodedSchemeRegex = /^https?%3A/i;
6
6
  const unwrapLogicboard = (url) => {
7
7
  if (!pathRegex.test(url.pathname)) return;
@@ -1,7 +1,7 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getPathTarget } from "../pathTarget.mjs";
3
3
  // src/unwraps/magellan.ts
4
- const prefixRegex = /^\/(?:e\/p?\d+|track)\//;
4
+ const prefixRegex = /^\/(?:e\/p?\d+|track)\//i;
5
5
  const unwrapMagellan = (url) => {
6
6
  if (!isHostOf(url, "mgln.ai")) return;
7
7
  return getPathTarget(url, prefixRegex);
@@ -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/mail2easy.ts
4
- const pathRegex = /^\/u\/\d+\/\d+\/\d+\/\d+(?:_\d+)?\/(?:[0-9a-f]+\/)?$/;
4
+ const pathRegex = /^\/u\/\d+\/\d+\/\d+\/\d+(?:_\d+)?\/(?:[0-9a-f]+\/)?$/i;
5
5
  const unwrapMail2easy = (url) => {
6
6
  if (!url.hostname.startsWith("d-click.") || !pathRegex.test(url.pathname)) return;
7
7
  const target = getParamTarget(url, "url");
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/mailchimp.ts
3
- const clicksPathRegex = /^\/mctx\/clicks?$/;
3
+ const clicksPathRegex = /^\/mctx\/clicks?$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: /^us\d+\.mailchimp\.com$/,
6
6
  params: ["url"]
@@ -1,15 +1,17 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { decodeBase64Url, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64Url, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
3
+ import { isString } from "../node_modules/trousse/dist/is.mjs";
4
+ import { getParamValues } from "../utils.mjs";
3
5
  // src/unwraps/mailinblack.ts
4
6
  const unwrapMailinblack = (url) => {
5
- if (url.pathname !== "/securelink/") return;
7
+ if (!isAnyOf(url.pathname, "/securelink/")) return;
6
8
  const key = getParamValues(url, "key").at(0);
7
9
  if (!key) return;
8
10
  const json = decodeBase64Url(key);
9
11
  if (!json) return;
10
12
  try {
11
13
  const target = JSON.parse(json)?.url;
12
- if (typeof target === "string" && isHttpUrl(target)) return target;
14
+ if (isString(target) && isHttpUrl(target)) return target;
13
15
  } catch {}
14
16
  };
15
17
  export { unwrapMailinblack };
@@ -1,6 +1,6 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/mailstat.ts
3
- const clickPathRegex = /^\/tr\/(?:t\/[a-z0-9]+\/[a-z0-9]+|t2\/[a-z0-9]+\/[a-z0-9]+\/\d+)\/(https?:.*)$/;
3
+ const clickPathRegex = /^\/tr\/(?:t\/[a-z0-9]+\/[a-z0-9]+|t2\/[a-z0-9]+\/[a-z0-9]+\/\d+)\/(https?:.*)$/i;
4
4
  const unwrapMailstat = (url) => {
5
5
  if (!isHostOf(url, "mailstat.us")) return;
6
6
  const match = clickPathRegex.exec(url.pathname);
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/mailtrack.ts
3
- const trackPathRegex = /^\/(?:(?:(?:trace\/)?link|l)\/[^/]+)?$/;
3
+ const trackPathRegex = /^\/(?:(?:(?:trace\/)?link|l)\/[^/]+)?$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: "mailtrack.io",
6
6
  params: ["url"]
@@ -1,8 +1,8 @@
1
- import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
- import { createParamExtractor, decodeBase64Url, getParamValues } from "../utils.mjs";
1
+ import { decodeBase64Url, isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { createParamExtractor, getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/mandrill.ts
4
4
  const hosts = ["go.mnsvc.com", "mandrillapp.com"];
5
- const clickPathRegex = /^\/track\/click\/\d+\/[^/]+$/;
5
+ const clickPathRegex = /^\/track\/click\/\d+\/[^/]+$/i;
6
6
  const extractClickPhp = createParamExtractor({
7
7
  hosts,
8
8
  path: "/track/click.php",
@@ -1,14 +1,14 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/medium.ts
3
- const redirectPathRegex = /^\/r\/?$/;
4
- const globalIdentityPathRegex = /^\/m\/global-identity(?:-2)?$/;
5
- const mediumHosts = ["medium.com", "gen.medium.com"];
3
+ const redirectPathRegex = /^\/r\/?$/i;
4
+ const globalIdentityPathRegex = /^\/m\/global-identity(?:-2)?$/i;
5
+ const hosts = ["medium.com", "gen.medium.com"];
6
6
  const extractRedirectTarget = createParamExtractor({
7
- hosts: mediumHosts,
7
+ hosts,
8
8
  params: ["url"]
9
9
  });
10
10
  const extractGlobalIdentityTarget = createParamExtractor({
11
- hosts: mediumHosts,
11
+ hosts,
12
12
  params: ["redirectUrl"]
13
13
  });
14
14
  const unwrapMedium = (url) => {
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapMeneameSubmit: 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/meneameSubmit.ts
5
+ const pathRegex = /^\/submit(?:\.php)?\/?$/i;
6
+ const hosts = ["meneame.net", "www.meneame.net"];
7
+ const unwrapMeneameSubmit = (url) => {
8
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, pathRegex)) return;
9
+ return getParamTarget(url, "url");
10
+ };
11
+ export { unwrapMeneameSubmit };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapMeweShare: UrlUnwrapper;
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/meweShare.ts
3
+ const unwrapMeweShare = createParamExtractor({
4
+ hosts: "mewe.com",
5
+ path: "/share",
6
+ params: ["link"]
7
+ });
8
+ export { unwrapMeweShare };
@@ -2,7 +2,7 @@ import { getParamTarget } from "../utils.mjs";
2
2
  // src/unwraps/mimecast.ts
3
3
  const mimecastHostRegex = /^protect-[a-z]{2,3}\.mimecast\.com$/;
4
4
  const mimecastProtectHostRegex = /^url\.(?:au|ca|de|jer|uk|us|usb|za)\.m\.mimecastprotect\.com$/;
5
- const mimecastPathRegex = /^\/s\/[^/]+$/;
5
+ const mimecastPathRegex = /^\/s\/[^/]+$/i;
6
6
  const unwrapMimecast = (url) => {
7
7
  if (!(mimecastHostRegex.test(url.hostname) || mimecastProtectHostRegex.test(url.hostname)) || !mimecastPathRegex.test(url.pathname)) return;
8
8
  return getParamTarget(url, "url");
@@ -1,7 +1,7 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getPathTarget } from "../pathTarget.mjs";
3
3
  // src/unwraps/ministryCloud.ts
4
- const mediaPrefixRegex = /^\/r\/[^/]+\//;
4
+ const mediaPrefixRegex = /^\/r\/[^/]+\//i;
5
5
  const unwrapMinistryCloud = (url) => {
6
6
  if (!isHostOf(url, "historian.ministrycloud.com")) return;
7
7
  return getPathTarget(url, mediaPrefixRegex, "http:");
@@ -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/mintDownloads.ts
4
- const pathRegex = /^\/[^/]+\/pepper\/orderedlist\/downloads\/download\.php$/;
4
+ const pathRegex = /^\/[^/]+\/pepper\/orderedlist\/downloads\/download\.php$/i;
5
5
  const unwrapMintDownloads = (url) => {
6
6
  if (!pathRegex.test(url.pathname)) return;
7
7
  const target = getParamTarget(url, "file");
@@ -1,8 +1,9 @@
1
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
+ import { getQueryParam, 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/mintFeeder.ts
4
5
  const unwrapMintFeeder = (url) => {
5
- if (url.pathname !== "/feeder/" || url.searchParams.get("FeederAction") !== "clicked") return;
6
+ if (!isAnyOf(url.pathname, "/feeder/") || getQueryParam(url, "FeederAction") !== "clicked") return;
6
7
  const target = getParamTarget(url, "seed");
7
8
  if (target && isHttpUrl(target)) return target;
8
9
  };
@@ -1,12 +1,14 @@
1
1
  import { decodePercent, isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
3
  // src/unwraps/mohtwize.ts
3
- const carrierPrefix = "?fileURL=/";
4
+ const carrierPrefixRegex = /^\?fileURL=\//i;
4
5
  const schemeRegex = /^https?:/i;
5
6
  const encodedSchemeRegex = /^https?%3A/i;
6
7
  const unwrapMohtwize = (url) => {
7
- if (!isHostOf(url, "stats.mohtwize.net") || url.pathname !== "/redirect.mp3") return;
8
- if (!url.search.startsWith(carrierPrefix)) return;
9
- let target = `${url.search.slice(10)}${url.hash}`;
8
+ if (!isHostOf(url, "stats.mohtwize.net") || !isAnyOf(url.pathname, "/redirect.mp3")) return;
9
+ const prefix = url.search.match(carrierPrefixRegex);
10
+ if (!prefix) return;
11
+ let target = `${url.search.slice(prefix[0].length)}${url.hash}`;
10
12
  if (encodedSchemeRegex.test(target)) target = decodePercent(target);
11
13
  if (!target) return;
12
14
  if (schemeRegex.test(target)) return target;
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapMorss: UrlUnwrapper;
@@ -0,0 +1,13 @@
1
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
+ import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
3
+ import { getPathTarget } from "../pathTarget.mjs";
4
+ // src/unwraps/morss.ts
5
+ const optionsRegex = /^\/:(?<options>[^/]*)\//;
6
+ const targetPrefixRegex = /^\/(?::[^/]*\/)?(?!:)/;
7
+ const hosts = ["morss.it", "www.morss.it"];
8
+ const unwrapMorss = (url) => {
9
+ if (!isHostOf(url, hosts)) return;
10
+ if ((url.pathname.match(optionsRegex)?.groups?.options ?? "").split(":").some((option) => isAnyOf(option.split("=")[0], "items"))) return;
11
+ return getPathTarget(url, targetPrefixRegex, "http:");
12
+ };
13
+ export { unwrapMorss };
@@ -1,13 +1,13 @@
1
1
  import { decodePercent, isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/mozillaOutgoing.ts
3
- const pathRegex = /^\/v1\/[0-9a-f]{64}\/(.+)$/;
4
- const mozillaOutgoingHosts = [
3
+ const pathRegex = /^\/v1\/[0-9a-f]{64}\/(.+)$/i;
4
+ const hosts = [
5
5
  "outgoing.mozilla.org",
6
6
  "outgoing.prod.mozaws.net",
7
7
  "prod.outgoing.prod.webservices.mozgcp.net"
8
8
  ];
9
9
  const unwrapMozillaOutgoing = (url) => {
10
- if (!isHostOf(url, mozillaOutgoingHosts)) return;
10
+ if (!isHostOf(url, hosts)) return;
11
11
  const match = url.pathname.match(pathRegex);
12
12
  if (!match) return;
13
13
  return decodePercent(match[1]);
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapMyAolFeeds: UrlUnwrapper;
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/myAolFeeds.ts
3
+ const unwrapMyAolFeeds = createParamExtractor({
4
+ hosts: ["feeds.my.aol.com"],
5
+ path: "/add.jsp",
6
+ params: ["url"]
7
+ });
8
+ export { unwrapMyAolFeeds };
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/narrativ.ts
3
- const redirectPathRegex = /^\/api\/v\d+\/(?:client_)?redirect\/?$/;
3
+ const redirectPathRegex = /^\/api\/v\d+\/(?:client_)?redirect\/?$/i;
4
4
  const linkPaths = ["/link", "/link/"];
5
5
  const extractTarget = createParamExtractor({
6
6
  hosts: [
@@ -1,6 +1,6 @@
1
1
  import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/natlibNz.ts
3
- const pathRegex = /^\/webarchive\/\d{14}\/(.+)$/;
3
+ const pathRegex = /^\/webarchive\/\d{14}\/(.+)$/i;
4
4
  const unwrapNatlibNz = (url) => {
5
5
  if (!isHostOf(url, "ndhadeliver.natlib.govt.nz")) return;
6
6
  const match = pathRegex.exec(url.pathname);
@@ -1,8 +1,9 @@
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 { getParamTarget } from "../utils.mjs";
3
4
  // src/unwraps/ncls.ts
4
5
  const unwrapNcls = (url) => {
5
- if (!isHostOf(url, "ncls1.com") || url.pathname !== "/irk") return;
6
+ if (!isHostOf(url, "ncls1.com") || !isAnyOf(url.pathname, "/irk")) return;
6
7
  const target = getParamTarget(url, "d", -1);
7
8
  if (!target || !isHttpUrl(target)) return;
8
9
  return target;
@@ -1,7 +1,7 @@
1
1
  import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/ndlWarp.ts
3
- const webPathRegex = /^\/web\/\d{14}\/(.+)$/;
4
- const pidPathRegex = /^\/info:ndljp\/pid\/\d+\/(.+)$/;
3
+ const webPathRegex = /^\/web\/\d{14}\/(.+)$/i;
4
+ const pidPathRegex = /^\/info:ndljp\/pid\/\d+\/(.+)$/i;
5
5
  const schemeRegex = /^[a-z][a-z\d+.-]*:/i;
6
6
  const unwrapNdlWarp = (url) => {
7
7
  if (!isHostOf(url, ["warp.ndl.go.jp", "warp.da.ndl.go.jp"])) return;
@@ -1,7 +1,7 @@
1
1
  import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { createParamExtractor, getParamValues } from "../utils.mjs";
3
3
  // src/unwraps/netaffiliation.ts
4
- const merchantQueryRegex = /^\?P[0-9A-F]{13,16}&/;
4
+ const merchantQueryRegex = /^\?P[0-9A-F]{13,16}&/i;
5
5
  const extractTracker = createParamExtractor({
6
6
  hosts: "action.metaffiliation.com",
7
7
  path: "/trk.php",
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapNetvibes: UrlUnwrapper;
@@ -0,0 +1,7 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ const unwrapNetvibes = createParamExtractor({
3
+ hosts: ["netvibes.com", "www.netvibes.com"],
4
+ path: "/subscribe.php",
5
+ params: ["url"]
6
+ });
7
+ export { unwrapNetvibes };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapNewsGator: UrlUnwrapper;
@@ -0,0 +1,17 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/newsGator.ts
3
+ const hosts = ["newsgator.com", "www.newsgator.com"];
4
+ const unwrapSubext = createParamExtractor({
5
+ hosts,
6
+ path: "/ngs/subscriber/subext.aspx",
7
+ params: ["url"]
8
+ });
9
+ const unwrapSubfext = createParamExtractor({
10
+ hosts,
11
+ path: "/ngs/subscriber/subfext.aspx",
12
+ params: ["url"]
13
+ });
14
+ const unwrapNewsGator = (url) => {
15
+ return unwrapSubext(url) ?? unwrapSubfext(url);
16
+ };
17
+ export { unwrapNewsGator };
@@ -1,6 +1,6 @@
1
+ import { decodeBase64Url, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
1
2
  import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
2
- import { isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
3
- import { decodeBase64Url, getParamValues } from "../utils.mjs";
3
+ import { getParamValues } from "../utils.mjs";
4
4
  // src/unwraps/newswire.ts
5
5
  const hosts = [
6
6
  "stats.newswire.com",
@@ -8,7 +8,7 @@ const hosts = [
8
8
  "stats.mediadboutreach.com"
9
9
  ];
10
10
  const unwrapNewswire = (url) => {
11
- if (!isAnyOf(url.hostname, hosts) || url.pathname !== "/x/html") return;
11
+ if (!isAnyOf(url.hostname, hosts) || !isAnyOf(url.pathname, "/x/html")) return;
12
12
  const value = getParamValues(url, "final").at(0);
13
13
  if (!value) return;
14
14
  const decoded = decodeBase64Url(value);
@@ -1,6 +1,6 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/nicoMs.ts
3
- const nicoMsRegex = /^\/((?:sm|nm|so|im|lv)\w+)$/;
3
+ const nicoMsRegex = /^\/((?:sm|nm|so|im|lv)\w+)$/i;
4
4
  const unwrapNicoMs = (url) => {
5
5
  if (!isHostOf(url, "nico.ms")) return;
6
6
  const match = url.pathname.match(nicoMsRegex);
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/nimble.ts
3
- const clickPathRegex = /^\/api\/v1\/messages\/tracking\/click\/[0-9a-f]{24}\/[0-9a-f]{24}\/[0-9a-f]{24}\/$/;
3
+ const clickPathRegex = /^\/api\/v1\/messages\/tracking\/click\/[0-9a-f]{24}\/[0-9a-f]{24}\/[0-9a-f]{24}\/$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: "app.nimble.com",
6
6
  params: ["redirect"]
@@ -1,8 +1,8 @@
1
1
  import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  // src/unwraps/nlaWebarchive.ts
3
- const pathRegex = /^\/(?:awa|gov|wayback)\/\d{14}(?:mp_)?\/(.+)$/;
4
- const pandoraPathRegex = /^\/nph-wb\/\d{14}\/(.+)$/;
5
- const pandoraTitlePathRegex = /^\/pan\/\d+\/\d{8}(?:-\d{4})?\/([^/]*\..*)$/;
3
+ const pathRegex = /^\/(?:awa|gov|wayback)\/\d{14}(?:mp_)?\/(.+)$/i;
4
+ const pandoraPathRegex = /^\/nph-wb\/\d{14}\/(.+)$/i;
5
+ const pandoraTitlePathRegex = /^\/pan\/\d+\/\d{8}(?:-\d{4})?\/([^/]*\..*)$/i;
6
6
  const unwrapNlaWebarchive = (url) => {
7
7
  let match = null;
8
8
  let scheme = "";
@@ -1,3 +1,4 @@
1
+ import { getQueryParam } from "../node_modules/trousse/dist/urls.mjs";
1
2
  import { createParamExtractor } from "../utils.mjs";
2
3
  // src/unwraps/okRu.ts
3
4
  const extractLogExternalLink = createParamExtractor({
@@ -16,7 +17,7 @@ const extractOutLinkWarningTarget = createParamExtractor({
16
17
  params: ["st.rfn"]
17
18
  });
18
19
  const unwrapOkRu = (url) => {
19
- if (url.searchParams.get("cmd") === "logExternal") return extractLogExternalLink(url);
20
- if (url.searchParams.get("st.cmd") === "outLinkWarning") return extractOutLinkWarningTarget(url);
20
+ if (getQueryParam(url, "cmd") === "logExternal") return extractLogExternalLink(url);
21
+ if (getQueryParam(url, "st.cmd") === "outLinkWarning") return extractOutLinkWarningTarget(url);
21
22
  };
22
23
  export { unwrapOkRu };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapOkShare: UrlUnwrapper;
@@ -0,0 +1,23 @@
1
+ import { getQueryParam, isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { isAnyOf } from "../node_modules/trousse/dist/matching.mjs";
3
+ import { getParamTarget } from "../utils.mjs";
4
+ // src/unwraps/okShare.ts
5
+ const hosts = [
6
+ "odnoklassniki.ru",
7
+ "www.odnoklassniki.ru",
8
+ "ok.ru",
9
+ "www.ok.ru"
10
+ ];
11
+ const connectHosts = ["connect.ok.ru"];
12
+ const widgetCommands = ["WidgetShare", "WidgetSharePreview"];
13
+ const unwrapOkShare = (url) => {
14
+ const command = getQueryParam(url, "st.cmd");
15
+ if (isHostOf(url, hosts)) {
16
+ if (isAnyOf(url.pathname, "/dk") && isAnyOf(command, "addShare")) return getParamTarget(url, "st._surl");
17
+ return;
18
+ }
19
+ if (!isHostOf(url, connectHosts)) return;
20
+ if (isAnyOf(url.pathname, "/offer")) return getParamTarget(url, "url");
21
+ if (isAnyOf(url.pathname, "/dk") && isAnyOf(command, widgetCommands)) return getParamTarget(url, "st.shareUrl");
22
+ };
23
+ export { unwrapOkShare };
@@ -1,7 +1,7 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getPathTarget } from "../pathTarget.mjs";
3
3
  // src/unwraps/op3.ts
4
- const episodePrefixRegex = /^\/e(?:,[^/]*)?\//;
4
+ const episodePrefixRegex = /^\/e(?:,[^/]*)?\//i;
5
5
  const unwrapOp3 = (url) => {
6
6
  if (!isHostOf(url, "op3.dev")) return;
7
7
  return getPathTarget(url, episodePrefixRegex);
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/outlookSafelinks.ts
3
- const linkPathRegex = /^\/(?:ap\/[a-z]+-[0-9a-f]+\/)?$/;
3
+ const linkPathRegex = /^\/(?:ap\/[a-z]+-[0-9a-f]+\/)?$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: /(?:\.safelinks\.protection\.outlook\.com|^usg\d{2}\.safelinks\.protection\.office365\.us)$/,
6
6
  params: ["url"]
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapPageflakes: UrlUnwrapper;
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/pageflakes.ts
3
+ const unwrapPageflakes = createParamExtractor({
4
+ hosts: ["pageflakes.com", "www.pageflakes.com"],
5
+ path: "/subscribe.aspx",
6
+ params: ["url"]
7
+ });
8
+ export { unwrapPageflakes };
@@ -2,8 +2,8 @@ import { isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getParamTarget } from "../utils.mjs";
3
3
  // src/unwraps/pagefreezer.ts
4
4
  const publicHostRegex = /^public\d+\.pagefreezer\.com$/;
5
- const publicPathRegex = /^\/(?:browse|content)\/[^/]+\/\d{2}-\d{2}-\d{4}T\d{2}:\d{2}\/(.+)$/;
6
- const browsePathRegex = /^\/en-US\/wa\/browse\/[0-9a-f-]{36}$/;
5
+ const publicPathRegex = /^\/(?:browse|content)\/[^/]+\/\d{2}-\d{2}-\d{4}T\d{2}:\d{2}\/(.+)$/i;
6
+ const browsePathRegex = /^\/en-US\/wa\/browse\/[0-9a-f-]{36}$/i;
7
7
  const unwrapPagefreezer = (url) => {
8
8
  if (publicHostRegex.test(url.hostname)) {
9
9
  const match = publicPathRegex.exec(url.pathname);
@@ -1,8 +1,8 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/partnerAds.ts
3
3
  const hostRegex = /(?:^|\.)partner-ads\.com$/;
4
- const clickPathRegex = /^\/(?:dk\/klikbanner\.php)?$/;
5
- const deepLinkPathRegex = /^\/dk\/c\/p\/\d+\/b\/\d+\/(?:u\d\/[^/]+\/)*(https?:\/\/.+)$/;
4
+ const clickPathRegex = /^\/(?:dk\/klikbanner\.php)?$/i;
5
+ const deepLinkPathRegex = /^\/dk\/c\/p\/\d+\/b\/\d+\/(?:u\d\/[^/]+\/)*(https?:\/\/.+)$/i;
6
6
  const extractTarget = createParamExtractor({
7
7
  hosts: hostRegex,
8
8
  params: ["htmlurl"]
@@ -1,7 +1,7 @@
1
1
  import { isHostOf } from "../node_modules/trousse/dist/urls.mjs";
2
2
  import { getPathTarget } from "../pathTarget.mjs";
3
3
  // src/unwraps/pbs.ts
4
- const redirPrefixRegex = /^\/(?:[\w-]+\/)+redir\/(?=https?:\/)/;
4
+ const redirPrefixRegex = /^\/(?:[\w-]+\/)+redir\/(?=https?:\/)/i;
5
5
  const unwrapPbs = (url) => {
6
6
  if (!isHostOf(url, "www.pbs.org")) return;
7
7
  return getPathTarget(url, redirPrefixRegex);
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapPinterestPin: UrlUnwrapper;