urlpurify 1.6.1 → 2.1.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 +27 -8
- package/dist/clean.mjs +7 -17
- package/dist/defaults.d.mts +9 -3
- package/dist/defaults.mjs +38 -17
- package/dist/index.d.mts +8 -4
- package/dist/index.mjs +8 -4
- package/dist/node_modules/trousse/dist/urls.mjs +33 -4
- package/dist/tracking/affiliate.d.mts +4 -0
- package/dist/tracking/affiliate.mjs +18 -0
- package/dist/tracking/campaign.d.mts +4 -0
- package/dist/tracking/campaign.mjs +77 -0
- package/dist/tracking/clickAttribution.d.mts +4 -0
- package/dist/tracking/clickAttribution.mjs +53 -0
- package/dist/tracking/housekeeping.d.mts +4 -0
- package/dist/tracking/housekeeping.mjs +30 -0
- package/dist/tracking/visitorId.d.mts +4 -0
- package/dist/tracking/visitorId.mjs +40 -0
- package/dist/unwraps/aceml.mjs +2 -4
- package/dist/unwraps/adjust.mjs +5 -5
- package/dist/unwraps/amazonSes.mjs +3 -5
- package/dist/unwraps/anchor.mjs +2 -3
- package/dist/unwraps/apptrkr.mjs +3 -3
- package/dist/unwraps/archiveToday.mjs +2 -2
- package/dist/unwraps/augure.mjs +2 -7
- package/dist/unwraps/bing.mjs +2 -2
- package/dist/unwraps/bingAds.mjs +5 -7
- package/dist/unwraps/bitrix.mjs +3 -2
- package/dist/unwraps/ciscoSecureWeb.mjs +4 -7
- package/dist/unwraps/cjNetwork.mjs +2 -8
- package/dist/unwraps/cse360.mjs +4 -7
- package/dist/unwraps/datalifeEngine.mjs +2 -2
- package/dist/unwraps/deployer.mjs +2 -2
- package/dist/unwraps/digikala.mjs +2 -2
- package/dist/unwraps/disqus.mjs +4 -1
- package/dist/unwraps/easyMarketing.mjs +2 -2
- package/dist/unwraps/facebook.mjs +5 -7
- package/dist/unwraps/feedStatistics.mjs +2 -2
- package/dist/unwraps/firebaseDynamicLinks.mjs +1 -1
- package/dist/unwraps/firstory.mjs +2 -4
- package/dist/unwraps/gfnLinkProxy.mjs +2 -2
- package/dist/unwraps/godcaster.mjs +3 -3
- package/dist/unwraps/govdelivery.d.mts +4 -0
- package/dist/unwraps/govdelivery.mjs +12 -0
- package/dist/unwraps/impact.mjs +3 -3
- package/dist/unwraps/indexHu.mjs +3 -3
- package/dist/unwraps/invisionNoExternalLinks.mjs +3 -3
- package/dist/unwraps/linksynergy.mjs +3 -3
- package/dist/unwraps/logicboard.mjs +3 -3
- package/dist/unwraps/mailinblack.mjs +2 -2
- package/dist/unwraps/mandrill.mjs +2 -2
- package/dist/unwraps/mimecast.mjs +1 -4
- package/dist/unwraps/mohtwize.mjs +2 -6
- package/dist/unwraps/mozillaOutgoing.mjs +2 -2
- package/dist/unwraps/newswire.mjs +2 -2
- package/dist/unwraps/postAffiliatePro.mjs +3 -3
- package/dist/unwraps/postmark.mjs +2 -2
- package/dist/unwraps/prezly.mjs +2 -7
- package/dist/unwraps/proofpointV1.mjs +6 -15
- package/dist/unwraps/proofpointV2.mjs +12 -2
- package/dist/unwraps/qualityClick.mjs +3 -3
- package/dist/unwraps/researchgate.mjs +3 -5
- package/dist/unwraps/reviveAdserver.mjs +3 -5
- package/dist/unwraps/serendipity.mjs +2 -2
- package/dist/unwraps/streak.mjs +3 -5
- package/dist/unwraps/surly.mjs +2 -8
- package/dist/unwraps/webArchive.mjs +2 -2
- package/dist/unwraps/xengentr.mjs +2 -2
- package/dist/unwraps/yahooJapanAmpViewer.mjs +2 -7
- package/dist/unwraps/yahooSearch.mjs +3 -2
- package/dist/unwraps/yandexMail.mjs +2 -2
- package/dist/unwraps/yourMembership.mjs +3 -3
- package/dist/utils.mjs +17 -14
- package/package.json +2 -2
- package/dist/tracking/literals.d.mts +0 -3
- package/dist/tracking/literals.mjs +0 -184
- package/dist/tracking/patterns.d.mts +0 -3
- package/dist/tracking/patterns.mjs +0 -19
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
Unwrap redirect, affiliate, and tracking wrapper URLs and strip tracking parameters. Turn noisy links into clean, direct URLs.
|
|
8
8
|
|
|
9
|
-
Links from feeds, emails and social platforms rarely point straight at their destination. They pass through search redirects, link shims, email gateways and affiliate networks, and pick up tracking parameters on the way, the link decoration that follows a reader from site to site. urlpurify unwraps 380+ known wrappers and strips
|
|
9
|
+
Links from feeds, emails and social platforms rarely point straight at their destination. They pass through search redirects, link shims, email gateways and affiliate networks, and pick up tracking parameters on the way, the link decoration that follows a reader from site to site. urlpurify unwraps 380+ known wrappers and strips 100+ known tracking parameters plus vendor families. Campaign tags like `utm_*` and affiliate ids stay by default: they serve the site, not a tracker. It has no dependencies and runs in any modern JavaScript runtime, browsers included.
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@ npm install urlpurify
|
|
|
19
19
|
```typescript
|
|
20
20
|
import { cleanUrl } from 'urlpurify'
|
|
21
21
|
|
|
22
|
-
const url = 'https://www.google.com/url?q=https%3A%2F%2Fexample.com%2Fpost%
|
|
22
|
+
const url = 'https://www.google.com/url?q=https%3A%2F%2Fexample.com%2Fpost%3Ffbclid%3Dabc'
|
|
23
23
|
|
|
24
24
|
cleanUrl(url) // => 'https://example.com/post'
|
|
25
25
|
```
|
|
@@ -76,11 +76,29 @@ const unwrapExample = createParamExtractor({
|
|
|
76
76
|
cleanUrl(url, { unwrappers: [...defaultUnwrappers, unwrapExample] })
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
A value still encoded after one decode, starting with `http%3A` or `https%3A`, is decoded once more. For any other shape, write a plain `UrlUnwrapper`: a function that takes a `URL` and returns the target or `undefined`.
|
|
79
|
+
A value still encoded after one decode, starting with `http%3A` or `https%3A`, is decoded once more. A malformed escape, or one in a legacy charset such as `%E9` for é in Latin-1, stays as written. For any other shape, write a plain `UrlUnwrapper`: a function that takes a `URL` and returns the target or `undefined`.
|
|
80
80
|
|
|
81
81
|
### Tracking parameters
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
Tracking parameters are grouped like the unwrappers, by what stripping them takes away from someone:
|
|
84
|
+
|
|
85
|
+
| Category | Export | Stripping removes | Default |
|
|
86
|
+
| --- | --- | --- | :---: |
|
|
87
|
+
| Click attribution | `clickAttributionParams` | Ad, search and platform click ids | ☑️ |
|
|
88
|
+
| Visitor ids | `visitorIdParams` | Ids of one visitor, session, browser or email recipient | ☑️ |
|
|
89
|
+
| Housekeeping | `housekeepingParams` | Nothing: cache busters, previews and redirect leftovers | ☑️ |
|
|
90
|
+
| Campaign tags | `campaignParams` | The site's own traffic stats, from tags like `utm_*` | |
|
|
91
|
+
| Affiliate ids | `affiliateParams` | The publisher's commission | |
|
|
92
|
+
|
|
93
|
+
`defaultTrackingParams` combines the first three. A campaign tag carries the same value for every reader, so it tells the site where a visit came from and nothing about who made it. To strip more, spread them next to the defaults:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import { campaignParams, defaultTrackingParams, stripTrackingParams } from 'urlpurify'
|
|
97
|
+
|
|
98
|
+
stripTrackingParams(url, [...defaultTrackingParams, ...campaignParams])
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`trackingParamsLiterals` and `trackingParamsPatterns` hold every known parameter, opt-in categories included, split into names and regexes.
|
|
84
102
|
|
|
85
103
|
## Unwrappers
|
|
86
104
|
|
|
@@ -89,17 +107,18 @@ There are more than 380 unwrappers, each in its own file in [src/unwraps](src/un
|
|
|
89
107
|
| Category | Export | Unwrapping removes | Default |
|
|
90
108
|
| --- | --- | --- | :---: |
|
|
91
109
|
| Search clicks | `searchClickUnwrappers` | The search engine's or aggregator's click logging | ☑️ |
|
|
92
|
-
| Link shims | `linkShimUnwrappers` | Nothing, or a platform's click count
|
|
93
|
-
| Press releases | `pressReleaseUnwrappers` | The
|
|
110
|
+
| Link shims | `linkShimUnwrappers` | Nothing, or a platform's click count | ☑️ |
|
|
111
|
+
| Press releases | `pressReleaseUnwrappers` | The issuer's click stats from the wire | |
|
|
94
112
|
| Sign-in shims | `signInShimUnwrappers` | Nothing, but the shim's page needs a sign-in | |
|
|
95
113
|
| Security gateways | `securityGatewayUnwrappers` | The gateway's click-time check of the target | |
|
|
96
114
|
| Email tracking | `emailTrackingUnwrappers` | The sender's click stats | |
|
|
97
115
|
| Affiliate links | `affiliateUnwrappers` | The publisher's commission | |
|
|
98
116
|
| Advertising | `advertisingUnwrappers` | Ad click and app install attribution | |
|
|
99
|
-
|
|
|
117
|
+
| Click counters | `clickCounterUnwrappers` | A site's or feed's count of which links get clicked | |
|
|
118
|
+
| Download measurement | `downloadMeasurementUnwrappers` | A podcast measurement prefix's download counts, or a site's download counts | |
|
|
100
119
|
| Archives and proxies | `archiveProxyUnwrappers` | The archived or translated copy: you get the live page | |
|
|
101
120
|
|
|
102
|
-
`defaultUnwrappers` combines the first
|
|
121
|
+
`defaultUnwrappers` combines the first two. The rest cost somebody something or change the page: a feed click counter tells a blog which posts get read, an affiliate link may pay for a small blog, and an archive link points at a copy on purpose. To turn more on, spread them next to the defaults:
|
|
103
122
|
|
|
104
123
|
```typescript
|
|
105
124
|
import { affiliateUnwrappers, cleanUrl, defaultUnwrappers } from 'urlpurify'
|
package/dist/clean.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { fixMalformedProtocol, isHttpUrl, isIpAddress, normalizeUrl, parseUrl, stripWww } from "./node_modules/trousse/dist/urls.mjs";
|
|
2
2
|
import { defaultTrackingParams, defaultUnwrappers } from "./defaults.mjs";
|
|
3
3
|
//#region src/clean.ts
|
|
4
|
-
const replacementCharacter = "�";
|
|
5
4
|
const refDelimitersRegex = /[\s/?#\\:@]/;
|
|
6
5
|
const signatureParams = [
|
|
7
6
|
"sig",
|
|
@@ -62,13 +61,16 @@ const cleanTarget = (target) => {
|
|
|
62
61
|
return repaired;
|
|
63
62
|
};
|
|
64
63
|
const protocolRelativeRegex = /^\/\/[^/]/;
|
|
64
|
+
const bareHostRegex = /^[\p{L}\p{N}-]+(?:\.[\p{L}\p{N}-]+)+(?:[/?#:]|$)/u;
|
|
65
65
|
const addMissingScheme = (target) => {
|
|
66
|
-
if (!target
|
|
67
|
-
return `https:${target}`;
|
|
66
|
+
if (!target) return;
|
|
67
|
+
if (protocolRelativeRegex.test(target)) return `https:${target}`;
|
|
68
|
+
if (bareHostRegex.test(target)) return `https://${target}`;
|
|
69
|
+
return target;
|
|
68
70
|
};
|
|
69
71
|
const applyUnwrappers = (url, unwrappers) => {
|
|
70
72
|
for (const unwrap of unwrappers) {
|
|
71
|
-
const raw = addMissingScheme(unwrap(url));
|
|
73
|
+
const raw = addMissingScheme(unwrap(url)?.trim());
|
|
72
74
|
if (!raw || !isHttpUrl(raw)) continue;
|
|
73
75
|
const target = cleanTarget(raw);
|
|
74
76
|
if (target) return target;
|
|
@@ -81,7 +83,7 @@ const unwrapUrl = (url, unwrappers = defaultUnwrappers) => {
|
|
|
81
83
|
const parsed = parseUrl(url);
|
|
82
84
|
if (!parsed) return;
|
|
83
85
|
const target = applyUnwrappers(parsed, unwrappers);
|
|
84
|
-
if (!target
|
|
86
|
+
if (!target) return;
|
|
85
87
|
return parseUrl(target)?.href;
|
|
86
88
|
};
|
|
87
89
|
const stripTrackingParams = (url, trackingParams = defaultTrackingParams) => {
|
|
@@ -96,25 +98,13 @@ const cleanUrl = (url, options) => {
|
|
|
96
98
|
const maxUnwrapDepth = options?.maxUnwrapDepth ?? 6;
|
|
97
99
|
const parsed = parseUrl(url);
|
|
98
100
|
if (!parsed) return url;
|
|
99
|
-
let currentUrl = url;
|
|
100
101
|
let currentParsed = parsed;
|
|
101
|
-
let intactUrl = url;
|
|
102
|
-
let intactParsed = parsed;
|
|
103
102
|
for (let depth = 0; depth < maxUnwrapDepth; depth += 1) {
|
|
104
103
|
const target = applyUnwrappers(currentParsed, unwrappers);
|
|
105
104
|
if (!target) break;
|
|
106
105
|
const targetParsed = parseUrl(target);
|
|
107
106
|
if (!targetParsed) break;
|
|
108
|
-
currentUrl = target;
|
|
109
107
|
currentParsed = targetParsed;
|
|
110
|
-
if (!target.includes(replacementCharacter)) {
|
|
111
|
-
intactUrl = target;
|
|
112
|
-
intactParsed = targetParsed;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (currentUrl.includes(replacementCharacter)) {
|
|
116
|
-
currentUrl = intactUrl;
|
|
117
|
-
currentParsed = intactParsed;
|
|
118
108
|
}
|
|
119
109
|
deleteTrackingParams(currentParsed, trackingParams);
|
|
120
110
|
return currentParsed.href;
|
package/dist/defaults.d.mts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { TrackingParam, UrlUnwrapper } from "./types.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { affiliateParams } from "./tracking/affiliate.mjs";
|
|
3
|
+
import { campaignParams } from "./tracking/campaign.mjs";
|
|
4
|
+
import { clickAttributionParams } from "./tracking/clickAttribution.mjs";
|
|
5
|
+
import { housekeepingParams } from "./tracking/housekeeping.mjs";
|
|
6
|
+
import { visitorIdParams } from "./tracking/visitorId.mjs";
|
|
4
7
|
//#region src/defaults.d.ts
|
|
5
8
|
export declare const defaultTrackingParams: Array<TrackingParam>;
|
|
9
|
+
export declare const trackingParamsLiterals: Array<string>;
|
|
10
|
+
export declare const trackingParamsPatterns: Array<RegExp>;
|
|
6
11
|
export declare const searchClickUnwrappers: Array<UrlUnwrapper>;
|
|
7
12
|
export declare const linkShimUnwrappers: Array<UrlUnwrapper>;
|
|
8
13
|
export declare const pressReleaseUnwrappers: Array<UrlUnwrapper>;
|
|
@@ -11,8 +16,9 @@ export declare const securityGatewayUnwrappers: Array<UrlUnwrapper>;
|
|
|
11
16
|
export declare const emailTrackingUnwrappers: Array<UrlUnwrapper>;
|
|
12
17
|
export declare const affiliateUnwrappers: Array<UrlUnwrapper>;
|
|
13
18
|
export declare const advertisingUnwrappers: Array<UrlUnwrapper>;
|
|
19
|
+
export declare const clickCounterUnwrappers: Array<UrlUnwrapper>;
|
|
14
20
|
export declare const downloadMeasurementUnwrappers: Array<UrlUnwrapper>;
|
|
15
21
|
export declare const archiveProxyUnwrappers: Array<UrlUnwrapper>;
|
|
16
22
|
export declare const defaultUnwrappers: Array<UrlUnwrapper>;
|
|
17
23
|
//#endregion
|
|
18
|
-
export {
|
|
24
|
+
export { affiliateParams, campaignParams, clickAttributionParams, housekeepingParams, visitorIdParams };
|
package/dist/defaults.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { affiliateParams } from "./tracking/affiliate.mjs";
|
|
2
|
+
import { campaignParams } from "./tracking/campaign.mjs";
|
|
3
|
+
import { clickAttributionParams } from "./tracking/clickAttribution.mjs";
|
|
4
|
+
import { housekeepingParams } from "./tracking/housekeeping.mjs";
|
|
5
|
+
import { visitorIdParams } from "./tracking/visitorId.mjs";
|
|
3
6
|
import { unwrap2performant } from "./unwraps/2performant.mjs";
|
|
4
7
|
import { unwrap4pda } from "./unwraps/4pda.mjs";
|
|
5
8
|
import { unwrap12ft } from "./unwraps/12ft.mjs";
|
|
@@ -148,6 +151,7 @@ import { unwrapGoogleNewsModern } from "./unwraps/googleNewsModern.mjs";
|
|
|
148
151
|
import { unwrapGoogleScholar } from "./unwraps/googleScholar.mjs";
|
|
149
152
|
import { unwrapGoogleTranslate } from "./unwraps/googleTranslate.mjs";
|
|
150
153
|
import { unwrapGoogleWebLight } from "./unwraps/googleWebLight.mjs";
|
|
154
|
+
import { unwrapGovdelivery } from "./unwraps/govdelivery.mjs";
|
|
151
155
|
import { unwrapGroupMail } from "./unwraps/groupMail.mjs";
|
|
152
156
|
import { unwrapGroupon } from "./unwraps/groupon.mjs";
|
|
153
157
|
import { unwrapGumball } from "./unwraps/gumball.mjs";
|
|
@@ -382,7 +386,25 @@ import { unwrapZhihu } from "./unwraps/zhihu.mjs";
|
|
|
382
386
|
import { unwrapZix } from "./unwraps/zix.mjs";
|
|
383
387
|
import { unwrapZscalerIsolation } from "./unwraps/zscalerIsolation.mjs";
|
|
384
388
|
//#region src/defaults.ts
|
|
385
|
-
const defaultTrackingParams = [
|
|
389
|
+
const defaultTrackingParams = [
|
|
390
|
+
...clickAttributionParams,
|
|
391
|
+
...visitorIdParams,
|
|
392
|
+
...housekeepingParams
|
|
393
|
+
];
|
|
394
|
+
const knownTrackingParams = [
|
|
395
|
+
...defaultTrackingParams,
|
|
396
|
+
...campaignParams,
|
|
397
|
+
...affiliateParams
|
|
398
|
+
];
|
|
399
|
+
const trackingParamsLiterals = [];
|
|
400
|
+
const trackingParamsPatterns = [];
|
|
401
|
+
for (const param of knownTrackingParams) {
|
|
402
|
+
if (typeof param === "string") {
|
|
403
|
+
trackingParamsLiterals.push(param);
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
trackingParamsPatterns.push(param);
|
|
407
|
+
}
|
|
386
408
|
const searchClickUnwrappers = [
|
|
387
409
|
unwrapAllblog,
|
|
388
410
|
unwrapAsk,
|
|
@@ -408,14 +430,12 @@ const linkShimUnwrappers = [
|
|
|
408
430
|
unwrapArxiv,
|
|
409
431
|
unwrapBabyblog,
|
|
410
432
|
unwrapBale,
|
|
411
|
-
unwrapBitrix,
|
|
412
433
|
unwrapBlueskyRedirect,
|
|
413
434
|
unwrapBridgyFed,
|
|
414
435
|
unwrapBytedance,
|
|
415
436
|
unwrapCalendly,
|
|
416
437
|
unwrapCanva,
|
|
417
438
|
unwrapCsdn,
|
|
418
|
-
unwrapDasBlog,
|
|
419
439
|
unwrapDatalifeEngine,
|
|
420
440
|
unwrapDerefMail,
|
|
421
441
|
unwrapDeviantartOutgoing,
|
|
@@ -426,10 +446,7 @@ const linkShimUnwrappers = [
|
|
|
426
446
|
unwrapEmbedly,
|
|
427
447
|
unwrapEvernote,
|
|
428
448
|
unwrapFacebookShim,
|
|
429
|
-
unwrapFeedblitz,
|
|
430
449
|
unwrapFeedsportal,
|
|
431
|
-
unwrapFeedStatistics,
|
|
432
|
-
unwrapFinalsite,
|
|
433
450
|
unwrapFtc,
|
|
434
451
|
unwrapGfnLinkProxy,
|
|
435
452
|
unwrapGitee,
|
|
@@ -439,7 +456,6 @@ const linkShimUnwrappers = [
|
|
|
439
456
|
unwrapHearthis,
|
|
440
457
|
unwrapHorde,
|
|
441
458
|
unwrapHrefLi,
|
|
442
|
-
unwrapIndexHu,
|
|
443
459
|
unwrapInstagramShim,
|
|
444
460
|
unwrapInvisionNoExternalLinks,
|
|
445
461
|
unwrapIrs,
|
|
@@ -469,7 +485,6 @@ const linkShimUnwrappers = [
|
|
|
469
485
|
unwrapResearchgate,
|
|
470
486
|
unwrapSapHelp,
|
|
471
487
|
unwrapSegmentfault,
|
|
472
|
-
unwrapSerendipity,
|
|
473
488
|
unwrapSkyrock,
|
|
474
489
|
unwrapSlack,
|
|
475
490
|
unwrapSoundcloud,
|
|
@@ -478,7 +493,6 @@ const linkShimUnwrappers = [
|
|
|
478
493
|
unwrapStorify,
|
|
479
494
|
unwrapStumbleupon,
|
|
480
495
|
unwrapTeacup,
|
|
481
|
-
unwrapTheRegister,
|
|
482
496
|
unwrapThreadsShim,
|
|
483
497
|
unwrapTiktok,
|
|
484
498
|
unwrapTumblr,
|
|
@@ -555,6 +569,7 @@ const emailTrackingUnwrappers = [
|
|
|
555
569
|
unwrapElasticEmail,
|
|
556
570
|
unwrapFanbridge,
|
|
557
571
|
unwrapGlueUp,
|
|
572
|
+
unwrapGovdelivery,
|
|
558
573
|
unwrapGroupMail,
|
|
559
574
|
unwrapHellohq,
|
|
560
575
|
unwrapHubspotSidekick,
|
|
@@ -710,6 +725,16 @@ const advertisingUnwrappers = [
|
|
|
710
725
|
unwrapSmartAdserver,
|
|
711
726
|
unwrapTriplelift
|
|
712
727
|
];
|
|
728
|
+
const clickCounterUnwrappers = [
|
|
729
|
+
unwrapBitrix,
|
|
730
|
+
unwrapDasBlog,
|
|
731
|
+
unwrapFeedblitz,
|
|
732
|
+
unwrapFeedStatistics,
|
|
733
|
+
unwrapFinalsite,
|
|
734
|
+
unwrapIndexHu,
|
|
735
|
+
unwrapSerendipity,
|
|
736
|
+
unwrapTheRegister
|
|
737
|
+
];
|
|
713
738
|
const downloadMeasurementUnwrappers = [
|
|
714
739
|
unwrapAcast,
|
|
715
740
|
unwrapAnchor,
|
|
@@ -784,10 +809,6 @@ const archiveProxyUnwrappers = [
|
|
|
784
809
|
unwrapYandexTranslate,
|
|
785
810
|
unwrapYandexTurbo
|
|
786
811
|
];
|
|
787
|
-
const defaultUnwrappers = [
|
|
788
|
-
...searchClickUnwrappers,
|
|
789
|
-
...linkShimUnwrappers,
|
|
790
|
-
...pressReleaseUnwrappers
|
|
791
|
-
];
|
|
812
|
+
const defaultUnwrappers = [...searchClickUnwrappers, ...linkShimUnwrappers];
|
|
792
813
|
//#endregion
|
|
793
|
-
export { advertisingUnwrappers, affiliateUnwrappers, archiveProxyUnwrappers, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, trackingParamsLiterals, trackingParamsPatterns };
|
|
814
|
+
export { advertisingUnwrappers, affiliateParams, affiliateUnwrappers, archiveProxyUnwrappers, campaignParams, clickAttributionParams, clickCounterUnwrappers, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, housekeepingParams, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, trackingParamsLiterals, trackingParamsPatterns, visitorIdParams };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { CleanUrlOptions, TrackingParam, UrlUnwrapper } from "./types.mjs";
|
|
2
2
|
import { cleanUrl, stripTrackingParams, unwrapUrl } from "./clean.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { affiliateParams } from "./tracking/affiliate.mjs";
|
|
4
|
+
import { campaignParams } from "./tracking/campaign.mjs";
|
|
5
|
+
import { clickAttributionParams } from "./tracking/clickAttribution.mjs";
|
|
6
|
+
import { housekeepingParams } from "./tracking/housekeeping.mjs";
|
|
7
|
+
import { visitorIdParams } from "./tracking/visitorId.mjs";
|
|
8
|
+
import { advertisingUnwrappers, affiliateUnwrappers, archiveProxyUnwrappers, clickCounterUnwrappers, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, trackingParamsLiterals, trackingParamsPatterns } from "./defaults.mjs";
|
|
6
9
|
import { unwrap2performant } from "./unwraps/2performant.mjs";
|
|
7
10
|
import { unwrap4pda } from "./unwraps/4pda.mjs";
|
|
8
11
|
import { unwrap12ft } from "./unwraps/12ft.mjs";
|
|
@@ -151,6 +154,7 @@ import { unwrapGoogleNewsModern } from "./unwraps/googleNewsModern.mjs";
|
|
|
151
154
|
import { unwrapGoogleScholar } from "./unwraps/googleScholar.mjs";
|
|
152
155
|
import { unwrapGoogleTranslate } from "./unwraps/googleTranslate.mjs";
|
|
153
156
|
import { unwrapGoogleWebLight } from "./unwraps/googleWebLight.mjs";
|
|
157
|
+
import { unwrapGovdelivery } from "./unwraps/govdelivery.mjs";
|
|
154
158
|
import { unwrapGroupMail } from "./unwraps/groupMail.mjs";
|
|
155
159
|
import { unwrapGroupon } from "./unwraps/groupon.mjs";
|
|
156
160
|
import { unwrapGumball } from "./unwraps/gumball.mjs";
|
|
@@ -385,4 +389,4 @@ import { unwrapZhihu } from "./unwraps/zhihu.mjs";
|
|
|
385
389
|
import { unwrapZix } from "./unwraps/zix.mjs";
|
|
386
390
|
import { unwrapZscalerIsolation } from "./unwraps/zscalerIsolation.mjs";
|
|
387
391
|
import { ParamExtractorConfig, createParamExtractor } from "./utils.mjs";
|
|
388
|
-
export { type CleanUrlOptions, type ParamExtractorConfig, type TrackingParam, type UrlUnwrapper, advertisingUnwrappers, affiliateUnwrappers, archiveProxyUnwrappers, cleanUrl, createParamExtractor, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrap12ft, unwrap2performant, unwrap4pda, unwrapA8Net, unwrapAboutCom, unwrapAcast, unwrapAccesstrade, unwrapAceml, unwrapAdcell, unwrapAdfly, unwrapAdjust, unwrapAdmitad, unwrapAdrecord, unwrapAdtraction, unwrapAffilae, unwrapAffiliateFuture, unwrapAffiliatesOne, unwrapAliexpress, unwrapAliyun, unwrapAllblog, unwrapAmazonAffiliate, unwrapAmazonSes, unwrapAmpCache, unwrapAnchor, unwrapAnonymTo, unwrapAnonymouse, unwrapAppsflyerOnelink, unwrapApptrkr, unwrapArchiveToday, unwrapArquivo, unwrapArttrack, unwrapArxiv, unwrapAsk, unwrapAugure, unwrapAusha, unwrapAvantlink, unwrapAwesound, unwrapAwin, unwrapAxigen, unwrapBabyblog, unwrapBacLacWebArchive, unwrapBale, unwrapBananatag, unwrapBarracudaLinkProtect, unwrapBig5Gate, unwrapBing, unwrapBingAds, unwrapBitrix, unwrapBitrixBanner, unwrapBizrate, unwrapBlubrry, unwrapBlueskyRedirect, unwrapBolPartner, unwrapBridgyFed, unwrapBusinessWire, unwrapButton, unwrapBuyAt, unwrapBuybox, unwrapBuzzstream, unwrapBytedance, unwrapCake, unwrapCalendly, unwrapCanva, unwrapCastPlus, unwrapCcbill, unwrapChartable, unwrapCheckPointHarmony, unwrapChitika, unwrapCiscoSecureWeb, unwrapCjNetwork, unwrapClaritas, unwrapCleverbridge, unwrapClevercomm, unwrapCloudhq, unwrapCloze, unwrapCohst, unwrapCommissionFactory, unwrapCommunicationads, unwrapConstantContact, unwrapContactMonkey, unwrapConvertiser, unwrapCsdn, unwrapCse360, unwrapCuelinks, unwrapDasBlog, unwrapDatalifeEngine, unwrapDeployer, unwrapDerefMail, unwrapDeviantartOutgoing, unwrapDigidip, unwrapDigikala, unwrapDirectMail, unwrapDisqus, unwrapDmmAffiliate, unwrapDognet, unwrapDouban, unwrapDropbox, unwrapDstats, unwrapDuckduckgo, unwrapDuckduckgoAds, unwrapDuomai, unwrapDyn, unwrapDzen, unwrapEClick, unwrapEasyMarketing, unwrapEbayRover, unwrapEbuzzing, unwrapEdgepilot, unwrapEffiliation, unwrapEhub, unwrapElasticEmail, unwrapEmbedly, unwrapEpn, unwrapEsva, unwrapEulerian, unwrapEvernote, unwrapExciteTranslate, unwrapExpediaAffiliate, unwrapFacebookShim, unwrapFanbridge, unwrapFederatedMedia, unwrapFeedStatistics, unwrapFeedblitz, unwrapFeedsportal, unwrapFinalsite, unwrapFirebaseDynamicLinks, unwrapFireeye, unwrapFirstory, unwrapFiveByFive, unwrapFiverr, unwrapFlexoffers, unwrapFlipboard, unwrapFortimail, unwrapFtc, unwrapGateSc, unwrapGeoriot, unwrapGfnLinkProxy, unwrapGitee, unwrapGlueUp, unwrapGodcaster, unwrapGoogle, unwrapGoogleAds, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapGoogleWebLight, unwrapGroupMail, unwrapGroupon, unwrapGumball, unwrapGurunavi, unwrapHackerone, unwrapHashnode, unwrapHasoffers, unwrapHearthis, unwrapHellohq, unwrapHirkereso, unwrapHorde, unwrapHornetsecurity, unwrapHrefLi, unwrapHubspotSidekick, unwrapIcptrack, unwrapIgafnl, unwrapImpact, unwrapIndexHu, unwrapInfospace, unwrapInsiderAffiliate, unwrapInstagramShim, unwrapIntranetQuorum, unwrapInvisionNoExternalLinks, unwrapInvolveAsia, unwrapIrs, unwrapJianshuGo, unwrapJive, unwrapJuejin, unwrapJustwatch, unwrapKlook, unwrapLazada, unwrapLd246, unwrapLetscast, unwrapLeverAnalytics, unwrapLinkA, unwrapLinkconnector, unwrapLinkedin, unwrapLinksynergy, unwrapLinktrust, unwrapLinkwise, unwrapLivejournal, unwrapLnkam, unwrapLocWebArchive, unwrapLocaweb, unwrapLogicboard, unwrapMagellan, unwrapMagnetmail, unwrapMail2easy, unwrapMailRu, unwrapMailRuLink, unwrapMailchimp, unwrapMailinblack, unwrapMailpanion, unwrapMailpgn, unwrapMailstat, unwrapMailtrack, unwrapMandrill, unwrapMarketwire, unwrapMcas, unwrapMedium, unwrapMegalodon, unwrapMimecast, unwrapMinistryCloud, unwrapMintDownloads, unwrapMintFeeder, unwrapMohtwize, unwrapMoshimo, unwrapMozillaOutgoing, unwrapMyNewsletterBuilder, unwrapNarrativ, unwrapNatlibNz, unwrapNaverOutgoing, unwrapNcls, unwrapNdlWarp, unwrapNetaffiliation, unwrapNetcentrum, unwrapNewswire, unwrapNicoMs, unwrapNimble, unwrapNlaWebarchive, unwrapNodeseek, unwrapOkRu, unwrapOp3, unwrapOrkut, unwrapOsnova, unwrapOutlookSafelinks, unwrapOutlookWebAccess, unwrapPagefreezer, unwrapPartnerAds, unwrapPbs, unwrapPhilpapers, unwrapPinterest, unwrapPipedrive, unwrapPocket, unwrapPodcorn, unwrapPodder, unwrapPodkite, unwrapPodroll, unwrapPodscribe, unwrapPodsights, unwrapPodtrac, unwrapPodup, unwrapPostAffiliatePro, unwrapPostmark, unwrapPrNewswire, unwrapPrezly, unwrapPriceGrabber, unwrapPromoJukebox, unwrapProofpointIsolation, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPrweb, unwrapQualityClick, unwrapRakutenAffiliate, unwrapRamblerMail, unwrapRecruitics, unwrapRedditOut, unwrapRediffmail, unwrapRedirectingat, unwrapResearchgate, unwrapReverbnation, unwrapReviveAdserver, unwrapSalesdoubler, unwrapSalesflare, unwrapSalesforceiq, unwrapSaleshandy, unwrapSalsa, unwrapSapHelp, unwrapSbsAd, unwrapSegmentfault, unwrapSerendipity, unwrapShareasale, unwrapShareit, unwrapSkimlinks, unwrapSkyrock, unwrapSlack, unwrapSlickdeals, unwrapSmartAdserver, unwrapSmartredirect, unwrapSmry, unwrapSophos, unwrapSoundOn, unwrapSoundcloud, unwrapSoundstack, unwrapSquarespaceEmail, unwrapSspai, unwrapStay22, unwrapSteamLinkfilter, unwrapStorify, unwrapStreak, unwrapStreamsend, unwrapStumbleupon, unwrapSubscribeRu, unwrapSubstack, unwrapSurly, unwrapSurugaya, unwrapSwap, unwrapSymantecClicktime, unwrapSymplicity, unwrapTargetCircle, unwrapTeacup, unwrapTelegramIv, unwrapTheRegister, unwrapThreadsShim, unwrapTiktok, unwrapTitanhqLinklock, unwrapTopsec, unwrapToucharcade, unwrapTracdelight, unwrapTradedoubler, unwrapTradetracker, unwrapTravelpayouts, unwrapTrendMicro, unwrapTriplelift, unwrapTrustwaveScanmail, unwrapTrxHub, unwrapTumblr, unwrapTwitterRedirect, unwrapTwoCheckout, unwrapUinterbox, unwrapUkWebArchive, unwrapUkgwa, unwrapUnescoWebArchive, unwrapUnhcrWebArchive, unwrapUnisender, unwrapUpAudio, unwrapUrl, unwrapVadeSecure, unwrapValuePress, unwrapValuecommerce, unwrapVanilla, unwrapVbulletin, unwrapVefsafn, unwrapVgWort, unwrapViglink, unwrapVirgool, unwrapVisibli, unwrapVkAway, unwrapVocus, unwrapVoxnest, unwrapVpixl, unwrapVuture, unwrapWebArchive, unwrapWebcitation, unwrapWebgains, unwrapWebharvest, unwrapWikiwix, unwrapWikizero, unwrapWordpressEmail, unwrapWordpressGo2, unwrapWorldNomads, unwrapWpPoczta, unwrapXengentr, unwrapXiaoyuzhou, unwrapXimalaya, unwrapYahooJapan, unwrapYahooJapanAmpViewer, unwrapYahooSearch, unwrapYamm, unwrapYandexMail, unwrapYandexTranslate, unwrapYandexTurbo, unwrapYelp, unwrapYesware, unwrapYouTube, unwrapYourMembership, unwrapZanox, unwrapZayads, unwrapZemanta, unwrapZencastr, unwrapZhihu, unwrapZix, unwrapZscalerIsolation };
|
|
392
|
+
export { type CleanUrlOptions, type ParamExtractorConfig, type TrackingParam, type UrlUnwrapper, advertisingUnwrappers, affiliateParams, affiliateUnwrappers, archiveProxyUnwrappers, campaignParams, cleanUrl, clickAttributionParams, clickCounterUnwrappers, createParamExtractor, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, housekeepingParams, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrap12ft, unwrap2performant, unwrap4pda, unwrapA8Net, unwrapAboutCom, unwrapAcast, unwrapAccesstrade, unwrapAceml, unwrapAdcell, unwrapAdfly, unwrapAdjust, unwrapAdmitad, unwrapAdrecord, unwrapAdtraction, unwrapAffilae, unwrapAffiliateFuture, unwrapAffiliatesOne, unwrapAliexpress, unwrapAliyun, unwrapAllblog, unwrapAmazonAffiliate, unwrapAmazonSes, unwrapAmpCache, unwrapAnchor, unwrapAnonymTo, unwrapAnonymouse, unwrapAppsflyerOnelink, unwrapApptrkr, unwrapArchiveToday, unwrapArquivo, unwrapArttrack, unwrapArxiv, unwrapAsk, unwrapAugure, unwrapAusha, unwrapAvantlink, unwrapAwesound, unwrapAwin, unwrapAxigen, unwrapBabyblog, unwrapBacLacWebArchive, unwrapBale, unwrapBananatag, unwrapBarracudaLinkProtect, unwrapBig5Gate, unwrapBing, unwrapBingAds, unwrapBitrix, unwrapBitrixBanner, unwrapBizrate, unwrapBlubrry, unwrapBlueskyRedirect, unwrapBolPartner, unwrapBridgyFed, unwrapBusinessWire, unwrapButton, unwrapBuyAt, unwrapBuybox, unwrapBuzzstream, unwrapBytedance, unwrapCake, unwrapCalendly, unwrapCanva, unwrapCastPlus, unwrapCcbill, unwrapChartable, unwrapCheckPointHarmony, unwrapChitika, unwrapCiscoSecureWeb, unwrapCjNetwork, unwrapClaritas, unwrapCleverbridge, unwrapClevercomm, unwrapCloudhq, unwrapCloze, unwrapCohst, unwrapCommissionFactory, unwrapCommunicationads, unwrapConstantContact, unwrapContactMonkey, unwrapConvertiser, unwrapCsdn, unwrapCse360, unwrapCuelinks, unwrapDasBlog, unwrapDatalifeEngine, unwrapDeployer, unwrapDerefMail, unwrapDeviantartOutgoing, unwrapDigidip, unwrapDigikala, unwrapDirectMail, unwrapDisqus, unwrapDmmAffiliate, unwrapDognet, unwrapDouban, unwrapDropbox, unwrapDstats, unwrapDuckduckgo, unwrapDuckduckgoAds, unwrapDuomai, unwrapDyn, unwrapDzen, unwrapEClick, unwrapEasyMarketing, unwrapEbayRover, unwrapEbuzzing, unwrapEdgepilot, unwrapEffiliation, unwrapEhub, unwrapElasticEmail, unwrapEmbedly, unwrapEpn, unwrapEsva, unwrapEulerian, unwrapEvernote, unwrapExciteTranslate, unwrapExpediaAffiliate, unwrapFacebookShim, unwrapFanbridge, unwrapFederatedMedia, unwrapFeedStatistics, unwrapFeedblitz, unwrapFeedsportal, unwrapFinalsite, unwrapFirebaseDynamicLinks, unwrapFireeye, unwrapFirstory, unwrapFiveByFive, unwrapFiverr, unwrapFlexoffers, unwrapFlipboard, unwrapFortimail, unwrapFtc, unwrapGateSc, unwrapGeoriot, unwrapGfnLinkProxy, unwrapGitee, unwrapGlueUp, unwrapGodcaster, unwrapGoogle, unwrapGoogleAds, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapGoogleWebLight, unwrapGovdelivery, unwrapGroupMail, unwrapGroupon, unwrapGumball, unwrapGurunavi, unwrapHackerone, unwrapHashnode, unwrapHasoffers, unwrapHearthis, unwrapHellohq, unwrapHirkereso, unwrapHorde, unwrapHornetsecurity, unwrapHrefLi, unwrapHubspotSidekick, unwrapIcptrack, unwrapIgafnl, unwrapImpact, unwrapIndexHu, unwrapInfospace, unwrapInsiderAffiliate, unwrapInstagramShim, unwrapIntranetQuorum, unwrapInvisionNoExternalLinks, unwrapInvolveAsia, unwrapIrs, unwrapJianshuGo, unwrapJive, unwrapJuejin, unwrapJustwatch, unwrapKlook, unwrapLazada, unwrapLd246, unwrapLetscast, unwrapLeverAnalytics, unwrapLinkA, unwrapLinkconnector, unwrapLinkedin, unwrapLinksynergy, unwrapLinktrust, unwrapLinkwise, unwrapLivejournal, unwrapLnkam, unwrapLocWebArchive, unwrapLocaweb, unwrapLogicboard, unwrapMagellan, unwrapMagnetmail, unwrapMail2easy, unwrapMailRu, unwrapMailRuLink, unwrapMailchimp, unwrapMailinblack, unwrapMailpanion, unwrapMailpgn, unwrapMailstat, unwrapMailtrack, unwrapMandrill, unwrapMarketwire, unwrapMcas, unwrapMedium, unwrapMegalodon, unwrapMimecast, unwrapMinistryCloud, unwrapMintDownloads, unwrapMintFeeder, unwrapMohtwize, unwrapMoshimo, unwrapMozillaOutgoing, unwrapMyNewsletterBuilder, unwrapNarrativ, unwrapNatlibNz, unwrapNaverOutgoing, unwrapNcls, unwrapNdlWarp, unwrapNetaffiliation, unwrapNetcentrum, unwrapNewswire, unwrapNicoMs, unwrapNimble, unwrapNlaWebarchive, unwrapNodeseek, unwrapOkRu, unwrapOp3, unwrapOrkut, unwrapOsnova, unwrapOutlookSafelinks, unwrapOutlookWebAccess, unwrapPagefreezer, unwrapPartnerAds, unwrapPbs, unwrapPhilpapers, unwrapPinterest, unwrapPipedrive, unwrapPocket, unwrapPodcorn, unwrapPodder, unwrapPodkite, unwrapPodroll, unwrapPodscribe, unwrapPodsights, unwrapPodtrac, unwrapPodup, unwrapPostAffiliatePro, unwrapPostmark, unwrapPrNewswire, unwrapPrezly, unwrapPriceGrabber, unwrapPromoJukebox, unwrapProofpointIsolation, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPrweb, unwrapQualityClick, unwrapRakutenAffiliate, unwrapRamblerMail, unwrapRecruitics, unwrapRedditOut, unwrapRediffmail, unwrapRedirectingat, unwrapResearchgate, unwrapReverbnation, unwrapReviveAdserver, unwrapSalesdoubler, unwrapSalesflare, unwrapSalesforceiq, unwrapSaleshandy, unwrapSalsa, unwrapSapHelp, unwrapSbsAd, unwrapSegmentfault, unwrapSerendipity, unwrapShareasale, unwrapShareit, unwrapSkimlinks, unwrapSkyrock, unwrapSlack, unwrapSlickdeals, unwrapSmartAdserver, unwrapSmartredirect, unwrapSmry, unwrapSophos, unwrapSoundOn, unwrapSoundcloud, unwrapSoundstack, unwrapSquarespaceEmail, unwrapSspai, unwrapStay22, unwrapSteamLinkfilter, unwrapStorify, unwrapStreak, unwrapStreamsend, unwrapStumbleupon, unwrapSubscribeRu, unwrapSubstack, unwrapSurly, unwrapSurugaya, unwrapSwap, unwrapSymantecClicktime, unwrapSymplicity, unwrapTargetCircle, unwrapTeacup, unwrapTelegramIv, unwrapTheRegister, unwrapThreadsShim, unwrapTiktok, unwrapTitanhqLinklock, unwrapTopsec, unwrapToucharcade, unwrapTracdelight, unwrapTradedoubler, unwrapTradetracker, unwrapTravelpayouts, unwrapTrendMicro, unwrapTriplelift, unwrapTrustwaveScanmail, unwrapTrxHub, unwrapTumblr, unwrapTwitterRedirect, unwrapTwoCheckout, unwrapUinterbox, unwrapUkWebArchive, unwrapUkgwa, unwrapUnescoWebArchive, unwrapUnhcrWebArchive, unwrapUnisender, unwrapUpAudio, unwrapUrl, unwrapVadeSecure, unwrapValuePress, unwrapValuecommerce, unwrapVanilla, unwrapVbulletin, unwrapVefsafn, unwrapVgWort, unwrapViglink, unwrapVirgool, unwrapVisibli, unwrapVkAway, unwrapVocus, unwrapVoxnest, unwrapVpixl, unwrapVuture, unwrapWebArchive, unwrapWebcitation, unwrapWebgains, unwrapWebharvest, unwrapWikiwix, unwrapWikizero, unwrapWordpressEmail, unwrapWordpressGo2, unwrapWorldNomads, unwrapWpPoczta, unwrapXengentr, unwrapXiaoyuzhou, unwrapXimalaya, unwrapYahooJapan, unwrapYahooJapanAmpViewer, unwrapYahooSearch, unwrapYamm, unwrapYandexMail, unwrapYandexTranslate, unwrapYandexTurbo, unwrapYelp, unwrapYesware, unwrapYouTube, unwrapYourMembership, unwrapZanox, unwrapZayads, unwrapZemanta, unwrapZencastr, unwrapZhihu, unwrapZix, unwrapZscalerIsolation, visitorIdParams };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { affiliateParams } from "./tracking/affiliate.mjs";
|
|
2
|
+
import { campaignParams } from "./tracking/campaign.mjs";
|
|
3
|
+
import { clickAttributionParams } from "./tracking/clickAttribution.mjs";
|
|
4
|
+
import { housekeepingParams } from "./tracking/housekeeping.mjs";
|
|
5
|
+
import { visitorIdParams } from "./tracking/visitorId.mjs";
|
|
3
6
|
import { createParamExtractor } from "./utils.mjs";
|
|
4
7
|
import { unwrap2performant } from "./unwraps/2performant.mjs";
|
|
5
8
|
import { unwrap4pda } from "./unwraps/4pda.mjs";
|
|
@@ -149,6 +152,7 @@ import { unwrapGoogleNewsModern } from "./unwraps/googleNewsModern.mjs";
|
|
|
149
152
|
import { unwrapGoogleScholar } from "./unwraps/googleScholar.mjs";
|
|
150
153
|
import { unwrapGoogleTranslate } from "./unwraps/googleTranslate.mjs";
|
|
151
154
|
import { unwrapGoogleWebLight } from "./unwraps/googleWebLight.mjs";
|
|
155
|
+
import { unwrapGovdelivery } from "./unwraps/govdelivery.mjs";
|
|
152
156
|
import { unwrapGroupMail } from "./unwraps/groupMail.mjs";
|
|
153
157
|
import { unwrapGroupon } from "./unwraps/groupon.mjs";
|
|
154
158
|
import { unwrapGumball } from "./unwraps/gumball.mjs";
|
|
@@ -382,6 +386,6 @@ import { unwrapZencastr } from "./unwraps/zencastr.mjs";
|
|
|
382
386
|
import { unwrapZhihu } from "./unwraps/zhihu.mjs";
|
|
383
387
|
import { unwrapZix } from "./unwraps/zix.mjs";
|
|
384
388
|
import { unwrapZscalerIsolation } from "./unwraps/zscalerIsolation.mjs";
|
|
385
|
-
import { advertisingUnwrappers, affiliateUnwrappers, archiveProxyUnwrappers, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers } from "./defaults.mjs";
|
|
389
|
+
import { advertisingUnwrappers, affiliateUnwrappers, archiveProxyUnwrappers, clickCounterUnwrappers, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, trackingParamsLiterals, trackingParamsPatterns } from "./defaults.mjs";
|
|
386
390
|
import { cleanUrl, stripTrackingParams, unwrapUrl } from "./clean.mjs";
|
|
387
|
-
export { advertisingUnwrappers, affiliateUnwrappers, archiveProxyUnwrappers, cleanUrl, createParamExtractor, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrap12ft, unwrap2performant, unwrap4pda, unwrapA8Net, unwrapAboutCom, unwrapAcast, unwrapAccesstrade, unwrapAceml, unwrapAdcell, unwrapAdfly, unwrapAdjust, unwrapAdmitad, unwrapAdrecord, unwrapAdtraction, unwrapAffilae, unwrapAffiliateFuture, unwrapAffiliatesOne, unwrapAliexpress, unwrapAliyun, unwrapAllblog, unwrapAmazonAffiliate, unwrapAmazonSes, unwrapAmpCache, unwrapAnchor, unwrapAnonymTo, unwrapAnonymouse, unwrapAppsflyerOnelink, unwrapApptrkr, unwrapArchiveToday, unwrapArquivo, unwrapArttrack, unwrapArxiv, unwrapAsk, unwrapAugure, unwrapAusha, unwrapAvantlink, unwrapAwesound, unwrapAwin, unwrapAxigen, unwrapBabyblog, unwrapBacLacWebArchive, unwrapBale, unwrapBananatag, unwrapBarracudaLinkProtect, unwrapBig5Gate, unwrapBing, unwrapBingAds, unwrapBitrix, unwrapBitrixBanner, unwrapBizrate, unwrapBlubrry, unwrapBlueskyRedirect, unwrapBolPartner, unwrapBridgyFed, unwrapBusinessWire, unwrapButton, unwrapBuyAt, unwrapBuybox, unwrapBuzzstream, unwrapBytedance, unwrapCake, unwrapCalendly, unwrapCanva, unwrapCastPlus, unwrapCcbill, unwrapChartable, unwrapCheckPointHarmony, unwrapChitika, unwrapCiscoSecureWeb, unwrapCjNetwork, unwrapClaritas, unwrapCleverbridge, unwrapClevercomm, unwrapCloudhq, unwrapCloze, unwrapCohst, unwrapCommissionFactory, unwrapCommunicationads, unwrapConstantContact, unwrapContactMonkey, unwrapConvertiser, unwrapCsdn, unwrapCse360, unwrapCuelinks, unwrapDasBlog, unwrapDatalifeEngine, unwrapDeployer, unwrapDerefMail, unwrapDeviantartOutgoing, unwrapDigidip, unwrapDigikala, unwrapDirectMail, unwrapDisqus, unwrapDmmAffiliate, unwrapDognet, unwrapDouban, unwrapDropbox, unwrapDstats, unwrapDuckduckgo, unwrapDuckduckgoAds, unwrapDuomai, unwrapDyn, unwrapDzen, unwrapEClick, unwrapEasyMarketing, unwrapEbayRover, unwrapEbuzzing, unwrapEdgepilot, unwrapEffiliation, unwrapEhub, unwrapElasticEmail, unwrapEmbedly, unwrapEpn, unwrapEsva, unwrapEulerian, unwrapEvernote, unwrapExciteTranslate, unwrapExpediaAffiliate, unwrapFacebookShim, unwrapFanbridge, unwrapFederatedMedia, unwrapFeedStatistics, unwrapFeedblitz, unwrapFeedsportal, unwrapFinalsite, unwrapFirebaseDynamicLinks, unwrapFireeye, unwrapFirstory, unwrapFiveByFive, unwrapFiverr, unwrapFlexoffers, unwrapFlipboard, unwrapFortimail, unwrapFtc, unwrapGateSc, unwrapGeoriot, unwrapGfnLinkProxy, unwrapGitee, unwrapGlueUp, unwrapGodcaster, unwrapGoogle, unwrapGoogleAds, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapGoogleWebLight, unwrapGroupMail, unwrapGroupon, unwrapGumball, unwrapGurunavi, unwrapHackerone, unwrapHashnode, unwrapHasoffers, unwrapHearthis, unwrapHellohq, unwrapHirkereso, unwrapHorde, unwrapHornetsecurity, unwrapHrefLi, unwrapHubspotSidekick, unwrapIcptrack, unwrapIgafnl, unwrapImpact, unwrapIndexHu, unwrapInfospace, unwrapInsiderAffiliate, unwrapInstagramShim, unwrapIntranetQuorum, unwrapInvisionNoExternalLinks, unwrapInvolveAsia, unwrapIrs, unwrapJianshuGo, unwrapJive, unwrapJuejin, unwrapJustwatch, unwrapKlook, unwrapLazada, unwrapLd246, unwrapLetscast, unwrapLeverAnalytics, unwrapLinkA, unwrapLinkconnector, unwrapLinkedin, unwrapLinksynergy, unwrapLinktrust, unwrapLinkwise, unwrapLivejournal, unwrapLnkam, unwrapLocWebArchive, unwrapLocaweb, unwrapLogicboard, unwrapMagellan, unwrapMagnetmail, unwrapMail2easy, unwrapMailRu, unwrapMailRuLink, unwrapMailchimp, unwrapMailinblack, unwrapMailpanion, unwrapMailpgn, unwrapMailstat, unwrapMailtrack, unwrapMandrill, unwrapMarketwire, unwrapMcas, unwrapMedium, unwrapMegalodon, unwrapMimecast, unwrapMinistryCloud, unwrapMintDownloads, unwrapMintFeeder, unwrapMohtwize, unwrapMoshimo, unwrapMozillaOutgoing, unwrapMyNewsletterBuilder, unwrapNarrativ, unwrapNatlibNz, unwrapNaverOutgoing, unwrapNcls, unwrapNdlWarp, unwrapNetaffiliation, unwrapNetcentrum, unwrapNewswire, unwrapNicoMs, unwrapNimble, unwrapNlaWebarchive, unwrapNodeseek, unwrapOkRu, unwrapOp3, unwrapOrkut, unwrapOsnova, unwrapOutlookSafelinks, unwrapOutlookWebAccess, unwrapPagefreezer, unwrapPartnerAds, unwrapPbs, unwrapPhilpapers, unwrapPinterest, unwrapPipedrive, unwrapPocket, unwrapPodcorn, unwrapPodder, unwrapPodkite, unwrapPodroll, unwrapPodscribe, unwrapPodsights, unwrapPodtrac, unwrapPodup, unwrapPostAffiliatePro, unwrapPostmark, unwrapPrNewswire, unwrapPrezly, unwrapPriceGrabber, unwrapPromoJukebox, unwrapProofpointIsolation, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPrweb, unwrapQualityClick, unwrapRakutenAffiliate, unwrapRamblerMail, unwrapRecruitics, unwrapRedditOut, unwrapRediffmail, unwrapRedirectingat, unwrapResearchgate, unwrapReverbnation, unwrapReviveAdserver, unwrapSalesdoubler, unwrapSalesflare, unwrapSalesforceiq, unwrapSaleshandy, unwrapSalsa, unwrapSapHelp, unwrapSbsAd, unwrapSegmentfault, unwrapSerendipity, unwrapShareasale, unwrapShareit, unwrapSkimlinks, unwrapSkyrock, unwrapSlack, unwrapSlickdeals, unwrapSmartAdserver, unwrapSmartredirect, unwrapSmry, unwrapSophos, unwrapSoundOn, unwrapSoundcloud, unwrapSoundstack, unwrapSquarespaceEmail, unwrapSspai, unwrapStay22, unwrapSteamLinkfilter, unwrapStorify, unwrapStreak, unwrapStreamsend, unwrapStumbleupon, unwrapSubscribeRu, unwrapSubstack, unwrapSurly, unwrapSurugaya, unwrapSwap, unwrapSymantecClicktime, unwrapSymplicity, unwrapTargetCircle, unwrapTeacup, unwrapTelegramIv, unwrapTheRegister, unwrapThreadsShim, unwrapTiktok, unwrapTitanhqLinklock, unwrapTopsec, unwrapToucharcade, unwrapTracdelight, unwrapTradedoubler, unwrapTradetracker, unwrapTravelpayouts, unwrapTrendMicro, unwrapTriplelift, unwrapTrustwaveScanmail, unwrapTrxHub, unwrapTumblr, unwrapTwitterRedirect, unwrapTwoCheckout, unwrapUinterbox, unwrapUkWebArchive, unwrapUkgwa, unwrapUnescoWebArchive, unwrapUnhcrWebArchive, unwrapUnisender, unwrapUpAudio, unwrapUrl, unwrapVadeSecure, unwrapValuePress, unwrapValuecommerce, unwrapVanilla, unwrapVbulletin, unwrapVefsafn, unwrapVgWort, unwrapViglink, unwrapVirgool, unwrapVisibli, unwrapVkAway, unwrapVocus, unwrapVoxnest, unwrapVpixl, unwrapVuture, unwrapWebArchive, unwrapWebcitation, unwrapWebgains, unwrapWebharvest, unwrapWikiwix, unwrapWikizero, unwrapWordpressEmail, unwrapWordpressGo2, unwrapWorldNomads, unwrapWpPoczta, unwrapXengentr, unwrapXiaoyuzhou, unwrapXimalaya, unwrapYahooJapan, unwrapYahooJapanAmpViewer, unwrapYahooSearch, unwrapYamm, unwrapYandexMail, unwrapYandexTranslate, unwrapYandexTurbo, unwrapYelp, unwrapYesware, unwrapYouTube, unwrapYourMembership, unwrapZanox, unwrapZayads, unwrapZemanta, unwrapZencastr, unwrapZhihu, unwrapZix, unwrapZscalerIsolation };
|
|
391
|
+
export { advertisingUnwrappers, affiliateParams, affiliateUnwrappers, archiveProxyUnwrappers, campaignParams, cleanUrl, clickAttributionParams, clickCounterUnwrappers, createParamExtractor, defaultTrackingParams, defaultUnwrappers, downloadMeasurementUnwrappers, emailTrackingUnwrappers, housekeepingParams, linkShimUnwrappers, pressReleaseUnwrappers, searchClickUnwrappers, securityGatewayUnwrappers, signInShimUnwrappers, stripTrackingParams, trackingParamsLiterals, trackingParamsPatterns, unwrap12ft, unwrap2performant, unwrap4pda, unwrapA8Net, unwrapAboutCom, unwrapAcast, unwrapAccesstrade, unwrapAceml, unwrapAdcell, unwrapAdfly, unwrapAdjust, unwrapAdmitad, unwrapAdrecord, unwrapAdtraction, unwrapAffilae, unwrapAffiliateFuture, unwrapAffiliatesOne, unwrapAliexpress, unwrapAliyun, unwrapAllblog, unwrapAmazonAffiliate, unwrapAmazonSes, unwrapAmpCache, unwrapAnchor, unwrapAnonymTo, unwrapAnonymouse, unwrapAppsflyerOnelink, unwrapApptrkr, unwrapArchiveToday, unwrapArquivo, unwrapArttrack, unwrapArxiv, unwrapAsk, unwrapAugure, unwrapAusha, unwrapAvantlink, unwrapAwesound, unwrapAwin, unwrapAxigen, unwrapBabyblog, unwrapBacLacWebArchive, unwrapBale, unwrapBananatag, unwrapBarracudaLinkProtect, unwrapBig5Gate, unwrapBing, unwrapBingAds, unwrapBitrix, unwrapBitrixBanner, unwrapBizrate, unwrapBlubrry, unwrapBlueskyRedirect, unwrapBolPartner, unwrapBridgyFed, unwrapBusinessWire, unwrapButton, unwrapBuyAt, unwrapBuybox, unwrapBuzzstream, unwrapBytedance, unwrapCake, unwrapCalendly, unwrapCanva, unwrapCastPlus, unwrapCcbill, unwrapChartable, unwrapCheckPointHarmony, unwrapChitika, unwrapCiscoSecureWeb, unwrapCjNetwork, unwrapClaritas, unwrapCleverbridge, unwrapClevercomm, unwrapCloudhq, unwrapCloze, unwrapCohst, unwrapCommissionFactory, unwrapCommunicationads, unwrapConstantContact, unwrapContactMonkey, unwrapConvertiser, unwrapCsdn, unwrapCse360, unwrapCuelinks, unwrapDasBlog, unwrapDatalifeEngine, unwrapDeployer, unwrapDerefMail, unwrapDeviantartOutgoing, unwrapDigidip, unwrapDigikala, unwrapDirectMail, unwrapDisqus, unwrapDmmAffiliate, unwrapDognet, unwrapDouban, unwrapDropbox, unwrapDstats, unwrapDuckduckgo, unwrapDuckduckgoAds, unwrapDuomai, unwrapDyn, unwrapDzen, unwrapEClick, unwrapEasyMarketing, unwrapEbayRover, unwrapEbuzzing, unwrapEdgepilot, unwrapEffiliation, unwrapEhub, unwrapElasticEmail, unwrapEmbedly, unwrapEpn, unwrapEsva, unwrapEulerian, unwrapEvernote, unwrapExciteTranslate, unwrapExpediaAffiliate, unwrapFacebookShim, unwrapFanbridge, unwrapFederatedMedia, unwrapFeedStatistics, unwrapFeedblitz, unwrapFeedsportal, unwrapFinalsite, unwrapFirebaseDynamicLinks, unwrapFireeye, unwrapFirstory, unwrapFiveByFive, unwrapFiverr, unwrapFlexoffers, unwrapFlipboard, unwrapFortimail, unwrapFtc, unwrapGateSc, unwrapGeoriot, unwrapGfnLinkProxy, unwrapGitee, unwrapGlueUp, unwrapGodcaster, unwrapGoogle, unwrapGoogleAds, unwrapGoogleAmpViewer, unwrapGoogleNews, unwrapGoogleNewsModern, unwrapGoogleScholar, unwrapGoogleTranslate, unwrapGoogleWebLight, unwrapGovdelivery, unwrapGroupMail, unwrapGroupon, unwrapGumball, unwrapGurunavi, unwrapHackerone, unwrapHashnode, unwrapHasoffers, unwrapHearthis, unwrapHellohq, unwrapHirkereso, unwrapHorde, unwrapHornetsecurity, unwrapHrefLi, unwrapHubspotSidekick, unwrapIcptrack, unwrapIgafnl, unwrapImpact, unwrapIndexHu, unwrapInfospace, unwrapInsiderAffiliate, unwrapInstagramShim, unwrapIntranetQuorum, unwrapInvisionNoExternalLinks, unwrapInvolveAsia, unwrapIrs, unwrapJianshuGo, unwrapJive, unwrapJuejin, unwrapJustwatch, unwrapKlook, unwrapLazada, unwrapLd246, unwrapLetscast, unwrapLeverAnalytics, unwrapLinkA, unwrapLinkconnector, unwrapLinkedin, unwrapLinksynergy, unwrapLinktrust, unwrapLinkwise, unwrapLivejournal, unwrapLnkam, unwrapLocWebArchive, unwrapLocaweb, unwrapLogicboard, unwrapMagellan, unwrapMagnetmail, unwrapMail2easy, unwrapMailRu, unwrapMailRuLink, unwrapMailchimp, unwrapMailinblack, unwrapMailpanion, unwrapMailpgn, unwrapMailstat, unwrapMailtrack, unwrapMandrill, unwrapMarketwire, unwrapMcas, unwrapMedium, unwrapMegalodon, unwrapMimecast, unwrapMinistryCloud, unwrapMintDownloads, unwrapMintFeeder, unwrapMohtwize, unwrapMoshimo, unwrapMozillaOutgoing, unwrapMyNewsletterBuilder, unwrapNarrativ, unwrapNatlibNz, unwrapNaverOutgoing, unwrapNcls, unwrapNdlWarp, unwrapNetaffiliation, unwrapNetcentrum, unwrapNewswire, unwrapNicoMs, unwrapNimble, unwrapNlaWebarchive, unwrapNodeseek, unwrapOkRu, unwrapOp3, unwrapOrkut, unwrapOsnova, unwrapOutlookSafelinks, unwrapOutlookWebAccess, unwrapPagefreezer, unwrapPartnerAds, unwrapPbs, unwrapPhilpapers, unwrapPinterest, unwrapPipedrive, unwrapPocket, unwrapPodcorn, unwrapPodder, unwrapPodkite, unwrapPodroll, unwrapPodscribe, unwrapPodsights, unwrapPodtrac, unwrapPodup, unwrapPostAffiliatePro, unwrapPostmark, unwrapPrNewswire, unwrapPrezly, unwrapPriceGrabber, unwrapPromoJukebox, unwrapProofpointIsolation, unwrapProofpointV1, unwrapProofpointV2, unwrapProofpointV3, unwrapPrweb, unwrapQualityClick, unwrapRakutenAffiliate, unwrapRamblerMail, unwrapRecruitics, unwrapRedditOut, unwrapRediffmail, unwrapRedirectingat, unwrapResearchgate, unwrapReverbnation, unwrapReviveAdserver, unwrapSalesdoubler, unwrapSalesflare, unwrapSalesforceiq, unwrapSaleshandy, unwrapSalsa, unwrapSapHelp, unwrapSbsAd, unwrapSegmentfault, unwrapSerendipity, unwrapShareasale, unwrapShareit, unwrapSkimlinks, unwrapSkyrock, unwrapSlack, unwrapSlickdeals, unwrapSmartAdserver, unwrapSmartredirect, unwrapSmry, unwrapSophos, unwrapSoundOn, unwrapSoundcloud, unwrapSoundstack, unwrapSquarespaceEmail, unwrapSspai, unwrapStay22, unwrapSteamLinkfilter, unwrapStorify, unwrapStreak, unwrapStreamsend, unwrapStumbleupon, unwrapSubscribeRu, unwrapSubstack, unwrapSurly, unwrapSurugaya, unwrapSwap, unwrapSymantecClicktime, unwrapSymplicity, unwrapTargetCircle, unwrapTeacup, unwrapTelegramIv, unwrapTheRegister, unwrapThreadsShim, unwrapTiktok, unwrapTitanhqLinklock, unwrapTopsec, unwrapToucharcade, unwrapTracdelight, unwrapTradedoubler, unwrapTradetracker, unwrapTravelpayouts, unwrapTrendMicro, unwrapTriplelift, unwrapTrustwaveScanmail, unwrapTrxHub, unwrapTumblr, unwrapTwitterRedirect, unwrapTwoCheckout, unwrapUinterbox, unwrapUkWebArchive, unwrapUkgwa, unwrapUnescoWebArchive, unwrapUnhcrWebArchive, unwrapUnisender, unwrapUpAudio, unwrapUrl, unwrapVadeSecure, unwrapValuePress, unwrapValuecommerce, unwrapVanilla, unwrapVbulletin, unwrapVefsafn, unwrapVgWort, unwrapViglink, unwrapVirgool, unwrapVisibli, unwrapVkAway, unwrapVocus, unwrapVoxnest, unwrapVpixl, unwrapVuture, unwrapWebArchive, unwrapWebcitation, unwrapWebgains, unwrapWebharvest, unwrapWikiwix, unwrapWikizero, unwrapWordpressEmail, unwrapWordpressGo2, unwrapWorldNomads, unwrapWpPoczta, unwrapXengentr, unwrapXiaoyuzhou, unwrapXimalaya, unwrapYahooJapan, unwrapYahooJapanAmpViewer, unwrapYahooSearch, unwrapYamm, unwrapYandexMail, unwrapYandexTranslate, unwrapYandexTurbo, unwrapYelp, unwrapYesware, unwrapYouTube, unwrapYourMembership, unwrapZanox, unwrapZayads, unwrapZemanta, unwrapZencastr, unwrapZhihu, unwrapZix, unwrapZscalerIsolation, visitorIdParams };
|
|
@@ -38,11 +38,36 @@ const isHttpUrl = (url) => {
|
|
|
38
38
|
const isHostOrSubdomainOf = (url, domains) => {
|
|
39
39
|
return isHostOf(url, domains) || isSubdomainOf(url, domains);
|
|
40
40
|
};
|
|
41
|
-
const
|
|
42
|
-
|
|
41
|
+
const escapeRunRegex = /(?:%[0-9A-Fa-f]{2})+/g;
|
|
42
|
+
const getSequenceLength = (byte) => {
|
|
43
|
+
if (byte < 128) return 1;
|
|
44
|
+
if (byte >= 194 && byte < 224) return 2;
|
|
45
|
+
if (byte >= 224 && byte < 240) return 3;
|
|
46
|
+
if (byte >= 240 && byte < 245) return 4;
|
|
47
|
+
return 0;
|
|
48
|
+
};
|
|
49
|
+
const decodeEscapeRun = (run) => {
|
|
43
50
|
try {
|
|
44
|
-
return decodeURIComponent(
|
|
51
|
+
return decodeURIComponent(run);
|
|
45
52
|
} catch {}
|
|
53
|
+
const count = run.length / 3;
|
|
54
|
+
let decoded = "";
|
|
55
|
+
let index = 0;
|
|
56
|
+
while (index < count) {
|
|
57
|
+
const start = index * 3;
|
|
58
|
+
const length = getSequenceLength(Number.parseInt(run.slice(start + 1, start + 3), 16));
|
|
59
|
+
if (length && index + length <= count) try {
|
|
60
|
+
decoded += decodeURIComponent(run.slice(start, start + length * 3));
|
|
61
|
+
index += length;
|
|
62
|
+
continue;
|
|
63
|
+
} catch {}
|
|
64
|
+
decoded += run.slice(start, start + 3);
|
|
65
|
+
index += 1;
|
|
66
|
+
}
|
|
67
|
+
return decoded;
|
|
68
|
+
};
|
|
69
|
+
const decodePercent = (value) => {
|
|
70
|
+
return value.replace(escapeRunRegex, decodeEscapeRun);
|
|
46
71
|
};
|
|
47
72
|
const strippedParamsCache = /* @__PURE__ */ new WeakMap();
|
|
48
73
|
const getStrippedParamsSet = (params) => {
|
|
@@ -102,6 +127,10 @@ const fixMalformedScheme = (url) => {
|
|
|
102
127
|
}
|
|
103
128
|
return url;
|
|
104
129
|
};
|
|
130
|
+
const segmentEdgeSpace = "(?:\\s|%(?:09|0A|0D|20))";
|
|
131
|
+
const valueEdgeSpace = "(?:\\s|\\+|%(?:09|0A|0D|20))";
|
|
132
|
+
new RegExp(`^${segmentEdgeSpace}+|(?<!${segmentEdgeSpace})${segmentEdgeSpace}+$`, "gi");
|
|
133
|
+
new RegExp(`^${valueEdgeSpace}+|(?<!${valueEdgeSpace})${valueEdgeSpace}+$`, "gi");
|
|
105
134
|
const addMissingScheme = (url, scheme = "https") => {
|
|
106
135
|
if (url.startsWith("[")) return parseUrl(`${scheme}://${url}`) ? `${scheme}://${url}` : url;
|
|
107
136
|
const colonIndex = url.indexOf(":");
|
|
@@ -203,4 +232,4 @@ const fixMalformedProtocol = fixMalformedScheme;
|
|
|
203
232
|
/** @deprecated Use `addMissingScheme` instead. */
|
|
204
233
|
const addMissingProtocol = addMissingScheme;
|
|
205
234
|
//#endregion
|
|
206
|
-
export { addMissingProtocol, addMissingScheme,
|
|
235
|
+
export { addMissingProtocol, addMissingScheme, decodePercent, fixMalformedProtocol, fixMalformedScheme, isHostOf, isHostOrSubdomainOf, isHttpUrl, isIpAddress, isSubdomainOf, normalizeUrl, parseUrl, stripWww };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/tracking/affiliate.ts
|
|
2
|
+
const affiliateParams = [
|
|
3
|
+
"awinaffid",
|
|
4
|
+
"awinmid",
|
|
5
|
+
"clickref",
|
|
6
|
+
"afftrack",
|
|
7
|
+
"sscid",
|
|
8
|
+
"awc",
|
|
9
|
+
"cjevent",
|
|
10
|
+
"cjdata",
|
|
11
|
+
"irclickid",
|
|
12
|
+
"irgwc",
|
|
13
|
+
"ir_adid",
|
|
14
|
+
"ir_campaignid",
|
|
15
|
+
"ir_partnerid"
|
|
16
|
+
];
|
|
17
|
+
//#endregion
|
|
18
|
+
export { affiliateParams };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//#region src/tracking/campaign.ts
|
|
2
|
+
const campaignParams = [
|
|
3
|
+
"utm_source",
|
|
4
|
+
"utm_medium",
|
|
5
|
+
"utm_campaign",
|
|
6
|
+
"utm_term",
|
|
7
|
+
"utm_content",
|
|
8
|
+
"utm_reader",
|
|
9
|
+
"utm_name",
|
|
10
|
+
"utm_viz_id",
|
|
11
|
+
"mc_cid",
|
|
12
|
+
"mtm_campaign",
|
|
13
|
+
"mtm_cid",
|
|
14
|
+
"mtm_content",
|
|
15
|
+
"mtm_group",
|
|
16
|
+
"mtm_keyword",
|
|
17
|
+
"mtm_medium",
|
|
18
|
+
"mtm_placement",
|
|
19
|
+
"mtm_source",
|
|
20
|
+
"pk_campaign",
|
|
21
|
+
"pk_cid",
|
|
22
|
+
"pk_content",
|
|
23
|
+
"pk_keyword",
|
|
24
|
+
"pk_medium",
|
|
25
|
+
"pk_source",
|
|
26
|
+
"ncid",
|
|
27
|
+
"sr_share",
|
|
28
|
+
"cmpid",
|
|
29
|
+
"sc_cid",
|
|
30
|
+
"s_cid",
|
|
31
|
+
"wt_mc",
|
|
32
|
+
"wt_zmc",
|
|
33
|
+
"_openstat",
|
|
34
|
+
"itm_source",
|
|
35
|
+
"itm_medium",
|
|
36
|
+
"itm_campaign",
|
|
37
|
+
"itm_content",
|
|
38
|
+
"itm_channel",
|
|
39
|
+
"itm_audience",
|
|
40
|
+
"int_source",
|
|
41
|
+
"int_medium",
|
|
42
|
+
"int_campaign",
|
|
43
|
+
"int_content",
|
|
44
|
+
"int_placement",
|
|
45
|
+
"int_campaign_type",
|
|
46
|
+
"int_keycode",
|
|
47
|
+
"g2i_source",
|
|
48
|
+
"g2i_medium",
|
|
49
|
+
"g2i_campaign",
|
|
50
|
+
"g2i_or_o",
|
|
51
|
+
"g2i_or_p",
|
|
52
|
+
"at_campaign",
|
|
53
|
+
"at_custom1",
|
|
54
|
+
"at_custom2",
|
|
55
|
+
"at_custom3",
|
|
56
|
+
"at_custom4",
|
|
57
|
+
"at_medium",
|
|
58
|
+
"campaign_id",
|
|
59
|
+
"hmb_campaign",
|
|
60
|
+
"hmb_medium",
|
|
61
|
+
"hmb_source",
|
|
62
|
+
"referer",
|
|
63
|
+
"referrer",
|
|
64
|
+
"xtor",
|
|
65
|
+
/^utm_[a-z0-9_-]+$/,
|
|
66
|
+
/^stm_[a-z0-9_-]+$/,
|
|
67
|
+
/^mtm_[a-z0-9_]+$/,
|
|
68
|
+
/^pk_[a-z0-9_]+$/,
|
|
69
|
+
/^piwik_[a-z0-9_]+$/,
|
|
70
|
+
/^itm_[a-z0-9_]+$/,
|
|
71
|
+
/^int_[a-z0-9_]+$/,
|
|
72
|
+
/^at_[a-z0-9_]+$/,
|
|
73
|
+
/^g2i_[a-z0-9_]+$/,
|
|
74
|
+
/^cm_mmca?\d*$/
|
|
75
|
+
];
|
|
76
|
+
//#endregion
|
|
77
|
+
export { campaignParams };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
//#region src/tracking/clickAttribution.ts
|
|
2
|
+
const clickAttributionParams = [
|
|
3
|
+
"gclid",
|
|
4
|
+
"dclid",
|
|
5
|
+
"gbraid",
|
|
6
|
+
"wbraid",
|
|
7
|
+
"gclsrc",
|
|
8
|
+
"gad_source",
|
|
9
|
+
"gad_campaignid",
|
|
10
|
+
"srsltid",
|
|
11
|
+
"fbclid",
|
|
12
|
+
"fb_action_types",
|
|
13
|
+
"fb_source",
|
|
14
|
+
"fb_ref",
|
|
15
|
+
"msclkid",
|
|
16
|
+
"twclid",
|
|
17
|
+
"__twitter_impression",
|
|
18
|
+
"ttclid",
|
|
19
|
+
"hsa_acc",
|
|
20
|
+
"hsa_ad",
|
|
21
|
+
"hsa_cam",
|
|
22
|
+
"hsa_grp",
|
|
23
|
+
"hsa_kw",
|
|
24
|
+
"hsa_mt",
|
|
25
|
+
"hsa_net",
|
|
26
|
+
"hsa_src",
|
|
27
|
+
"hsa_tgt",
|
|
28
|
+
"hsa_ver",
|
|
29
|
+
"s_kwcid",
|
|
30
|
+
"ef_id",
|
|
31
|
+
"cx_click",
|
|
32
|
+
"cx_recsOrder",
|
|
33
|
+
"cx_recsWidget",
|
|
34
|
+
"obOrigUrl",
|
|
35
|
+
"dicbo",
|
|
36
|
+
"yclid",
|
|
37
|
+
"ysclid",
|
|
38
|
+
"action_object_map",
|
|
39
|
+
"action_ref_map",
|
|
40
|
+
"action_type_map",
|
|
41
|
+
"algo_expid",
|
|
42
|
+
"algo_pvid",
|
|
43
|
+
"click_sum",
|
|
44
|
+
"fref",
|
|
45
|
+
"gs_l",
|
|
46
|
+
"rb_clickid",
|
|
47
|
+
"spm",
|
|
48
|
+
"trk",
|
|
49
|
+
"wickedid",
|
|
50
|
+
/^hsa_[a-z0-9_]+$/
|
|
51
|
+
];
|
|
52
|
+
//#endregion
|
|
53
|
+
export { clickAttributionParams };
|