@schibsted/sps-sdk 3.2.2 → 4.0.0-CBT-18545.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/public-script-versions.d.ts +2 -2
  5. package/dist/cjs/public-script-versions.js +2 -2
  6. package/dist/cjs/sps/placement.d.ts +15 -0
  7. package/dist/cjs/sps/rewrite-salesposter-variables.d.ts +36 -3
  8. package/dist/cjs/sps/rewrite-salesposter-variables.js +14 -3
  9. package/dist/cjs/sps/rewrite-salesposter-variables.js.map +1 -1
  10. package/dist/cjs/sps.d.ts +10 -4
  11. package/dist/cjs/sps.js +18 -27
  12. package/dist/cjs/sps.js.map +1 -1
  13. package/dist/cjs/tracking/create-tracking-params.d.ts +2 -2
  14. package/dist/cjs/tracking/create-tracking-params.js +2 -1
  15. package/dist/cjs/tracking/create-tracking-params.js.map +1 -1
  16. package/dist/cjs/utils/intent.d.ts +8 -0
  17. package/dist/cjs/utils/intent.js +34 -0
  18. package/dist/cjs/utils/intent.js.map +1 -0
  19. package/dist/cjs/utils/offerCodes.d.ts +6 -0
  20. package/dist/cjs/utils/offerCodes.js +21 -0
  21. package/dist/cjs/utils/offerCodes.js.map +1 -0
  22. package/dist/cjs/utils/offerType.d.ts +8 -0
  23. package/dist/cjs/utils/offerType.js +22 -0
  24. package/dist/cjs/utils/offerType.js.map +1 -0
  25. package/dist/cjs/utils/pulseProxy.d.ts +43 -12
  26. package/dist/cjs/utils/pulseProxy.js +6 -10
  27. package/dist/cjs/utils/pulseProxy.js.map +1 -1
  28. package/dist/esm/index.d.ts +1 -0
  29. package/dist/esm/index.js +1 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/public-script-versions.d.ts +2 -2
  32. package/dist/esm/public-script-versions.js +2 -2
  33. package/dist/esm/sps/placement.d.ts +15 -0
  34. package/dist/esm/sps/rewrite-salesposter-variables.d.ts +36 -3
  35. package/dist/esm/sps/rewrite-salesposter-variables.js +14 -3
  36. package/dist/esm/sps/rewrite-salesposter-variables.js.map +1 -1
  37. package/dist/esm/sps.d.ts +10 -4
  38. package/dist/esm/sps.js +19 -28
  39. package/dist/esm/sps.js.map +1 -1
  40. package/dist/esm/tracking/create-tracking-params.d.ts +2 -2
  41. package/dist/esm/tracking/create-tracking-params.js +2 -1
  42. package/dist/esm/tracking/create-tracking-params.js.map +1 -1
  43. package/dist/esm/utils/intent.d.ts +8 -0
  44. package/dist/esm/utils/intent.js +30 -0
  45. package/dist/esm/utils/intent.js.map +1 -0
  46. package/dist/esm/utils/offerCodes.d.ts +6 -0
  47. package/dist/esm/utils/offerCodes.js +17 -0
  48. package/dist/esm/utils/offerCodes.js.map +1 -0
  49. package/dist/esm/utils/offerType.d.ts +8 -0
  50. package/dist/esm/utils/offerType.js +18 -0
  51. package/dist/esm/utils/offerType.js.map +1 -0
  52. package/dist/esm/utils/pulseProxy.d.ts +43 -12
  53. package/dist/esm/utils/pulseProxy.js +6 -10
  54. package/dist/esm/utils/pulseProxy.js.map +1 -1
  55. package/dist/public-scripts/pulse-tracker-proxy.v1.1.0.min.js +1 -0
  56. package/dist/public-scripts/sps-pulse-helpers.v2.0.0.min.js +1 -0
  57. package/package.json +2 -2
  58. package/dist/public-scripts/pulse-tracker-proxy.v1.0.0.min.js +0 -1
  59. package/dist/public-scripts/sps-pulse-helpers.v1.0.0.min.js +0 -1
package/dist/esm/index.js CHANGED
@@ -5,6 +5,7 @@ export * from "./sps/queryBuilder.js";
5
5
  export * from "./sps/endpoint.js";
6
6
  export * from "./sps/publication.js";
7
7
  export * from "./sps/placement.js";
8
+ export * from "./sps/rewrite-salesposter-variables.js";
8
9
  export * from "./tracking/create-tracking-params.js";
9
10
  export * from "./tracking/tracking-to-pulse-origin.js";
10
11
  export * from "./tracking/poster-data-to-pulse-object.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAE5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAErD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAElC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAE5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qCAAqC,CAAC;AAEpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAErD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAElC,eAAe,GAAG,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export declare const PUBLIC_SCRIPT_VERSIONS: {
2
- readonly "sps-pulse-helpers": "1.0.0";
3
- readonly "pulse-tracker-proxy": "1.0.0";
2
+ readonly "sps-pulse-helpers": "2.0.0";
3
+ readonly "pulse-tracker-proxy": "1.1.0";
4
4
  };
@@ -1,6 +1,6 @@
1
1
  // Generated from public-script-versions.json — do not edit manually
2
2
  export const PUBLIC_SCRIPT_VERSIONS = {
3
- "sps-pulse-helpers": "1.0.0",
4
- "pulse-tracker-proxy": "1.0.0"
3
+ "sps-pulse-helpers": "2.0.0",
4
+ "pulse-tracker-proxy": "1.1.0"
5
5
  };
6
6
  //# sourceMappingURL=public-script-versions.js.map
@@ -12,12 +12,15 @@ export type PlacementTypeWithOptionalFallback = Exclude<keyof PlacementContentMa
12
12
  * Placement types that do __not__ require any parameters to be passed to SPS.
13
13
  */
14
14
  export type PlacementTypeWithOptionalProps = Exclude<keyof PlacementContentMap, "salesposter" | "ip" | "bottombar">;
15
+ export type PlacementTypeWithStringContent = Exclude<keyof PlacementContentMap, "kyststripe" | "benefit" | "coreheader" | "kystbenefit">;
15
16
  /**
16
17
  * Maps each placement type string to the TypeScript type of its `content` value.
17
18
  * HTML placements map to `string`; JSON placements map to their respective object shapes.
18
19
  */
19
20
  export type PlacementContentMap = {
20
21
  kyststripe: Kyststripe;
22
+ kystbenefit: Record<string, string>;
23
+ benefit: Benefit;
21
24
  coreheader: Record<string, string>;
22
25
  bottombar: string;
23
26
  foldup: string;
@@ -46,3 +49,15 @@ export type Kyststripe = {
46
49
  buttonTxtColor: string;
47
50
  buttonId: string;
48
51
  };
52
+ export type Benefit = {
53
+ disclaimerText: string;
54
+ disclaimerTextColor: string;
55
+ backgroundColor: string;
56
+ buttonText: string;
57
+ buttonColor: string;
58
+ textButtonColor: string;
59
+ headline: string;
60
+ headlineColor: string;
61
+ kicker: string;
62
+ URL: string;
63
+ };
@@ -1,7 +1,10 @@
1
1
  import type { JsonContent } from "../sps.js";
2
- import { type SPSPulseTrackingParams } from "../utils/pulseProxy.js";
3
2
  import type { Environment } from "./endpoint.js";
4
- export interface RewritePlaceholderVariablesParams {
3
+ import type { SPSPosterResponse } from "../apiClient.js";
4
+ import type { OfferTrackingData } from "../tracking/create-tracking-params.js";
5
+ import type { PulseOrigin } from "../tracking/tracking-to-pulse-origin.js";
6
+ import type { PlacementTypeWithStringContent } from "./placement.js";
7
+ export interface RewritePlaceholderVariablesOptions<T extends PlacementTypeWithStringContent> {
5
8
  /**
6
9
  * Url that should be used to return to this article after purchase flow
7
10
  */
@@ -18,12 +21,42 @@ export interface RewritePlaceholderVariablesParams {
18
21
  * Whether to append the provided `searchParams` to links. Defaults to true.
19
22
  */
20
23
  appendSearchParams?: boolean;
24
+ /**
25
+ * Publication name
26
+ */
27
+ publication: string;
28
+ /**
29
+ * Environment for loading pulse proxy scripts
30
+ */
31
+ environment: Environment;
32
+ /**
33
+ * Placement type for the salesposter
34
+ */
35
+ placementType: T;
36
+ /**
37
+ * Which Pulse event families to fire
38
+ */
39
+ pulseEvents?: {
40
+ tpaas?: boolean;
41
+ legacy?: boolean;
42
+ };
43
+ /**
44
+ * Pulse origin and offer tracking data for legacy events
45
+ */
46
+ pulseData?: {
47
+ pulseOrigin: PulseOrigin;
48
+ offerData: OfferTrackingData;
49
+ };
50
+ /**
51
+ * Article type
52
+ */
53
+ articleType?: string;
21
54
  }
22
55
  /**
23
56
  * Enriches the salesposter html links with the correct parameters
24
57
  * @returns StructuredResponse with the updated html
25
58
  */
26
- export declare const rewritePlaceholderVariables: (content: string, { redirectUrl, loginUrl, searchParams, appendSearchParams, }: RewritePlaceholderVariablesParams, publication: string, environment: Environment, placementType: string, pulseTrackingParams?: SPSPulseTrackingParams) => string;
59
+ export declare const rewritePlaceholderVariables: <T extends PlacementTypeWithStringContent>(posterResponse: SPSPosterResponse<T>, { redirectUrl, loginUrl, searchParams, appendSearchParams, publication, environment, placementType, pulseEvents, pulseData, articleType, }: RewritePlaceholderVariablesOptions<T>) => string;
27
60
  export declare const rewriteJsonPosterVariables: (content: JsonContent, { searchParams, appendSearchParams, }: {
28
61
  searchParams: URLSearchParams;
29
62
  appendSearchParams?: boolean;
@@ -5,7 +5,8 @@ import { getDismissScript } from "../actions/dismiss.js";
5
5
  * Enriches the salesposter html links with the correct parameters
6
6
  * @returns StructuredResponse with the updated html
7
7
  */
8
- export const rewritePlaceholderVariables = (content, { redirectUrl, loginUrl, searchParams, appendSearchParams = true, }, publication, environment, placementType, pulseTrackingParams) => {
8
+ export const rewritePlaceholderVariables = (posterResponse, { redirectUrl, loginUrl, searchParams, appendSearchParams = true, publication, environment, placementType, pulseEvents, pulseData, articleType, }) => {
9
+ const { content, campaign, contentName, experiment } = posterResponse;
9
10
  const htmlContent = new DOMParser().parseFromString(content, "text/html");
10
11
  const vevJSON = htmlContent.querySelector("script[type='text/vev']");
11
12
  const links = htmlContent.querySelectorAll("a");
@@ -34,8 +35,18 @@ export const rewritePlaceholderVariables = (content, { redirectUrl, loginUrl, se
34
35
  vevJSON.textContent = vevJSON.textContent.replaceAll(href, updatedHref);
35
36
  }
36
37
  });
37
- if (pulseTrackingParams) {
38
- injectPulseProxyScripts(htmlContent.head, pulseTrackingParams);
38
+ if (pulseEvents) {
39
+ injectPulseProxyScripts(htmlContent.head, {
40
+ publication,
41
+ placementType,
42
+ environment,
43
+ articleType,
44
+ campaign,
45
+ contentName,
46
+ experiment,
47
+ pulseEvents,
48
+ legacy: pulseData,
49
+ });
39
50
  }
40
51
  const dismissElements = htmlContent.querySelectorAll("[data-dismiss-on-click]");
41
52
  if (dismissElements.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite-salesposter-variables.js","sourceRoot":"","sources":["../../../src/sps/rewrite-salesposter-variables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewrite-salesposter-variables.js","sourceRoot":"","sources":["../../../src/sps/rewrite-salesposter-variables.ts"],"names":[],"mappings":"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"}
package/dist/esm/sps.d.ts CHANGED
@@ -71,8 +71,16 @@ export type SpsRequestOptions<T extends PlacementType> = {
71
71
  * @defaultValue `true`
72
72
  */
73
73
  appendSearchParams?: boolean;
74
- /** When true, disables pulse proxy tracking scripts (default true). Set to false to enable automatic pulse tracking. */
75
- disablePulseTracking?: boolean;
74
+ /**
75
+ * Fine-grained control over which Pulse tracking events are fired.
76
+ * When omitted, all pulse tracking is disabled.
77
+ */
78
+ pulseEvents?: {
79
+ /** Fire modern TPaaS offer events (`trackImpressionOffer` / `trackEngagementOffer`). @defaultValue false */
80
+ tpaas?: boolean;
81
+ /** Fire legacy UI element events (`trackLegacyViewUIElement` / `trackLegacyClickUIElement`). @defaultValue false */
82
+ legacy?: boolean;
83
+ };
76
84
  };
77
85
  /**
78
86
  * Variant of {@link SpsRequestOptions} that requires a `fallbackPoster` and forces
@@ -173,8 +181,6 @@ export declare class SPS {
173
181
  endpoint: string;
174
182
  /** The active environment this instance targets. */
175
183
  environment: Environment;
176
- /** The CDN base URL for the active environment. */
177
- cdnUrl: string;
178
184
  /**
179
185
  * Creates a new SPS SDK instance.
180
186
  * @param options - Configuration options including publication, domain and environment.
package/dist/esm/sps.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getEndpoint, getCdnUrl, } from "./index.js";
1
+ import { getEndpoint, } from "./index.js";
2
2
  import { createTrackingParams, } from "./tracking/create-tracking-params.js";
3
3
  import { rewritePlaceholderVariables, rewriteJsonPosterVariables, } from "./sps/rewrite-salesposter-variables.js";
4
4
  import { SpsPublication } from "./sps/publication.js";
@@ -15,8 +15,6 @@ export class SPS {
15
15
  endpoint;
16
16
  /** The active environment this instance targets. */
17
17
  environment;
18
- /** The CDN base URL for the active environment. */
19
- cdnUrl;
20
18
  /**
21
19
  * Creates a new SPS SDK instance.
22
20
  * @param options - Configuration options including publication, domain and environment.
@@ -25,7 +23,6 @@ export class SPS {
25
23
  this.environment = environment;
26
24
  this.publication = publication;
27
25
  this.endpoint = getEndpoint(environment, domain);
28
- this.cdnUrl = getCdnUrl(environment);
29
26
  }
30
27
  async validateClientEnvironment() {
31
28
  if (typeof window === "undefined" || typeof document === "undefined") {
@@ -82,24 +79,21 @@ export class SPS {
82
79
  let content;
83
80
  const generateLoginUrl = props.generateLoginUrl;
84
81
  const generateRedirectUrl = props.generateRedirectUrl;
85
- const { disablePulseTracking = true } = props;
82
+ const { pulseEvents } = props;
86
83
  if (typeof posterResponse.content === "string") {
87
- content = rewritePlaceholderVariables(posterResponse.content, {
84
+ content = rewritePlaceholderVariables(posterResponse, {
88
85
  loginUrl: (await generateLoginUrl?.(posterResponse)) ?? "",
89
86
  redirectUrl: (await generateRedirectUrl?.(posterResponse)) ??
90
87
  `${window.location.origin}${window.location.pathname}`,
91
88
  searchParams,
92
89
  appendSearchParams: props.appendSearchParams ?? true,
93
- }, this.publication, this.environment, placementType, !disablePulseTracking
94
- ? {
95
- pulseOrigin,
96
- publication: this.publication,
97
- placementType: placementType,
98
- cdnUrl: this.cdnUrl,
99
- offerData,
100
- experiment: posterResponse.experiment,
101
- }
102
- : undefined);
90
+ publication: this.publication,
91
+ environment: this.environment,
92
+ placementType: placementType,
93
+ pulseEvents,
94
+ pulseData: { pulseOrigin, offerData },
95
+ articleType: props.params?.articleType,
96
+ });
103
97
  }
104
98
  else {
105
99
  content = rewriteJsonPosterVariables(posterResponse.content, {
@@ -193,24 +187,21 @@ export class SPS {
193
187
  abTestGroup: poster.posterResponse.abTestGroup || undefined,
194
188
  });
195
189
  let content = poster.posterResponse.content;
196
- const { disablePulseTracking = true } = props;
190
+ const { pulseEvents } = props;
197
191
  if (typeof poster.posterResponse.content === "string") {
198
- content = rewritePlaceholderVariables(poster.posterResponse.content, {
192
+ content = rewritePlaceholderVariables(poster.posterResponse, {
199
193
  loginUrl: (await props.generateLoginUrl?.(poster.posterResponse)) ?? "",
200
194
  redirectUrl: (await props.generateRedirectUrl?.(poster.posterResponse)) ??
201
195
  window.location.origin + window.location.pathname,
202
196
  searchParams,
203
197
  appendSearchParams: props.appendSearchParams ?? true,
204
- }, this.publication, this.environment, placementType, !disablePulseTracking
205
- ? {
206
- pulseOrigin,
207
- publication: this.publication,
208
- placementType,
209
- cdnUrl: this.cdnUrl,
210
- offerData,
211
- experiment: poster.posterResponse.experiment,
212
- }
213
- : undefined);
198
+ publication: this.publication,
199
+ environment: this.environment,
200
+ placementType: placementType,
201
+ pulseEvents,
202
+ pulseData: { pulseOrigin, offerData },
203
+ articleType,
204
+ });
214
205
  }
215
206
  else {
216
207
  content = rewriteJsonPosterVariables(poster.posterResponse.content, {
@@ -1 +1 @@
1
- {"version":3,"file":"sps.js","sourceRoot":"","sources":["../../src/sps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sps.js","sourceRoot":"","sources":["../../src/sps.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type PulseTracker } from "../utils/pulse.js";
2
2
  import { type UtmTags } from "../utils/utm.js";
3
3
  import { type PulseOrigin } from "./tracking-to-pulse-origin.js";
4
4
  import { type PulseObject } from "./poster-data-to-pulse-object.js";
5
- export type ContentType = "article" | "podcast" | "video" | "page" | "other";
5
+ export type ContentType = "article" | "podcast" | "video" | "other";
6
6
  export type DeviceType = "mobile" | "tablet" | "desktop";
7
7
  /**
8
8
  * Input options for {@link createTrackingParams}.
@@ -91,7 +91,7 @@ export interface TrackingData {
91
91
  */
92
92
  export interface OfferTrackingData {
93
93
  offer_placement?: string;
94
- offer_type?: string;
94
+ offer_type?: "Login" | "Meter" | "Paid";
95
95
  offer_campaign?: string;
96
96
  offer_test_group?: string;
97
97
  offer_cta?: string;
@@ -6,6 +6,7 @@ import { generateXDomainId } from "../utils/xDomainId.js";
6
6
  import { trackingToPulseOrigin } from "./tracking-to-pulse-origin.js";
7
7
  import { trackingToSearchParams } from "./tracking-to-search-params.js";
8
8
  import { posterDataToPulseObject } from "./poster-data-to-pulse-object.js";
9
+ import { getOfferType } from "../utils/offerType.js";
9
10
  const NO_DATA = "";
10
11
  /**
11
12
  * Creates the tracking parameters for use towards purchase flow
@@ -41,7 +42,7 @@ export async function createTrackingParams(options, posterData) {
41
42
  };
42
43
  const offerData = {
43
44
  offer_placement: placementType,
44
- offer_type: articleType,
45
+ offer_type: getOfferType(articleType),
45
46
  offer_campaign: campaign,
46
47
  offer_test_group: abTestGroup,
47
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-tracking-params.js","sourceRoot":"","sources":["../../../src/tracking/create-tracking-params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-tracking-params.js","sourceRoot":"","sources":["../../../src/tracking/create-tracking-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAqB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAoB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAoB,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,GAAG,EAAE,CAAC;AAgHnB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA4B,EAC5B,UAAuB;IAEvB,MAAM,EACJ,SAAS,EACT,WAAW,EACX,eAAe,GAAG,KAAK,EACvB,WAAW,GAAG,EAAE,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,OAAO,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,MAAM,GAAuB,MAAM,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAElF,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IAE/E,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAErD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,EACJ,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAC7C,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAC/C,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAC3C,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAC3C,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE;IACvC,uCAAuC;IACvC,OAAO,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAC7F,GAAG,eAAe,IAAI,EAAE,CAAC;IAC1B,MAAM,0BAA0B,GAAG,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;IAE7F,MAAM,YAAY,GAAiB;QACjC,UAAU,EAAE,UAAU;YACpB,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC;YAChC,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC;QAC7C,UAAU,EACR,kBAAkB,CAAC,UAAU,CAAC,IAAI,WAAW,IAAI,0BAA0B,IAAI,OAAO;QACxF,WAAW,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,aAAa;QACxF,YAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC,IAAI,QAAQ,IAAI,OAAO;QACrE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,OAAO;QACjD,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO;QAC/C,UAAU,EAAE,SAAS,IAAI,OAAO;QAChC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,MAAM,IAAI,OAAO;QAC3B,sDAAsD;KACvD,CAAC;IAEF,MAAM,SAAS,GAAsB;QACnC,eAAe,EAAE,aAAa;QAC9B,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC;QACrC,cAAc,EAAE,QAAQ;QACxB,gBAAgB,EAAE,WAAW;KAC9B,CAAC;IAEF,MAAM,WAAW,GAAG,qBAAqB,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAEpF,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEjG,OAAO;QACL,YAAY;QACZ,WAAW;QACX,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ type Intent = "Purchase" | "Login";
2
+ /**
3
+ * Determine the intent of a click based on the hostname of the link.
4
+ * @param link the clicked element, expected to be an anchor element with an href attribute. If the href is missing or invalid, the function will return undefined.
5
+ * @returns "Purchase", "Login", or undefined based on the hostname of the link.
6
+ */
7
+ export declare const getIntent: (link: Element) => Intent | undefined;
8
+ export {};
@@ -0,0 +1,30 @@
1
+ const isPurchaseHostname = (hostname) => {
2
+ return (hostname === "payment.schibsted.com" ||
3
+ hostname.startsWith("bestilling.") ||
4
+ hostname === "pay.pre.schibsted.digital" ||
5
+ hostname.startsWith("test-bestilling."));
6
+ };
7
+ const isLoginHostname = (hostname) => {
8
+ return hostname === "login.schibsted.com" || hostname === "identity-pre.schibsted.com";
9
+ };
10
+ /**
11
+ * Determine the intent of a click based on the hostname of the link.
12
+ * @param link the clicked element, expected to be an anchor element with an href attribute. If the href is missing or invalid, the function will return undefined.
13
+ * @returns "Purchase", "Login", or undefined based on the hostname of the link.
14
+ */
15
+ export const getIntent = (link) => {
16
+ try {
17
+ const elementUrl = new URL(link.getAttribute("href") ?? "");
18
+ const hostname = elementUrl.hostname;
19
+ if (isLoginHostname(hostname)) {
20
+ return "Login";
21
+ }
22
+ if (isPurchaseHostname(hostname)) {
23
+ return "Purchase";
24
+ }
25
+ }
26
+ catch {
27
+ return undefined;
28
+ }
29
+ };
30
+ //# sourceMappingURL=intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/utils/intent.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAW,EAAE;IACvD,OAAO,CACL,QAAQ,KAAK,uBAAuB;QACpC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAClC,QAAQ,KAAK,2BAA2B;QACxC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAW,EAAE;IACpD,OAAO,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,KAAK,4BAA4B,CAAC;AACzF,CAAC,CAAC;AAIF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAsB,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Extracts offer codes from the href attribute of a clicked link.
3
+ * @param link the clicked element, expected to be an anchor element with an href attribute. If the href is missing or invalid, the function will return undefined.
4
+ * @returns an array of offer codes or an empty array if no offer codes are found.
5
+ */
6
+ export declare const getOfferCodes: (link: Element) => string[];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Extracts offer codes from the href attribute of a clicked link.
3
+ * @param link the clicked element, expected to be an anchor element with an href attribute. If the href is missing or invalid, the function will return undefined.
4
+ * @returns an array of offer codes or an empty array if no offer codes are found.
5
+ */
6
+ export const getOfferCodes = (link) => {
7
+ try {
8
+ const elementUrl = new URL(link.getAttribute("href") ?? "");
9
+ const queryParams = new URLSearchParams(elementUrl.search);
10
+ const offerCode = queryParams.get("code");
11
+ return offerCode ? offerCode.split(",") : [];
12
+ }
13
+ catch {
14
+ return [];
15
+ }
16
+ };
17
+ //# sourceMappingURL=offerCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offerCodes.js","sourceRoot":"","sources":["../../../src/utils/offerCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAa,EAAY,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ type OfferType = "Meter" | "Paid" | "Login";
2
+ /**
3
+ * Determines the offer type based on the article type string.
4
+ * @param articleType the article type string passed from the client call, which may contain indicators of the offer type such as "meter" or "paid". If the string is undefined or does not contain any known indicators, the function defaults to "Login".
5
+ * @returns "Meter", "Paid", or "Login" based on the article type string. Undefined if the article type is not provided or does not match any known offer types.
6
+ */
7
+ export declare const getOfferType: (articleType?: string) => OfferType | undefined;
8
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Determines the offer type based on the article type string.
3
+ * @param articleType the article type string passed from the client call, which may contain indicators of the offer type such as "meter" or "paid". If the string is undefined or does not contain any known indicators, the function defaults to "Login".
4
+ * @returns "Meter", "Paid", or "Login" based on the article type string. Undefined if the article type is not provided or does not match any known offer types.
5
+ */
6
+ export const getOfferType = (articleType) => {
7
+ const lower = articleType?.toLowerCase() ?? "";
8
+ if (lower.includes("meter")) {
9
+ return "Meter";
10
+ }
11
+ if (lower.includes("paid") || lower.includes("subscription")) {
12
+ return "Paid";
13
+ }
14
+ if (lower.includes("login")) {
15
+ return "Login";
16
+ }
17
+ };
18
+ //# sourceMappingURL=offerType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offerType.js","sourceRoot":"","sources":["../../../src/utils/offerType.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAoB,EAAyB,EAAE;IAC1E,MAAM,KAAK,GAAG,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC"}
@@ -1,30 +1,61 @@
1
1
  import type { PulseOrigin } from "../tracking/tracking-to-pulse-origin.js";
2
2
  import type { PlacementType } from "../sps/placement.js";
3
3
  import type { OfferTrackingData } from "../tracking/create-tracking-params.js";
4
- export interface SPSPulseTrackingParams {
4
+ import { type Environment } from "../sps/endpoint.js";
5
+ export interface PulseConfig {
5
6
  /**
6
- * Pulse origin data from tracking data
7
+ * Environment for loading pulse proxy scripts, set by the environment argument when initializing the SPS instance
7
8
  */
8
- pulseOrigin: PulseOrigin;
9
+ environment: Environment;
9
10
  /**
10
- * Publication name
11
+ * Campaign name for the salesposter
11
12
  */
12
- publication: string;
13
+ campaign: string;
13
14
  /**
14
- * Placement type for the salesposter
15
+ * Content name for the salesposter
15
16
  */
16
- placementType: PlacementType;
17
+ contentName: string;
17
18
  /**
18
- * CDN URL for loading pulse proxy scripts, set by the environment argument when initializing the SPS instance
19
+ * Article type
19
20
  */
20
- cdnUrl: string;
21
+ articleType?: string;
21
22
  /**
22
- * New TPaaS offer tracking params
23
+ * A/B test group identifier, if applicable
23
24
  */
24
- offerData: OfferTrackingData;
25
+ abTestGroup?: string;
26
+ /**
27
+ * Fields forwarded as-is to legacy tracking functions only
28
+ * */
29
+ legacy?: {
30
+ /**
31
+ * Pulse origin data from tracking data
32
+ */
33
+ pulseOrigin: PulseOrigin;
34
+ /**
35
+ * TPaaS offer tracking params
36
+ */
37
+ offerData: OfferTrackingData;
38
+ };
39
+ /**
40
+ * Publication name
41
+ */
42
+ publication: string;
43
+ /**
44
+ * Placement type for the salesposter
45
+ */
46
+ placementType: PlacementType;
25
47
  /**
26
48
  * Experiment identifier from the SPS response
27
49
  */
28
50
  experiment?: string | null;
51
+ /**
52
+ * Which Pulse event families to fire. When omitted, all tracking is disabled.
53
+ */
54
+ pulseEvents?: {
55
+ /** Fire modern TPaaS offer events (`trackImpressionOffer` / `trackEngagementOffer`). */
56
+ tpaas?: boolean;
57
+ /** Fire legacy UI element events (`trackLegacyViewUIElement` / `trackLegacyClickUIElement`). */
58
+ legacy?: boolean;
59
+ };
29
60
  }
30
- export declare const injectPulseProxyScripts: (root: HTMLElement, { pulseOrigin, publication, placementType, cdnUrl, offerData, experiment, }: SPSPulseTrackingParams) => void;
61
+ export declare const injectPulseProxyScripts: (root: HTMLElement, config: PulseConfig) => void;
@@ -1,17 +1,13 @@
1
1
  import { PUBLIC_SCRIPT_VERSIONS } from "../public-script-versions.js";
2
- export const injectPulseProxyScripts = (root, { pulseOrigin, publication, placementType, cdnUrl, offerData, experiment, }) => {
3
- const HELPERS_SRC = `${cdnUrl}/public-scripts/sps-pulse-helpers.v${PUBLIC_SCRIPT_VERSIONS["sps-pulse-helpers"]}.min.js`;
4
- const PROXY_SRC = `${cdnUrl}/public-scripts/pulse-tracker-proxy.v${PUBLIC_SCRIPT_VERSIONS["pulse-tracker-proxy"]}.min.js`;
2
+ import { getCdnUrl } from "../sps/endpoint.js";
3
+ export const injectPulseProxyScripts = (root, config) => {
4
+ const { environment } = config;
5
+ const HELPERS_SRC = `${getCdnUrl(environment)}/public-scripts/sps-pulse-helpers.v${PUBLIC_SCRIPT_VERSIONS["sps-pulse-helpers"]}.min.js`;
6
+ const PROXY_SRC = `${getCdnUrl(environment)}/public-scripts/pulse-tracker-proxy.v${PUBLIC_SCRIPT_VERSIONS["pulse-tracker-proxy"]}.min.js`;
5
7
  const configScript = document.createElement("script");
6
8
  configScript.type = "application/json";
7
9
  configScript.setAttribute("data-sps-pulse-config", "true");
8
- configScript.textContent = JSON.stringify({
9
- pulseOrigin,
10
- publication,
11
- placementType,
12
- offerData,
13
- ...(experiment && { experiment }),
14
- });
10
+ configScript.textContent = JSON.stringify(config);
15
11
  const helpersScript = document.createElement("script");
16
12
  helpersScript.src = HELPERS_SRC;
17
13
  const proxyScript = document.createElement("script");
@@ -1 +1 @@
1
- {"version":3,"file":"pulseProxy.js","sourceRoot":"","sources":["../../../src/utils/pulseProxy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AA6BnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAAiB,EACjB,EACE,WAAW,EACX,WAAW,EACX,aAAa,EACb,MAAM,EACN,SAAS,EACT,UAAU,GACa,EACzB,EAAE;IACF,MAAM,WAAW,GAAG,GAAG,MAAM,sCAAsC,sBAAsB,CAAC,mBAAmB,CAAC,SAAS,CAAC;IACxH,MAAM,SAAS,GAAG,GAAG,MAAM,wCAAwC,sBAAsB,CAAC,qBAAqB,CAAC,SAAS,CAAC;IAE1H,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,YAAY,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACvC,YAAY,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC3D,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,WAAW;QACX,WAAW;QACX,aAAa;QACb,SAAS;QACT,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;KAClC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvD,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC;IAEhC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrD,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;IAE5B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"pulseProxy.js","sourceRoot":"","sources":["../../../src/utils/pulseProxy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AA2D9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAiB,EAAE,MAAmB,EAAE,EAAE;IAChF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC/B,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,sCAAsC,sBAAsB,CAAC,mBAAmB,CAAC,SAAS,CAAC;IACxI,MAAM,SAAS,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,wCAAwC,sBAAsB,CAAC,qBAAqB,CAAC,SAAS,CAAC;IAE1I,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,YAAY,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACvC,YAAY,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC3D,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvD,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC;IAEhC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrD,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;IAE5B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";var PulseTrackerProxyBundle=(()=>{var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var O=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of M(r))!I.call(e,a)&&a!==t&&g(e,a,{get:()=>r[a],enumerable:!(o=v(r,a))||o.enumerable});return e};var U=e=>O(g({},"__esModule",{value:!0}),e);var C={};var l="pulse-tracker-proxy",x=`${l}:request`,H=`${l}:ack`,T=`${l}:invoke`,f=`${l}:return`,k=`${l}:return-error`,w=["trackAnonymousViewUIElement","trackEngagementAudio","trackEngagementForm","trackEngagementHealthUIElement","trackEngagementOffer","trackEngagementTeaser","trackEngagementUIElement","trackEngagementVideo","trackEngagementVideoAd","trackEngagementWidget","trackCompletedHealthAction","trackImpressionForm","trackImpressionHealthUIElement","trackImpressionOffer","trackImpressionPlayer","trackImpressionTeaser","trackImpressionUIElement","trackImpressionWidget","trackLeaveArticle","trackLeaveAudioPage","trackLeaveError","trackLeaveFrontpage","trackLeaveLandingpage","trackLeaveListing","trackLeaveLockedArticle","trackLeaveLockedAudioPage","trackLeaveLockedVideoPage","trackLeavePage","trackLeaveVideoPage","trackLeaveWeather","trackViewArticle","trackViewAudioPage","trackViewError","trackViewFrontpage","trackViewHealthPage","trackViewLandingpage","trackViewListing","trackViewLockedArticle","trackViewLockedAudioPage","trackViewLockedVideoPage","trackViewPage","trackViewTitle","trackViewVideoPage","trackViewWeather","trackLegacyViewArticle","trackLegacyViewLoginPoster","trackLegacyViewSalesPoster","trackLegacyViewListing","trackLegacyViewFrontpage","trackLegacyViewPage","trackLegacyViewUIElement","trackLegacyClickUIElement"];function P(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith(l)}async function h(e,r,t){return await new Promise((o,a)=>{let s=e.document.createElement("script");s.src=`//sdk.pulse.schibsted.com/versioned/${t}/pulse.min.js`,s.async=!0,s.onload=o,s.onerror=()=>{a(new Error(`Failed to load autotracker script from src: ${s.src}`))},e.document.head.appendChild(s)}),new Promise((o,a)=>{if(!e.pulse){a(new Error("Pulse autotracker did not load correctly!"));return}e.pulse("init",r),e.pulse(s=>{o(s)})})}function d(e,{target:r,timeout:t,debug:o=()=>{}}){return new Promise((a,s)=>{let i=new MessageChannel,n=t?setTimeout(()=>{i.port1.close(),s(new Error(`Message of type ${e.type} timed out`))},t):void 0,p=c=>{if(o("[Pulse Tracker Proxy] Received the response on the MessageChannel",c),!P(c.data)){o("[Pulse Tracker Proxy] Response was not a valid Proxy Message",c.data);return}c.data.type===k&&(o("[Pulse Tracker Proxy] Received an return error response",c.data.error),clearTimeout(n),i.port1.close(),s(new Error(c.data.error))),o("[Pulse Tracker Proxy] Received a valid response",c.data),clearTimeout(n),i.port1.close(),a(c.data)};i.port1.onmessage=p,o("[Pulse Tracker Proxy] Sending message to target window",e),r.postMessage(e,"*",[i.port2])})}var A="2.0.0-rc.5";function y(e){let r="tracker"in e&&typeof e.tracker=="object"?e.tracker:{};return{...e,tracker:{...r,proxyVersion:A}}}var m=class{constructor(r,t){this.target=r,this.debug=t}track(...r){this.debug("[Pulse Tracker Proxy] Calling `track`",r);let[t,o,...a]=r,s=[t,y(o),...a];return this.invoke({method:"track",args:s})}async invoke(r){this.debug("[Pulse Tracker Proxy] Invoking remote function",r);let t=await d({type:T,payload:r},{target:this.target});if(!P(t))throw this.debug("[Pulse Tracker Proxy] Invalid response from proxy",t),new Error("Invalid response from proxy");if(t.type===k)throw this.debug("[Pulse Tracker Proxy] Error response from proxy",t.error),new Error(t.error);if(t.type===f)return this.debug("[Pulse Tracker Proxy] Successful response from proxy",t.payload),t.payload;throw this.debug("[Pulse Tracker Proxy] Unhandled response from proxy",t),new Error("Unexpected response from proxy")}};var $=Object.fromEntries(w.map(e=>[e,function(...r){this.debug("[Pulse Tracker Proxy] Calling `track`",r);let[t,...o]=r,a=[y(t),...o];return this.invoke({method:e,args:a})}]));function Y(){return class extends m{constructor(e,r){super(e,r),r("[Pulse TPaaS Proxy] Initialized"),Object.assign(this,$)}}}var L=Y();function S({provider:e,autotrackerVersion:r="3",window:t=globalThis.window,target:o=t.parent,timeout:a=5e3,retries:s=3,retryTimeout:i=1e3,debug:n=()=>{}}={}){if(n("[Pulse Tracker Proxy] Checking if `pulseEventHandler` is provided in the current window..."),t.pulseEventHandler)return n(`[Pulse Tracker Proxy] \`pulseEventHandler\` found in the current window. Assuming it is the app webview. Loading autotracker version ${r}...`),e?h(t,e,r):(n("[Pulse Tracker Proxy] `provider` is not set - cannot create pulse tracker."),Promise.reject("`provider` is not set - cannot create pulse tracker."));if(n("[Pulse Tracker Proxy] `pulseEventHandler` not found in the current window - not a mobile app webview."),n("[Pulse Tracker Proxy] Trying to establish connection...",{target:o,timeout:a,retries:s}),!o)return Promise.reject(new Error("Target window not provided. Possibly window.parent is not available."));let p,c=!1,R=new Promise((u,E)=>{p=setTimeout(()=>{c=!0,n("[Pulse Tracker Proxy] Ack timeout. Sorry, target seems to not support the proxy."),E(new Error(`Pulse tracker proxy not found within ${a} ms`))},a)}),_=(async()=>{for(let u=0;u<s;u++){if(c)throw n("[Pulse Tracker Proxy] Configured timeout has passed before the next attempt"),new Error("Configured timeout has passed before the next attempt.");try{n(`[Pulse Tracker Proxy] Sending request to target window (attempt: ${u+1})...`),await d({type:x},{target:o,timeout:i})}catch(E){n(`[Pulse Tracker Proxy] Ack Request failed: ${E}`);continue}return clearTimeout(p),n(`[Pulse Tracker Proxy] Ack Request successful (attempt: ${u+1})`),new L(o,n)}throw clearTimeout(p),n("[Pulse Tracker Proxy] Retries exhausted. Target did not respond. Failing."),new Error("Failed to establish connection with pulse tracker proxy")})();return Promise.race([R,_])}var V;window.getPulseTrackerProxy=(V=window.getPulseTrackerProxy)!=null?V:S;return U(C);})();