urlpurify 2.2.1 → 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 (370) hide show
  1. package/README.md +96 -45
  2. package/dist/clean.d.mts +1 -0
  3. package/dist/clean.mjs +56 -19
  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 +22 -20
  15. package/dist/node_modules/trousse/dist/urls.mjs +186 -53
  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 +2 -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 +2 -1
  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/checkPointHarmony.mjs +2 -2
  77. package/dist/unwraps/cjNetwork.mjs +3 -3
  78. package/dist/unwraps/claritas.mjs +2 -2
  79. package/dist/unwraps/cleverbridge.mjs +1 -1
  80. package/dist/unwraps/cloudhq.mjs +1 -1
  81. package/dist/unwraps/cloze.mjs +1 -1
  82. package/dist/unwraps/cohst.mjs +1 -1
  83. package/dist/unwraps/contactMonkey.mjs +3 -2
  84. package/dist/unwraps/convertiser.mjs +1 -1
  85. package/dist/unwraps/cse360.mjs +1 -1
  86. package/dist/unwraps/dasBlog.mjs +1 -1
  87. package/dist/unwraps/datalifeEngine.mjs +5 -4
  88. package/dist/unwraps/delicious.d.mts +2 -0
  89. package/dist/unwraps/delicious.mjs +15 -0
  90. package/dist/unwraps/deployer.mjs +2 -2
  91. package/dist/unwraps/derefMail.mjs +4 -3
  92. package/dist/unwraps/deviantartOutgoing.mjs +1 -1
  93. package/dist/unwraps/diasporaShare.d.mts +2 -0
  94. package/dist/unwraps/diasporaShare.mjs +16 -0
  95. package/dist/unwraps/diggSubmit.d.mts +2 -0
  96. package/dist/unwraps/diggSubmit.mjs +11 -0
  97. package/dist/unwraps/digikala.mjs +3 -3
  98. package/dist/unwraps/diigoPost.d.mts +2 -0
  99. package/dist/unwraps/diigoPost.mjs +12 -0
  100. package/dist/unwraps/disqus.mjs +2 -1
  101. package/dist/unwraps/dstats.mjs +2 -2
  102. package/dist/unwraps/eClick.mjs +1 -1
  103. package/dist/unwraps/easyMarketing.mjs +3 -3
  104. package/dist/unwraps/ebayRover.mjs +1 -1
  105. package/dist/unwraps/ebuzzing.mjs +1 -1
  106. package/dist/unwraps/edgepilot.mjs +1 -1
  107. package/dist/unwraps/effiliation.mjs +1 -1
  108. package/dist/unwraps/elasticEmail.mjs +2 -1
  109. package/dist/unwraps/epn.mjs +1 -1
  110. package/dist/unwraps/eulerian.mjs +1 -1
  111. package/dist/unwraps/evernoteClip.d.mts +2 -0
  112. package/dist/unwraps/evernoteClip.mjs +8 -0
  113. package/dist/unwraps/exciteTranslate.mjs +1 -1
  114. package/dist/unwraps/facebook.mjs +1 -1
  115. package/dist/unwraps/facebookShare.d.mts +2 -0
  116. package/dist/unwraps/facebookShare.mjs +25 -0
  117. package/dist/unwraps/feed2js.d.mts +2 -0
  118. package/dist/unwraps/feed2js.mjs +16 -0
  119. package/dist/unwraps/feedStatistics.mjs +2 -2
  120. package/dist/unwraps/feedValidator.d.mts +2 -0
  121. package/dist/unwraps/feedValidator.mjs +12 -0
  122. package/dist/unwraps/feedblitz.mjs +1 -1
  123. package/dist/unwraps/feedland.d.mts +2 -0
  124. package/dist/unwraps/feedland.mjs +12 -0
  125. package/dist/unwraps/feedly.d.mts +2 -0
  126. package/dist/unwraps/feedly.mjs +28 -0
  127. package/dist/unwraps/feedsportal.mjs +1 -1
  128. package/dist/unwraps/firebaseDynamicLinks.mjs +1 -1
  129. package/dist/unwraps/firstory.mjs +3 -3
  130. package/dist/unwraps/fiveByFive.mjs +2 -2
  131. package/dist/unwraps/flattrSubmit.d.mts +2 -0
  132. package/dist/unwraps/flattrSubmit.mjs +8 -0
  133. package/dist/unwraps/flipboardShare.d.mts +2 -0
  134. package/dist/unwraps/flipboardShare.mjs +15 -0
  135. package/dist/unwraps/fortimail.mjs +2 -1
  136. package/dist/unwraps/friendFeed.d.mts +2 -0
  137. package/dist/unwraps/friendFeed.mjs +18 -0
  138. package/dist/unwraps/gabCompose.d.mts +2 -0
  139. package/dist/unwraps/gabCompose.mjs +8 -0
  140. package/dist/unwraps/genericCarrier.d.mts +2 -0
  141. package/dist/unwraps/genericCarrier.mjs +31 -0
  142. package/dist/unwraps/gfnLinkProxy.mjs +3 -3
  143. package/dist/unwraps/godcaster.mjs +2 -2
  144. package/dist/unwraps/googleAmpViewer.mjs +2 -2
  145. package/dist/unwraps/googleBookmarks.d.mts +2 -0
  146. package/dist/unwraps/googleBookmarks.mjs +8 -0
  147. package/dist/unwraps/googleBuzz.d.mts +2 -0
  148. package/dist/unwraps/googleBuzz.mjs +8 -0
  149. package/dist/unwraps/googleNewsModern.mjs +2 -3
  150. package/dist/unwraps/googlePlusShare.d.mts +2 -0
  151. package/dist/unwraps/googlePlusShare.mjs +11 -0
  152. package/dist/unwraps/googlePodcasts.d.mts +2 -0
  153. package/dist/unwraps/googlePodcasts.mjs +27 -0
  154. package/dist/unwraps/googleReader.d.mts +2 -0
  155. package/dist/unwraps/googleReader.mjs +20 -0
  156. package/dist/unwraps/googleTranslate.mjs +5 -5
  157. package/dist/unwraps/govdelivery.mjs +3 -2
  158. package/dist/unwraps/hackerNewsSubmit.d.mts +2 -0
  159. package/dist/unwraps/hackerNewsSubmit.mjs +8 -0
  160. package/dist/unwraps/hasoffers.mjs +2 -1
  161. package/dist/unwraps/hatenaBookmark.d.mts +2 -0
  162. package/dist/unwraps/hatenaBookmark.mjs +22 -0
  163. package/dist/unwraps/hirkereso.mjs +1 -1
  164. package/dist/unwraps/horde.mjs +1 -1
  165. package/dist/unwraps/hubspotSidekick.mjs +1 -1
  166. package/dist/unwraps/impact.mjs +2 -2
  167. package/dist/unwraps/indexHu.mjs +2 -1
  168. package/dist/unwraps/inoreader.d.mts +2 -0
  169. package/dist/unwraps/inoreader.mjs +22 -0
  170. package/dist/unwraps/instapaperSave.d.mts +2 -0
  171. package/dist/unwraps/instapaperSave.mjs +11 -0
  172. package/dist/unwraps/invisionNoExternalLinks.mjs +1 -1
  173. package/dist/unwraps/involveAsia.mjs +1 -1
  174. package/dist/unwraps/jive.mjs +2 -1
  175. package/dist/unwraps/klook.mjs +2 -1
  176. package/dist/unwraps/lazada.mjs +1 -1
  177. package/dist/unwraps/letscast.mjs +1 -1
  178. package/dist/unwraps/lineShare.d.mts +2 -0
  179. package/dist/unwraps/lineShare.mjs +25 -0
  180. package/dist/unwraps/linkA.mjs +1 -1
  181. package/dist/unwraps/linkedin.mjs +1 -1
  182. package/dist/unwraps/linkedinShare.d.mts +2 -0
  183. package/dist/unwraps/linkedinShare.mjs +15 -0
  184. package/dist/unwraps/linksynergy.mjs +2 -2
  185. package/dist/unwraps/linktrust.mjs +3 -3
  186. package/dist/unwraps/linkwise.mjs +1 -1
  187. package/dist/unwraps/livedoorReader.d.mts +2 -0
  188. package/dist/unwraps/livedoorReader.mjs +12 -0
  189. package/dist/unwraps/locWebArchive.mjs +1 -1
  190. package/dist/unwraps/locaweb.mjs +2 -1
  191. package/dist/unwraps/logicboard.mjs +1 -1
  192. package/dist/unwraps/magellan.mjs +1 -1
  193. package/dist/unwraps/mail2easy.mjs +1 -1
  194. package/dist/unwraps/mailchimp.mjs +1 -1
  195. package/dist/unwraps/mailinblack.mjs +6 -4
  196. package/dist/unwraps/mailstat.mjs +1 -1
  197. package/dist/unwraps/mailtrack.mjs +1 -1
  198. package/dist/unwraps/mandrill.mjs +3 -3
  199. package/dist/unwraps/medium.mjs +5 -5
  200. package/dist/unwraps/meneameSubmit.d.mts +2 -0
  201. package/dist/unwraps/meneameSubmit.mjs +11 -0
  202. package/dist/unwraps/meweShare.d.mts +2 -0
  203. package/dist/unwraps/meweShare.mjs +8 -0
  204. package/dist/unwraps/mimecast.mjs +1 -1
  205. package/dist/unwraps/ministryCloud.mjs +1 -1
  206. package/dist/unwraps/mintDownloads.mjs +1 -1
  207. package/dist/unwraps/mintFeeder.mjs +2 -1
  208. package/dist/unwraps/mohtwize.mjs +6 -4
  209. package/dist/unwraps/morss.d.mts +2 -0
  210. package/dist/unwraps/morss.mjs +13 -0
  211. package/dist/unwraps/mozillaOutgoing.mjs +3 -3
  212. package/dist/unwraps/myAolFeeds.d.mts +2 -0
  213. package/dist/unwraps/myAolFeeds.mjs +8 -0
  214. package/dist/unwraps/narrativ.mjs +1 -1
  215. package/dist/unwraps/natlibNz.mjs +1 -1
  216. package/dist/unwraps/ncls.mjs +2 -1
  217. package/dist/unwraps/ndlWarp.mjs +2 -2
  218. package/dist/unwraps/netaffiliation.mjs +1 -1
  219. package/dist/unwraps/netvibes.d.mts +2 -0
  220. package/dist/unwraps/netvibes.mjs +7 -0
  221. package/dist/unwraps/newsGator.d.mts +2 -0
  222. package/dist/unwraps/newsGator.mjs +17 -0
  223. package/dist/unwraps/newswire.mjs +3 -3
  224. package/dist/unwraps/nicoMs.mjs +1 -1
  225. package/dist/unwraps/nimble.mjs +1 -1
  226. package/dist/unwraps/nlaWebarchive.mjs +3 -3
  227. package/dist/unwraps/okShare.d.mts +2 -0
  228. package/dist/unwraps/okShare.mjs +23 -0
  229. package/dist/unwraps/op3.mjs +1 -1
  230. package/dist/unwraps/outlookSafelinks.mjs +1 -1
  231. package/dist/unwraps/pageflakes.d.mts +2 -0
  232. package/dist/unwraps/pageflakes.mjs +8 -0
  233. package/dist/unwraps/pagefreezer.mjs +2 -2
  234. package/dist/unwraps/partnerAds.mjs +2 -2
  235. package/dist/unwraps/pbs.mjs +1 -1
  236. package/dist/unwraps/pinterestPin.d.mts +2 -0
  237. package/dist/unwraps/pinterestPin.mjs +85 -0
  238. package/dist/unwraps/pipedrive.mjs +1 -1
  239. package/dist/unwraps/playerFm.d.mts +2 -0
  240. package/dist/unwraps/playerFm.mjs +16 -0
  241. package/dist/unwraps/pocketSave.d.mts +2 -0
  242. package/dist/unwraps/pocketSave.mjs +15 -0
  243. package/dist/unwraps/podcastAddict.d.mts +2 -0
  244. package/dist/unwraps/podcastAddict.mjs +14 -0
  245. package/dist/unwraps/podcastReady.d.mts +2 -0
  246. package/dist/unwraps/podcastReady.mjs +8 -0
  247. package/dist/unwraps/podcorn.mjs +1 -1
  248. package/dist/unwraps/podkite.mjs +1 -1
  249. package/dist/unwraps/podscribe.mjs +1 -1
  250. package/dist/unwraps/podsights.mjs +1 -1
  251. package/dist/unwraps/podup.mjs +2 -3
  252. package/dist/unwraps/postAffiliatePro.mjs +1 -1
  253. package/dist/unwraps/postmark.mjs +1 -1
  254. package/dist/unwraps/prNewswire.mjs +2 -2
  255. package/dist/unwraps/prezly.mjs +1 -1
  256. package/dist/unwraps/proofpointV3.mjs +3 -3
  257. package/dist/unwraps/prweb.mjs +2 -2
  258. package/dist/unwraps/prxPlayer.d.mts +2 -0
  259. package/dist/unwraps/prxPlayer.mjs +16 -0
  260. package/dist/unwraps/qqMailReader.d.mts +2 -0
  261. package/dist/unwraps/qqMailReader.mjs +8 -0
  262. package/dist/unwraps/qualityClick.mjs +2 -1
  263. package/dist/unwraps/qzoneShare.d.mts +2 -0
  264. package/dist/unwraps/qzoneShare.mjs +8 -0
  265. package/dist/unwraps/rakutenAffiliate.mjs +3 -3
  266. package/dist/unwraps/redditOut.mjs +1 -1
  267. package/dist/unwraps/redditSubmit.d.mts +2 -0
  268. package/dist/unwraps/redditSubmit.mjs +19 -0
  269. package/dist/unwraps/researchgate.mjs +1 -1
  270. package/dist/unwraps/reviveAdserver.mjs +2 -2
  271. package/dist/unwraps/rssBoardValidator.d.mts +2 -0
  272. package/dist/unwraps/rssBoardValidator.mjs +8 -0
  273. package/dist/unwraps/salesdoubler.mjs +1 -1
  274. package/dist/unwraps/saleshandy.mjs +1 -1
  275. package/dist/unwraps/segmentfault.mjs +2 -2
  276. package/dist/unwraps/serendipity.mjs +3 -3
  277. package/dist/unwraps/shareaholic.d.mts +2 -0
  278. package/dist/unwraps/shareaholic.mjs +12 -0
  279. package/dist/unwraps/slashdotBookmark.d.mts +2 -0
  280. package/dist/unwraps/slashdotBookmark.mjs +11 -0
  281. package/dist/unwraps/smartredirect.mjs +1 -1
  282. package/dist/unwraps/sophos.mjs +2 -2
  283. package/dist/unwraps/soundOn.mjs +1 -1
  284. package/dist/unwraps/stay22.mjs +1 -1
  285. package/dist/unwraps/streamsend.mjs +1 -1
  286. package/dist/unwraps/stumbleuponSubmit.d.mts +2 -0
  287. package/dist/unwraps/stumbleuponSubmit.mjs +14 -0
  288. package/dist/unwraps/subscribeByEmail.d.mts +2 -0
  289. package/dist/unwraps/subscribeByEmail.mjs +10 -0
  290. package/dist/unwraps/subscribeOnAndroid.d.mts +2 -0
  291. package/dist/unwraps/subscribeOnAndroid.mjs +10 -0
  292. package/dist/unwraps/subscribeRu.mjs +1 -1
  293. package/dist/unwraps/substack.mjs +2 -3
  294. package/dist/unwraps/surly.mjs +1 -1
  295. package/dist/unwraps/swap.mjs +1 -1
  296. package/dist/unwraps/symantecClicktime.mjs +1 -1
  297. package/dist/unwraps/symplicity.mjs +1 -1
  298. package/dist/unwraps/teacup.mjs +1 -1
  299. package/dist/unwraps/technoratiFaves.d.mts +2 -0
  300. package/dist/unwraps/technoratiFaves.mjs +10 -0
  301. package/dist/unwraps/telegramShare.d.mts +2 -0
  302. package/dist/unwraps/telegramShare.mjs +18 -0
  303. package/dist/unwraps/theRegister.mjs +1 -1
  304. package/dist/unwraps/threadsIntent.d.mts +2 -0
  305. package/dist/unwraps/threadsIntent.mjs +16 -0
  306. package/dist/unwraps/toucharcade.mjs +1 -1
  307. package/dist/unwraps/tracdelight.mjs +1 -1
  308. package/dist/unwraps/trxHub.mjs +1 -1
  309. package/dist/unwraps/tumblrShare.d.mts +2 -0
  310. package/dist/unwraps/tumblrShare.mjs +13 -0
  311. package/dist/unwraps/twitterIntent.d.mts +2 -0
  312. package/dist/unwraps/twitterIntent.mjs +17 -0
  313. package/dist/unwraps/twoCheckout.mjs +2 -1
  314. package/dist/unwraps/ukWebArchive.mjs +1 -1
  315. package/dist/unwraps/ukgwa.mjs +1 -1
  316. package/dist/unwraps/unescoWebArchive.mjs +1 -1
  317. package/dist/unwraps/unisender.mjs +3 -3
  318. package/dist/unwraps/upAudio.mjs +1 -1
  319. package/dist/unwraps/vadeSecure.mjs +1 -1
  320. package/dist/unwraps/valuePress.mjs +2 -2
  321. package/dist/unwraps/vanilla.mjs +1 -1
  322. package/dist/unwraps/vbulletin.mjs +1 -1
  323. package/dist/unwraps/vefsafn.mjs +2 -2
  324. package/dist/unwraps/vgWort.mjs +1 -1
  325. package/dist/unwraps/vkShare.d.mts +2 -0
  326. package/dist/unwraps/vkShare.mjs +16 -0
  327. package/dist/unwraps/vocus.mjs +1 -1
  328. package/dist/unwraps/voxnest.mjs +1 -1
  329. package/dist/unwraps/w3cFeedValidator.d.mts +2 -0
  330. package/dist/unwraps/w3cFeedValidator.mjs +8 -0
  331. package/dist/unwraps/webArchive.mjs +5 -5
  332. package/dist/unwraps/webcitation.mjs +1 -1
  333. package/dist/unwraps/webharvest.mjs +1 -1
  334. package/dist/unwraps/weiboShare.d.mts +2 -0
  335. package/dist/unwraps/weiboShare.mjs +8 -0
  336. package/dist/unwraps/weserv.mjs +2 -2
  337. package/dist/unwraps/wikizero.mjs +2 -2
  338. package/dist/unwraps/windowsLive.d.mts +2 -0
  339. package/dist/unwraps/windowsLive.mjs +13 -0
  340. package/dist/unwraps/windowsLiveFavorites.d.mts +2 -0
  341. package/dist/unwraps/windowsLiveFavorites.mjs +8 -0
  342. package/dist/unwraps/wpPoczta.mjs +2 -2
  343. package/dist/unwraps/wykop.d.mts +2 -0
  344. package/dist/unwraps/wykop.mjs +11 -0
  345. package/dist/unwraps/xengentr.mjs +4 -3
  346. package/dist/unwraps/xianguo.d.mts +2 -0
  347. package/dist/unwraps/xianguo.mjs +8 -0
  348. package/dist/unwraps/xiaoyuzhou.mjs +1 -1
  349. package/dist/unwraps/ximalaya.mjs +3 -3
  350. package/dist/unwraps/xingShare.d.mts +2 -0
  351. package/dist/unwraps/xingShare.mjs +16 -0
  352. package/dist/unwraps/yahooBookmarks.d.mts +2 -0
  353. package/dist/unwraps/yahooBookmarks.mjs +38 -0
  354. package/dist/unwraps/yahooJapan.mjs +2 -3
  355. package/dist/unwraps/yahooJapanAmpViewer.mjs +2 -2
  356. package/dist/unwraps/yahooMailImage.mjs +2 -1
  357. package/dist/unwraps/yahooSearch.mjs +2 -2
  358. package/dist/unwraps/yamm.mjs +2 -1
  359. package/dist/unwraps/yandexMail.mjs +4 -3
  360. package/dist/unwraps/yandexTranslate.mjs +1 -1
  361. package/dist/unwraps/yandexTurbo.mjs +4 -4
  362. package/dist/unwraps/yesware.mjs +2 -2
  363. package/dist/unwraps/yourMembership.mjs +2 -1
  364. package/dist/unwraps/zencastr.mjs +1 -1
  365. package/dist/unwraps/zix.mjs +1 -1
  366. package/dist/unwraps/zscalerIsolation.mjs +1 -1
  367. package/dist/utils.mjs +9 -42
  368. package/package.json +4 -4
  369. package/dist/node_modules/entities/dist/internal/bin-trie-flags.mjs +0 -50
  370. package/dist/node_modules/entities/dist/internal/decode-shared.mjs +0 -143
@@ -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
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/" || getQueryParam(url, "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 = "";
@@ -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;
@@ -0,0 +1,85 @@
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/pinterestPin.ts
5
+ const pathRegex = /^\/pin\/create\/(?:button|link|extension|bookmarklet|scraped)\/?$/i;
6
+ const hosts = [
7
+ "pinterest.com",
8
+ "www.pinterest.com",
9
+ /^[a-z]{2}\.pinterest\.com$/,
10
+ "pinterest.at",
11
+ "www.pinterest.at",
12
+ "pinterest.be",
13
+ "www.pinterest.be",
14
+ "pinterest.ca",
15
+ "www.pinterest.ca",
16
+ "pinterest.ch",
17
+ "www.pinterest.ch",
18
+ "pinterest.cl",
19
+ "www.pinterest.cl",
20
+ "pinterest.co",
21
+ "www.pinterest.co",
22
+ "pinterest.co.in",
23
+ "www.pinterest.co.in",
24
+ "pinterest.co.kr",
25
+ "www.pinterest.co.kr",
26
+ "pinterest.co.nz",
27
+ "www.pinterest.co.nz",
28
+ "pinterest.co.uk",
29
+ "www.pinterest.co.uk",
30
+ "pinterest.com.au",
31
+ "www.pinterest.com.au",
32
+ "pinterest.com.ec",
33
+ "www.pinterest.com.ec",
34
+ "pinterest.com.mx",
35
+ "www.pinterest.com.mx",
36
+ "pinterest.com.pe",
37
+ "www.pinterest.com.pe",
38
+ "pinterest.de",
39
+ "www.pinterest.de",
40
+ "pinterest.dk",
41
+ "www.pinterest.dk",
42
+ "pinterest.ec",
43
+ "www.pinterest.ec",
44
+ "pinterest.es",
45
+ "www.pinterest.es",
46
+ "pinterest.fr",
47
+ "www.pinterest.fr",
48
+ "pinterest.hu",
49
+ "www.pinterest.hu",
50
+ "pinterest.id",
51
+ "www.pinterest.id",
52
+ "pinterest.ie",
53
+ "www.pinterest.ie",
54
+ "pinterest.in",
55
+ "www.pinterest.in",
56
+ "pinterest.it",
57
+ "www.pinterest.it",
58
+ "pinterest.jp",
59
+ "www.pinterest.jp",
60
+ "pinterest.kr",
61
+ "www.pinterest.kr",
62
+ "pinterest.mx",
63
+ "www.pinterest.mx",
64
+ "pinterest.nl",
65
+ "www.pinterest.nl",
66
+ "pinterest.nz",
67
+ "www.pinterest.nz",
68
+ "pinterest.pe",
69
+ "www.pinterest.pe",
70
+ "pinterest.ph",
71
+ "www.pinterest.ph",
72
+ "pinterest.pt",
73
+ "www.pinterest.pt",
74
+ "pinterest.ru",
75
+ "www.pinterest.ru",
76
+ "pinterest.se",
77
+ "www.pinterest.se",
78
+ "pinterest.tw",
79
+ "www.pinterest.tw"
80
+ ];
81
+ const unwrapPinterestPin = (url) => {
82
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, pathRegex)) return;
83
+ return getParamTarget(url, "url");
84
+ };
85
+ export { unwrapPinterestPin };
@@ -1,6 +1,6 @@
1
1
  import { createParamExtractor } from "../utils.mjs";
2
2
  // src/unwraps/pipedrive.ts
3
- const pathRegex = /^\/c\/[a-z0-9]+\/[a-z0-9]+\/[a-z0-9]+\/\d+$/;
3
+ const pathRegex = /^\/c\/[a-z0-9]+\/[a-z0-9]+\/[a-z0-9]+\/\d+$/i;
4
4
  const extractTarget = createParamExtractor({
5
5
  hosts: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.pipedrive\.email$/,
6
6
  params: ["redirectUrl"]
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapPlayerFm: UrlUnwrapper;
@@ -0,0 +1,16 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/playerFm.ts
3
+ const extractImporter = createParamExtractor({
4
+ hosts: "player.fm",
5
+ path: "/importer/feed",
6
+ params: ["url"]
7
+ });
8
+ const extractSubscribe = createParamExtractor({
9
+ hosts: "player.fm",
10
+ path: "/subscribe",
11
+ params: ["id"]
12
+ });
13
+ const unwrapPlayerFm = (url) => {
14
+ return extractImporter(url) ?? extractSubscribe(url);
15
+ };
16
+ export { unwrapPlayerFm };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapPocketSave: 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/pocketSave.ts
5
+ const hosts = ["getpocket.com", "www.getpocket.com"];
6
+ const paths = [
7
+ "/save",
8
+ "/edit",
9
+ "/edit.php"
10
+ ];
11
+ const unwrapPocketSave = (url) => {
12
+ if (!isHostOf(url, hosts) || !isAnyOf(url.pathname, paths)) return;
13
+ return getParamTarget(url, "url");
14
+ };
15
+ export { unwrapPocketSave };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapPodcastAddict: UrlUnwrapper;
@@ -0,0 +1,14 @@
1
+ import { decodePercent, isHostOf, isHttpUrl } from "../node_modules/trousse/dist/urls.mjs";
2
+ import { decodeEncodedScheme } from "../utils.mjs";
3
+ // src/unwraps/podcastAddict.ts
4
+ const feedPrefixRegex = /^\/feed\//i;
5
+ const hosts = ["podcastaddict.com"];
6
+ const unwrapPodcastAddict = (url) => {
7
+ if (!isHostOf(url, hosts)) return;
8
+ const match = url.pathname.match(feedPrefixRegex);
9
+ if (!match) return;
10
+ const feed = decodeEncodedScheme(decodePercent(url.pathname.slice(match[0].length)));
11
+ if (!isHttpUrl(feed)) return;
12
+ return `${feed}${url.search}${url.hash}`;
13
+ };
14
+ export { unwrapPodcastAddict };
@@ -0,0 +1,2 @@
1
+ import { UrlUnwrapper } from "../types.mjs";
2
+ export declare const unwrapPodcastReady: UrlUnwrapper;
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.mjs";
2
+ // src/unwraps/podcastReady.ts
3
+ const unwrapPodcastReady = createParamExtractor({
4
+ hosts: ["podcastready.com", "www.podcastready.com"],
5
+ path: "/oneclick_bookmark.php",
6
+ params: ["url"]
7
+ });
8
+ export { unwrapPodcastReady };
@@ -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/podcorn.ts
4
- const episodePrefixRegex = /^\/e\//;
4
+ const episodePrefixRegex = /^\/e\//i;
5
5
  const unwrapPodcorn = (url) => {
6
6
  if (!isHostOf(url, "pdcn.co")) return;
7
7
  return getPathTarget(url, episodePrefixRegex);