@contentpass/react-native-contentpass 0.2.5 → 0.3.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.
Files changed (93) hide show
  1. package/README.md +19 -3
  2. package/docs/CODE_OF_CONDUCT.md +133 -0
  3. package/docs/CONTRIBUTING.md +137 -0
  4. package/docs/SOURCEPOINT_SDK_INTEGRATION.md +112 -0
  5. package/docs/assets/sourcepoint-button-config.png +0 -0
  6. package/docs/assets/sourcepoint-property-example.png +0 -0
  7. package/docs/sourcepoint-patches/@sourcepoint-react-native-cmp-npm-0.3.0-2434c31dc9.patch +78 -0
  8. package/docs/sourcepoint-patches/@sourcepoint-react-native-cmp-patch-34fca36663.patch +13 -0
  9. package/lib/commonjs/Contentpass.js +97 -6
  10. package/lib/commonjs/Contentpass.js.map +1 -1
  11. package/lib/commonjs/OidcAuthStateStorage.js +8 -1
  12. package/lib/commonjs/OidcAuthStateStorage.js.map +1 -1
  13. package/lib/commonjs/{utils → contentpassTokenUtils}/fetchContentpassToken.js +3 -0
  14. package/lib/commonjs/contentpassTokenUtils/fetchContentpassToken.js.map +1 -0
  15. package/lib/commonjs/contentpassTokenUtils/parseContentpassToken.js.map +1 -0
  16. package/lib/commonjs/contentpassTokenUtils/validateSubscription.js.map +1 -0
  17. package/lib/commonjs/countImpressionUtils/sendPageViewEvent.js +24 -0
  18. package/lib/commonjs/countImpressionUtils/sendPageViewEvent.js.map +1 -0
  19. package/lib/commonjs/countImpressionUtils/sendStats.js +20 -0
  20. package/lib/commonjs/countImpressionUtils/sendStats.js.map +1 -0
  21. package/lib/commonjs/logger.js +27 -0
  22. package/lib/commonjs/logger.js.map +1 -0
  23. package/lib/commonjs/sentryIntegration.js +5 -0
  24. package/lib/commonjs/sentryIntegration.js.map +1 -1
  25. package/lib/module/Contentpass.js +95 -6
  26. package/lib/module/Contentpass.js.map +1 -1
  27. package/lib/module/OidcAuthStateStorage.js +8 -1
  28. package/lib/module/OidcAuthStateStorage.js.map +1 -1
  29. package/lib/module/{utils → contentpassTokenUtils}/fetchContentpassToken.js +3 -0
  30. package/lib/module/contentpassTokenUtils/fetchContentpassToken.js.map +1 -0
  31. package/lib/module/contentpassTokenUtils/parseContentpassToken.js.map +1 -0
  32. package/lib/module/contentpassTokenUtils/validateSubscription.js.map +1 -0
  33. package/lib/module/countImpressionUtils/sendPageViewEvent.js +20 -0
  34. package/lib/module/countImpressionUtils/sendPageViewEvent.js.map +1 -0
  35. package/lib/module/countImpressionUtils/sendStats.js +16 -0
  36. package/lib/module/countImpressionUtils/sendStats.js.map +1 -0
  37. package/lib/module/logger.js +22 -0
  38. package/lib/module/logger.js.map +1 -0
  39. package/lib/module/sentryIntegration.js +4 -0
  40. package/lib/module/sentryIntegration.js.map +1 -1
  41. package/lib/typescript/commonjs/src/Contentpass.d.ts +15 -1
  42. package/lib/typescript/commonjs/src/Contentpass.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/OidcAuthStateStorage.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
  45. package/lib/typescript/commonjs/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
  46. package/lib/typescript/commonjs/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
  47. package/lib/typescript/commonjs/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
  48. package/lib/typescript/commonjs/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
  49. package/lib/typescript/commonjs/src/countImpressionUtils/sendStats.d.ts +10 -0
  50. package/lib/typescript/commonjs/src/countImpressionUtils/sendStats.d.ts.map +1 -0
  51. package/lib/typescript/commonjs/src/logger.d.ts +8 -0
  52. package/lib/typescript/commonjs/src/logger.d.ts.map +1 -0
  53. package/lib/typescript/commonjs/src/sentryIntegration.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/src/types/ContentpassConfig.d.ts +5 -0
  55. package/lib/typescript/commonjs/src/types/ContentpassConfig.d.ts.map +1 -1
  56. package/lib/typescript/module/src/Contentpass.d.ts +15 -1
  57. package/lib/typescript/module/src/Contentpass.d.ts.map +1 -1
  58. package/lib/typescript/module/src/OidcAuthStateStorage.d.ts.map +1 -1
  59. package/lib/typescript/module/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
  60. package/lib/typescript/module/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
  61. package/lib/typescript/module/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
  62. package/lib/typescript/module/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
  63. package/lib/typescript/module/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
  64. package/lib/typescript/module/src/countImpressionUtils/sendStats.d.ts +10 -0
  65. package/lib/typescript/module/src/countImpressionUtils/sendStats.d.ts.map +1 -0
  66. package/lib/typescript/module/src/logger.d.ts +8 -0
  67. package/lib/typescript/module/src/logger.d.ts.map +1 -0
  68. package/lib/typescript/module/src/sentryIntegration.d.ts.map +1 -1
  69. package/lib/typescript/module/src/types/ContentpassConfig.d.ts +5 -0
  70. package/lib/typescript/module/src/types/ContentpassConfig.d.ts.map +1 -1
  71. package/package.json +5 -2
  72. package/lib/commonjs/utils/fetchContentpassToken.js.map +0 -1
  73. package/lib/commonjs/utils/parseContentpassToken.js.map +0 -1
  74. package/lib/commonjs/utils/validateSubscription.js.map +0 -1
  75. package/lib/module/utils/fetchContentpassToken.js.map +0 -1
  76. package/lib/module/utils/parseContentpassToken.js.map +0 -1
  77. package/lib/module/utils/validateSubscription.js.map +0 -1
  78. package/lib/typescript/commonjs/src/utils/fetchContentpassToken.d.ts.map +0 -1
  79. package/lib/typescript/commonjs/src/utils/parseContentpassToken.d.ts.map +0 -1
  80. package/lib/typescript/commonjs/src/utils/validateSubscription.d.ts.map +0 -1
  81. package/lib/typescript/module/src/utils/fetchContentpassToken.d.ts.map +0 -1
  82. package/lib/typescript/module/src/utils/parseContentpassToken.d.ts.map +0 -1
  83. package/lib/typescript/module/src/utils/validateSubscription.d.ts.map +0 -1
  84. /package/lib/commonjs/{utils → contentpassTokenUtils}/parseContentpassToken.js +0 -0
  85. /package/lib/commonjs/{utils → contentpassTokenUtils}/validateSubscription.js +0 -0
  86. /package/lib/module/{utils → contentpassTokenUtils}/parseContentpassToken.js +0 -0
  87. /package/lib/module/{utils → contentpassTokenUtils}/validateSubscription.js +0 -0
  88. /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/fetchContentpassToken.d.ts +0 -0
  89. /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/parseContentpassToken.d.ts +0 -0
  90. /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/validateSubscription.d.ts +0 -0
  91. /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/fetchContentpassToken.d.ts +0 -0
  92. /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/parseContentpassToken.d.ts +0 -0
  93. /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/validateSubscription.d.ts +0 -0
@@ -1,13 +1,18 @@
1
1
  "use strict";
2
2
 
3
+ import uuid from 'react-native-uuid';
3
4
  import OidcAuthStateStorage from "./OidcAuthStateStorage.js";
4
5
  import { ContentpassStateType } from "./types/ContentpassState.js";
5
6
  import { authorize, refresh } from 'react-native-app-auth';
6
7
  import { REFRESH_TOKEN_RETRIES, SCOPES } from "./consts/oidcConsts.js";
7
8
  import { RefreshTokenStrategy } from "./types/RefreshTokenStrategy.js";
8
- import fetchContentpassToken from "./utils/fetchContentpassToken.js";
9
- import validateSubscription from "./utils/validateSubscription.js";
9
+ import fetchContentpassToken from "./contentpassTokenUtils/fetchContentpassToken.js";
10
+ import validateSubscription from "./contentpassTokenUtils/validateSubscription.js";
10
11
  import { reportError, setSentryExtraAttribute } from "./sentryIntegration.js";
12
+ import sendStats from "./countImpressionUtils/sendStats.js";
13
+ import sendPageViewEvent from "./countImpressionUtils/sendPageViewEvent.js";
14
+ import logger, { enableLogger } from "./logger.js";
15
+ const DEFAULT_SAMPLING_RATE = 0.05;
11
16
  export default class Contentpass {
12
17
  contentpassState = {
13
18
  state: ContentpassStateType.INITIALISING
@@ -16,12 +21,22 @@ export default class Contentpass {
16
21
  oidcAuthState = null;
17
22
  refreshTimer = null;
18
23
  constructor(config) {
24
+ if (config.logLevel) {
25
+ enableLogger(config.logLevel);
26
+ }
27
+ logger.debug('Contentpass initialised with config', config);
28
+ if (config.samplingRate && (config.samplingRate < 0 || config.samplingRate > 1)) {
29
+ logger.error('Sampling rate must be between 0 and 1');
30
+ throw new Error('Sampling rate must be between 0 and 1');
31
+ }
32
+ this.samplingRate = config.samplingRate || DEFAULT_SAMPLING_RATE;
19
33
  this.authStateStorage = new OidcAuthStateStorage(config.propertyId);
20
34
  this.config = config;
21
35
  setSentryExtraAttribute('propertyId', config.propertyId);
22
36
  this.initialiseAuthState();
23
37
  }
24
38
  authenticate = async () => {
39
+ logger.info('Starting authentication flow');
25
40
  let result;
26
41
  try {
27
42
  result = await authorize({
@@ -32,7 +47,8 @@ export default class Contentpass {
32
47
  additionalParameters: {
33
48
  cp_route: 'login',
34
49
  prompt: 'consent',
35
- cp_property: this.config.propertyId
50
+ cp_property: this.config.propertyId,
51
+ cp_plan: this.config.planId
36
52
  }
37
53
  });
38
54
  } catch (err) {
@@ -45,9 +61,11 @@ export default class Contentpass {
45
61
  });
46
62
  throw err;
47
63
  }
64
+ logger.info('Authentication flow finished, checking subscription...');
48
65
  await this.onNewAuthState(result);
49
66
  };
50
67
  registerObserver(observer) {
68
+ logger.info('Registering observer');
51
69
  if (this.contentpassStateObservers.includes(observer)) {
52
70
  return;
53
71
  }
@@ -55,9 +73,11 @@ export default class Contentpass {
55
73
  this.contentpassStateObservers.push(observer);
56
74
  }
57
75
  unregisterObserver(observer) {
76
+ logger.info('Unregistering observer');
58
77
  this.contentpassStateObservers = this.contentpassStateObservers.filter(o => o !== observer);
59
78
  }
60
79
  logout = async () => {
80
+ logger.info('Logging out and clearing auth state');
61
81
  await this.authStateStorage.clearOidcAuthState();
62
82
  this.changeContentpassState({
63
83
  state: ContentpassStateType.UNAUTHENTICATED,
@@ -65,42 +85,97 @@ export default class Contentpass {
65
85
  });
66
86
  };
67
87
  recoverFromError = async () => {
88
+ logger.info('Recovering from error');
68
89
  this.changeContentpassState({
69
90
  state: ContentpassStateType.INITIALISING
70
91
  });
71
92
  await this.initialiseAuthState();
72
93
  };
94
+ countImpression = async () => {
95
+ await Promise.all([this.countPaidImpressionWhenUserHasValidSub(), this.countSampledImpression()]);
96
+ };
97
+ countPaidImpressionWhenUserHasValidSub = async () => {
98
+ if (!this.hasValidSubscriptionAndAccessToken()) {
99
+ return;
100
+ }
101
+ logger.info('Counting paid impression');
102
+ const impressionId = uuid.v4();
103
+ try {
104
+ await sendPageViewEvent(this.config.apiUrl, {
105
+ propertyId: this.config.propertyId,
106
+ impressionId,
107
+ accessToken: this.oidcAuthState.accessToken
108
+ });
109
+ } catch (err) {
110
+ reportError(err, {
111
+ msg: 'Failed to count paid impression'
112
+ });
113
+ }
114
+ };
115
+ countSampledImpression = async () => {
116
+ const generatedSample = Math.random();
117
+ const publicId = this.config.propertyId.slice(0, 8);
118
+ const instanceId = uuid.v4();
119
+ if (generatedSample >= this.samplingRate) {
120
+ return;
121
+ }
122
+ logger.info('Counting sampled impression');
123
+ try {
124
+ await sendStats(this.config.apiUrl, {
125
+ ea: 'load',
126
+ ec: 'tcf-sampled',
127
+ cpabid: instanceId,
128
+ cppid: publicId,
129
+ cpsr: this.samplingRate
130
+ });
131
+ } catch (err) {
132
+ reportError(err, {
133
+ msg: 'Failed to count sampled impression'
134
+ });
135
+ }
136
+ };
73
137
  initialiseAuthState = async () => {
74
138
  const authState = await this.authStateStorage.getOidcAuthState();
75
139
  if (authState) {
140
+ logger.debug('Found auth state in storage, initialising with it');
76
141
  await this.onNewAuthState(authState);
77
142
  return;
78
143
  }
144
+ logger.debug('No auth state found in storage, initialising unauthenticated');
79
145
  this.changeContentpassState({
80
146
  state: ContentpassStateType.UNAUTHENTICATED,
81
147
  hasValidSubscription: false
82
148
  });
83
149
  };
84
150
  onNewAuthState = async authState => {
151
+ logger.debug('New auth state received');
85
152
  this.oidcAuthState = authState;
86
153
  await this.authStateStorage.storeOidcAuthState(authState);
87
154
  const strategy = this.setupRefreshTimer();
88
155
  // if instant refresh, no need to check subscription as it will happen in the refresh
89
156
  if (strategy === RefreshTokenStrategy.INSTANTLY) {
157
+ logger.debug('Instant refresh, skipping subscription check');
90
158
  return;
91
159
  }
92
160
  try {
161
+ logger.info('Checking subscription');
93
162
  const contentpassToken = await fetchContentpassToken({
94
163
  issuer: this.config.issuer,
95
164
  propertyId: this.config.propertyId,
96
165
  idToken: this.oidcAuthState.idToken
97
166
  });
98
167
  const hasValidSubscription = validateSubscription(contentpassToken);
168
+ logger.info({
169
+ hasValidSubscription
170
+ }, 'Subscription check successful');
99
171
  this.changeContentpassState({
100
172
  state: ContentpassStateType.AUTHENTICATED,
101
173
  hasValidSubscription
102
174
  });
103
175
  } catch (err) {
176
+ reportError(err, {
177
+ msg: 'Failed to fetch contentpass token and validate subscription'
178
+ });
104
179
  this.changeContentpassState({
105
180
  state: ContentpassStateType.ERROR,
106
181
  error: err
@@ -110,18 +185,23 @@ export default class Contentpass {
110
185
  setupRefreshTimer = () => {
111
186
  const accessTokenExpirationDate = this.oidcAuthState?.accessTokenExpirationDate;
112
187
  if (!accessTokenExpirationDate) {
188
+ logger.warn('No access token expiration date provided');
113
189
  return RefreshTokenStrategy.NO_REFRESH;
114
190
  }
115
191
  const now = new Date();
116
192
  const expirationDate = new Date(accessTokenExpirationDate);
117
193
  const timeDiff = expirationDate.getTime() - now.getTime();
118
194
  if (timeDiff <= 0) {
195
+ logger.debug('Access token expired, refreshing instantly');
119
196
  this.refreshToken(0);
120
197
  return RefreshTokenStrategy.INSTANTLY;
121
198
  }
122
199
  if (this.refreshTimer) {
123
200
  clearTimeout(this.refreshTimer);
124
201
  }
202
+ logger.debug({
203
+ timeDiff
204
+ }, 'Setting up refresh timer');
125
205
  this.refreshTimer = setTimeout(async () => {
126
206
  await this.refreshToken(0);
127
207
  }, timeDiff);
@@ -133,6 +213,7 @@ export default class Contentpass {
133
213
  return;
134
214
  }
135
215
  try {
216
+ logger.info('Refreshing token');
136
217
  const refreshResult = await refresh({
137
218
  clientId: this.config.propertyId,
138
219
  redirectUrl: this.config.redirectUrl,
@@ -142,26 +223,34 @@ export default class Contentpass {
142
223
  refreshToken: this.oidcAuthState.refreshToken
143
224
  });
144
225
  await this.onNewAuthState(refreshResult);
226
+ logger.info('Token refreshed successfully');
145
227
  } catch (err) {
146
228
  await this.onRefreshTokenError(counter, err);
147
229
  }
148
230
  };
149
231
  onRefreshTokenError = async (counter, err) => {
150
- reportError(err, {
151
- msg: `Failed to refresh token after ${counter} retries`
152
- });
153
232
  // FIXME: add handling for specific error to not retry in every case
154
233
  if (counter < REFRESH_TOKEN_RETRIES) {
234
+ logger.warn({
235
+ err,
236
+ counter
237
+ }, 'Failed to refresh token, retrying');
155
238
  const delay = counter * 1000 * 10;
156
239
  await new Promise(resolve => setTimeout(resolve, delay));
157
240
  await this.refreshToken(counter + 1);
158
241
  return;
159
242
  }
243
+ reportError(err, {
244
+ msg: `Failed to refresh token after ${counter} retries`
245
+ });
160
246
  await this.logout();
161
247
  };
162
248
  changeContentpassState = state => {
163
249
  this.contentpassState = state;
164
250
  this.contentpassStateObservers.forEach(observer => observer(state));
165
251
  };
252
+ hasValidSubscriptionAndAccessToken = () => {
253
+ return this.contentpassState.state === ContentpassStateType.AUTHENTICATED && this.contentpassState.hasValidSubscription && this.oidcAuthState?.accessToken;
254
+ };
166
255
  }
167
256
  //# sourceMappingURL=Contentpass.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OidcAuthStateStorage","ContentpassStateType","authorize","refresh","REFRESH_TOKEN_RETRIES","SCOPES","RefreshTokenStrategy","fetchContentpassToken","validateSubscription","reportError","setSentryExtraAttribute","Contentpass","contentpassState","state","INITIALISING","contentpassStateObservers","oidcAuthState","refreshTimer","constructor","config","authStateStorage","propertyId","initialiseAuthState","authenticate","result","clientId","redirectUrl","issuer","scopes","additionalParameters","cp_route","prompt","cp_property","err","msg","changeContentpassState","ERROR","error","onNewAuthState","registerObserver","observer","includes","push","unregisterObserver","filter","o","logout","clearOidcAuthState","UNAUTHENTICATED","hasValidSubscription","recoverFromError","authState","getOidcAuthState","storeOidcAuthState","strategy","setupRefreshTimer","INSTANTLY","contentpassToken","idToken","AUTHENTICATED","accessTokenExpirationDate","NO_REFRESH","now","Date","expirationDate","timeDiff","getTime","refreshToken","clearTimeout","setTimeout","TIMER_SET","counter","Error","refreshResult","onRefreshTokenError","delay","Promise","resolve","forEach"],"sourceRoot":"../../src","sources":["Contentpass.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["uuid","OidcAuthStateStorage","ContentpassStateType","authorize","refresh","REFRESH_TOKEN_RETRIES","SCOPES","RefreshTokenStrategy","fetchContentpassToken","validateSubscription","reportError","setSentryExtraAttribute","sendStats","sendPageViewEvent","logger","enableLogger","DEFAULT_SAMPLING_RATE","Contentpass","contentpassState","state","INITIALISING","contentpassStateObservers","oidcAuthState","refreshTimer","constructor","config","logLevel","debug","samplingRate","error","Error","authStateStorage","propertyId","initialiseAuthState","authenticate","info","result","clientId","redirectUrl","issuer","scopes","additionalParameters","cp_route","prompt","cp_property","cp_plan","planId","err","msg","changeContentpassState","ERROR","onNewAuthState","registerObserver","observer","includes","push","unregisterObserver","filter","o","logout","clearOidcAuthState","UNAUTHENTICATED","hasValidSubscription","recoverFromError","countImpression","Promise","all","countPaidImpressionWhenUserHasValidSub","countSampledImpression","hasValidSubscriptionAndAccessToken","impressionId","v4","apiUrl","accessToken","generatedSample","Math","random","publicId","slice","instanceId","ea","ec","cpabid","cppid","cpsr","authState","getOidcAuthState","storeOidcAuthState","strategy","setupRefreshTimer","INSTANTLY","contentpassToken","idToken","AUTHENTICATED","accessTokenExpirationDate","warn","NO_REFRESH","now","Date","expirationDate","timeDiff","getTime","refreshToken","clearTimeout","setTimeout","TIMER_SET","counter","refreshResult","onRefreshTokenError","delay","resolve","forEach"],"sourceRoot":"../../src","sources":["Contentpass.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import EncryptedStorage from 'react-native-encrypted-storage';
4
+ import { reportError } from "./sentryIntegration.js";
4
5
  const AUTH_STATE_KEY = 'OIDCAuthState';
5
6
  export default class OidcAuthStateStorage {
6
7
  constructor(clientId) {
@@ -14,7 +15,13 @@ export default class OidcAuthStateStorage {
14
15
  return oidcAuthStateString ? JSON.parse(oidcAuthStateString) : undefined;
15
16
  }
16
17
  async clearOidcAuthState() {
17
- await EncryptedStorage.removeItem(this.key);
18
+ try {
19
+ await EncryptedStorage.removeItem(this.key);
20
+ } catch (err) {
21
+ reportError(err, {
22
+ msg: 'Failed to clear OIDC auth state. Most probably we tried to remove item which does not exist'
23
+ });
24
+ }
18
25
  }
19
26
  }
20
27
  //# sourceMappingURL=OidcAuthStateStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EncryptedStorage","AUTH_STATE_KEY","OidcAuthStateStorage","constructor","clientId","key","storeOidcAuthState","authState","setItem","JSON","stringify","getOidcAuthState","oidcAuthStateString","getItem","parse","undefined","clearOidcAuthState","removeItem"],"sourceRoot":"../../src","sources":["OidcAuthStateStorage.ts"],"mappings":";;AAAA,OAAOA,gBAAgB,MAAM,gCAAgC;AAE7D,MAAMC,cAAc,GAAG,eAAe;AAUtC,eAAe,MAAMC,oBAAoB,CAAC;EAGxCC,WAAWA,CAACC,QAAgB,EAAE;IAC5B,IAAI,CAACC,GAAG,GAAG,kBAAkBD,QAAQ,IAAIH,cAAc,EAAE;EAC3D;EAEA,MAAaK,kBAAkBA,CAACC,SAAwB,EAAE;IACxD,MAAMP,gBAAgB,CAACQ,OAAO,CAAC,IAAI,CAACH,GAAG,EAAEI,IAAI,CAACC,SAAS,CAACH,SAAS,CAAC,CAAC;EACrE;EAEA,MAAaI,gBAAgBA,CAAA,EAAuC;IAClE,MAAMC,mBAAmB,GAAG,MAAMZ,gBAAgB,CAACa,OAAO,CAAC,IAAI,CAACR,GAAG,CAAC;IAEpE,OAAOO,mBAAmB,GAAGH,IAAI,CAACK,KAAK,CAACF,mBAAmB,CAAC,GAAGG,SAAS;EAC1E;EAEA,MAAaC,kBAAkBA,CAAA,EAAG;IAChC,MAAMhB,gBAAgB,CAACiB,UAAU,CAAC,IAAI,CAACZ,GAAG,CAAC;EAC7C;AACF","ignoreList":[]}
1
+ {"version":3,"names":["EncryptedStorage","reportError","AUTH_STATE_KEY","OidcAuthStateStorage","constructor","clientId","key","storeOidcAuthState","authState","setItem","JSON","stringify","getOidcAuthState","oidcAuthStateString","getItem","parse","undefined","clearOidcAuthState","removeItem","err","msg"],"sourceRoot":"../../src","sources":["OidcAuthStateStorage.ts"],"mappings":";;AAAA,OAAOA,gBAAgB,MAAM,gCAAgC;AAC7D,SAASC,WAAW,QAAQ,wBAAqB;AAEjD,MAAMC,cAAc,GAAG,eAAe;AAUtC,eAAe,MAAMC,oBAAoB,CAAC;EAGxCC,WAAWA,CAACC,QAAgB,EAAE;IAC5B,IAAI,CAACC,GAAG,GAAG,kBAAkBD,QAAQ,IAAIH,cAAc,EAAE;EAC3D;EAEA,MAAaK,kBAAkBA,CAACC,SAAwB,EAAE;IACxD,MAAMR,gBAAgB,CAACS,OAAO,CAAC,IAAI,CAACH,GAAG,EAAEI,IAAI,CAACC,SAAS,CAACH,SAAS,CAAC,CAAC;EACrE;EAEA,MAAaI,gBAAgBA,CAAA,EAAuC;IAClE,MAAMC,mBAAmB,GAAG,MAAMb,gBAAgB,CAACc,OAAO,CAAC,IAAI,CAACR,GAAG,CAAC;IAEpE,OAAOO,mBAAmB,GAAGH,IAAI,CAACK,KAAK,CAACF,mBAAmB,CAAC,GAAGG,SAAS;EAC1E;EAEA,MAAaC,kBAAkBA,CAAA,EAAG;IAChC,IAAI;MACF,MAAMjB,gBAAgB,CAACkB,UAAU,CAAC,IAAI,CAACZ,GAAG,CAAC;IAC7C,CAAC,CAAC,OAAOa,GAAQ,EAAE;MACjBlB,WAAW,CAACkB,GAAG,EAAE;QACfC,GAAG,EAAE;MACP,CAAC,CAAC;IACJ;EACF;AACF","ignoreList":[]}
@@ -17,6 +17,9 @@ export default async function fetchContentpassToken({
17
17
  client_id: propertyId
18
18
  }).toString()
19
19
  });
20
+ if (!tokenEndpointResponse.ok) {
21
+ throw new Error(`Failed to fetch Contentpass token, status: ${tokenEndpointResponse.statusText}`);
22
+ }
20
23
  const {
21
24
  contentpass_token
22
25
  } = await tokenEndpointResponse.json();
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TOKEN_ENDPOINT","fetchContentpassToken","idToken","propertyId","issuer","tokenEndpointResponse","fetch","method","headers","body","URLSearchParams","grant_type","subject_token","client_id","toString","ok","Error","statusText","contentpass_token","json"],"sourceRoot":"../../../src","sources":["contentpassTokenUtils/fetchContentpassToken.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,yBAAsB;AAErD,eAAe,eAAeC,qBAAqBA,CAAC;EAClDC,OAAO;EACPC,UAAU;EACVC;AAKF,CAAC,EAAE;EACD,MAAMC,qBAAqB,GAAG,MAAMC,KAAK,CAAC,GAAGF,MAAM,GAAGJ,cAAc,EAAE,EAAE;IACtEO,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAE,IAAIC,eAAe,CAAC;MACxBC,UAAU,EAAE,mBAAmB;MAC/BC,aAAa,EAAEV,OAAO;MACtBW,SAAS,EAAEV;IACb,CAAC,CAAC,CAACW,QAAQ,CAAC;EACd,CAAC,CAAC;EAEF,IAAI,CAACT,qBAAqB,CAACU,EAAE,EAAE;IAC7B,MAAM,IAAIC,KAAK,CACb,8CAA8CX,qBAAqB,CAACY,UAAU,EAChF,CAAC;EACH;EAEA,MAAM;IAAEC;EAAkB,CAAC,GAAG,MAAMb,qBAAqB,CAACc,IAAI,CAAC,CAAC;EAEhE,OAAOD,iBAAiB;AAC1B","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseContentpassToken","contentpassToken","tokenParts","split","length","Error","header","JSON","parse","atob","body"],"sourceRoot":"../../../src","sources":["contentpassTokenUtils/parseContentpassToken.ts"],"mappings":";;AAeA,eAAe,SAASA,qBAAqBA,CAC3CC,gBAAwB,EACX;EACb,MAAMC,UAAU,GAAGD,gBAAgB,CAACE,KAAK,CAAC,GAAG,CAAC;EAC9C,IAAID,UAAU,CAACE,MAAM,GAAG,CAAC,EAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;EAEA,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACP,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;EAC/C,MAAMQ,IAAI,GAAGH,IAAI,CAACC,KAAK,CAACC,IAAI,CAACP,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;EAE7C,OAAO;IACLI,MAAM;IACNI;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseContentpassToken","reportError","validateSubscription","contentpassToken","body","auth","plans","length","err","msg"],"sourceRoot":"../../../src","sources":["contentpassTokenUtils/validateSubscription.ts"],"mappings":";;AAAA,OAAOA,qBAAqB,MAAM,4BAAyB;AAC3D,SAASC,WAAW,QAAQ,yBAAsB;AAElD,eAAe,SAASC,oBAAoBA,CAACC,gBAAwB,EAAE;EACrE,IAAI;IACF,MAAM;MAAEC;IAAK,CAAC,GAAGJ,qBAAqB,CAACG,gBAAgB,CAAC;IACxD,OAAO,CAAC,CAACC,IAAI,CAACC,IAAI,IAAI,CAAC,CAACD,IAAI,CAACE,KAAK,CAACC,MAAM;EAC3C,CAAC,CAAC,OAAOC,GAAQ,EAAE;IACjBP,WAAW,CAACO,GAAG,EAAE;MAAEC,GAAG,EAAE;IAAkC,CAAC,CAAC;IAC5D,OAAO,KAAK;EACd;AACF","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ export default async function sendPageViewEvent(apiUrl, payload) {
4
+ const {
5
+ propertyId,
6
+ impressionId,
7
+ accessToken
8
+ } = payload;
9
+ const path = `pass/hit?pid=${propertyId}&iid=${impressionId}&t=pageview`;
10
+ const response = await fetch(`${apiUrl}/${path}`, {
11
+ headers: {
12
+ Authorization: `Bearer ${accessToken}`
13
+ }
14
+ });
15
+ if (!response.ok) {
16
+ throw new Error(`Failed send page view event, status: ${response.statusText}`);
17
+ }
18
+ return response;
19
+ }
20
+ //# sourceMappingURL=sendPageViewEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sendPageViewEvent","apiUrl","payload","propertyId","impressionId","accessToken","path","response","fetch","headers","Authorization","ok","Error","statusText"],"sourceRoot":"../../../src","sources":["countImpressionUtils/sendPageViewEvent.ts"],"mappings":";;AAMA,eAAe,eAAeA,iBAAiBA,CAC7CC,MAAc,EACdC,OAAwB,EACxB;EACA,MAAM;IAAEC,UAAU;IAAEC,YAAY;IAAEC;EAAY,CAAC,GAAGH,OAAO;EACzD,MAAMI,IAAI,GAAG,gBAAgBH,UAAU,QAAQC,YAAY,aAAa;EAExE,MAAMG,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAGP,MAAM,IAAIK,IAAI,EAAE,EAAE;IAChDG,OAAO,EAAE;MACPC,aAAa,EAAE,UAAUL,WAAW;IACtC;EACF,CAAC,CAAC;EAEF,IAAI,CAACE,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CACb,wCAAwCL,QAAQ,CAACM,UAAU,EAC7D,CAAC;EACH;EAEA,OAAON,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ export default async function sendStats(apiUrl, payload) {
4
+ const response = await fetch(`${apiUrl}/stats`, {
5
+ method: 'POST',
6
+ headers: {
7
+ 'Content-Type': 'application/json; charset=UTF-8'
8
+ },
9
+ body: JSON.stringify(payload)
10
+ });
11
+ if (!response.ok) {
12
+ throw new Error(`Failed to send stats, status: ${response.statusText}`);
13
+ }
14
+ return response;
15
+ }
16
+ //# sourceMappingURL=sendStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sendStats","apiUrl","payload","response","fetch","method","headers","body","JSON","stringify","ok","Error","statusText"],"sourceRoot":"../../../src","sources":["countImpressionUtils/sendStats.ts"],"mappings":";;AAQA,eAAe,eAAeA,SAASA,CAACC,MAAc,EAAEC,OAAqB,EAAE;EAC7E,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAGH,MAAM,QAAQ,EAAE;IAC9CI,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACP,OAAO;EAC9B,CAAC,CAAC;EAEF,IAAI,CAACC,QAAQ,CAACO,EAAE,EAAE;IAChB,MAAM,IAAIC,KAAK,CAAC,iCAAiCR,QAAQ,CAACS,UAAU,EAAE,CAAC;EACzE;EAEA,OAAOT,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import { consoleTransport, logger } from 'react-native-logs';
4
+ const log = logger.createLogger({
5
+ // by default loggger is disabled
6
+ enabled: false,
7
+ transport: consoleTransport,
8
+ transportOptions: {
9
+ colors: {
10
+ info: 'blueBright',
11
+ warn: 'yellowBright',
12
+ error: 'redBright'
13
+ }
14
+ }
15
+ });
16
+ export const enableLogger = severity => {
17
+ log.setSeverity(severity);
18
+ log.enable();
19
+ log.debug('Logger enabled with severity', severity);
20
+ };
21
+ export default log;
22
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["consoleTransport","logger","log","createLogger","enabled","transport","transportOptions","colors","info","warn","error","enableLogger","severity","setSeverity","enable","debug"],"sourceRoot":"../../src","sources":["logger.ts"],"mappings":";;AAAA,SACEA,gBAAgB,EAChBC,MAAM,QAED,mBAAmB;AAQ1B,MAAMC,GAAW,GAAGD,MAAM,CAACE,YAAY,CAAC;EACtC;EACAC,OAAO,EAAE,KAAK;EACdC,SAAS,EAAEL,gBAAgB;EAC3BM,gBAAgB,EAAE;IAChBC,MAAM,EAAE;MACNC,IAAI,EAAE,YAAY;MAClBC,IAAI,EAAE,cAAc;MACpBC,KAAK,EAAE;IACT;EACF;AACF,CAAC,CAAC;AAEF,OAAO,MAAMC,YAAY,GAAIC,QAAkB,IAAK;EAClDV,GAAG,CAACW,WAAW,CAACD,QAAQ,CAAC;EACzBV,GAAG,CAACY,MAAM,CAAC,CAAC;EAEZZ,GAAG,CAACa,KAAK,CAAC,8BAA8B,EAAEH,QAAQ,CAAC;AACrD,CAAC;AAED,eAAeV,GAAG","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import * as Sentry from '@sentry/react-native';
4
4
  import { defaultStackParser, makeFetchTransport } from '@sentry/react';
5
5
  import { getDefaultIntegrations } from '@sentry/react-native/dist/js/integrations/default';
6
+ import logger from "./logger.js";
6
7
 
7
8
  // as it's only the open source package, we want to have minimal sentry configuration here to not override sentry instance,
8
9
  // which can be used in the application
@@ -39,6 +40,9 @@ sentryClient.init();
39
40
  export const reportError = (err, {
40
41
  msg
41
42
  } = {}) => {
43
+ logger.error({
44
+ err
45
+ }, msg || 'Unexpected error');
42
46
  if (msg) {
43
47
  sentryScope.addBreadcrumb({
44
48
  category: 'Error',
@@ -1 +1 @@
1
- {"version":3,"names":["Sentry","defaultStackParser","makeFetchTransport","getDefaultIntegrations","options","attachStacktrace","autoInitializeNativeSdk","dsn","enableAppStartTracking","enableAutoPerformanceTracing","enableCaptureFailedRequests","enableNative","enableNativeCrashHandling","enableNativeFramesTracking","enableNativeNagger","enableNdk","enableStallTracking","enableUserInteractionTracing","enableWatchdogTerminationTracking","maxQueueSize","parentSpanIsAlwaysRootSpan","patchGlobalPromise","sendClientReports","stackParser","transport","integrations","sentryClient","ReactNativeClient","sentryScope","Scope","setClient","init","reportError","err","msg","addBreadcrumb","category","message","level","captureException","setSentryExtraAttribute","key","value","setExtra"],"sourceRoot":"../../src","sources":["sentryIntegration.ts"],"mappings":";;AAAA,OAAO,KAAKA,MAAM,MAAM,sBAAsB;AAC9C,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,eAAe;AACtE,SAASC,sBAAsB,QAAQ,mDAAmD;;AAE1F;AACA;AACA,MAAMC,OAAO,GAAG;EACdC,gBAAgB,EAAE,IAAI;EACtBC,uBAAuB,EAAE,KAAK;EAC9BC,GAAG,EAAE,yEAAyE;EAC9EC,sBAAsB,EAAE,KAAK;EAC7BC,4BAA4B,EAAE,KAAK;EACnCC,2BAA2B,EAAE,KAAK;EAClCC,YAAY,EAAE,KAAK;EACnBC,yBAAyB,EAAE,KAAK;EAChCC,0BAA0B,EAAE,KAAK;EACjCC,kBAAkB,EAAE,KAAK;EACzBC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE,IAAI;EACzBC,4BAA4B,EAAE,KAAK;EACnCC,iCAAiC,EAAE,KAAK;EACxCC,YAAY,EAAE,EAAE;EAChBC,0BAA0B,EAAE,IAAI;EAChCC,kBAAkB,EAAE,IAAI;EACxBC,iBAAiB,EAAE,IAAI;EACvBC,WAAW,EAAEtB,kBAAkB;EAC/BuB,SAAS,EAAEtB,kBAAkB;EAC7BuB,YAAY,EAAE;AAChB,CAAC;AAED,MAAMC,YAAY,GAAG,IAAI1B,MAAM,CAAC2B,iBAAiB,CAAC;EAChD,GAAGvB,OAAO;EACVqB,YAAY,EAAEtB,sBAAsB,CAACC,OAAO;AAC9C,CAAC,CAAC;AAEF,MAAMwB,WAAW,GAAG,IAAI5B,MAAM,CAAC6B,KAAK,CAAC,CAAC;AACtCD,WAAW,CAACE,SAAS,CAACJ,YAAY,CAAC;AAEnCA,YAAY,CAACK,IAAI,CAAC,CAAC;AAMnB,OAAO,MAAMC,WAAW,GAAGA,CAACC,GAAU,EAAE;EAAEC;AAAwB,CAAC,GAAG,CAAC,CAAC,KAAK;EAC3E,IAAIA,GAAG,EAAE;IACPN,WAAW,CAACO,aAAa,CAAC;MACxBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAEH,GAAG;MACZI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEAV,WAAW,CAACW,gBAAgB,CAACN,GAAG,CAAC;AACnC,CAAC;AAED,OAAO,MAAMO,uBAAuB,GAAGA,CAACC,GAAW,EAAEC,KAAa,KAAK;EACrEd,WAAW,CAACe,QAAQ,CAACF,GAAG,EAAEC,KAAK,CAAC;AAClC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Sentry","defaultStackParser","makeFetchTransport","getDefaultIntegrations","logger","options","attachStacktrace","autoInitializeNativeSdk","dsn","enableAppStartTracking","enableAutoPerformanceTracing","enableCaptureFailedRequests","enableNative","enableNativeCrashHandling","enableNativeFramesTracking","enableNativeNagger","enableNdk","enableStallTracking","enableUserInteractionTracing","enableWatchdogTerminationTracking","maxQueueSize","parentSpanIsAlwaysRootSpan","patchGlobalPromise","sendClientReports","stackParser","transport","integrations","sentryClient","ReactNativeClient","sentryScope","Scope","setClient","init","reportError","err","msg","error","addBreadcrumb","category","message","level","captureException","setSentryExtraAttribute","key","value","setExtra"],"sourceRoot":"../../src","sources":["sentryIntegration.ts"],"mappings":";;AAAA,OAAO,KAAKA,MAAM,MAAM,sBAAsB;AAC9C,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,eAAe;AACtE,SAASC,sBAAsB,QAAQ,mDAAmD;AAC1F,OAAOC,MAAM,MAAM,aAAU;;AAE7B;AACA;AACA,MAAMC,OAAO,GAAG;EACdC,gBAAgB,EAAE,IAAI;EACtBC,uBAAuB,EAAE,KAAK;EAC9BC,GAAG,EAAE,yEAAyE;EAC9EC,sBAAsB,EAAE,KAAK;EAC7BC,4BAA4B,EAAE,KAAK;EACnCC,2BAA2B,EAAE,KAAK;EAClCC,YAAY,EAAE,KAAK;EACnBC,yBAAyB,EAAE,KAAK;EAChCC,0BAA0B,EAAE,KAAK;EACjCC,kBAAkB,EAAE,KAAK;EACzBC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE,IAAI;EACzBC,4BAA4B,EAAE,KAAK;EACnCC,iCAAiC,EAAE,KAAK;EACxCC,YAAY,EAAE,EAAE;EAChBC,0BAA0B,EAAE,IAAI;EAChCC,kBAAkB,EAAE,IAAI;EACxBC,iBAAiB,EAAE,IAAI;EACvBC,WAAW,EAAEvB,kBAAkB;EAC/BwB,SAAS,EAAEvB,kBAAkB;EAC7BwB,YAAY,EAAE;AAChB,CAAC;AAED,MAAMC,YAAY,GAAG,IAAI3B,MAAM,CAAC4B,iBAAiB,CAAC;EAChD,GAAGvB,OAAO;EACVqB,YAAY,EAAEvB,sBAAsB,CAACE,OAAO;AAC9C,CAAC,CAAC;AAEF,MAAMwB,WAAW,GAAG,IAAI7B,MAAM,CAAC8B,KAAK,CAAC,CAAC;AACtCD,WAAW,CAACE,SAAS,CAACJ,YAAY,CAAC;AAEnCA,YAAY,CAACK,IAAI,CAAC,CAAC;AAMnB,OAAO,MAAMC,WAAW,GAAGA,CAACC,GAAU,EAAE;EAAEC;AAAwB,CAAC,GAAG,CAAC,CAAC,KAAK;EAC3E/B,MAAM,CAACgC,KAAK,CAAC;IAAEF;EAAI,CAAC,EAAEC,GAAG,IAAI,kBAAkB,CAAC;EAChD,IAAIA,GAAG,EAAE;IACPN,WAAW,CAACQ,aAAa,CAAC;MACxBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAEJ,GAAG;MACZK,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEAX,WAAW,CAACY,gBAAgB,CAACP,GAAG,CAAC;AACnC,CAAC;AAED,OAAO,MAAMQ,uBAAuB,GAAGA,CAACC,GAAW,EAAEC,KAAa,KAAK;EACrEf,WAAW,CAACgB,QAAQ,CAACF,GAAG,EAAEC,KAAK,CAAC;AAClC,CAAC","ignoreList":[]}
@@ -1,9 +1,18 @@
1
1
  import { type ContentpassState } from './types/ContentpassState';
2
2
  import type { ContentpassConfig } from './types/ContentpassConfig';
3
3
  export type ContentpassObserver = (state: ContentpassState) => void;
4
- export default class Contentpass {
4
+ interface ContentpassInterface {
5
+ authenticate: () => Promise<void>;
6
+ registerObserver: (observer: ContentpassObserver) => void;
7
+ unregisterObserver: (observer: ContentpassObserver) => void;
8
+ logout: () => Promise<void>;
9
+ recoverFromError: () => Promise<void>;
10
+ countImpression: () => Promise<void>;
11
+ }
12
+ export default class Contentpass implements ContentpassInterface {
5
13
  private authStateStorage;
6
14
  private readonly config;
15
+ private readonly samplingRate;
7
16
  private contentpassState;
8
17
  private contentpassStateObservers;
9
18
  private oidcAuthState;
@@ -14,11 +23,16 @@ export default class Contentpass {
14
23
  unregisterObserver(observer: ContentpassObserver): void;
15
24
  logout: () => Promise<void>;
16
25
  recoverFromError: () => Promise<void>;
26
+ countImpression: () => Promise<void>;
27
+ private countPaidImpressionWhenUserHasValidSub;
28
+ private countSampledImpression;
17
29
  private initialiseAuthState;
18
30
  private onNewAuthState;
19
31
  private setupRefreshTimer;
20
32
  private refreshToken;
21
33
  private onRefreshTokenError;
22
34
  private changeContentpassState;
35
+ private hasValidSubscriptionAndAccessToken;
23
36
  }
37
+ export {};
24
38
  //# sourceMappingURL=Contentpass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../src/Contentpass.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEpE,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAO9B,YAAY,QAAa,OAAO,CAAC,IAAI,CAAC,CA0B3C;IAEK,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB;IAS9C,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB;IAMhD,MAAM,sBAMX;IAEK,gBAAgB,sBAMrB;IAEF,OAAO,CAAC,mBAAmB,CAWzB;IAEF,OAAO,CAAC,cAAc,CA2BpB;IAEF,OAAO,CAAC,iBAAiB,CAyBvB;IAEF,OAAO,CAAC,YAAY,CAsBlB;IAEF,OAAO,CAAC,mBAAmB,CAazB;IAEF,OAAO,CAAC,sBAAsB,CAG5B;CACH"}
1
+ {"version":3,"file":"Contentpass.d.ts","sourceRoot":"","sources":["../../../../src/Contentpass.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEpE,UAAU,oBAAoB;IAC5B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC1D,kBAAkB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,oBAAoB;IAC9D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,iBAAiB;IAoB9B,YAAY,QAAa,OAAO,CAAC,IAAI,CAAC,CA6B3C;IAEK,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB;IAU9C,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB;IAOhD,MAAM,sBAOX;IAEK,gBAAgB,sBAOrB;IAEK,eAAe,sBAKpB;IAEF,OAAO,CAAC,sCAAsC,CAiB5C;IAEF,OAAO,CAAC,sBAAsB,CAqB5B;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,cAAc,CAkCpB;IAEF,OAAO,CAAC,iBAAiB,CA4BvB;IAEF,OAAO,CAAC,YAAY,CAwBlB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,kCAAkC,CAMxC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"OidcAuthStateStorage.d.ts","sourceRoot":"","sources":["../../../../src/OidcAuthStateStorage.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAET,QAAQ,EAAE,MAAM;IAIf,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAI3C,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMtD,kBAAkB;CAGhC"}
1
+ {"version":3,"file":"OidcAuthStateStorage.d.ts","sourceRoot":"","sources":["../../../../src/OidcAuthStateStorage.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAET,QAAQ,EAAE,MAAM;IAIf,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAI3C,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMtD,kBAAkB;CAShC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../src/contentpassTokenUtils/fetchContentpassToken.ts"],"names":[],"mappings":"AAEA,wBAA8B,qBAAqB,CAAC,EAClD,OAAO,EACP,UAAU,EACV,MAAM,GACP,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,gBAsBA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseContentpassToken.d.ts","sourceRoot":"","sources":["../../../../../src/contentpassTokenUtils/parseContentpassToken.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,gBAAgB,EAAE,MAAM,GACvB,WAAW,CAab"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/contentpassTokenUtils/validateSubscription.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,WAQpE"}
@@ -0,0 +1,8 @@
1
+ type HitEndpointArgs = {
2
+ propertyId: string;
3
+ impressionId: string;
4
+ accessToken: string;
5
+ };
6
+ export default function sendPageViewEvent(apiUrl: string, payload: HitEndpointArgs): Promise<Response>;
7
+ export {};
8
+ //# sourceMappingURL=sendPageViewEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendPageViewEvent.d.ts","sourceRoot":"","sources":["../../../../../src/countImpressionUtils/sendPageViewEvent.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAA8B,iBAAiB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,qBAkBzB"}
@@ -0,0 +1,10 @@
1
+ type StatsPayload = {
2
+ ea: string;
3
+ ec: string;
4
+ cpabid: string;
5
+ cppid: string;
6
+ cpsr: number;
7
+ };
8
+ export default function sendStats(apiUrl: string, payload: StatsPayload): Promise<Response>;
9
+ export {};
10
+ //# sourceMappingURL=sendStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendStats.d.ts","sourceRoot":"","sources":["../../../../../src/countImpressionUtils/sendStats.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAA8B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,qBAc5E"}
@@ -0,0 +1,8 @@
1
+ import { logger, type transportFunctionType } from 'react-native-logs';
2
+ import type { Severity } from './types/ContentpassConfig';
3
+ import type { ConsoleTransportOptions } from 'react-native-logs/dist/transports/consoleTransport';
4
+ type Logger = ReturnType<typeof logger.createLogger<transportFunctionType<ConsoleTransportOptions>>>;
5
+ declare const log: Logger;
6
+ export declare const enableLogger: (severity: Severity) => void;
7
+ export default log;
8
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAElG,KAAK,MAAM,GAAG,UAAU,CACtB,OAAO,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAC3E,CAAC;AAEF,QAAA,MAAM,GAAG,EAAE,MAWT,CAAC;AAEH,eAAO,MAAM,YAAY,aAAc,QAAQ,SAK9C,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sentryIntegration.d.ts","sourceRoot":"","sources":["../../../../src/sentryIntegration.ts"],"names":[],"mappings":"AAwCA,KAAK,kBAAkB,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,KAAK,YAAW,kBAAkB,SAUlE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,SAAS,MAAM,SAEjE,CAAC"}
1
+ {"version":3,"file":"sentryIntegration.d.ts","sourceRoot":"","sources":["../../../../src/sentryIntegration.ts"],"names":[],"mappings":"AAyCA,KAAK,kBAAkB,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,KAAK,YAAW,kBAAkB,SAWlE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,MAAM,SAAS,MAAM,SAEjE,CAAC"}
@@ -1,6 +1,11 @@
1
+ export type Severity = 'debug' | 'info' | 'warn' | 'error';
1
2
  export type ContentpassConfig = {
2
3
  propertyId: string;
4
+ planId: string;
3
5
  redirectUrl: string;
4
6
  issuer: string;
7
+ apiUrl: string;
8
+ samplingRate?: number;
9
+ logLevel?: Severity;
5
10
  };
6
11
  //# sourceMappingURL=ContentpassConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentpassConfig.d.ts","sourceRoot":"","sources":["../../../../../src/types/ContentpassConfig.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"ContentpassConfig.d.ts","sourceRoot":"","sources":["../../../../../src/types/ContentpassConfig.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC"}
@@ -1,9 +1,18 @@
1
1
  import { type ContentpassState } from './types/ContentpassState';
2
2
  import type { ContentpassConfig } from './types/ContentpassConfig';
3
3
  export type ContentpassObserver = (state: ContentpassState) => void;
4
- export default class Contentpass {
4
+ interface ContentpassInterface {
5
+ authenticate: () => Promise<void>;
6
+ registerObserver: (observer: ContentpassObserver) => void;
7
+ unregisterObserver: (observer: ContentpassObserver) => void;
8
+ logout: () => Promise<void>;
9
+ recoverFromError: () => Promise<void>;
10
+ countImpression: () => Promise<void>;
11
+ }
12
+ export default class Contentpass implements ContentpassInterface {
5
13
  private authStateStorage;
6
14
  private readonly config;
15
+ private readonly samplingRate;
7
16
  private contentpassState;
8
17
  private contentpassStateObservers;
9
18
  private oidcAuthState;
@@ -14,11 +23,16 @@ export default class Contentpass {
14
23
  unregisterObserver(observer: ContentpassObserver): void;
15
24
  logout: () => Promise<void>;
16
25
  recoverFromError: () => Promise<void>;
26
+ countImpression: () => Promise<void>;
27
+ private countPaidImpressionWhenUserHasValidSub;
28
+ private countSampledImpression;
17
29
  private initialiseAuthState;
18
30
  private onNewAuthState;
19
31
  private setupRefreshTimer;
20
32
  private refreshToken;
21
33
  private onRefreshTokenError;
22
34
  private changeContentpassState;
35
+ private hasValidSubscriptionAndAccessToken;
23
36
  }
37
+ export {};
24
38
  //# sourceMappingURL=Contentpass.d.ts.map