@schibsted/pulse-sdk 8.0.0-rc.2 → 8.0.0-rc.3

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 (39) hide show
  1. package/dist/cjs/Tracker.js +2 -2
  2. package/dist/cjs/identity/cis.js +2 -1
  3. package/dist/cjs/tracker-proxy/consts.js +10 -0
  4. package/dist/cjs/version.js +1 -1
  5. package/dist/ejs/Tracker.js +3 -3
  6. package/dist/ejs/identity/cis.js +2 -1
  7. package/dist/ejs/tracker-proxy/consts.js +10 -0
  8. package/dist/ejs/version.js +1 -1
  9. package/dist/types/Tracker.d.ts +15 -20
  10. package/dist/types/tracker-proxy/consts.d.ts +1 -1
  11. package/dist/types/version.d.ts +1 -1
  12. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.d.ts +1 -0
  13. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js +17 -3
  14. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/cis-browser.js.map +1 -1
  15. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.d.ts +4 -0
  16. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js +15 -5
  17. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/pulseStorage.js.map +1 -1
  18. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.d.ts +1 -0
  19. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js +5 -0
  20. package/node_modules/@schibsted/pulse-cis-sync/dist/cjs/storage/storage.js.map +1 -1
  21. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.d.ts +1 -0
  22. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js +16 -2
  23. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/cis-browser.js.map +1 -1
  24. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.d.ts +4 -0
  25. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js +12 -3
  26. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/pulseStorage.js.map +1 -1
  27. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.d.ts +1 -0
  28. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js +5 -0
  29. package/node_modules/@schibsted/pulse-cis-sync/dist/ejs/storage/storage.js.map +1 -1
  30. package/node_modules/@schibsted/pulse-cis-sync/dist/types/cis-browser.d.ts +1 -0
  31. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/pulseStorage.d.ts +4 -0
  32. package/node_modules/@schibsted/pulse-cis-sync/dist/types/storage/storage.d.ts +1 -0
  33. package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders/session.js +19 -6
  34. package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders/session.js +19 -6
  35. package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +5 -8
  36. package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +71 -67
  37. package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +71 -67
  38. package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +75 -74
  39. package/package.json +3 -3
@@ -1135,7 +1135,7 @@ class Tracker {
1135
1135
  */
1136
1136
  async trackViewLandingpage(input, options) {
1137
1137
  this.newPageView(); // Reset the page view ID if it is not set, to ensure a new page view is tracked
1138
- this.setCurrentPage(input.object.objectId, 'LandingPage' /* TODO: ViewLandingpage.object.type once the schema is fixed */);
1138
+ this.setCurrentPage(input.object.objectId, tpaas_schemas_1.ViewLandingpage.object.objectType);
1139
1139
  const dependencies = await this.prepareTpaasEvent();
1140
1140
  const event = (0, tpaas_event_builder_1.buildViewLandingpageEvent)(input, dependencies);
1141
1141
  const result = this.sendTpaasEvent(event);
@@ -1392,7 +1392,7 @@ class Tracker {
1392
1392
  */
1393
1393
  async trackViewWeather(input, options) {
1394
1394
  this.newPageView(); // Reset the page view ID if it is not set, to ensure a new page view is tracked
1395
- this.setCurrentPage(input.object.objectId, 'Page' /* TODO: ViewWeather.object.type once the schema is fixed */);
1395
+ this.setCurrentPage(input.object.objectId, tpaas_schemas_1.ViewWeather.object.objectType);
1396
1396
  const dependencies = await this.prepareTpaasEvent();
1397
1397
  const event = (0, tpaas_event_builder_1.buildViewWeatherEvent)(input, dependencies);
1398
1398
  const result = this.sendTpaasEvent(event);
@@ -45,7 +45,7 @@ const cisSync = async (data, builders, config) => {
45
45
  // _pulse2data cookie, or just not do the sync.
46
46
  //
47
47
  const actorPromise = (0, actor_1.evaluateActor)(data, builders);
48
- const { cisBaseUrl, cisEnabled, includeAdvertising: includeAdvertisingPromise, isHybrid, nativeJwe, providerId, trackerId, vendors, } = config || {};
48
+ const { adChoicesEnabled, cisBaseUrl, cisEnabled, includeAdvertising: includeAdvertisingPromise, isHybrid, nativeJwe, providerId, trackerId, vendors, } = config || {};
49
49
  const [includeAdvertising, actor] = await Promise.all([includeAdvertisingPromise, actorPromise]);
50
50
  const { id, realm } = actor;
51
51
  if (cisEnabled) {
@@ -53,6 +53,7 @@ const cisSync = async (data, builders, config) => {
53
53
  return (0, pulse_cis_sync_1.syncWithCis)(
54
54
  // @ts-expect-error
55
55
  id, nativeJwe, cisBaseUrl, realm, providerId, isHybrid ? 'Hybrid' : 'Web', version_1.SDK_VERSION, {
56
+ adChoicesEnabled,
56
57
  includeAdvertising,
57
58
  vendors,
58
59
  trackerId,
@@ -62,6 +62,16 @@ exports.TPAAS_ALLOWED_METHODS = [
62
62
  'trackViewVideo',
63
63
  'trackViewVideoPage',
64
64
  'trackViewWeather',
65
+ // these are not TPaaS methods,
66
+ // but they're part of this list to not have to duplicate the tracker-tpaas-proxy.ts implementation in tracker-proxy.ts
67
+ 'trackLegacyViewArticle',
68
+ 'trackLegacyViewLoginPoster',
69
+ 'trackLegacyViewSalesPoster',
70
+ 'trackLegacyViewListing',
71
+ 'trackLegacyViewFrontpage',
72
+ 'trackLegacyViewPage',
73
+ 'trackLegacyViewUIElement',
74
+ 'trackLegacyClickUIElement',
65
75
  ];
66
76
  function isPulseProxyMessage(message) {
67
77
  return (message !== null &&
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
4
  // This file is auto-generated by bin/generate-version.js. Do not edit manually.
5
- exports.SDK_VERSION = '8.0.0-rc.2';
5
+ exports.SDK_VERSION = '8.0.0-rc.3';
@@ -1,7 +1,7 @@
1
1
  import { parsePulseCookies } from '@schibsted/pulse-cis-sync';
2
2
  import { evaluateAndFlatten, isBrowser, isFunction, isPromise, isString, pulseMerge, throttle, } from '@schibsted/pulse-utils';
3
3
  import { buildAnonymousViewUIElementEvent, buildCompletedHealthActionEvent, buildEngagementAudioEvent, buildEngagementFormEvent, buildEngagementHealthUIElementEvent, buildEngagementOfferEvent, buildEngagementTeaserEvent, buildEngagementUIElementEvent, buildEngagementVideoAdEvent, buildEngagementVideoEvent, buildEngagementWidgetEvent, buildImpressionAdSlotEvent, buildImpressionFormEvent, buildImpressionHealthUIElementEvent, buildImpressionOfferEvent, buildImpressionPlayerEvent, buildImpressionTeaserEvent, buildImpressionUIElementEvent, buildImpressionWidgetEvent, buildLeaveArticleEvent, buildLeaveAudioPageEvent, buildLeaveErrorEvent, buildLeaveFrontpageEvent, buildLeaveLandingpageEvent, buildLeaveListingEvent, buildLeaveLockedArticleEvent, buildLeaveLockedAudioEvent, buildLeaveLockedAudioPageEvent, buildLeaveLockedVideoEvent, buildLeaveLockedVideoPageEvent, buildLeavePageEvent, buildLeaveSportsPageEvent, buildLeaveVideoPageEvent, buildLeaveWeatherEvent, buildViewArticleEvent, buildViewAudioEvent, buildViewAudioPageEvent, buildViewErrorEvent, buildViewFrontpageEvent, buildViewHealthPageEvent, buildViewLandingpageEvent, buildViewListingEvent, buildViewLockedArticleEvent, buildViewLockedAudioEvent, buildViewLockedAudioPageEvent, buildViewLockedVideoEvent, buildViewLockedVideoPageEvent, buildViewPageEvent, buildViewSportsPageEvent, buildViewTitleEvent, buildViewVideoEvent, buildViewVideoPageEvent, buildViewWeatherEvent, getCommonBuildersOutput, } from '@schibsted/tpaas-event-builder';
4
- import { LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewError, ViewFrontpage, ViewListing, ViewLockedArticle, ViewLockedVideo, ViewPage, ViewTitle, } from '@schibsted/tpaas-schemas';
4
+ import { LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewError, ViewFrontpage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedVideo, ViewPage, ViewTitle, ViewWeather, } from '@schibsted/tpaas-schemas';
5
5
  import logger from 'loglevel';
6
6
  import { v4 } from 'uuid';
7
7
  import { getDefaultAltHandler, getDefaultNativeJwe } from './app-integration';
@@ -1092,7 +1092,7 @@ export default class Tracker {
1092
1092
  */
1093
1093
  async trackViewLandingpage(input, options) {
1094
1094
  this.newPageView(); // Reset the page view ID if it is not set, to ensure a new page view is tracked
1095
- this.setCurrentPage(input.object.objectId, 'LandingPage' /* TODO: ViewLandingpage.object.type once the schema is fixed */);
1095
+ this.setCurrentPage(input.object.objectId, ViewLandingpage.object.objectType);
1096
1096
  const dependencies = await this.prepareTpaasEvent();
1097
1097
  const event = buildViewLandingpageEvent(input, dependencies);
1098
1098
  const result = this.sendTpaasEvent(event);
@@ -1349,7 +1349,7 @@ export default class Tracker {
1349
1349
  */
1350
1350
  async trackViewWeather(input, options) {
1351
1351
  this.newPageView(); // Reset the page view ID if it is not set, to ensure a new page view is tracked
1352
- this.setCurrentPage(input.object.objectId, 'Page' /* TODO: ViewWeather.object.type once the schema is fixed */);
1352
+ this.setCurrentPage(input.object.objectId, ViewWeather.object.objectType);
1353
1353
  const dependencies = await this.prepareTpaasEvent();
1354
1354
  const event = buildViewWeatherEvent(input, dependencies);
1355
1355
  const result = this.sendTpaasEvent(event);
@@ -40,7 +40,7 @@ const cisSync = async (data, builders, config) => {
40
40
  // _pulse2data cookie, or just not do the sync.
41
41
  //
42
42
  const actorPromise = evaluateActor(data, builders);
43
- const { cisBaseUrl, cisEnabled, includeAdvertising: includeAdvertisingPromise, isHybrid, nativeJwe, providerId, trackerId, vendors, } = config || {};
43
+ const { adChoicesEnabled, cisBaseUrl, cisEnabled, includeAdvertising: includeAdvertisingPromise, isHybrid, nativeJwe, providerId, trackerId, vendors, } = config || {};
44
44
  const [includeAdvertising, actor] = await Promise.all([includeAdvertisingPromise, actorPromise]);
45
45
  const { id, realm } = actor;
46
46
  if (cisEnabled) {
@@ -48,6 +48,7 @@ const cisSync = async (data, builders, config) => {
48
48
  return syncWithCis(
49
49
  // @ts-expect-error
50
50
  id, nativeJwe, cisBaseUrl, realm, providerId, isHybrid ? 'Hybrid' : 'Web', SDK_VERSION, {
51
+ adChoicesEnabled,
51
52
  includeAdvertising,
52
53
  vendors,
53
54
  trackerId,
@@ -58,6 +58,16 @@ export const TPAAS_ALLOWED_METHODS = [
58
58
  'trackViewVideo',
59
59
  'trackViewVideoPage',
60
60
  'trackViewWeather',
61
+ // these are not TPaaS methods,
62
+ // but they're part of this list to not have to duplicate the tracker-tpaas-proxy.ts implementation in tracker-proxy.ts
63
+ 'trackLegacyViewArticle',
64
+ 'trackLegacyViewLoginPoster',
65
+ 'trackLegacyViewSalesPoster',
66
+ 'trackLegacyViewListing',
67
+ 'trackLegacyViewFrontpage',
68
+ 'trackLegacyViewPage',
69
+ 'trackLegacyViewUIElement',
70
+ 'trackLegacyClickUIElement',
61
71
  ];
62
72
  export function isPulseProxyMessage(message) {
63
73
  return (message !== null &&
@@ -1,2 +1,2 @@
1
1
  // This file is auto-generated by bin/generate-version.js. Do not edit manually.
2
- export const SDK_VERSION = '8.0.0-rc.2';
2
+ export const SDK_VERSION = '8.0.0-rc.3';
@@ -74,6 +74,13 @@ export type DeployStage = 'dev' | 'pre' | 'pro';
74
74
  * **Note** that the `username` and `password` is *for Node.js environments only*.
75
75
  */
76
76
  export interface SDKConfigInput {
77
+ /**
78
+ * AdChoices: dictates which advertising identifiers are issued, in relation to advertising consents given by the user.
79
+ * When `true` and `requireAdvertisingOptIn` is `true`, if the user has not given consent to advertising purpose,
80
+ * neither `adId` nor `ppId` are issued.
81
+ * @see requireAdvertisingOptIn
82
+ */
83
+ adChoicesEnabled?: boolean;
77
84
  /**
78
85
  * Function handler to call in place of the built-in tracker call.
79
86
  * @function
@@ -97,6 +104,13 @@ export interface SDKConfigInput {
97
104
  */
98
105
  nativeJwe?: string;
99
106
  password?: string;
107
+ /**
108
+ * When true, user's consents are (waited and) evaluated in order to instruct the apis to restrict the issuing of
109
+ * advertising identifiers;
110
+ * It has direct effect on the issuing of `adId`.
111
+ * In connection with `adChoicesEnabled` option, restricts the issuing of `ppId` as well.
112
+ * @see adChoicesEnabled
113
+ */
100
114
  requireAdvertisingOptIn?: boolean;
101
115
  trackerId?: string;
102
116
  useBeacon?: boolean;
@@ -116,37 +130,18 @@ export interface SDKConfigInput {
116
130
  * @internal
117
131
  */
118
132
  export type SDKState = {
119
- altEventHandler?: AltEventHandler;
120
- autoCreateConsents?: boolean;
121
- cisBaseUrl?: string;
122
- cisEnabled?: boolean;
123
- collectorBaseUrl?: string;
124
133
  collectorPath: string;
125
- configurationTag?: string;
126
- consents?: Consents | ConsentsInput | Promise<Consents>;
127
134
  deployStage: DeployStage;
128
135
  deployStageTpaas: DeployStage;
129
136
  environment: 'node' | 'browser';
130
- eventDebounce?: number;
131
137
  includeAdvertising: boolean | Promise<boolean>;
132
- isHybrid?: boolean;
133
- nativeJwe?: string;
134
138
  pageViewId: string;
135
- password?: string;
136
139
  providerId: string;
137
140
  remoteConfigurationUrl: string;
138
- requireAdvertisingOptIn?: boolean;
139
141
  schemaLocation: string;
140
- trackerId?: string;
142
+ trackerId: string;
141
143
  tpaasCollectorBaseUrl: string;
142
- useBeacon?: boolean;
143
- useBeaconWhenAvailable?: boolean;
144
- username?: string;
145
144
  vendors: AdvertisingVendor[];
146
- /**
147
- * @deprecated Xandr sync and AnId functionality no longer supported.
148
- */
149
- xandrEnabled?: boolean;
150
145
  } & SDKConfigInput & FallbackSDKConfig;
151
146
  /**
152
147
  * Input for event builders. Different events will read and process different
@@ -17,7 +17,7 @@ export declare const MESSAGE_TYPE_INVOKE = "pulse-tracker-proxy:invoke";
17
17
  export declare const MESSAGE_TYPE_RETURN = "pulse-tracker-proxy:return";
18
18
  export declare const MESSAGE_TYPE_RETURN_ERROR = "pulse-tracker-proxy:return-error";
19
19
  export declare const ALLOWED_METHODS: readonly ["track"];
20
- export declare const TPAAS_ALLOWED_METHODS: readonly ["trackAnonymousViewUIElement", "trackEngagementAudio", "trackEngagementForm", "trackEngagementHealthUIElement", "trackEngagementOffer", "trackEngagementTeaser", "trackEngagementUIElement", "trackEngagementVideo", "trackEngagementVideoAd", "trackEngagementWidget", "trackCompletedHealthAction", "trackImpressionAdSlot", "trackImpressionForm", "trackImpressionHealthUIElement", "trackImpressionOffer", "trackImpressionPlayer", "trackImpressionTeaser", "trackImpressionUIElement", "trackImpressionWidget", "trackLeaveArticle", "trackLeaveAudioPage", "trackLeaveError", "trackLeaveFrontpage", "trackLeaveLandingpage", "trackLeaveListing", "trackLeaveLockedArticle", "trackLeaveLockedAudio", "trackLeaveLockedAudioPage", "trackLeaveLockedVideo", "trackLeaveLockedVideoPage", "trackLeavePage", "trackLeaveVideoPage", "trackLeaveWeather", "trackViewArticle", "trackViewAudio", "trackViewAudioPage", "trackViewError", "trackViewFrontpage", "trackViewHealthPage", "trackViewLandingpage", "trackViewListing", "trackViewLockedArticle", "trackViewLockedAudio", "trackViewLockedAudioPage", "trackViewLockedVideo", "trackViewLockedVideoPage", "trackViewPage", "trackViewTitle", "trackViewVideo", "trackViewVideoPage", "trackViewWeather"];
20
+ export declare const TPAAS_ALLOWED_METHODS: readonly ["trackAnonymousViewUIElement", "trackEngagementAudio", "trackEngagementForm", "trackEngagementHealthUIElement", "trackEngagementOffer", "trackEngagementTeaser", "trackEngagementUIElement", "trackEngagementVideo", "trackEngagementVideoAd", "trackEngagementWidget", "trackCompletedHealthAction", "trackImpressionAdSlot", "trackImpressionForm", "trackImpressionHealthUIElement", "trackImpressionOffer", "trackImpressionPlayer", "trackImpressionTeaser", "trackImpressionUIElement", "trackImpressionWidget", "trackLeaveArticle", "trackLeaveAudioPage", "trackLeaveError", "trackLeaveFrontpage", "trackLeaveLandingpage", "trackLeaveListing", "trackLeaveLockedArticle", "trackLeaveLockedAudio", "trackLeaveLockedAudioPage", "trackLeaveLockedVideo", "trackLeaveLockedVideoPage", "trackLeavePage", "trackLeaveVideoPage", "trackLeaveWeather", "trackViewArticle", "trackViewAudio", "trackViewAudioPage", "trackViewError", "trackViewFrontpage", "trackViewHealthPage", "trackViewLandingpage", "trackViewListing", "trackViewLockedArticle", "trackViewLockedAudio", "trackViewLockedAudioPage", "trackViewLockedVideo", "trackViewLockedVideoPage", "trackViewPage", "trackViewTitle", "trackViewVideo", "trackViewVideoPage", "trackViewWeather", "trackLegacyViewArticle", "trackLegacyViewLoginPoster", "trackLegacyViewSalesPoster", "trackLegacyViewListing", "trackLegacyViewFrontpage", "trackLegacyViewPage", "trackLegacyViewUIElement", "trackLegacyClickUIElement"];
21
21
  export declare function isPulseProxyMessage(message: unknown): message is Message;
22
22
  export type TrackInvocation = {
23
23
  method: 'track';
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "8.0.0-rc.2";
1
+ export declare const SDK_VERSION = "8.0.0-rc.3";
@@ -19,6 +19,7 @@ import type { AdvertisingVendor } from './types';
19
19
  * immediately.
20
20
  */
21
21
  export declare function syncWithCis(shortUserId?: string, nativeJwe?: string, userServiceLocation?: string, realm?: string, clientId?: string, trackerType?: string, trackerVersion?: string, options?: {
22
+ adChoicesEnabled?: boolean;
22
23
  forceSync: boolean;
23
24
  includeAdvertising: boolean;
24
25
  trackerId: string;
@@ -87,11 +87,12 @@ var cisRequestMap = new Map();
87
87
  */
88
88
  function cisFetch() {
89
89
  return __awaiter(this, arguments, void 0, function (_a) {
90
- var basePath, path;
91
- var _b = _a === void 0 ? {} : _a, cisLocation = _b.cisLocation, clientId = _b.clientId, includeAdvertising = _b.includeAdvertising, jwe = _b.resolvedJwe, trackerType = _b.trackerType, trackerVersion = _b.trackerVersion, userId = _b.userId, vendors = _b.vendors;
90
+ var basePath, path, features;
91
+ var _b = _a === void 0 ? {} : _a, adChoicesEnabled = _b.adChoicesEnabled, cisLocation = _b.cisLocation, clientId = _b.clientId, includeAdvertising = _b.includeAdvertising, jwe = _b.resolvedJwe, trackerType = _b.trackerType, trackerVersion = _b.trackerVersion, userId = _b.userId, vendors = _b.vendors;
92
92
  return __generator(this, function (_c) {
93
93
  basePath = (cisLocation === null || cisLocation === void 0 ? void 0 : cisLocation.endsWith('/')) ? cisLocation.slice(0, -1) : cisLocation;
94
94
  path = "".concat(basePath).concat(getActorPath(userId));
95
+ features = adChoicesEnabled === true ? ['COP'] : undefined;
95
96
  // Using 'toString' here to make unit test mock comparisons easier
96
97
  return [2 /*return*/, fetch(new URL(path).toString(), {
97
98
  method: 'POST',
@@ -99,6 +100,7 @@ function cisFetch() {
99
100
  headers: cisFetchHeaders,
100
101
  body: JSON.stringify({
101
102
  clientId: clientId,
103
+ features: features,
102
104
  includeAdvertising: includeAdvertising,
103
105
  jwe: jwe,
104
106
  trackerType: trackerType,
@@ -114,7 +116,7 @@ function cisFetch() {
114
116
  function cisFetchWithRedirect(_a) {
115
117
  return __awaiter(this, arguments, void 0, function (_b, redirectAttempts) {
116
118
  var response, responseData;
117
- var cisLocation = _b.cisLocation, clientId = _b.clientId, includeAdvertising = _b.includeAdvertising, resolvedJwe = _b.resolvedJwe, trackerType = _b.trackerType, trackerVersion = _b.trackerVersion, userId = _b.userId, vendors = _b.vendors;
119
+ var adChoicesEnabled = _b.adChoicesEnabled, cisLocation = _b.cisLocation, clientId = _b.clientId, includeAdvertising = _b.includeAdvertising, resolvedJwe = _b.resolvedJwe, trackerType = _b.trackerType, trackerVersion = _b.trackerVersion, userId = _b.userId, vendors = _b.vendors;
118
120
  if (redirectAttempts === void 0) { redirectAttempts = 0; }
119
121
  return __generator(this, function (_c) {
120
122
  switch (_c.label) {
@@ -123,6 +125,7 @@ function cisFetchWithRedirect(_a) {
123
125
  throw new Error('Too many CIS redirects');
124
126
  }
125
127
  return [4 /*yield*/, cisFetch({
128
+ adChoicesEnabled: adChoicesEnabled,
126
129
  cisLocation: cisLocation,
127
130
  clientId: clientId,
128
131
  includeAdvertising: includeAdvertising,
@@ -140,6 +143,7 @@ function cisFetchWithRedirect(_a) {
140
143
  if (responseData.redirectToHost) {
141
144
  preferredCISHost = responseData.redirectToHost;
142
145
  return [2 /*return*/, cisFetchWithRedirect({
146
+ adChoicesEnabled: adChoicesEnabled,
143
147
  resolvedJwe: resolvedJwe,
144
148
  userId: userId,
145
149
  cisLocation: "https://".concat(preferredCISHost),
@@ -192,6 +196,7 @@ function serialSyncWithCis(shortUserId_1) {
192
196
  userId: userId,
193
197
  cisLocation: cisLocation,
194
198
  clientId: clientId,
199
+ adChoicesEnabled: options === null || options === void 0 ? void 0 : options.adChoicesEnabled,
195
200
  trackerType: trackerType,
196
201
  trackerVersion: trackerVersion,
197
202
  includeAdvertising: options === null || options === void 0 ? void 0 : options.includeAdvertising,
@@ -203,6 +208,15 @@ function serialSyncWithCis(shortUserId_1) {
203
208
  ? new Date(cisResponseData.refreshAfter).getTime()
204
209
  : 0;
205
210
  storageData = __assign(__assign({ ppId: {} }, cisResponseData), { prevUserId: shortUserId, refreshAfterTimestamp: refreshAfterTimestamp, includeAdvertising: options === null || options === void 0 ? void 0 : options.includeAdvertising });
211
+ /**
212
+ * AdChoices restricts the issuing of PPID.
213
+ * When the user has NOT consented to advertising purpose, and the application runs with AdChoices rules, the sdk
214
+ * cannot delegate or persist the PPID in localStorage.
215
+ * `adChoicesEnabled` must be explicitly set to `true`. No room for truthy values here.
216
+ */
217
+ if ((options === null || options === void 0 ? void 0 : options.adChoicesEnabled) === true && (options === null || options === void 0 ? void 0 : options.includeAdvertising) !== true) {
218
+ storageData.ppId = {};
219
+ }
206
220
  (0, pulse_cookie_1.serializePulseCookie)(storageData);
207
221
  return [2 /*return*/, storageData];
208
222
  case 3:
@@ -1 +1 @@
1
- {"version":3,"file":"cis-browser.js","sourceRoot":"","sources":["../../src/cis-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cis-browser.js","sourceRoot":"","sources":["../../src/cis-browser.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,10 @@ export type CisCache = {
27
27
  includeAdvertising?: boolean;
28
28
  };
29
29
  export type PulseStorage = PulseCookie & PPID & CisCache;
30
+ export declare const pulseStorageKeys: {
31
+ PULSE_PPID_STORAGE_KEY: string;
32
+ PULSE_CIS_CACHE_STORAGE_KEY: string;
33
+ };
30
34
  declare const _default: {
31
35
  getCisCacheFromStorage: () => CisCache;
32
36
  setCisCacheToStorage: (cisPayload: CisCache) => boolean;
@@ -33,8 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.pulseStorageKeys = void 0;
36
37
  var storage = __importStar(require("./storage"));
37
- var pulseStorageKeys = {
38
+ exports.pulseStorageKeys = {
38
39
  PULSE_PPID_STORAGE_KEY: '_pulse.internal.identity.ppid',
39
40
  PULSE_CIS_CACHE_STORAGE_KEY: '_pulse.internal.identity.cis',
40
41
  };
@@ -42,7 +43,7 @@ var getPPIDsFromStorage = function () {
42
43
  var _a;
43
44
  try {
44
45
  var webStorage = storage.getStorage();
45
- return JSON.parse((_a = webStorage.getItem(pulseStorageKeys.PULSE_PPID_STORAGE_KEY)) !== null && _a !== void 0 ? _a : '');
46
+ return JSON.parse((_a = webStorage.getItem(exports.pulseStorageKeys.PULSE_PPID_STORAGE_KEY)) !== null && _a !== void 0 ? _a : '{}');
46
47
  }
47
48
  catch (_err) {
48
49
  return {};
@@ -51,7 +52,16 @@ var getPPIDsFromStorage = function () {
51
52
  var setPPIDsToStorage = function (ppid) {
52
53
  try {
53
54
  var webStorage = storage.getStorage();
54
- webStorage.setItem(pulseStorageKeys.PULSE_PPID_STORAGE_KEY, JSON.stringify(ppid));
55
+ /**
56
+ * we maintain the interface consistent with the ppId api, but there is no need to persist an empty object in
57
+ * localStorage. We normalise back when we read the value.
58
+ * @see getPPIDsFromStorage
59
+ */
60
+ if (Object.keys(ppid).length === 0) {
61
+ webStorage.removeItem(exports.pulseStorageKeys.PULSE_PPID_STORAGE_KEY);
62
+ return true;
63
+ }
64
+ webStorage.setItem(exports.pulseStorageKeys.PULSE_PPID_STORAGE_KEY, JSON.stringify(ppid));
55
65
  return true;
56
66
  }
57
67
  catch (_err) {
@@ -62,7 +72,7 @@ var getCisCacheFromStorage = function () {
62
72
  var _a;
63
73
  try {
64
74
  var webStorage = storage.getStorage();
65
- return JSON.parse((_a = webStorage.getItem(pulseStorageKeys.PULSE_CIS_CACHE_STORAGE_KEY)) !== null && _a !== void 0 ? _a : '');
75
+ return JSON.parse((_a = webStorage.getItem(exports.pulseStorageKeys.PULSE_CIS_CACHE_STORAGE_KEY)) !== null && _a !== void 0 ? _a : '{}');
66
76
  }
67
77
  catch (_err) {
68
78
  return {};
@@ -71,7 +81,7 @@ var getCisCacheFromStorage = function () {
71
81
  var setCisCacheToStorage = function (cisPayload) {
72
82
  try {
73
83
  var webStorage = storage.getStorage();
74
- webStorage.setItem(pulseStorageKeys.PULSE_CIS_CACHE_STORAGE_KEY, JSON.stringify(cisPayload));
84
+ webStorage.setItem(exports.pulseStorageKeys.PULSE_CIS_CACHE_STORAGE_KEY, JSON.stringify(cisPayload));
75
85
  return true;
76
86
  }
77
87
  catch (_err) {
@@ -1 +1 @@
1
- {"version":3,"file":"pulseStorage.js","sourceRoot":"","sources":["../../../src/storage/pulseStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAqC;AAkCrC,IAAM,gBAAgB,GAAG;IACvB,sBAAsB,EAAE,+BAA+B;IACvD,2BAA2B,EAAE,8BAA8B;CAC5D,CAAC;AAEF,IAAM,mBAAmB,GAAG;;IAC1B,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,mCAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAC,IAA4B;IACrD,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,sBAAsB,GAAG;;IAC7B,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,mCAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,oBAAoB,GAAG,UAAC,UAAoB;IAChD,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe;IACb,sBAAsB,wBAAA;IACtB,oBAAoB,sBAAA;IACpB,mBAAmB,qBAAA;IACnB,iBAAiB,mBAAA;CAClB,CAAC"}
1
+ {"version":3,"file":"pulseStorage.js","sourceRoot":"","sources":["../../../src/storage/pulseStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAqC;AAkCxB,QAAA,gBAAgB,GAAG;IAC9B,sBAAsB,EAAE,+BAA+B;IACvD,2BAA2B,EAAE,8BAA8B;CAC5D,CAAC;AAEF,IAAM,mBAAmB,GAAG;;IAC1B,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC,wBAAgB,CAAC,sBAAsB,CAAC,mCAAI,IAAI,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAC,IAA4B;IACrD,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC;;;;WAIG;QACH,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,UAAU,CAAC,wBAAgB,CAAC,sBAAsB,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,CAAC,OAAO,CAAC,wBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,sBAAsB,GAAG;;IAC7B,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC,wBAAgB,CAAC,2BAA2B,CAAC,mCAAI,IAAI,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,oBAAoB,GAAG,UAAC,UAAoB;IAChD,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,wBAAgB,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe;IACb,sBAAsB,wBAAA;IACtB,oBAAoB,sBAAA;IACpB,mBAAmB,qBAAA;IACnB,iBAAiB,mBAAA;CAClB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type StorageType } from '@schibsted/pulse-utils';
2
2
  declare const getStorage: (storageType?: StorageType) => {
3
3
  getItem: (key: string) => string | null | undefined;
4
+ removeItem: (key: string) => void;
4
5
  setItem: (key: string, value: string) => void;
5
6
  };
6
7
  export { getStorage };
@@ -8,12 +8,17 @@ var getStorage = function (storageType) {
8
8
  var getItem = function (key) {
9
9
  return pulse_utils_1.isBrowser && storage ? storage.getItem(key) : undefined;
10
10
  };
11
+ var removeItem = function (key) {
12
+ if (pulse_utils_1.isBrowser && storage)
13
+ storage.removeItem(key);
14
+ };
11
15
  var setItem = function (key, value) {
12
16
  if (pulse_utils_1.isBrowser && storage)
13
17
  storage.setItem(key, value);
14
18
  };
15
19
  return {
16
20
  getItem: getItem,
21
+ removeItem: removeItem,
17
22
  setItem: setItem,
18
23
  };
19
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/storage/storage.ts"],"names":[],"mappings":";;;AAAA,sDAA6E;AAE7E,IAAM,UAAU,GAAG,UAAC,WAAyC;IAAzC,4BAAA,EAAA,4BAAyC;IAC3D,IAAM,OAAO,GAAG,oBAAM,CAAC,WAAW,CAAC,CAAC;IAEpC,IAAM,OAAO,GAAG,UAAC,GAAW;QAC1B,OAAO,uBAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG,UAAC,GAAW,EAAE,KAAa;QACzC,IAAI,uBAAS,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,SAAA;QACP,OAAO,SAAA;KACR,CAAC;AACJ,CAAC,CAAC;AAEO,gCAAU"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/storage/storage.ts"],"names":[],"mappings":";;;AAAA,sDAA6E;AAE7E,IAAM,UAAU,GAAG,UAAC,WAAyC;IAAzC,4BAAA,EAAA,4BAAyC;IAC3D,IAAM,OAAO,GAAG,oBAAM,CAAC,WAAW,CAAC,CAAC;IAEpC,IAAM,OAAO,GAAG,UAAC,GAAW;QAC1B,OAAO,uBAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,GAAW;QAC7B,IAAI,uBAAS,IAAI,OAAO;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG,UAAC,GAAW,EAAE,KAAa;QACzC,IAAI,uBAAS,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,SAAA;QACP,UAAU,YAAA;QACV,OAAO,SAAA;KACR,CAAC;AACJ,CAAC,CAAC;AAEO,gCAAU"}
@@ -19,6 +19,7 @@ import type { AdvertisingVendor } from './types';
19
19
  * immediately.
20
20
  */
21
21
  export declare function syncWithCis(shortUserId?: string, nativeJwe?: string, userServiceLocation?: string, realm?: string, clientId?: string, trackerType?: string, trackerVersion?: string, options?: {
22
+ adChoicesEnabled?: boolean;
22
23
  forceSync: boolean;
23
24
  includeAdvertising: boolean;
24
25
  trackerId: string;
@@ -35,9 +35,10 @@ const cisRequestMap = new Map();
35
35
  *
36
36
  * @private
37
37
  */
38
- async function cisFetch({ cisLocation, clientId, includeAdvertising, resolvedJwe: jwe, trackerType, trackerVersion, userId, vendors, } = {}) {
38
+ async function cisFetch({ adChoicesEnabled, cisLocation, clientId, includeAdvertising, resolvedJwe: jwe, trackerType, trackerVersion, userId, vendors, } = {}) {
39
39
  const basePath = cisLocation?.endsWith('/') ? cisLocation.slice(0, -1) : cisLocation;
40
40
  const path = `${basePath}${getActorPath(userId)}`;
41
+ const features = adChoicesEnabled === true ? ['COP'] : undefined;
41
42
  // Using 'toString' here to make unit test mock comparisons easier
42
43
  return fetch(new URL(path).toString(), {
43
44
  method: 'POST',
@@ -45,6 +46,7 @@ async function cisFetch({ cisLocation, clientId, includeAdvertising, resolvedJwe
45
46
  headers: cisFetchHeaders,
46
47
  body: JSON.stringify({
47
48
  clientId,
49
+ features,
48
50
  includeAdvertising,
49
51
  jwe,
50
52
  trackerType,
@@ -55,11 +57,12 @@ async function cisFetch({ cisLocation, clientId, includeAdvertising, resolvedJwe
55
57
  });
56
58
  }
57
59
  /** Identify recursively until no `redirectToHost` field */
58
- async function cisFetchWithRedirect({ cisLocation, clientId, includeAdvertising, resolvedJwe, trackerType, trackerVersion, userId, vendors, }, redirectAttempts = 0) {
60
+ async function cisFetchWithRedirect({ adChoicesEnabled, cisLocation, clientId, includeAdvertising, resolvedJwe, trackerType, trackerVersion, userId, vendors, }, redirectAttempts = 0) {
59
61
  if (redirectAttempts > CIS_MAX_REDIRECT_ATTEMPTS) {
60
62
  throw new Error('Too many CIS redirects');
61
63
  }
62
64
  const response = await cisFetch({
65
+ adChoicesEnabled,
63
66
  cisLocation,
64
67
  clientId,
65
68
  includeAdvertising,
@@ -73,6 +76,7 @@ async function cisFetchWithRedirect({ cisLocation, clientId, includeAdvertising,
73
76
  if (responseData.redirectToHost) {
74
77
  preferredCISHost = responseData.redirectToHost;
75
78
  return cisFetchWithRedirect({
79
+ adChoicesEnabled,
76
80
  resolvedJwe,
77
81
  userId,
78
82
  cisLocation: `https://${preferredCISHost}`,
@@ -121,6 +125,7 @@ forceSync = false, cisLocation, nativeJwe, realm, clientId, trackerType, tracker
121
125
  userId,
122
126
  cisLocation,
123
127
  clientId,
128
+ adChoicesEnabled: options?.adChoicesEnabled,
124
129
  trackerType,
125
130
  trackerVersion,
126
131
  includeAdvertising: options?.includeAdvertising,
@@ -136,6 +141,15 @@ forceSync = false, cisLocation, nativeJwe, realm, clientId, trackerType, tracker
136
141
  refreshAfterTimestamp,
137
142
  includeAdvertising: options?.includeAdvertising,
138
143
  };
144
+ /**
145
+ * AdChoices restricts the issuing of PPID.
146
+ * When the user has NOT consented to advertising purpose, and the application runs with AdChoices rules, the sdk
147
+ * cannot delegate or persist the PPID in localStorage.
148
+ * `adChoicesEnabled` must be explicitly set to `true`. No room for truthy values here.
149
+ */
150
+ if (options?.adChoicesEnabled === true && options?.includeAdvertising !== true) {
151
+ storageData.ppId = {};
152
+ }
139
153
  serializePulseCookie(storageData);
140
154
  return storageData;
141
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cis-browser.js","sourceRoot":"","sources":["../../src/cis-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cis-browser.js","sourceRoot":"","sources":["../../src/cis-browser.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,10 @@ export type CisCache = {
27
27
  includeAdvertising?: boolean;
28
28
  };
29
29
  export type PulseStorage = PulseCookie & PPID & CisCache;
30
+ export declare const pulseStorageKeys: {
31
+ PULSE_PPID_STORAGE_KEY: string;
32
+ PULSE_CIS_CACHE_STORAGE_KEY: string;
33
+ };
30
34
  declare const _default: {
31
35
  getCisCacheFromStorage: () => CisCache;
32
36
  setCisCacheToStorage: (cisPayload: CisCache) => boolean;
@@ -1,12 +1,12 @@
1
1
  import * as storage from './storage';
2
- const pulseStorageKeys = {
2
+ export const pulseStorageKeys = {
3
3
  PULSE_PPID_STORAGE_KEY: '_pulse.internal.identity.ppid',
4
4
  PULSE_CIS_CACHE_STORAGE_KEY: '_pulse.internal.identity.cis',
5
5
  };
6
6
  const getPPIDsFromStorage = () => {
7
7
  try {
8
8
  const webStorage = storage.getStorage();
9
- return JSON.parse(webStorage.getItem(pulseStorageKeys.PULSE_PPID_STORAGE_KEY) ?? '');
9
+ return JSON.parse(webStorage.getItem(pulseStorageKeys.PULSE_PPID_STORAGE_KEY) ?? '{}');
10
10
  }
11
11
  catch (_err) {
12
12
  return {};
@@ -15,6 +15,15 @@ const getPPIDsFromStorage = () => {
15
15
  const setPPIDsToStorage = (ppid) => {
16
16
  try {
17
17
  const webStorage = storage.getStorage();
18
+ /**
19
+ * we maintain the interface consistent with the ppId api, but there is no need to persist an empty object in
20
+ * localStorage. We normalise back when we read the value.
21
+ * @see getPPIDsFromStorage
22
+ */
23
+ if (Object.keys(ppid).length === 0) {
24
+ webStorage.removeItem(pulseStorageKeys.PULSE_PPID_STORAGE_KEY);
25
+ return true;
26
+ }
18
27
  webStorage.setItem(pulseStorageKeys.PULSE_PPID_STORAGE_KEY, JSON.stringify(ppid));
19
28
  return true;
20
29
  }
@@ -25,7 +34,7 @@ const setPPIDsToStorage = (ppid) => {
25
34
  const getCisCacheFromStorage = () => {
26
35
  try {
27
36
  const webStorage = storage.getStorage();
28
- return JSON.parse(webStorage.getItem(pulseStorageKeys.PULSE_CIS_CACHE_STORAGE_KEY) ?? '');
37
+ return JSON.parse(webStorage.getItem(pulseStorageKeys.PULSE_CIS_CACHE_STORAGE_KEY) ?? '{}');
29
38
  }
30
39
  catch (_err) {
31
40
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"pulseStorage.js","sourceRoot":"","sources":["../../../src/storage/pulseStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAkCrC,MAAM,gBAAgB,GAAG;IACvB,sBAAsB,EAAE,+BAA+B;IACvD,2BAA2B,EAAE,8BAA8B;CAC5D,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAA2B,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAA4B,EAAW,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAa,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAoB,EAAW,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,eAAe;IACb,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;CAClB,CAAC"}
1
+ {"version":3,"file":"pulseStorage.js","sourceRoot":"","sources":["../../../src/storage/pulseStorage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAkCrC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,sBAAsB,EAAE,+BAA+B;IACvD,2BAA2B,EAAE,8BAA8B;CAC5D,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAA2B,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAA4B,EAAW,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC;;;;WAIG;QACH,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAa,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAoB,EAAW,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,eAAe;IACb,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;CAClB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type StorageType } from '@schibsted/pulse-utils';
2
2
  declare const getStorage: (storageType?: StorageType) => {
3
3
  getItem: (key: string) => string | null | undefined;
4
+ removeItem: (key: string) => void;
4
5
  setItem: (key: string, value: string) => void;
5
6
  };
6
7
  export { getStorage };