urlpurify 1.2.0 → 1.4.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 CHANGED
@@ -72,7 +72,13 @@ For wrappers that encode the target (base64 path segments, custom escaping), wri
72
72
 
73
73
  ### Defaults
74
74
 
75
- `defaultTrackingParams` is the combined default list for `cleanUrl` and `stripTrackingParams`: literal names plus family regexes like `/^utm_[a-z0-9_-]+$/` that cover vendor namespaces where new variants keep appearing. Its parts are exported separately as `trackingParamsLiterals` (strings only, for consumers that need a plain string list) and `trackingParamsPatterns`. `defaultUnwrappers` is exported alongside. `defaultUnwrappers` enables a conservative subset of the catalog (search-engine redirects and social-platform shims); everything else is exported individually for explicit opt-in.
75
+ `defaultTrackingParams` is the combined default list for `cleanUrl` and `stripTrackingParams`: literal names plus family regexes like `/^utm_[a-z0-9_-]+$/` that cover vendor namespaces where new variants keep appearing. Its parts are exported separately as `trackingParamsLiterals` (strings only, for consumers that need a plain string list) and `trackingParamsPatterns`. `defaultUnwrappers` is exported alongside. `defaultUnwrappers` enables a conservative subset of the catalog; everything else is exported individually for explicit opt-in.
76
+
77
+ **On by default:** redirects that only track the click — search-engine redirects and platform shims. Unwrapping them costs the destination nothing.
78
+
79
+ **Off by default:** affiliate and referral wrappers (`unwrapSkimlinks`, `unwrapAwin`, `unwrapShareasale`, `unwrapAmazonAffiliate`, `unwrapViglink`, and the rest). The reader lands on the same page either way — unwrapping only removes the writer's commission, which for a small blog is the money paying for the work. Opt in explicitly if you want them.
80
+
81
+ Prevalence is not the test: affiliate wrappers are more common than tracking shims.
76
82
 
77
83
  ## Unwrappers
78
84
 
@@ -81,18 +87,38 @@ Enabled by default:
81
87
  | Unwrapper | Description |
82
88
  | --- | --- |
83
89
  | `unwrapBing` | Bing search-result redirect (www.bing.com/ck/a?u=a1\<base64url\>) |
90
+ | `unwrapAnonymTo` | anonym.to referrer anonymizer (anonym.to/?\<target\>) |
84
91
  | `unwrapBlueskyRedirect` | Bluesky outbound link redirect (go.bsky.app/redirect?u=\<target\>) |
92
+ | `unwrapCsdn` | CSDN external link redirect (link.csdn.net/?target=\<target\>) |
93
+ | `unwrapDeviantartOutgoing` | DeviantArt outbound link shim (deviantart.com/\<user\>/outgoing?\<target\>) |
94
+ | `unwrapDisqus` | Disqus outbound link redirect (disq.us/?url=\<target\>) |
95
+ | `unwrapDouban` | Douban external link redirect (www.douban.com/link2/?url=\<target\>) |
85
96
  | `unwrapFacebookShim` | Meta link shim (l.facebook.com / l.messenger.com /l.php?u=\<target\>) |
97
+ | `unwrapFlipboard` | Flipboard outbound redirect (flipboard.com/redirect?url=\<target\>) |
98
+ | `unwrapGitee` | Gitee external link redirect (gitee.com/link?target=\<target\>) |
86
99
  | `unwrapGoogle` | Google redirect (google.\<TLD\>/url?url=\<target\> or ?q=\<target\>) |
87
100
  | `unwrapGoogleAmpViewer` | Google AMP viewer (www.google.\<TLD\>/amp/s/\<host\>/\<path\>) |
88
101
  | `unwrapGoogleNews` | Google News legacy redirect (news.google.\<TLD\>/news/url?url=\<target\>) |
89
102
  | `unwrapGoogleNewsModern` | Google News modern article URLs (news.google.com/articles/\<base64\>) |
90
103
  | `unwrapGoogleScholar` | Google Scholar search-result redirect (scholar.google.\<TLD\>/scholar_url?url=\<target\>) |
104
+ | `unwrapHashnode` | Hashnode outbound redirect (hashnode.com/util/redirect?url=\<target\>) |
105
+ | `unwrapHrefLi` | href.li referrer stripper (href.li/?\<target\>), used by Tumblr |
91
106
  | `unwrapInstagramShim` | Instagram outbound link shim (l.instagram.com with ?u=\<target\>) |
107
+ | `unwrapJianshuGo` | Jianshu external link redirect (links.jianshu.com/go?to=\<target\>) |
108
+ | `unwrapJuejin` | Juejin external link redirect (link.juejin.cn/?target=\<target\>) |
109
+ | `unwrapMedium` | Medium outbound link redirect (medium.com/r/?url=\<target\>) |
110
+ | `unwrapMozillaOutgoing` | Mozilla outgoing-link redirector (outgoing.prod.mozaws.net/v1/\<hash\>/\<target\>) |
111
+ | `unwrapPocket` | Pocket redirect (getpocket.com/redirect?url=\<target\>) |
112
+ | `unwrapNaverOutgoing` | Naver outbound link redirect (cc.loginfra.com/...?u=\<target\>) |
92
113
  | `unwrapRedditOut` | Reddit outbound click tracker (out.reddit.com/?url=\<target\>) |
114
+ | `unwrapSegmentfault` | Segmentfault external link redirect (link.segmentfault.com/?enc=\<base64\>) |
115
+ | `unwrapSspai` | Sspai external link redirect (sspai.com/link?target=\<target\>) |
116
+ | `unwrapSteamLinkfilter` | Steam outbound link filter (steamcommunity.com/linkfilter/?url=\<target\>) |
93
117
  | `unwrapThreadsShim` | Threads outbound link shim (l.threads.com / l.threads.net with ?u=\<target\>) |
118
+ | `unwrapTumblr` | Tumblr outbound redirect (t.umblr.com/redirect?z=\<target\>) |
94
119
  | `unwrapVkAway` | VK away redirect (vk.com/away.php?to=\<target\>) |
95
120
  | `unwrapYahooSearch` | Yahoo Search redirect (r.search.yahoo.com/.../RU=\<target\>/RK=...) |
96
121
  | `unwrapYouTube` | YouTube external redirect (www.youtube.com/redirect?q=\<target\>) |
122
+ | `unwrapZhihu` | Zhihu external redirect (link.zhihu.com/?target=\<target\>) |
97
123
 
98
124
  Many more are available for explicit opt-in: email security gateways (Outlook SafeLinks, Proofpoint, Mimecast), affiliate networks (Awin, Skimlinks, Commission Junction), CJK platforms, AMP caches, and others. See [src/unwraps](src/unwraps) for the full catalog, each documented in its source file.
package/dist/defaults.js CHANGED
@@ -1,19 +1,39 @@
1
+ import { trackingParamsLiterals } from "./tracking/literals.js";
2
+ import { trackingParamsPatterns } from "./tracking/patterns.js";
3
+ import { unwrapAnonymTo } from "./unwraps/anonymTo.js";
1
4
  import { unwrapBing } from "./unwraps/bing.js";
2
5
  import { unwrapBlueskyRedirect } from "./unwraps/bsky.js";
6
+ import { unwrapCsdn } from "./unwraps/csdn.js";
7
+ import { unwrapDeviantartOutgoing } from "./unwraps/deviantartOutgoing.js";
8
+ import { unwrapDisqus } from "./unwraps/disqus.js";
9
+ import { unwrapDouban } from "./unwraps/douban.js";
3
10
  import { unwrapFacebookShim } from "./unwraps/facebook.js";
11
+ import { unwrapFlipboard } from "./unwraps/flipboard.js";
12
+ import { unwrapGitee } from "./unwraps/gitee.js";
4
13
  import { unwrapGoogle } from "./unwraps/google.js";
5
14
  import { unwrapGoogleAmpViewer } from "./unwraps/googleAmpViewer.js";
6
15
  import { unwrapGoogleNews } from "./unwraps/googleNews.js";
7
16
  import { unwrapGoogleNewsModern } from "./unwraps/googleNewsModern.js";
8
17
  import { unwrapGoogleScholar } from "./unwraps/googleScholar.js";
18
+ import { unwrapHashnode } from "./unwraps/hashnode.js";
19
+ import { unwrapHrefLi } from "./unwraps/hrefLi.js";
9
20
  import { unwrapInstagramShim } from "./unwraps/instagram.js";
21
+ import { unwrapJianshuGo } from "./unwraps/jianshuGo.js";
22
+ import { unwrapJuejin } from "./unwraps/juejin.js";
23
+ import { unwrapMedium } from "./unwraps/medium.js";
24
+ import { unwrapMozillaOutgoing } from "./unwraps/mozillaOutgoing.js";
25
+ import { unwrapNaverOutgoing } from "./unwraps/naverOutgoing.js";
26
+ import { unwrapPocket } from "./unwraps/pocket.js";
10
27
  import { unwrapRedditOut } from "./unwraps/redditOut.js";
28
+ import { unwrapSegmentfault } from "./unwraps/segmentfault.js";
29
+ import { unwrapSspai } from "./unwraps/sspai.js";
30
+ import { unwrapSteamLinkfilter } from "./unwraps/steamLinkfilter.js";
11
31
  import { unwrapThreadsShim } from "./unwraps/threads.js";
32
+ import { unwrapTumblr } from "./unwraps/tumblr.js";
12
33
  import { unwrapVkAway } from "./unwraps/vkAway.js";
13
34
  import { unwrapYahooSearch } from "./unwraps/yahooSearch.js";
14
35
  import { unwrapYouTube } from "./unwraps/youtube.js";
15
- import { trackingParamsLiterals } from "./tracking/literals.js";
16
- import { trackingParamsPatterns } from "./tracking/patterns.js";
36
+ import { unwrapZhihu } from "./unwraps/zhihu.js";
17
37
  //#region src/defaults.ts
18
38
  const defaultTrackingParams = [...trackingParamsLiterals, ...trackingParamsPatterns];
19
39
  const defaultUnwrappers = [
@@ -28,9 +48,29 @@ const defaultUnwrappers = [
28
48
  unwrapFacebookShim,
29
49
  unwrapInstagramShim,
30
50
  unwrapThreadsShim,
51
+ unwrapPocket,
52
+ unwrapTumblr,
53
+ unwrapHrefLi,
31
54
  unwrapVkAway,
32
55
  unwrapRedditOut,
33
- unwrapBlueskyRedirect
56
+ unwrapBlueskyRedirect,
57
+ unwrapDisqus,
58
+ unwrapAnonymTo,
59
+ unwrapDeviantartOutgoing,
60
+ unwrapNaverOutgoing,
61
+ unwrapSteamLinkfilter,
62
+ unwrapDouban,
63
+ unwrapMedium,
64
+ unwrapFlipboard,
65
+ unwrapZhihu,
66
+ unwrapJuejin,
67
+ unwrapSspai,
68
+ unwrapJianshuGo,
69
+ unwrapSegmentfault,
70
+ unwrapGitee,
71
+ unwrapCsdn,
72
+ unwrapHashnode,
73
+ unwrapMozillaOutgoing
34
74
  ];
35
75
  //#endregion
36
76
  export { defaultTrackingParams, defaultUnwrappers };
package/dist/index.d.ts CHANGED
@@ -7,10 +7,13 @@ import { unwrapAceml } from "./unwraps/aceml.js";
7
7
  import { unwrapAdjust } from "./unwraps/adjust.js";
8
8
  import { unwrapAmazonAffiliate } from "./unwraps/amazonAffiliate.js";
9
9
  import { unwrapAmpCache } from "./unwraps/ampCache.js";
10
+ import { unwrapAnonymTo } from "./unwraps/anonymTo.js";
10
11
  import { unwrapAwin } from "./unwraps/awin.js";
11
12
  import { unwrapBing } from "./unwraps/bing.js";
12
13
  import { unwrapBlueskyRedirect } from "./unwraps/bsky.js";
13
14
  import { unwrapCjNetwork } from "./unwraps/cjNetwork.js";
15
+ import { unwrapCsdn } from "./unwraps/csdn.js";
16
+ import { unwrapDeviantartOutgoing } from "./unwraps/deviantartOutgoing.js";
14
17
  import { unwrapDigidip } from "./unwraps/digidip.js";
15
18
  import { unwrapDisqus } from "./unwraps/disqus.js";
16
19
  import { unwrapDouban } from "./unwraps/douban.js";
@@ -32,6 +35,7 @@ import { unwrapGoogleNewsModern } from "./unwraps/googleNewsModern.js";
32
35
  import { unwrapGoogleScholar } from "./unwraps/googleScholar.js";
33
36
  import { unwrapGoogleTranslate } from "./unwraps/googleTranslate.js";
34
37
  import { unwrapHashnode } from "./unwraps/hashnode.js";
38
+ import { unwrapHrefLi } from "./unwraps/hrefLi.js";
35
39
  import { unwrapIcptrack } from "./unwraps/icptrack.js";
36
40
  import { unwrapIdealoPartner } from "./unwraps/idealoPartner.js";
37
41
  import { unwrapInstagramShim } from "./unwraps/instagram.js";
@@ -47,6 +51,7 @@ import { unwrapMedium } from "./unwraps/medium.js";
47
51
  import { unwrapMimecast } from "./unwraps/mimecast.js";
48
52
  import { unwrapMozillaOutgoing } from "./unwraps/mozillaOutgoing.js";
49
53
  import { unwrapNarrativ } from "./unwraps/narrativ.js";
54
+ import { unwrapNaverOutgoing } from "./unwraps/naverOutgoing.js";
50
55
  import { unwrapNicoMs } from "./unwraps/nicoMs.js";
51
56
  import { unwrapOutlookSafelinks } from "./unwraps/outlookSafelinks.js";
52
57
  import { unwrapPartnerAds } from "./unwraps/partnerAds.js";
@@ -80,4 +85,4 @@ import { unwrapYandexTurbo } from "./unwraps/yandexTurbo.js";
80
85
  import { unwrapYouTube } from "./unwraps/youtube.js";
81
86
  import { unwrapZhihu } from "./unwraps/zhihu.js";
82
87
  import { ParamExtractorConfig, createParamExtractor } from "./utils.js";
83
- export { type CleanUrlOptions, type ParamExtractorConfig, type TrackingParam, type UrlUnwrapper, cleanUrl, createParamExtractor, defaultTrackingParams, defaultUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrapAceml, unwrapAdjust, unwrapAmazonAffiliate, unwrapAmpCache, unwrapAwin, unwrapBing, unwrapBlueskyRedirect, unwrapCjNetwork, unwrapDigidip, unwrapDisqus, unwrapDouban, unwrapDuckduckgo, unwrapEbayRover, unwrapEffiliation, unwrapEmbedly, unwrapFacebookShim, unwrapFeedsportal, unwrapFirebaseDynamicLinks, unwrapFlipboard, unwrapGateSc, unwrapGeoriot, unwrapGitee, unwrapGoogle, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapHashnode, unwrapIcptrack, unwrapIdealoPartner, unwrapInstagramShim, unwrapJianshuGo, unwrapJuejin, unwrapLeverAnalytics, unwrapLinksynergy, unwrapMailchimp, unwrapMailpanion, unwrapMailpgn, unwrapMailtrack, unwrapMedium, unwrapMimecast, unwrapMozillaOutgoing, unwrapNarrativ, unwrapNicoMs, unwrapOutlookSafelinks, unwrapPartnerAds, unwrapPocket, unwrapPostmark, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPxf, unwrapRecruitics, unwrapRedditOut, unwrapRedirectingat, unwrapSegmentfault, unwrapShareasale, unwrapSjv, unwrapSkimlinks, unwrapSlack, unwrapSmartredirect, unwrapSspai, unwrapSteamLinkfilter, unwrapTelegramIv, unwrapThreadsShim, unwrapTradedoubler, unwrapTumblr, unwrapUrl, unwrapValuecommerce, unwrapViglink, unwrapVkAway, unwrapWebArchive, unwrapYahooSearch, unwrapYandexTurbo, unwrapYouTube, unwrapZhihu };
88
+ export { type CleanUrlOptions, type ParamExtractorConfig, type TrackingParam, type UrlUnwrapper, cleanUrl, createParamExtractor, defaultTrackingParams, defaultUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrapAceml, unwrapAdjust, unwrapAmazonAffiliate, unwrapAmpCache, unwrapAnonymTo, unwrapAwin, unwrapBing, unwrapBlueskyRedirect, unwrapCjNetwork, unwrapCsdn, unwrapDeviantartOutgoing, unwrapDigidip, unwrapDisqus, unwrapDouban, unwrapDuckduckgo, unwrapEbayRover, unwrapEffiliation, unwrapEmbedly, unwrapFacebookShim, unwrapFeedsportal, unwrapFirebaseDynamicLinks, unwrapFlipboard, unwrapGateSc, unwrapGeoriot, unwrapGitee, unwrapGoogle, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapHashnode, unwrapHrefLi, unwrapIcptrack, unwrapIdealoPartner, unwrapInstagramShim, unwrapJianshuGo, unwrapJuejin, unwrapLeverAnalytics, unwrapLinksynergy, unwrapMailchimp, unwrapMailpanion, unwrapMailpgn, unwrapMailtrack, unwrapMedium, unwrapMimecast, unwrapMozillaOutgoing, unwrapNarrativ, unwrapNaverOutgoing, unwrapNicoMs, unwrapOutlookSafelinks, unwrapPartnerAds, unwrapPocket, unwrapPostmark, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPxf, unwrapRecruitics, unwrapRedditOut, unwrapRedirectingat, unwrapSegmentfault, unwrapShareasale, unwrapSjv, unwrapSkimlinks, unwrapSlack, unwrapSmartredirect, unwrapSspai, unwrapSteamLinkfilter, unwrapTelegramIv, unwrapThreadsShim, unwrapTradedoubler, unwrapTumblr, unwrapUrl, unwrapValuecommerce, unwrapViglink, unwrapVkAway, unwrapWebArchive, unwrapYahooSearch, unwrapYandexTurbo, unwrapYouTube, unwrapZhihu };
package/dist/index.js CHANGED
@@ -1,20 +1,40 @@
1
+ import { trackingParamsLiterals } from "./tracking/literals.js";
2
+ import { trackingParamsPatterns } from "./tracking/patterns.js";
3
+ import { unwrapAnonymTo } from "./unwraps/anonymTo.js";
1
4
  import { createParamExtractor } from "./utils.js";
2
5
  import { unwrapBing } from "./unwraps/bing.js";
3
6
  import { unwrapBlueskyRedirect } from "./unwraps/bsky.js";
7
+ import { unwrapCsdn } from "./unwraps/csdn.js";
8
+ import { unwrapDeviantartOutgoing } from "./unwraps/deviantartOutgoing.js";
9
+ import { unwrapDisqus } from "./unwraps/disqus.js";
10
+ import { unwrapDouban } from "./unwraps/douban.js";
4
11
  import { unwrapFacebookShim } from "./unwraps/facebook.js";
12
+ import { unwrapFlipboard } from "./unwraps/flipboard.js";
13
+ import { unwrapGitee } from "./unwraps/gitee.js";
5
14
  import { unwrapGoogle } from "./unwraps/google.js";
6
15
  import { unwrapGoogleAmpViewer } from "./unwraps/googleAmpViewer.js";
7
16
  import { unwrapGoogleNews } from "./unwraps/googleNews.js";
8
17
  import { unwrapGoogleNewsModern } from "./unwraps/googleNewsModern.js";
9
18
  import { unwrapGoogleScholar } from "./unwraps/googleScholar.js";
19
+ import { unwrapHashnode } from "./unwraps/hashnode.js";
20
+ import { unwrapHrefLi } from "./unwraps/hrefLi.js";
10
21
  import { unwrapInstagramShim } from "./unwraps/instagram.js";
22
+ import { unwrapJianshuGo } from "./unwraps/jianshuGo.js";
23
+ import { unwrapJuejin } from "./unwraps/juejin.js";
24
+ import { unwrapMedium } from "./unwraps/medium.js";
25
+ import { unwrapMozillaOutgoing } from "./unwraps/mozillaOutgoing.js";
26
+ import { unwrapNaverOutgoing } from "./unwraps/naverOutgoing.js";
27
+ import { unwrapPocket } from "./unwraps/pocket.js";
11
28
  import { unwrapRedditOut } from "./unwraps/redditOut.js";
29
+ import { unwrapSegmentfault } from "./unwraps/segmentfault.js";
30
+ import { unwrapSspai } from "./unwraps/sspai.js";
31
+ import { unwrapSteamLinkfilter } from "./unwraps/steamLinkfilter.js";
12
32
  import { unwrapThreadsShim } from "./unwraps/threads.js";
33
+ import { unwrapTumblr } from "./unwraps/tumblr.js";
13
34
  import { unwrapVkAway } from "./unwraps/vkAway.js";
14
35
  import { unwrapYahooSearch } from "./unwraps/yahooSearch.js";
15
36
  import { unwrapYouTube } from "./unwraps/youtube.js";
16
- import { trackingParamsLiterals } from "./tracking/literals.js";
17
- import { trackingParamsPatterns } from "./tracking/patterns.js";
37
+ import { unwrapZhihu } from "./unwraps/zhihu.js";
18
38
  import { defaultTrackingParams, defaultUnwrappers } from "./defaults.js";
19
39
  import { cleanUrl, stripTrackingParams, unwrapUrl } from "./clean.js";
20
40
  import { unwrapAceml } from "./unwraps/aceml.js";
@@ -24,38 +44,28 @@ import { unwrapAmpCache } from "./unwraps/ampCache.js";
24
44
  import { unwrapAwin } from "./unwraps/awin.js";
25
45
  import { unwrapCjNetwork } from "./unwraps/cjNetwork.js";
26
46
  import { unwrapDigidip } from "./unwraps/digidip.js";
27
- import { unwrapDisqus } from "./unwraps/disqus.js";
28
- import { unwrapDouban } from "./unwraps/douban.js";
29
47
  import { unwrapDuckduckgo } from "./unwraps/duckduckgo.js";
30
48
  import { unwrapEbayRover } from "./unwraps/ebayRover.js";
31
49
  import { unwrapEffiliation } from "./unwraps/effiliation.js";
32
50
  import { unwrapEmbedly } from "./unwraps/embedly.js";
33
51
  import { unwrapFeedsportal } from "./unwraps/feedsportal.js";
34
52
  import { unwrapFirebaseDynamicLinks } from "./unwraps/firebaseDynamicLinks.js";
35
- import { unwrapFlipboard } from "./unwraps/flipboard.js";
36
53
  import { unwrapGateSc } from "./unwraps/gateSc.js";
37
54
  import { unwrapGeoriot } from "./unwraps/georiot.js";
38
- import { unwrapGitee } from "./unwraps/gitee.js";
39
55
  import { unwrapGoogleTranslate } from "./unwraps/googleTranslate.js";
40
- import { unwrapHashnode } from "./unwraps/hashnode.js";
41
56
  import { unwrapIcptrack } from "./unwraps/icptrack.js";
42
57
  import { unwrapIdealoPartner } from "./unwraps/idealoPartner.js";
43
- import { unwrapJianshuGo } from "./unwraps/jianshuGo.js";
44
- import { unwrapJuejin } from "./unwraps/juejin.js";
45
58
  import { unwrapLeverAnalytics } from "./unwraps/leverAnalytics.js";
46
59
  import { unwrapLinksynergy } from "./unwraps/linksynergy.js";
47
60
  import { unwrapMailchimp } from "./unwraps/mailchimp.js";
48
61
  import { unwrapMailpanion } from "./unwraps/mailpanion.js";
49
62
  import { unwrapMailpgn } from "./unwraps/mailpgn.js";
50
63
  import { unwrapMailtrack } from "./unwraps/mailtrack.js";
51
- import { unwrapMedium } from "./unwraps/medium.js";
52
64
  import { unwrapMimecast } from "./unwraps/mimecast.js";
53
- import { unwrapMozillaOutgoing } from "./unwraps/mozillaOutgoing.js";
54
65
  import { unwrapNarrativ } from "./unwraps/narrativ.js";
55
66
  import { unwrapNicoMs } from "./unwraps/nicoMs.js";
56
67
  import { unwrapOutlookSafelinks } from "./unwraps/outlookSafelinks.js";
57
68
  import { unwrapPartnerAds } from "./unwraps/partnerAds.js";
58
- import { unwrapPocket } from "./unwraps/pocket.js";
59
69
  import { unwrapPostmark } from "./unwraps/postmark.js";
60
70
  import { unwrapProofpointV1 } from "./unwraps/proofpointV1.js";
61
71
  import { unwrapProofpointV2 } from "./unwraps/proofpointV2.js";
@@ -63,20 +73,15 @@ import { unwrapProofpointV3 } from "./unwraps/proofpointV3.js";
63
73
  import { unwrapPxf } from "./unwraps/pxf.js";
64
74
  import { unwrapRecruitics } from "./unwraps/recruitics.js";
65
75
  import { unwrapRedirectingat } from "./unwraps/redirectingat.js";
66
- import { unwrapSegmentfault } from "./unwraps/segmentfault.js";
67
76
  import { unwrapShareasale } from "./unwraps/shareasale.js";
68
77
  import { unwrapSjv } from "./unwraps/sjv.js";
69
78
  import { unwrapSkimlinks } from "./unwraps/skimlinks.js";
70
79
  import { unwrapSlack } from "./unwraps/slack.js";
71
80
  import { unwrapSmartredirect } from "./unwraps/smartredirect.js";
72
- import { unwrapSspai } from "./unwraps/sspai.js";
73
- import { unwrapSteamLinkfilter } from "./unwraps/steamLinkfilter.js";
74
81
  import { unwrapTelegramIv } from "./unwraps/telegramIv.js";
75
82
  import { unwrapTradedoubler } from "./unwraps/tradedoubler.js";
76
- import { unwrapTumblr } from "./unwraps/tumblr.js";
77
83
  import { unwrapValuecommerce } from "./unwraps/valuecommerce.js";
78
84
  import { unwrapViglink } from "./unwraps/viglink.js";
79
85
  import { unwrapWebArchive } from "./unwraps/webArchive.js";
80
86
  import { unwrapYandexTurbo } from "./unwraps/yandexTurbo.js";
81
- import { unwrapZhihu } from "./unwraps/zhihu.js";
82
- export { cleanUrl, createParamExtractor, defaultTrackingParams, defaultUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrapAceml, unwrapAdjust, unwrapAmazonAffiliate, unwrapAmpCache, unwrapAwin, unwrapBing, unwrapBlueskyRedirect, unwrapCjNetwork, unwrapDigidip, unwrapDisqus, unwrapDouban, unwrapDuckduckgo, unwrapEbayRover, unwrapEffiliation, unwrapEmbedly, unwrapFacebookShim, unwrapFeedsportal, unwrapFirebaseDynamicLinks, unwrapFlipboard, unwrapGateSc, unwrapGeoriot, unwrapGitee, unwrapGoogle, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapHashnode, unwrapIcptrack, unwrapIdealoPartner, unwrapInstagramShim, unwrapJianshuGo, unwrapJuejin, unwrapLeverAnalytics, unwrapLinksynergy, unwrapMailchimp, unwrapMailpanion, unwrapMailpgn, unwrapMailtrack, unwrapMedium, unwrapMimecast, unwrapMozillaOutgoing, unwrapNarrativ, unwrapNicoMs, unwrapOutlookSafelinks, unwrapPartnerAds, unwrapPocket, unwrapPostmark, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPxf, unwrapRecruitics, unwrapRedditOut, unwrapRedirectingat, unwrapSegmentfault, unwrapShareasale, unwrapSjv, unwrapSkimlinks, unwrapSlack, unwrapSmartredirect, unwrapSspai, unwrapSteamLinkfilter, unwrapTelegramIv, unwrapThreadsShim, unwrapTradedoubler, unwrapTumblr, unwrapUrl, unwrapValuecommerce, unwrapViglink, unwrapVkAway, unwrapWebArchive, unwrapYahooSearch, unwrapYandexTurbo, unwrapYouTube, unwrapZhihu };
87
+ export { cleanUrl, createParamExtractor, defaultTrackingParams, defaultUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrapAceml, unwrapAdjust, unwrapAmazonAffiliate, unwrapAmpCache, unwrapAnonymTo, unwrapAwin, unwrapBing, unwrapBlueskyRedirect, unwrapCjNetwork, unwrapCsdn, unwrapDeviantartOutgoing, unwrapDigidip, unwrapDisqus, unwrapDouban, unwrapDuckduckgo, unwrapEbayRover, unwrapEffiliation, unwrapEmbedly, unwrapFacebookShim, unwrapFeedsportal, unwrapFirebaseDynamicLinks, unwrapFlipboard, unwrapGateSc, unwrapGeoriot, unwrapGitee, unwrapGoogle, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapHashnode, unwrapHrefLi, unwrapIcptrack, unwrapIdealoPartner, unwrapInstagramShim, unwrapJianshuGo, unwrapJuejin, unwrapLeverAnalytics, unwrapLinksynergy, unwrapMailchimp, unwrapMailpanion, unwrapMailpgn, unwrapMailtrack, unwrapMedium, unwrapMimecast, unwrapMozillaOutgoing, unwrapNarrativ, unwrapNaverOutgoing, unwrapNicoMs, unwrapOutlookSafelinks, unwrapPartnerAds, unwrapPocket, unwrapPostmark, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPxf, unwrapRecruitics, unwrapRedditOut, unwrapRedirectingat, unwrapSegmentfault, unwrapShareasale, unwrapSjv, unwrapSkimlinks, unwrapSlack, unwrapSmartredirect, unwrapSspai, unwrapSteamLinkfilter, unwrapTelegramIv, unwrapThreadsShim, unwrapTradedoubler, unwrapTumblr, unwrapUrl, unwrapValuecommerce, unwrapViglink, unwrapVkAway, unwrapWebArchive, unwrapYahooSearch, unwrapYandexTurbo, unwrapYouTube, unwrapZhihu };
@@ -165,6 +165,7 @@ const trackingParamsLiterals = [
165
165
  "hmb_campaign",
166
166
  "hmb_medium",
167
167
  "hmb_source",
168
+ "ck_subscriber_id",
168
169
  "ml_subscriber",
169
170
  "ml_subscriber_hash",
170
171
  "oly_anon_id",
@@ -0,0 +1,6 @@
1
+ import { UrlUnwrapper } from "../types.js";
2
+
3
+ //#region src/unwraps/anonymTo.d.ts
4
+ declare const unwrapAnonymTo: UrlUnwrapper;
5
+ //#endregion
6
+ export { unwrapAnonymTo };
@@ -0,0 +1,7 @@
1
+ //#region src/unwraps/anonymTo.ts
2
+ const unwrapAnonymTo = (url) => {
3
+ if (url.hostname !== "anonym.to" && url.hostname !== "www.anonym.to") return;
4
+ return url.search.slice(1) || void 0;
5
+ };
6
+ //#endregion
7
+ export { unwrapAnonymTo };
@@ -0,0 +1,6 @@
1
+ import { UrlUnwrapper } from "../types.js";
2
+
3
+ //#region src/unwraps/csdn.d.ts
4
+ declare const unwrapCsdn: UrlUnwrapper;
5
+ //#endregion
6
+ export { unwrapCsdn };
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.js";
2
+ //#region src/unwraps/csdn.ts
3
+ const unwrapCsdn = createParamExtractor({
4
+ hosts: "link.csdn.net",
5
+ params: ["target"]
6
+ });
7
+ //#endregion
8
+ export { unwrapCsdn };
@@ -0,0 +1,6 @@
1
+ import { UrlUnwrapper } from "../types.js";
2
+
3
+ //#region src/unwraps/deviantartOutgoing.d.ts
4
+ declare const unwrapDeviantartOutgoing: UrlUnwrapper;
5
+ //#endregion
6
+ export { unwrapDeviantartOutgoing };
@@ -0,0 +1,7 @@
1
+ //#region src/unwraps/deviantartOutgoing.ts
2
+ const unwrapDeviantartOutgoing = (url) => {
3
+ if (!url.hostname.endsWith("deviantart.com") || !url.pathname.endsWith("/outgoing")) return;
4
+ return url.search.slice(1) || void 0;
5
+ };
6
+ //#endregion
7
+ export { unwrapDeviantartOutgoing };
@@ -0,0 +1,6 @@
1
+ import { UrlUnwrapper } from "../types.js";
2
+
3
+ //#region src/unwraps/hrefLi.d.ts
4
+ declare const unwrapHrefLi: UrlUnwrapper;
5
+ //#endregion
6
+ export { unwrapHrefLi };
@@ -0,0 +1,7 @@
1
+ //#region src/unwraps/hrefLi.ts
2
+ const unwrapHrefLi = (url) => {
3
+ if (url.hostname !== "href.li" && url.hostname !== "www.href.li") return;
4
+ return url.search.slice(1) || void 0;
5
+ };
6
+ //#endregion
7
+ export { unwrapHrefLi };
@@ -0,0 +1,6 @@
1
+ import { UrlUnwrapper } from "../types.js";
2
+
3
+ //#region src/unwraps/naverOutgoing.d.ts
4
+ declare const unwrapNaverOutgoing: UrlUnwrapper;
5
+ //#endregion
6
+ export { unwrapNaverOutgoing };
@@ -0,0 +1,8 @@
1
+ import { createParamExtractor } from "../utils.js";
2
+ //#region src/unwraps/naverOutgoing.ts
3
+ const unwrapNaverOutgoing = createParamExtractor({
4
+ hosts: "cc.loginfra.com",
5
+ params: ["u"]
6
+ });
7
+ //#endregion
8
+ export { unwrapNaverOutgoing };
package/package.json CHANGED
@@ -38,9 +38,9 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/bun": "^1.3.14",
41
- "kvalita": "^1.15.0",
41
+ "kvalita": "^1.17.2",
42
42
  "trousse": "^1.0.0",
43
43
  "tsdown": "^0.22.2"
44
44
  },
45
- "version": "1.2.0"
45
+ "version": "1.4.0"
46
46
  }