@contentpass/react-native-contentpass 0.2.6 → 0.3.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 (82) hide show
  1. package/README.md +10 -0
  2. package/lib/commonjs/Contentpass.js +98 -6
  3. package/lib/commonjs/Contentpass.js.map +1 -1
  4. package/lib/commonjs/{utils → contentpassTokenUtils}/fetchContentpassToken.js +3 -0
  5. package/lib/commonjs/contentpassTokenUtils/fetchContentpassToken.js.map +1 -0
  6. package/lib/commonjs/contentpassTokenUtils/parseContentpassToken.js.map +1 -0
  7. package/lib/commonjs/contentpassTokenUtils/validateSubscription.js.map +1 -0
  8. package/lib/commonjs/countImpressionUtils/sendPageViewEvent.js +24 -0
  9. package/lib/commonjs/countImpressionUtils/sendPageViewEvent.js.map +1 -0
  10. package/lib/commonjs/countImpressionUtils/sendStats.js +20 -0
  11. package/lib/commonjs/countImpressionUtils/sendStats.js.map +1 -0
  12. package/lib/commonjs/logger.js +27 -0
  13. package/lib/commonjs/logger.js.map +1 -0
  14. package/lib/commonjs/sentryIntegration.js +35 -12
  15. package/lib/commonjs/sentryIntegration.js.map +1 -1
  16. package/lib/module/Contentpass.js +97 -7
  17. package/lib/module/Contentpass.js.map +1 -1
  18. package/lib/module/{utils → contentpassTokenUtils}/fetchContentpassToken.js +3 -0
  19. package/lib/module/contentpassTokenUtils/fetchContentpassToken.js.map +1 -0
  20. package/lib/module/contentpassTokenUtils/parseContentpassToken.js.map +1 -0
  21. package/lib/module/contentpassTokenUtils/validateSubscription.js.map +1 -0
  22. package/lib/module/countImpressionUtils/sendPageViewEvent.js +20 -0
  23. package/lib/module/countImpressionUtils/sendPageViewEvent.js.map +1 -0
  24. package/lib/module/countImpressionUtils/sendStats.js +16 -0
  25. package/lib/module/countImpressionUtils/sendStats.js.map +1 -0
  26. package/lib/module/logger.js +22 -0
  27. package/lib/module/logger.js.map +1 -0
  28. package/lib/module/sentryIntegration.js +31 -10
  29. package/lib/module/sentryIntegration.js.map +1 -1
  30. package/lib/typescript/commonjs/src/Contentpass.d.ts +15 -1
  31. package/lib/typescript/commonjs/src/Contentpass.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
  33. package/lib/typescript/commonjs/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
  34. package/lib/typescript/commonjs/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
  35. package/lib/typescript/commonjs/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
  36. package/lib/typescript/commonjs/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
  37. package/lib/typescript/commonjs/src/countImpressionUtils/sendStats.d.ts +10 -0
  38. package/lib/typescript/commonjs/src/countImpressionUtils/sendStats.d.ts.map +1 -0
  39. package/lib/typescript/commonjs/src/logger.d.ts +8 -0
  40. package/lib/typescript/commonjs/src/logger.d.ts.map +1 -0
  41. package/lib/typescript/commonjs/src/sentryIntegration.d.ts +5 -1
  42. package/lib/typescript/commonjs/src/sentryIntegration.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/types/ContentpassConfig.d.ts +4 -0
  44. package/lib/typescript/commonjs/src/types/ContentpassConfig.d.ts.map +1 -1
  45. package/lib/typescript/module/src/Contentpass.d.ts +15 -1
  46. package/lib/typescript/module/src/Contentpass.d.ts.map +1 -1
  47. package/lib/typescript/module/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
  48. package/lib/typescript/module/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
  49. package/lib/typescript/module/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
  50. package/lib/typescript/module/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
  51. package/lib/typescript/module/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
  52. package/lib/typescript/module/src/countImpressionUtils/sendStats.d.ts +10 -0
  53. package/lib/typescript/module/src/countImpressionUtils/sendStats.d.ts.map +1 -0
  54. package/lib/typescript/module/src/logger.d.ts +8 -0
  55. package/lib/typescript/module/src/logger.d.ts.map +1 -0
  56. package/lib/typescript/module/src/sentryIntegration.d.ts +5 -1
  57. package/lib/typescript/module/src/sentryIntegration.d.ts.map +1 -1
  58. package/lib/typescript/module/src/types/ContentpassConfig.d.ts +4 -0
  59. package/lib/typescript/module/src/types/ContentpassConfig.d.ts.map +1 -1
  60. package/package.json +4 -2
  61. package/lib/commonjs/utils/fetchContentpassToken.js.map +0 -1
  62. package/lib/commonjs/utils/parseContentpassToken.js.map +0 -1
  63. package/lib/commonjs/utils/validateSubscription.js.map +0 -1
  64. package/lib/module/utils/fetchContentpassToken.js.map +0 -1
  65. package/lib/module/utils/parseContentpassToken.js.map +0 -1
  66. package/lib/module/utils/validateSubscription.js.map +0 -1
  67. package/lib/typescript/commonjs/src/utils/fetchContentpassToken.d.ts.map +0 -1
  68. package/lib/typescript/commonjs/src/utils/parseContentpassToken.d.ts.map +0 -1
  69. package/lib/typescript/commonjs/src/utils/validateSubscription.d.ts.map +0 -1
  70. package/lib/typescript/module/src/utils/fetchContentpassToken.d.ts.map +0 -1
  71. package/lib/typescript/module/src/utils/parseContentpassToken.d.ts.map +0 -1
  72. package/lib/typescript/module/src/utils/validateSubscription.d.ts.map +0 -1
  73. /package/lib/commonjs/{utils → contentpassTokenUtils}/parseContentpassToken.js +0 -0
  74. /package/lib/commonjs/{utils → contentpassTokenUtils}/validateSubscription.js +0 -0
  75. /package/lib/module/{utils → contentpassTokenUtils}/parseContentpassToken.js +0 -0
  76. /package/lib/module/{utils → contentpassTokenUtils}/validateSubscription.js +0 -0
  77. /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/fetchContentpassToken.d.ts +0 -0
  78. /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/parseContentpassToken.d.ts +0 -0
  79. /package/lib/typescript/commonjs/src/{utils → contentpassTokenUtils}/validateSubscription.d.ts +0 -0
  80. /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/fetchContentpassToken.d.ts +0 -0
  81. /package/lib/typescript/module/src/{utils → contentpassTokenUtils}/parseContentpassToken.d.ts +0 -0
  82. /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";
10
- import { reportError, setSentryExtraAttribute } from "./sentryIntegration.js";
9
+ import fetchContentpassToken from "./contentpassTokenUtils/fetchContentpassToken.js";
10
+ import validateSubscription from "./contentpassTokenUtils/validateSubscription.js";
11
+ import { initSentry, reportError } 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,24 @@ 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
- setSentryExtraAttribute('propertyId', config.propertyId);
35
+ initSentry({
36
+ propertyId: config.propertyId
37
+ });
22
38
  this.initialiseAuthState();
23
39
  }
24
40
  authenticate = async () => {
41
+ logger.info('Starting authentication flow');
25
42
  let result;
26
43
  try {
27
44
  result = await authorize({
@@ -46,9 +63,11 @@ export default class Contentpass {
46
63
  });
47
64
  throw err;
48
65
  }
66
+ logger.info('Authentication flow finished, checking subscription...');
49
67
  await this.onNewAuthState(result);
50
68
  };
51
69
  registerObserver(observer) {
70
+ logger.info('Registering observer');
52
71
  if (this.contentpassStateObservers.includes(observer)) {
53
72
  return;
54
73
  }
@@ -56,9 +75,11 @@ export default class Contentpass {
56
75
  this.contentpassStateObservers.push(observer);
57
76
  }
58
77
  unregisterObserver(observer) {
78
+ logger.info('Unregistering observer');
59
79
  this.contentpassStateObservers = this.contentpassStateObservers.filter(o => o !== observer);
60
80
  }
61
81
  logout = async () => {
82
+ logger.info('Logging out and clearing auth state');
62
83
  await this.authStateStorage.clearOidcAuthState();
63
84
  this.changeContentpassState({
64
85
  state: ContentpassStateType.UNAUTHENTICATED,
@@ -66,42 +87,97 @@ export default class Contentpass {
66
87
  });
67
88
  };
68
89
  recoverFromError = async () => {
90
+ logger.info('Recovering from error');
69
91
  this.changeContentpassState({
70
92
  state: ContentpassStateType.INITIALISING
71
93
  });
72
94
  await this.initialiseAuthState();
73
95
  };
96
+ countImpression = async () => {
97
+ await Promise.all([this.countPaidImpressionWhenUserHasValidSub(), this.countSampledImpression()]);
98
+ };
99
+ countPaidImpressionWhenUserHasValidSub = async () => {
100
+ if (!this.hasValidSubscriptionAndAccessToken()) {
101
+ return;
102
+ }
103
+ logger.info('Counting paid impression');
104
+ const impressionId = uuid.v4();
105
+ try {
106
+ await sendPageViewEvent(this.config.apiUrl, {
107
+ propertyId: this.config.propertyId,
108
+ impressionId,
109
+ accessToken: this.oidcAuthState.accessToken
110
+ });
111
+ } catch (err) {
112
+ reportError(err, {
113
+ msg: 'Failed to count paid impression'
114
+ });
115
+ }
116
+ };
117
+ countSampledImpression = async () => {
118
+ const generatedSample = Math.random();
119
+ const publicId = this.config.propertyId.slice(0, 8);
120
+ const instanceId = uuid.v4();
121
+ if (generatedSample >= this.samplingRate) {
122
+ return;
123
+ }
124
+ logger.info('Counting sampled impression');
125
+ try {
126
+ await sendStats(this.config.apiUrl, {
127
+ ea: 'load',
128
+ ec: 'tcf-sampled',
129
+ cpabid: instanceId,
130
+ cppid: publicId,
131
+ cpsr: this.samplingRate
132
+ });
133
+ } catch (err) {
134
+ reportError(err, {
135
+ msg: 'Failed to count sampled impression'
136
+ });
137
+ }
138
+ };
74
139
  initialiseAuthState = async () => {
75
140
  const authState = await this.authStateStorage.getOidcAuthState();
76
141
  if (authState) {
142
+ logger.debug('Found auth state in storage, initialising with it');
77
143
  await this.onNewAuthState(authState);
78
144
  return;
79
145
  }
146
+ logger.debug('No auth state found in storage, initialising unauthenticated');
80
147
  this.changeContentpassState({
81
148
  state: ContentpassStateType.UNAUTHENTICATED,
82
149
  hasValidSubscription: false
83
150
  });
84
151
  };
85
152
  onNewAuthState = async authState => {
153
+ logger.debug('New auth state received');
86
154
  this.oidcAuthState = authState;
87
155
  await this.authStateStorage.storeOidcAuthState(authState);
88
156
  const strategy = this.setupRefreshTimer();
89
157
  // if instant refresh, no need to check subscription as it will happen in the refresh
90
158
  if (strategy === RefreshTokenStrategy.INSTANTLY) {
159
+ logger.debug('Instant refresh, skipping subscription check');
91
160
  return;
92
161
  }
93
162
  try {
163
+ logger.info('Checking subscription');
94
164
  const contentpassToken = await fetchContentpassToken({
95
165
  issuer: this.config.issuer,
96
166
  propertyId: this.config.propertyId,
97
167
  idToken: this.oidcAuthState.idToken
98
168
  });
99
169
  const hasValidSubscription = validateSubscription(contentpassToken);
170
+ logger.info({
171
+ hasValidSubscription
172
+ }, 'Subscription check successful');
100
173
  this.changeContentpassState({
101
174
  state: ContentpassStateType.AUTHENTICATED,
102
175
  hasValidSubscription
103
176
  });
104
177
  } catch (err) {
178
+ reportError(err, {
179
+ msg: 'Failed to fetch contentpass token and validate subscription'
180
+ });
105
181
  this.changeContentpassState({
106
182
  state: ContentpassStateType.ERROR,
107
183
  error: err
@@ -111,18 +187,23 @@ export default class Contentpass {
111
187
  setupRefreshTimer = () => {
112
188
  const accessTokenExpirationDate = this.oidcAuthState?.accessTokenExpirationDate;
113
189
  if (!accessTokenExpirationDate) {
190
+ logger.warn('No access token expiration date provided');
114
191
  return RefreshTokenStrategy.NO_REFRESH;
115
192
  }
116
193
  const now = new Date();
117
194
  const expirationDate = new Date(accessTokenExpirationDate);
118
195
  const timeDiff = expirationDate.getTime() - now.getTime();
119
196
  if (timeDiff <= 0) {
197
+ logger.debug('Access token expired, refreshing instantly');
120
198
  this.refreshToken(0);
121
199
  return RefreshTokenStrategy.INSTANTLY;
122
200
  }
123
201
  if (this.refreshTimer) {
124
202
  clearTimeout(this.refreshTimer);
125
203
  }
204
+ logger.debug({
205
+ timeDiff
206
+ }, 'Setting up refresh timer');
126
207
  this.refreshTimer = setTimeout(async () => {
127
208
  await this.refreshToken(0);
128
209
  }, timeDiff);
@@ -134,6 +215,7 @@ export default class Contentpass {
134
215
  return;
135
216
  }
136
217
  try {
218
+ logger.info('Refreshing token');
137
219
  const refreshResult = await refresh({
138
220
  clientId: this.config.propertyId,
139
221
  redirectUrl: this.config.redirectUrl,
@@ -143,26 +225,34 @@ export default class Contentpass {
143
225
  refreshToken: this.oidcAuthState.refreshToken
144
226
  });
145
227
  await this.onNewAuthState(refreshResult);
228
+ logger.info('Token refreshed successfully');
146
229
  } catch (err) {
147
230
  await this.onRefreshTokenError(counter, err);
148
231
  }
149
232
  };
150
233
  onRefreshTokenError = async (counter, err) => {
151
- reportError(err, {
152
- msg: `Failed to refresh token after ${counter} retries`
153
- });
154
234
  // FIXME: add handling for specific error to not retry in every case
155
235
  if (counter < REFRESH_TOKEN_RETRIES) {
236
+ logger.warn({
237
+ err,
238
+ counter
239
+ }, 'Failed to refresh token, retrying');
156
240
  const delay = counter * 1000 * 10;
157
241
  await new Promise(resolve => setTimeout(resolve, delay));
158
242
  await this.refreshToken(counter + 1);
159
243
  return;
160
244
  }
245
+ reportError(err, {
246
+ msg: `Failed to refresh token after ${counter} retries`
247
+ });
161
248
  await this.logout();
162
249
  };
163
250
  changeContentpassState = state => {
164
251
  this.contentpassState = state;
165
252
  this.contentpassStateObservers.forEach(observer => observer(state));
166
253
  };
254
+ hasValidSubscriptionAndAccessToken = () => {
255
+ return this.contentpassState.state === ContentpassStateType.AUTHENTICATED && this.contentpassState.hasValidSubscription && this.oidcAuthState?.accessToken;
256
+ };
167
257
  }
168
258
  //# 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","cp_plan","planId","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","initSentry","reportError","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":[]}
@@ -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,8 @@
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";
7
+ import { Platform } from 'react-native';
6
8
 
7
9
  // as it's only the open source package, we want to have minimal sentry configuration here to not override sentry instance,
8
10
  // which can be used in the application
@@ -27,18 +29,37 @@ const options = {
27
29
  sendClientReports: true,
28
30
  stackParser: defaultStackParser,
29
31
  transport: makeFetchTransport,
30
- integrations: []
32
+ integrations: [],
33
+ environment: __DEV__ ? 'development' : 'production'
34
+ };
35
+ let sentryScope = null;
36
+ export const initSentry = args => {
37
+ if (sentryScope) {
38
+ logger.warn('Sentry already initialized');
39
+ return;
40
+ }
41
+ const sentryClient = new Sentry.ReactNativeClient({
42
+ ...options,
43
+ integrations: getDefaultIntegrations(options)
44
+ });
45
+ sentryScope = new Sentry.Scope();
46
+ sentryScope.setClient(sentryClient);
47
+ sentryClient.init();
48
+ sentryScope.setTags({
49
+ propertyId: args.propertyId,
50
+ OS: Platform.OS,
51
+ platformVersion: Platform.Version
52
+ });
31
53
  };
32
- const sentryClient = new Sentry.ReactNativeClient({
33
- ...options,
34
- integrations: getDefaultIntegrations(options)
35
- });
36
- const sentryScope = new Sentry.Scope();
37
- sentryScope.setClient(sentryClient);
38
- sentryClient.init();
39
54
  export const reportError = (err, {
40
55
  msg
41
56
  } = {}) => {
57
+ logger.error({
58
+ err
59
+ }, msg || 'Unexpected error');
60
+ if (!sentryScope) {
61
+ return;
62
+ }
42
63
  if (msg) {
43
64
  sentryScope.addBreadcrumb({
44
65
  category: 'Error',
@@ -48,7 +69,7 @@ export const reportError = (err, {
48
69
  }
49
70
  sentryScope.captureException(err);
50
71
  };
51
- export const setSentryExtraAttribute = (key, value) => {
52
- sentryScope.setExtra(key, value);
72
+ export const __internal_reset_sentry_scope = () => {
73
+ sentryScope = null;
53
74
  };
54
75
  //# sourceMappingURL=sentryIntegration.js.map
@@ -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","Platform","options","attachStacktrace","autoInitializeNativeSdk","dsn","enableAppStartTracking","enableAutoPerformanceTracing","enableCaptureFailedRequests","enableNative","enableNativeCrashHandling","enableNativeFramesTracking","enableNativeNagger","enableNdk","enableStallTracking","enableUserInteractionTracing","enableWatchdogTerminationTracking","maxQueueSize","parentSpanIsAlwaysRootSpan","patchGlobalPromise","sendClientReports","stackParser","transport","integrations","environment","__DEV__","sentryScope","initSentry","args","warn","sentryClient","ReactNativeClient","Scope","setClient","init","setTags","propertyId","OS","platformVersion","Version","reportError","err","msg","error","addBreadcrumb","category","message","level","captureException","__internal_reset_sentry_scope"],"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;AAC7B,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;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,EAAExB,kBAAkB;EAC/ByB,SAAS,EAAExB,kBAAkB;EAC7ByB,YAAY,EAAE,EAAE;EAChBC,WAAW,EAAEC,OAAO,GAAG,aAAa,GAAG;AACzC,CAAC;AAMD,IAAIC,WAAgC,GAAG,IAAI;AAE3C,OAAO,MAAMC,UAAU,GAAIC,IAAoB,IAAK;EAClD,IAAIF,WAAW,EAAE;IACf1B,MAAM,CAAC6B,IAAI,CAAC,4BAA4B,CAAC;IACzC;EACF;EAEA,MAAMC,YAAY,GAAG,IAAIlC,MAAM,CAACmC,iBAAiB,CAAC;IAChD,GAAG7B,OAAO;IACVqB,YAAY,EAAExB,sBAAsB,CAACG,OAAO;EAC9C,CAAC,CAAC;EAEFwB,WAAW,GAAG,IAAI9B,MAAM,CAACoC,KAAK,CAAC,CAAC;EAChCN,WAAW,CAACO,SAAS,CAACH,YAAY,CAAC;EAEnCA,YAAY,CAACI,IAAI,CAAC,CAAC;EAEnBR,WAAW,CAACS,OAAO,CAAC;IAClBC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,EAAE,EAAEpC,QAAQ,CAACoC,EAAE;IACfC,eAAe,EAAErC,QAAQ,CAACsC;EAC5B,CAAC,CAAC;AACJ,CAAC;AAMD,OAAO,MAAMC,WAAW,GAAGA,CAACC,GAAU,EAAE;EAAEC;AAAwB,CAAC,GAAG,CAAC,CAAC,KAAK;EAC3E1C,MAAM,CAAC2C,KAAK,CAAC;IAAEF;EAAI,CAAC,EAAEC,GAAG,IAAI,kBAAkB,CAAC;EAChD,IAAI,CAAChB,WAAW,EAAE;IAChB;EACF;EAEA,IAAIgB,GAAG,EAAE;IACPhB,WAAW,CAACkB,aAAa,CAAC;MACxBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAEJ,GAAG;MACZK,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEArB,WAAW,CAACsB,gBAAgB,CAACP,GAAG,CAAC;AACnC,CAAC;AAED,OAAO,MAAMQ,6BAA6B,GAAGA,CAAA,KAAM;EACjDvB,WAAW,GAAG,IAAI;AACpB,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,CA2B3C;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"}
@@ -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,7 +1,11 @@
1
+ type InitSentryArgs = {
2
+ propertyId: string;
3
+ };
4
+ export declare const initSentry: (args: InitSentryArgs) => void;
1
5
  type ReportErrorOptions = {
2
6
  msg?: string;
3
7
  };
4
8
  export declare const reportError: (err: Error, { msg }?: ReportErrorOptions) => void;
5
- export declare const setSentryExtraAttribute: (key: string, value: string) => void;
9
+ export declare const __internal_reset_sentry_scope: () => void;
6
10
  export {};
7
11
  //# sourceMappingURL=sentryIntegration.d.ts.map
@@ -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":"AAiCA,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,UAAU,SAAU,cAAc,SAqB9C,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,KAAK,YAAW,kBAAkB,SAelE,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAEzC,CAAC"}
@@ -1,7 +1,11 @@
1
+ export type Severity = 'debug' | 'info' | 'warn' | 'error';
1
2
  export type ContentpassConfig = {
2
3
  propertyId: string;
3
4
  planId: string;
4
5
  redirectUrl: string;
5
6
  issuer: string;
7
+ apiUrl: string;
8
+ samplingRate?: number;
9
+ logLevel?: Severity;
6
10
  };
7
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,MAAM,EAAE,MAAM,CAAC;IACf,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"}