@tryghost/referrer-parser 0.1.15 → 0.1.17

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.
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Interface for parsed referrer data
3
+ */
4
+ export interface ReferrerData {
5
+ /** The identified source of the referral traffic */
6
+ referrerSource: string | null;
7
+ /** The identified medium of the referral traffic */
8
+ referrerMedium: string | null;
9
+ /** The hostname of the referral URL */
10
+ referrerUrl: string | null;
11
+ }
12
+ /**
13
+ * Configuration options for the parser
14
+ */
15
+ export interface ParserOptions {
16
+ /** URL of the site for identifying internal traffic */
17
+ siteUrl?: string;
18
+ /** URL of the admin panel for identifying admin traffic */
19
+ adminUrl?: string;
20
+ }
21
+ /**
22
+ * Interface for referrer source data
23
+ */
24
+ interface ReferrerSourceData {
25
+ source: string;
26
+ medium: string;
27
+ }
28
+ /**
29
+ * Parses referrer URLs to determine source and medium
30
+ */
31
+ export declare class ReferrerParser {
32
+ private adminUrl;
33
+ private siteUrl;
34
+ /**
35
+ * Creates a new referrer parser instance
36
+ *
37
+ * @param options - Configuration options
38
+ */
39
+ constructor(options?: ParserOptions);
40
+ /**
41
+ * Parse a referrer URL to get source, medium and hostname
42
+ *
43
+ * @param referrerUrlStr - URL of the referrer
44
+ * @param referrerSource - Source of the referrer
45
+ * @param referrerMedium - Medium of the referrer
46
+ * @returns Parsed referrer data with source, medium and URL. Internal referrers return null values.
47
+ */
48
+ parse(referrerUrlStr: string, referrerSource?: string, referrerMedium?: string): ReferrerData;
49
+ /**
50
+ * Fetches referrer data from known external URLs
51
+ *
52
+ * @param url - The URL to match against known referrers
53
+ * @returns Matched referrer data or null if not found
54
+ */
55
+ getDataFromUrl(url: URL | null): ReferrerSourceData | null;
56
+ /**
57
+ * Return URL object for provided URL string
58
+ *
59
+ * @param url - URL string to parse
60
+ * @returns Parsed URL object or null if invalid
61
+ */
62
+ getUrlFromStr(url: string): URL | null;
63
+ /**
64
+ * Determine whether the provided URL is a link to the site
65
+ *
66
+ * @param url - URL to check
67
+ * @returns True if the URL belongs to the configured site
68
+ */
69
+ isSiteDomain(url: URL | null): boolean;
70
+ /**
71
+ * Determine whether referrer is a Ghost newsletter
72
+ *
73
+ * @param deps - Input parameters
74
+ * @returns True if the referrer is a Ghost newsletter
75
+ */
76
+ isGhostNewsletter({ referrerSource }: {
77
+ referrerSource: string | null;
78
+ }): boolean;
79
+ /**
80
+ * Determine whether referrer is a Ghost.org URL
81
+ *
82
+ * @param referrerUrl - The referrer URL to check
83
+ * @returns True if the referrer is from Ghost.org
84
+ */
85
+ isGhostOrgUrl(referrerUrl: URL | null): boolean;
86
+ /**
87
+ * Determine whether referrer is Ghost Explore
88
+ *
89
+ * @param deps - Input parameters
90
+ * @returns True if the referrer is from Ghost Explore
91
+ */
92
+ isGhostExploreRef({ referrerUrl, referrerSource }: {
93
+ referrerUrl: URL | null;
94
+ referrerSource?: string | null;
95
+ }): boolean;
96
+ }
97
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryghost/referrer-parser",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Simple library for parsing referrer URLs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -47,19 +47,18 @@
47
47
  },
48
48
  "homepage": "https://ghost.org",
49
49
  "devDependencies": {
50
- "@types/node": "24.12.0",
50
+ "@types/node": "24.12.3",
51
51
  "@types/should": "13.0.0",
52
- "@types/sinon": "21.0.0",
53
- "@typescript-eslint/eslint-plugin": "8.57.0",
54
- "@typescript-eslint/parser": "8.57.0",
55
- "@vitest/coverage-v8": "4.1.0",
56
- "eslint": "10.0.3",
52
+ "@types/sinon": "21.0.1",
53
+ "@typescript-eslint/eslint-plugin": "8.59.2",
54
+ "@typescript-eslint/parser": "8.59.2",
55
+ "@vitest/coverage-v8": "4.1.5",
57
56
  "should": "13.2.3",
58
- "sinon": "21.0.2",
57
+ "sinon": "22.0.0",
59
58
  "typescript": "5.9.3",
60
- "vite": "7.3.1",
61
- "vite-plugin-dts": "4.5.4",
62
- "vitest": "4.1.0"
59
+ "vite": "8.0.11",
60
+ "vite-plugin-dts": "5.0.0",
61
+ "vitest": "4.1.5"
63
62
  },
64
63
  "engines": {
65
64
  "node": ">=16.0.0"
@@ -67,5 +66,5 @@
67
66
  "publishConfig": {
68
67
  "access": "public"
69
68
  },
70
- "gitHead": "9cc8428821b292029029019e1af6fb24a75709ad"
69
+ "gitHead": "c938d752eb5b9cfd4bf4110f16153a3594db3a00"
71
70
  }