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.
- package/README.md +96 -45
- package/dist/clean.d.mts +1 -0
- package/dist/clean.mjs +56 -19
- package/dist/defaults.d.mts +7 -1
- package/dist/defaults.mjs +160 -3
- package/dist/index.d.mts +79 -4
- package/dist/index.mjs +79 -4
- package/dist/node_modules/entities/dist/decode-codepoint.mjs +2 -2
- package/dist/node_modules/entities/dist/decode.mjs +262 -247
- package/dist/node_modules/entities/dist/generated/decode-data-html.mjs +8 -4
- package/dist/node_modules/entities/dist/internal/decode-data-format.mjs +116 -0
- package/dist/node_modules/trousse/dist/is.mjs +7 -1
- package/dist/node_modules/trousse/dist/locales.mjs +21 -0
- package/dist/node_modules/trousse/dist/matching.mjs +22 -20
- package/dist/node_modules/trousse/dist/urls.mjs +186 -53
- package/dist/pathTarget.mjs +2 -2
- package/dist/tracking/clickAttribution.mjs +26 -1
- package/dist/tracking/housekeeping.mjs +13 -1
- package/dist/tracking/session.d.mts +2 -0
- package/dist/tracking/session.mjs +12 -0
- package/dist/types.d.mts +7 -1
- package/dist/unwraps/a8Net.mjs +1 -1
- package/dist/unwraps/acast.mjs +1 -1
- package/dist/unwraps/accesstrade.mjs +1 -1
- package/dist/unwraps/aceml.mjs +2 -2
- package/dist/unwraps/adcell.mjs +1 -1
- package/dist/unwraps/addThis.d.mts +2 -0
- package/dist/unwraps/addThis.mjs +17 -0
- package/dist/unwraps/addToAny.d.mts +2 -0
- package/dist/unwraps/addToAny.mjs +21 -0
- package/dist/unwraps/addToAnySubscribe.d.mts +2 -0
- package/dist/unwraps/addToAnySubscribe.mjs +8 -0
- package/dist/unwraps/addToMyYahoo.d.mts +2 -0
- package/dist/unwraps/addToMyYahoo.mjs +29 -0
- package/dist/unwraps/adfly.mjs +1 -1
- package/dist/unwraps/admitad.mjs +1 -1
- package/dist/unwraps/affilae.mjs +2 -1
- package/dist/unwraps/affiliatesOne.mjs +1 -1
- package/dist/unwraps/allblog.mjs +1 -1
- package/dist/unwraps/amazonAffiliate.mjs +5 -4
- package/dist/unwraps/amazonSes.mjs +2 -2
- package/dist/unwraps/ampCache.mjs +4 -3
- package/dist/unwraps/ampCacheImage.mjs +1 -1
- package/dist/unwraps/anchor.mjs +1 -1
- package/dist/unwraps/anonymouse.mjs +1 -1
- package/dist/unwraps/antennaPod.d.mts +2 -0
- package/dist/unwraps/antennaPod.mjs +15 -0
- package/dist/unwraps/anytimePlayer.d.mts +2 -0
- package/dist/unwraps/anytimePlayer.mjs +17 -0
- package/dist/unwraps/apptrkr.mjs +2 -1
- package/dist/unwraps/archiveToday.mjs +2 -2
- package/dist/unwraps/arquivo.mjs +1 -1
- package/dist/unwraps/arttrack.mjs +1 -1
- package/dist/unwraps/augure.mjs +3 -3
- package/dist/unwraps/awesound.mjs +1 -1
- package/dist/unwraps/axigen.mjs +2 -1
- package/dist/unwraps/bacLacWebArchive.mjs +1 -1
- package/dist/unwraps/bananatag.mjs +1 -1
- package/dist/unwraps/big5Gate.mjs +1 -1
- package/dist/unwraps/bing.mjs +7 -7
- package/dist/unwraps/bingAds.mjs +4 -4
- package/dist/unwraps/bitrix.mjs +2 -1
- package/dist/unwraps/bitrixBanner.mjs +2 -1
- package/dist/unwraps/blinkList.d.mts +2 -0
- package/dist/unwraps/blinkList.mjs +8 -0
- package/dist/unwraps/bloggerBlogThis.d.mts +2 -0
- package/dist/unwraps/bloggerBlogThis.mjs +16 -0
- package/dist/unwraps/bloggerImageProxy.mjs +2 -1
- package/dist/unwraps/bloglines.d.mts +2 -0
- package/dist/unwraps/bloglines.mjs +21 -0
- package/dist/unwraps/bridgyFed.mjs +1 -1
- package/dist/unwraps/buffer.d.mts +2 -0
- package/dist/unwraps/buffer.mjs +23 -0
- package/dist/unwraps/buybox.mjs +1 -1
- package/dist/unwraps/buzzstream.mjs +1 -1
- package/dist/unwraps/checkPointHarmony.mjs +2 -2
- package/dist/unwraps/cjNetwork.mjs +3 -3
- package/dist/unwraps/claritas.mjs +2 -2
- package/dist/unwraps/cleverbridge.mjs +1 -1
- package/dist/unwraps/cloudhq.mjs +1 -1
- package/dist/unwraps/cloze.mjs +1 -1
- package/dist/unwraps/cohst.mjs +1 -1
- package/dist/unwraps/contactMonkey.mjs +3 -2
- package/dist/unwraps/convertiser.mjs +1 -1
- package/dist/unwraps/cse360.mjs +1 -1
- package/dist/unwraps/dasBlog.mjs +1 -1
- package/dist/unwraps/datalifeEngine.mjs +5 -4
- package/dist/unwraps/delicious.d.mts +2 -0
- package/dist/unwraps/delicious.mjs +15 -0
- package/dist/unwraps/deployer.mjs +2 -2
- package/dist/unwraps/derefMail.mjs +4 -3
- package/dist/unwraps/deviantartOutgoing.mjs +1 -1
- package/dist/unwraps/diasporaShare.d.mts +2 -0
- package/dist/unwraps/diasporaShare.mjs +16 -0
- package/dist/unwraps/diggSubmit.d.mts +2 -0
- package/dist/unwraps/diggSubmit.mjs +11 -0
- package/dist/unwraps/digikala.mjs +3 -3
- package/dist/unwraps/diigoPost.d.mts +2 -0
- package/dist/unwraps/diigoPost.mjs +12 -0
- package/dist/unwraps/disqus.mjs +2 -1
- package/dist/unwraps/dstats.mjs +2 -2
- package/dist/unwraps/eClick.mjs +1 -1
- package/dist/unwraps/easyMarketing.mjs +3 -3
- package/dist/unwraps/ebayRover.mjs +1 -1
- package/dist/unwraps/ebuzzing.mjs +1 -1
- package/dist/unwraps/edgepilot.mjs +1 -1
- package/dist/unwraps/effiliation.mjs +1 -1
- package/dist/unwraps/elasticEmail.mjs +2 -1
- package/dist/unwraps/epn.mjs +1 -1
- package/dist/unwraps/eulerian.mjs +1 -1
- package/dist/unwraps/evernoteClip.d.mts +2 -0
- package/dist/unwraps/evernoteClip.mjs +8 -0
- package/dist/unwraps/exciteTranslate.mjs +1 -1
- package/dist/unwraps/facebook.mjs +1 -1
- package/dist/unwraps/facebookShare.d.mts +2 -0
- package/dist/unwraps/facebookShare.mjs +25 -0
- package/dist/unwraps/feed2js.d.mts +2 -0
- package/dist/unwraps/feed2js.mjs +16 -0
- package/dist/unwraps/feedStatistics.mjs +2 -2
- package/dist/unwraps/feedValidator.d.mts +2 -0
- package/dist/unwraps/feedValidator.mjs +12 -0
- package/dist/unwraps/feedblitz.mjs +1 -1
- package/dist/unwraps/feedland.d.mts +2 -0
- package/dist/unwraps/feedland.mjs +12 -0
- package/dist/unwraps/feedly.d.mts +2 -0
- package/dist/unwraps/feedly.mjs +28 -0
- package/dist/unwraps/feedsportal.mjs +1 -1
- package/dist/unwraps/firebaseDynamicLinks.mjs +1 -1
- package/dist/unwraps/firstory.mjs +3 -3
- package/dist/unwraps/fiveByFive.mjs +2 -2
- package/dist/unwraps/flattrSubmit.d.mts +2 -0
- package/dist/unwraps/flattrSubmit.mjs +8 -0
- package/dist/unwraps/flipboardShare.d.mts +2 -0
- package/dist/unwraps/flipboardShare.mjs +15 -0
- package/dist/unwraps/fortimail.mjs +2 -1
- package/dist/unwraps/friendFeed.d.mts +2 -0
- package/dist/unwraps/friendFeed.mjs +18 -0
- package/dist/unwraps/gabCompose.d.mts +2 -0
- package/dist/unwraps/gabCompose.mjs +8 -0
- package/dist/unwraps/genericCarrier.d.mts +2 -0
- package/dist/unwraps/genericCarrier.mjs +31 -0
- package/dist/unwraps/gfnLinkProxy.mjs +3 -3
- package/dist/unwraps/godcaster.mjs +2 -2
- package/dist/unwraps/googleAmpViewer.mjs +2 -2
- package/dist/unwraps/googleBookmarks.d.mts +2 -0
- package/dist/unwraps/googleBookmarks.mjs +8 -0
- package/dist/unwraps/googleBuzz.d.mts +2 -0
- package/dist/unwraps/googleBuzz.mjs +8 -0
- package/dist/unwraps/googleNewsModern.mjs +2 -3
- package/dist/unwraps/googlePlusShare.d.mts +2 -0
- package/dist/unwraps/googlePlusShare.mjs +11 -0
- package/dist/unwraps/googlePodcasts.d.mts +2 -0
- package/dist/unwraps/googlePodcasts.mjs +27 -0
- package/dist/unwraps/googleReader.d.mts +2 -0
- package/dist/unwraps/googleReader.mjs +20 -0
- package/dist/unwraps/googleTranslate.mjs +5 -5
- package/dist/unwraps/govdelivery.mjs +3 -2
- package/dist/unwraps/hackerNewsSubmit.d.mts +2 -0
- package/dist/unwraps/hackerNewsSubmit.mjs +8 -0
- package/dist/unwraps/hasoffers.mjs +2 -1
- package/dist/unwraps/hatenaBookmark.d.mts +2 -0
- package/dist/unwraps/hatenaBookmark.mjs +22 -0
- package/dist/unwraps/hirkereso.mjs +1 -1
- package/dist/unwraps/horde.mjs +1 -1
- package/dist/unwraps/hubspotSidekick.mjs +1 -1
- package/dist/unwraps/impact.mjs +2 -2
- package/dist/unwraps/indexHu.mjs +2 -1
- package/dist/unwraps/inoreader.d.mts +2 -0
- package/dist/unwraps/inoreader.mjs +22 -0
- package/dist/unwraps/instapaperSave.d.mts +2 -0
- package/dist/unwraps/instapaperSave.mjs +11 -0
- package/dist/unwraps/invisionNoExternalLinks.mjs +1 -1
- package/dist/unwraps/involveAsia.mjs +1 -1
- package/dist/unwraps/jive.mjs +2 -1
- package/dist/unwraps/klook.mjs +2 -1
- package/dist/unwraps/lazada.mjs +1 -1
- package/dist/unwraps/letscast.mjs +1 -1
- package/dist/unwraps/lineShare.d.mts +2 -0
- package/dist/unwraps/lineShare.mjs +25 -0
- package/dist/unwraps/linkA.mjs +1 -1
- package/dist/unwraps/linkedin.mjs +1 -1
- package/dist/unwraps/linkedinShare.d.mts +2 -0
- package/dist/unwraps/linkedinShare.mjs +15 -0
- package/dist/unwraps/linksynergy.mjs +2 -2
- package/dist/unwraps/linktrust.mjs +3 -3
- package/dist/unwraps/linkwise.mjs +1 -1
- package/dist/unwraps/livedoorReader.d.mts +2 -0
- package/dist/unwraps/livedoorReader.mjs +12 -0
- package/dist/unwraps/locWebArchive.mjs +1 -1
- package/dist/unwraps/locaweb.mjs +2 -1
- package/dist/unwraps/logicboard.mjs +1 -1
- package/dist/unwraps/magellan.mjs +1 -1
- package/dist/unwraps/mail2easy.mjs +1 -1
- package/dist/unwraps/mailchimp.mjs +1 -1
- package/dist/unwraps/mailinblack.mjs +6 -4
- package/dist/unwraps/mailstat.mjs +1 -1
- package/dist/unwraps/mailtrack.mjs +1 -1
- package/dist/unwraps/mandrill.mjs +3 -3
- package/dist/unwraps/medium.mjs +5 -5
- package/dist/unwraps/meneameSubmit.d.mts +2 -0
- package/dist/unwraps/meneameSubmit.mjs +11 -0
- package/dist/unwraps/meweShare.d.mts +2 -0
- package/dist/unwraps/meweShare.mjs +8 -0
- package/dist/unwraps/mimecast.mjs +1 -1
- package/dist/unwraps/ministryCloud.mjs +1 -1
- package/dist/unwraps/mintDownloads.mjs +1 -1
- package/dist/unwraps/mintFeeder.mjs +2 -1
- package/dist/unwraps/mohtwize.mjs +6 -4
- package/dist/unwraps/morss.d.mts +2 -0
- package/dist/unwraps/morss.mjs +13 -0
- package/dist/unwraps/mozillaOutgoing.mjs +3 -3
- package/dist/unwraps/myAolFeeds.d.mts +2 -0
- package/dist/unwraps/myAolFeeds.mjs +8 -0
- package/dist/unwraps/narrativ.mjs +1 -1
- package/dist/unwraps/natlibNz.mjs +1 -1
- package/dist/unwraps/ncls.mjs +2 -1
- package/dist/unwraps/ndlWarp.mjs +2 -2
- package/dist/unwraps/netaffiliation.mjs +1 -1
- package/dist/unwraps/netvibes.d.mts +2 -0
- package/dist/unwraps/netvibes.mjs +7 -0
- package/dist/unwraps/newsGator.d.mts +2 -0
- package/dist/unwraps/newsGator.mjs +17 -0
- package/dist/unwraps/newswire.mjs +3 -3
- package/dist/unwraps/nicoMs.mjs +1 -1
- package/dist/unwraps/nimble.mjs +1 -1
- package/dist/unwraps/nlaWebarchive.mjs +3 -3
- package/dist/unwraps/okShare.d.mts +2 -0
- package/dist/unwraps/okShare.mjs +23 -0
- package/dist/unwraps/op3.mjs +1 -1
- package/dist/unwraps/outlookSafelinks.mjs +1 -1
- package/dist/unwraps/pageflakes.d.mts +2 -0
- package/dist/unwraps/pageflakes.mjs +8 -0
- package/dist/unwraps/pagefreezer.mjs +2 -2
- package/dist/unwraps/partnerAds.mjs +2 -2
- package/dist/unwraps/pbs.mjs +1 -1
- package/dist/unwraps/pinterestPin.d.mts +2 -0
- package/dist/unwraps/pinterestPin.mjs +85 -0
- package/dist/unwraps/pipedrive.mjs +1 -1
- package/dist/unwraps/playerFm.d.mts +2 -0
- package/dist/unwraps/playerFm.mjs +16 -0
- package/dist/unwraps/pocketSave.d.mts +2 -0
- package/dist/unwraps/pocketSave.mjs +15 -0
- package/dist/unwraps/podcastAddict.d.mts +2 -0
- package/dist/unwraps/podcastAddict.mjs +14 -0
- package/dist/unwraps/podcastReady.d.mts +2 -0
- package/dist/unwraps/podcastReady.mjs +8 -0
- package/dist/unwraps/podcorn.mjs +1 -1
- package/dist/unwraps/podkite.mjs +1 -1
- package/dist/unwraps/podscribe.mjs +1 -1
- package/dist/unwraps/podsights.mjs +1 -1
- package/dist/unwraps/podup.mjs +2 -3
- package/dist/unwraps/postAffiliatePro.mjs +1 -1
- package/dist/unwraps/postmark.mjs +1 -1
- package/dist/unwraps/prNewswire.mjs +2 -2
- package/dist/unwraps/prezly.mjs +1 -1
- package/dist/unwraps/proofpointV3.mjs +3 -3
- package/dist/unwraps/prweb.mjs +2 -2
- package/dist/unwraps/prxPlayer.d.mts +2 -0
- package/dist/unwraps/prxPlayer.mjs +16 -0
- package/dist/unwraps/qqMailReader.d.mts +2 -0
- package/dist/unwraps/qqMailReader.mjs +8 -0
- package/dist/unwraps/qualityClick.mjs +2 -1
- package/dist/unwraps/qzoneShare.d.mts +2 -0
- package/dist/unwraps/qzoneShare.mjs +8 -0
- package/dist/unwraps/rakutenAffiliate.mjs +3 -3
- package/dist/unwraps/redditOut.mjs +1 -1
- package/dist/unwraps/redditSubmit.d.mts +2 -0
- package/dist/unwraps/redditSubmit.mjs +19 -0
- package/dist/unwraps/researchgate.mjs +1 -1
- package/dist/unwraps/reviveAdserver.mjs +2 -2
- package/dist/unwraps/rssBoardValidator.d.mts +2 -0
- package/dist/unwraps/rssBoardValidator.mjs +8 -0
- package/dist/unwraps/salesdoubler.mjs +1 -1
- package/dist/unwraps/saleshandy.mjs +1 -1
- package/dist/unwraps/segmentfault.mjs +2 -2
- package/dist/unwraps/serendipity.mjs +3 -3
- package/dist/unwraps/shareaholic.d.mts +2 -0
- package/dist/unwraps/shareaholic.mjs +12 -0
- package/dist/unwraps/slashdotBookmark.d.mts +2 -0
- package/dist/unwraps/slashdotBookmark.mjs +11 -0
- package/dist/unwraps/smartredirect.mjs +1 -1
- package/dist/unwraps/sophos.mjs +2 -2
- package/dist/unwraps/soundOn.mjs +1 -1
- package/dist/unwraps/stay22.mjs +1 -1
- package/dist/unwraps/streamsend.mjs +1 -1
- package/dist/unwraps/stumbleuponSubmit.d.mts +2 -0
- package/dist/unwraps/stumbleuponSubmit.mjs +14 -0
- package/dist/unwraps/subscribeByEmail.d.mts +2 -0
- package/dist/unwraps/subscribeByEmail.mjs +10 -0
- package/dist/unwraps/subscribeOnAndroid.d.mts +2 -0
- package/dist/unwraps/subscribeOnAndroid.mjs +10 -0
- package/dist/unwraps/subscribeRu.mjs +1 -1
- package/dist/unwraps/substack.mjs +2 -3
- package/dist/unwraps/surly.mjs +1 -1
- package/dist/unwraps/swap.mjs +1 -1
- package/dist/unwraps/symantecClicktime.mjs +1 -1
- package/dist/unwraps/symplicity.mjs +1 -1
- package/dist/unwraps/teacup.mjs +1 -1
- package/dist/unwraps/technoratiFaves.d.mts +2 -0
- package/dist/unwraps/technoratiFaves.mjs +10 -0
- package/dist/unwraps/telegramShare.d.mts +2 -0
- package/dist/unwraps/telegramShare.mjs +18 -0
- package/dist/unwraps/theRegister.mjs +1 -1
- package/dist/unwraps/threadsIntent.d.mts +2 -0
- package/dist/unwraps/threadsIntent.mjs +16 -0
- package/dist/unwraps/toucharcade.mjs +1 -1
- package/dist/unwraps/tracdelight.mjs +1 -1
- package/dist/unwraps/trxHub.mjs +1 -1
- package/dist/unwraps/tumblrShare.d.mts +2 -0
- package/dist/unwraps/tumblrShare.mjs +13 -0
- package/dist/unwraps/twitterIntent.d.mts +2 -0
- package/dist/unwraps/twitterIntent.mjs +17 -0
- package/dist/unwraps/twoCheckout.mjs +2 -1
- package/dist/unwraps/ukWebArchive.mjs +1 -1
- package/dist/unwraps/ukgwa.mjs +1 -1
- package/dist/unwraps/unescoWebArchive.mjs +1 -1
- package/dist/unwraps/unisender.mjs +3 -3
- package/dist/unwraps/upAudio.mjs +1 -1
- package/dist/unwraps/vadeSecure.mjs +1 -1
- package/dist/unwraps/valuePress.mjs +2 -2
- package/dist/unwraps/vanilla.mjs +1 -1
- package/dist/unwraps/vbulletin.mjs +1 -1
- package/dist/unwraps/vefsafn.mjs +2 -2
- package/dist/unwraps/vgWort.mjs +1 -1
- package/dist/unwraps/vkShare.d.mts +2 -0
- package/dist/unwraps/vkShare.mjs +16 -0
- package/dist/unwraps/vocus.mjs +1 -1
- package/dist/unwraps/voxnest.mjs +1 -1
- package/dist/unwraps/w3cFeedValidator.d.mts +2 -0
- package/dist/unwraps/w3cFeedValidator.mjs +8 -0
- package/dist/unwraps/webArchive.mjs +5 -5
- package/dist/unwraps/webcitation.mjs +1 -1
- package/dist/unwraps/webharvest.mjs +1 -1
- package/dist/unwraps/weiboShare.d.mts +2 -0
- package/dist/unwraps/weiboShare.mjs +8 -0
- package/dist/unwraps/weserv.mjs +2 -2
- package/dist/unwraps/wikizero.mjs +2 -2
- package/dist/unwraps/windowsLive.d.mts +2 -0
- package/dist/unwraps/windowsLive.mjs +13 -0
- package/dist/unwraps/windowsLiveFavorites.d.mts +2 -0
- package/dist/unwraps/windowsLiveFavorites.mjs +8 -0
- package/dist/unwraps/wpPoczta.mjs +2 -2
- package/dist/unwraps/wykop.d.mts +2 -0
- package/dist/unwraps/wykop.mjs +11 -0
- package/dist/unwraps/xengentr.mjs +4 -3
- package/dist/unwraps/xianguo.d.mts +2 -0
- package/dist/unwraps/xianguo.mjs +8 -0
- package/dist/unwraps/xiaoyuzhou.mjs +1 -1
- package/dist/unwraps/ximalaya.mjs +3 -3
- package/dist/unwraps/xingShare.d.mts +2 -0
- package/dist/unwraps/xingShare.mjs +16 -0
- package/dist/unwraps/yahooBookmarks.d.mts +2 -0
- package/dist/unwraps/yahooBookmarks.mjs +38 -0
- package/dist/unwraps/yahooJapan.mjs +2 -3
- package/dist/unwraps/yahooJapanAmpViewer.mjs +2 -2
- package/dist/unwraps/yahooMailImage.mjs +2 -1
- package/dist/unwraps/yahooSearch.mjs +2 -2
- package/dist/unwraps/yamm.mjs +2 -1
- package/dist/unwraps/yandexMail.mjs +4 -3
- package/dist/unwraps/yandexTranslate.mjs +1 -1
- package/dist/unwraps/yandexTurbo.mjs +4 -4
- package/dist/unwraps/yesware.mjs +2 -2
- package/dist/unwraps/yourMembership.mjs +2 -1
- package/dist/unwraps/zencastr.mjs +1 -1
- package/dist/unwraps/zix.mjs +1 -1
- package/dist/unwraps/zscalerIsolation.mjs +1 -1
- package/dist/utils.mjs +9 -42
- package/package.json +4 -4
- package/dist/node_modules/entities/dist/internal/bin-trie-flags.mjs +0 -50
- 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,
|
|
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",
|
package/dist/unwraps/medium.mjs
CHANGED
|
@@ -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
|
|
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
|
|
7
|
+
hosts,
|
|
8
8
|
params: ["url"]
|
|
9
9
|
});
|
|
10
10
|
const extractGlobalIdentityTarget = createParamExtractor({
|
|
11
|
-
hosts
|
|
11
|
+
hosts,
|
|
12
12
|
params: ["redirectUrl"]
|
|
13
13
|
});
|
|
14
14
|
const unwrapMedium = (url) => {
|
|
@@ -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 };
|
|
@@ -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
|
|
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
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
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,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
|
|
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,
|
|
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]);
|
|
@@ -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);
|
package/dist/unwraps/ncls.mjs
CHANGED
|
@@ -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
|
|
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;
|
package/dist/unwraps/ndlWarp.mjs
CHANGED
|
@@ -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,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 {
|
|
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
|
|
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);
|
package/dist/unwraps/nicoMs.mjs
CHANGED
|
@@ -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);
|
package/dist/unwraps/nimble.mjs
CHANGED
|
@@ -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,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 };
|
package/dist/unwraps/op3.mjs
CHANGED
|
@@ -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,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"]
|
package/dist/unwraps/pbs.mjs
CHANGED
|
@@ -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,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,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,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,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,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 };
|
package/dist/unwraps/podcorn.mjs
CHANGED
|
@@ -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);
|