posthog-js-lite 4.1.0 → 4.1.2

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.
package/dist/index.mjs ADDED
@@ -0,0 +1,452 @@
1
+ import { currentTimestamp, PostHogCore, getFetch } from '@posthog/core';
2
+
3
+ const version = "4.1.2";
4
+
5
+ function getContext(window) {
6
+ let context = {};
7
+ if (window?.navigator) {
8
+ const userAgent = window.navigator.userAgent;
9
+ const osValue = os(window);
10
+ context = {
11
+ ...context,
12
+ ...(osValue !== undefined && {
13
+ $os: osValue
14
+ }),
15
+ $browser: browser(userAgent, window.navigator.vendor, !!window.opera),
16
+ $referrer: window.document.referrer,
17
+ $referring_domain: referringDomain(window.document.referrer),
18
+ $device: device(userAgent),
19
+ $current_url: window.location.href,
20
+ $host: window.location.host,
21
+ $pathname: window.location.pathname,
22
+ $browser_version: browserVersion(userAgent, window.navigator.vendor, !!window.opera),
23
+ $screen_height: window.screen.height,
24
+ $screen_width: window.screen.width,
25
+ $screen_dpr: window.devicePixelRatio
26
+ };
27
+ }
28
+ context = {
29
+ ...context,
30
+ $lib: 'js',
31
+ $lib_version: version,
32
+ $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),
33
+ $time: currentTimestamp() / 1000 // epoch time in seconds
34
+ };
35
+ return context; // TODO: strip empty props?
36
+ }
37
+ function includes(haystack, needle) {
38
+ return haystack.indexOf(needle) >= 0;
39
+ }
40
+ function browser(userAgent, vendor, opera) {
41
+ vendor = vendor || ''; // vendor is undefined for at least IE9
42
+ if (opera || includes(userAgent, ' OPR/')) {
43
+ if (includes(userAgent, 'Mini')) {
44
+ return 'Opera Mini';
45
+ }
46
+ return 'Opera';
47
+ } else if (/(BlackBerry|PlayBook|BB10)/i.test(userAgent)) {
48
+ return 'BlackBerry';
49
+ } else if (includes(userAgent, 'IEMobile') || includes(userAgent, 'WPDesktop')) {
50
+ return 'Internet Explorer Mobile';
51
+ } else if (includes(userAgent, 'SamsungBrowser/')) {
52
+ // https://developer.samsung.com/internet/user-agent-string-format
53
+ return 'Samsung Internet';
54
+ } else if (includes(userAgent, 'Edge') || includes(userAgent, 'Edg/')) {
55
+ return 'Microsoft Edge';
56
+ } else if (includes(userAgent, 'FBIOS')) {
57
+ return 'Facebook Mobile';
58
+ } else if (includes(userAgent, 'Chrome')) {
59
+ return 'Chrome';
60
+ } else if (includes(userAgent, 'CriOS')) {
61
+ return 'Chrome iOS';
62
+ } else if (includes(userAgent, 'UCWEB') || includes(userAgent, 'UCBrowser')) {
63
+ return 'UC Browser';
64
+ } else if (includes(userAgent, 'FxiOS')) {
65
+ return 'Firefox iOS';
66
+ } else if (includes(vendor, 'Apple')) {
67
+ if (includes(userAgent, 'Mobile')) {
68
+ return 'Mobile Safari';
69
+ }
70
+ return 'Safari';
71
+ } else if (includes(userAgent, 'Android')) {
72
+ return 'Android Mobile';
73
+ } else if (includes(userAgent, 'Konqueror')) {
74
+ return 'Konqueror';
75
+ } else if (includes(userAgent, 'Firefox')) {
76
+ return 'Firefox';
77
+ } else if (includes(userAgent, 'MSIE') || includes(userAgent, 'Trident/')) {
78
+ return 'Internet Explorer';
79
+ } else if (includes(userAgent, 'Gecko')) {
80
+ return 'Mozilla';
81
+ } else {
82
+ return '';
83
+ }
84
+ }
85
+ function browserVersion(userAgent, vendor, opera) {
86
+ const regexList = {
87
+ 'Internet Explorer Mobile': /rv:(\d+(\.\d+)?)/,
88
+ 'Microsoft Edge': /Edge?\/(\d+(\.\d+)?)/,
89
+ Chrome: /Chrome\/(\d+(\.\d+)?)/,
90
+ 'Chrome iOS': /CriOS\/(\d+(\.\d+)?)/,
91
+ 'UC Browser': /(UCBrowser|UCWEB)\/(\d+(\.\d+)?)/,
92
+ Safari: /Version\/(\d+(\.\d+)?)/,
93
+ 'Mobile Safari': /Version\/(\d+(\.\d+)?)/,
94
+ Opera: /(Opera|OPR)\/(\d+(\.\d+)?)/,
95
+ Firefox: /Firefox\/(\d+(\.\d+)?)/,
96
+ 'Firefox iOS': /FxiOS\/(\d+(\.\d+)?)/,
97
+ Konqueror: /Konqueror:(\d+(\.\d+)?)/,
98
+ BlackBerry: /BlackBerry (\d+(\.\d+)?)/,
99
+ 'Android Mobile': /android\s(\d+(\.\d+)?)/,
100
+ 'Samsung Internet': /SamsungBrowser\/(\d+(\.\d+)?)/,
101
+ 'Internet Explorer': /(rv:|MSIE )(\d+(\.\d+)?)/,
102
+ Mozilla: /rv:(\d+(\.\d+)?)/
103
+ };
104
+ const browserString = browser(userAgent, vendor, opera);
105
+ const regex = regexList[browserString] || undefined;
106
+ if (regex === undefined) {
107
+ return null;
108
+ }
109
+ const matches = userAgent.match(regex);
110
+ if (!matches) {
111
+ return null;
112
+ }
113
+ return parseFloat(matches[matches.length - 2]);
114
+ }
115
+ function os(window) {
116
+ if (!window?.navigator) {
117
+ return undefined;
118
+ }
119
+ const a = window.navigator.userAgent;
120
+ if (/Windows/i.test(a)) {
121
+ if (/Phone/.test(a) || /WPDesktop/.test(a)) {
122
+ return 'Windows Phone';
123
+ }
124
+ return 'Windows';
125
+ } else if (/(iPhone|iPad|iPod)/.test(a)) {
126
+ return 'iOS';
127
+ } else if (/Android/.test(a)) {
128
+ return 'Android';
129
+ } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {
130
+ return 'BlackBerry';
131
+ } else if (/Mac/i.test(a)) {
132
+ return 'Mac OS X';
133
+ } else if (/Linux/.test(a)) {
134
+ return 'Linux';
135
+ } else if (/CrOS/.test(a)) {
136
+ return 'Chrome OS';
137
+ } else {
138
+ return undefined;
139
+ }
140
+ }
141
+ function device(userAgent) {
142
+ if (/Windows Phone/i.test(userAgent) || /WPDesktop/.test(userAgent)) {
143
+ return 'Windows Phone';
144
+ } else if (/iPad/.test(userAgent)) {
145
+ return 'iPad';
146
+ } else if (/iPod/.test(userAgent)) {
147
+ return 'iPod Touch';
148
+ } else if (/iPhone/.test(userAgent)) {
149
+ return 'iPhone';
150
+ } else if (/(BlackBerry|PlayBook|BB10)/i.test(userAgent)) {
151
+ return 'BlackBerry';
152
+ } else if (/Android/.test(userAgent)) {
153
+ return 'Android';
154
+ } else {
155
+ return '';
156
+ }
157
+ }
158
+ function referringDomain(referrer) {
159
+ const split = referrer.split('/');
160
+ if (split.length >= 3) {
161
+ return split[2];
162
+ }
163
+ return '';
164
+ }
165
+
166
+ // Methods partially borrowed from quirksmode.org/js/cookies.html
167
+ const cookieStore = {
168
+ getItem(key) {
169
+ try {
170
+ const nameEQ = key + '=';
171
+ const ca = document.cookie.split(';');
172
+ for (let i = 0; i < ca.length; i++) {
173
+ let c = ca[i];
174
+ while (c.charAt(0) == ' ') {
175
+ c = c.substring(1, c.length);
176
+ }
177
+ if (c.indexOf(nameEQ) === 0) {
178
+ return decodeURIComponent(c.substring(nameEQ.length, c.length));
179
+ }
180
+ }
181
+ } catch (err) {}
182
+ return null;
183
+ },
184
+ setItem(key, value) {
185
+ try {
186
+ const cdomain = '',
187
+ expires = '',
188
+ secure = '';
189
+ const new_cookie_val = key + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;
190
+ document.cookie = new_cookie_val;
191
+ } catch (err) {
192
+ return;
193
+ }
194
+ },
195
+ removeItem(name) {
196
+ try {
197
+ cookieStore.setItem(name, '');
198
+ } catch (err) {
199
+ return;
200
+ }
201
+ },
202
+ clear() {
203
+ document.cookie = '';
204
+ },
205
+ getAllKeys() {
206
+ const ca = document.cookie.split(';');
207
+ const keys = [];
208
+ for (let i = 0; i < ca.length; i++) {
209
+ let c = ca[i];
210
+ while (c.charAt(0) == ' ') {
211
+ c = c.substring(1, c.length);
212
+ }
213
+ keys.push(c.split('=')[0]);
214
+ }
215
+ return keys;
216
+ }
217
+ };
218
+ const createStorageLike = store => {
219
+ return {
220
+ getItem(key) {
221
+ return store.getItem(key);
222
+ },
223
+ setItem(key, value) {
224
+ store.setItem(key, value);
225
+ },
226
+ removeItem(key) {
227
+ store.removeItem(key);
228
+ },
229
+ clear() {
230
+ store.clear();
231
+ },
232
+ getAllKeys() {
233
+ const keys = [];
234
+ for (const key in localStorage) {
235
+ keys.push(key);
236
+ }
237
+ return keys;
238
+ }
239
+ };
240
+ };
241
+ const checkStoreIsSupported = (storage, key = '__mplssupport__') => {
242
+ try {
243
+ const val = 'xyz';
244
+ storage.setItem(key, val);
245
+ if (storage.getItem(key) !== val) {
246
+ return false;
247
+ }
248
+ storage.removeItem(key);
249
+ return true;
250
+ } catch (err) {
251
+ return false;
252
+ }
253
+ };
254
+ let localStore = undefined;
255
+ let sessionStore = undefined;
256
+ const createMemoryStorage = () => {
257
+ const _cache = {};
258
+ const store = {
259
+ getItem(key) {
260
+ return _cache[key];
261
+ },
262
+ setItem(key, value) {
263
+ _cache[key] = value !== null ? value : undefined;
264
+ },
265
+ removeItem(key) {
266
+ delete _cache[key];
267
+ },
268
+ clear() {
269
+ for (const key in _cache) {
270
+ delete _cache[key];
271
+ }
272
+ },
273
+ getAllKeys() {
274
+ const keys = [];
275
+ for (const key in _cache) {
276
+ keys.push(key);
277
+ }
278
+ return keys;
279
+ }
280
+ };
281
+ return store;
282
+ };
283
+ const getStorage = (type, window) => {
284
+ if (window) {
285
+ if (!localStore) {
286
+ const _localStore = createStorageLike(window.localStorage);
287
+ localStore = checkStoreIsSupported(_localStore) ? _localStore : undefined;
288
+ }
289
+ if (!sessionStore) {
290
+ const _sessionStore = createStorageLike(window.sessionStorage);
291
+ sessionStore = checkStoreIsSupported(_sessionStore) ? _sessionStore : undefined;
292
+ }
293
+ }
294
+ switch (type) {
295
+ case 'cookie':
296
+ return cookieStore || localStore || sessionStore || createMemoryStorage();
297
+ case 'localStorage':
298
+ return localStore || sessionStore || createMemoryStorage();
299
+ case 'sessionStorage':
300
+ return sessionStore || createMemoryStorage();
301
+ case 'memory':
302
+ return createMemoryStorage();
303
+ default:
304
+ return createMemoryStorage();
305
+ }
306
+ };
307
+
308
+ // import { patch } from 'rrweb/typings/utils'
309
+ // copied from: https://github.com/PostHog/posthog-js/blob/main/src/extensions/replay/rrweb-plugins/patch.ts
310
+ // which was copied from https://github.com/rrweb-io/rrweb/blob/8aea5b00a4dfe5a6f59bd2ae72bb624f45e51e81/packages/rrweb/src/utils.ts#L129
311
+ // which was copied from https://github.com/getsentry/sentry-javascript/blob/b2109071975af8bf0316d3b5b38f519bdaf5dc15/packages/utils/src/object.ts
312
+ // copied from: https://github.com/PostHog/posthog-js/blob/main/react/src/utils/type-utils.ts#L4
313
+ const isFunction = function (f) {
314
+ return typeof f === 'function';
315
+ };
316
+ function patch(source, name, replacement) {
317
+ try {
318
+ if (!(name in source)) {
319
+ return () => {
320
+ //
321
+ };
322
+ }
323
+ const original = source[name];
324
+ const wrapped = replacement(original);
325
+ // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work
326
+ // otherwise it'll throw "TypeError: Object.defineProperties called on non-object"
327
+ if (isFunction(wrapped)) {
328
+ wrapped.prototype = wrapped.prototype || {};
329
+ Object.defineProperties(wrapped, {
330
+ __posthog_wrapped__: {
331
+ enumerable: false,
332
+ value: true
333
+ }
334
+ });
335
+ }
336
+ source[name] = wrapped;
337
+ return () => {
338
+ source[name] = original;
339
+ };
340
+ } catch {
341
+ return () => {
342
+ //
343
+ };
344
+ // This can throw if multiple fill happens on a global object like XMLHttpRequest
345
+ // Fixes https://github.com/getsentry/sentry-javascript/issues/2043
346
+ }
347
+ }
348
+
349
+ class PostHog extends PostHogCore {
350
+ constructor(apiKey, options) {
351
+ super(apiKey, options);
352
+ this._lastPathname = '';
353
+ // posthog-js stores options in one object on
354
+ this._storageKey = options?.persistence_name ? `ph_${options.persistence_name}` : `ph_${apiKey}_posthog`;
355
+ this._storage = getStorage(options?.persistence || 'localStorage', this.getWindow());
356
+ this.setupBootstrap(options);
357
+ if (options?.preloadFeatureFlags !== false) {
358
+ this.reloadFeatureFlags();
359
+ }
360
+ if (options?.captureHistoryEvents && typeof window !== 'undefined') {
361
+ this._lastPathname = window?.location?.pathname || '';
362
+ this.setupHistoryEventTracking();
363
+ }
364
+ }
365
+ getWindow() {
366
+ return typeof window !== 'undefined' ? window : undefined;
367
+ }
368
+ getPersistedProperty(key) {
369
+ if (!this._storageCache) {
370
+ this._storageCache = JSON.parse(this._storage.getItem(this._storageKey) || '{}') || {};
371
+ }
372
+ return this._storageCache[key];
373
+ }
374
+ setPersistedProperty(key, value) {
375
+ if (!this._storageCache) {
376
+ this._storageCache = JSON.parse(this._storage.getItem(this._storageKey) || '{}') || {};
377
+ }
378
+ if (value === null) {
379
+ delete this._storageCache[key];
380
+ } else {
381
+ this._storageCache[key] = value;
382
+ }
383
+ this._storage.setItem(this._storageKey, JSON.stringify(this._storageCache));
384
+ }
385
+ fetch(url, options) {
386
+ const fetchFn = getFetch();
387
+ if (!fetchFn) {
388
+ // error will be handled by the caller (fetchWithRetry)
389
+ return Promise.reject(new Error('Fetch API is not available in this environment.'));
390
+ }
391
+ return fetchFn(url, options);
392
+ }
393
+ getLibraryId() {
394
+ return 'posthog-js-lite';
395
+ }
396
+ getLibraryVersion() {
397
+ return version;
398
+ }
399
+ getCustomUserAgent() {
400
+ return;
401
+ }
402
+ getCommonEventProperties() {
403
+ return {
404
+ ...super.getCommonEventProperties(),
405
+ ...getContext(this.getWindow())
406
+ };
407
+ }
408
+ setupHistoryEventTracking() {
409
+ const window = this.getWindow();
410
+ if (!window) {
411
+ return;
412
+ }
413
+ // Old fashioned, we could also use arrow functions but I think the closure for a patch is more reliable
414
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
415
+ const self = this;
416
+ patch(window.history, 'pushState', originalPushState => {
417
+ return function patchedPushState(state, title, url) {
418
+ ;
419
+ originalPushState.call(this, state, title, url);
420
+ self.captureNavigationEvent('pushState');
421
+ };
422
+ });
423
+ patch(window.history, 'replaceState', originalReplaceState => {
424
+ return function patchedReplaceState(state, title, url) {
425
+ ;
426
+ originalReplaceState.call(this, state, title, url);
427
+ self.captureNavigationEvent('replaceState');
428
+ };
429
+ });
430
+ // For popstate we need to listen to the event instead of overriding a method
431
+ window.addEventListener('popstate', () => {
432
+ this.captureNavigationEvent('popstate');
433
+ });
434
+ }
435
+ captureNavigationEvent(navigationType) {
436
+ const window = this.getWindow();
437
+ if (!window) {
438
+ return;
439
+ }
440
+ const currentPathname = window.location.pathname;
441
+ // Only capture pageview if the pathname has changed
442
+ if (currentPathname !== this._lastPathname) {
443
+ this.capture('$pageview', {
444
+ navigation_type: navigationType
445
+ });
446
+ this._lastPathname = currentPathname;
447
+ }
448
+ }
449
+ }
450
+
451
+ export { PostHog, PostHog as default };
452
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/version.ts","../src/context.ts","../src/storage.ts","../src/patch.ts","../src/posthog-web.ts"],"sourcesContent":[null,null,null,null,null],"names":["version","getContext","window","context","navigator","userAgent","osValue","os","undefined","$os","$browser","browser","vendor","opera","$referrer","document","referrer","$referring_domain","referringDomain","$device","device","$current_url","location","href","$host","host","$pathname","pathname","$browser_version","browserVersion","$screen_height","screen","height","$screen_width","width","$screen_dpr","devicePixelRatio","$lib","$lib_version","$insert_id","Math","random","toString","substring","$time","currentTimestamp","includes","haystack","needle","indexOf","test","regexList","Chrome","Safari","Opera","Firefox","Konqueror","BlackBerry","Mozilla","browserString","regex","matches","match","parseFloat","length","a","split","cookieStore","getItem","key","nameEQ","ca","cookie","i","c","charAt","decodeURIComponent","err","setItem","value","cdomain","expires","secure","new_cookie_val","encodeURIComponent","removeItem","name","clear","getAllKeys","keys","push","createStorageLike","store","localStorage","checkStoreIsSupported","storage","val","localStore","sessionStore","createMemoryStorage","_cache","getStorage","type","_localStore","_sessionStore","sessionStorage","isFunction","f","patch","source","replacement","original","wrapped","prototype","Object","defineProperties","__posthog_wrapped__","enumerable","PostHog","PostHogCore","constructor","apiKey","options","_lastPathname","_storageKey","persistence_name","_storage","persistence","getWindow","setupBootstrap","preloadFeatureFlags","reloadFeatureFlags","captureHistoryEvents","setupHistoryEventTracking","getPersistedProperty","_storageCache","JSON","parse","setPersistedProperty","stringify","fetch","url","fetchFn","getFetch","Promise","reject","Error","getLibraryId","getLibraryVersion","getCustomUserAgent","getCommonEventProperties","self","history","originalPushState","patchedPushState","state","title","call","captureNavigationEvent","originalReplaceState","patchedReplaceState","addEventListener","navigationType","currentPathname","capture","navigation_type"],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,36 @@
1
1
  {
2
2
  "name": "posthog-js-lite",
3
- "version": "4.1.0",
4
- "main": "lib/index.cjs",
5
- "module": "lib/index.mjs",
6
- "types": "lib/index.d.ts",
3
+ "version": "4.1.2",
4
+ "license": "MIT",
7
5
  "repository": {
8
6
  "type": "git",
9
- "url": "https://github.com/PostHog/posthog-js-lite.git",
10
- "directory": "posthog-web"
7
+ "url": "git+https://github.com/PostHog/posthog-js.git",
8
+ "directory": "packages/web"
9
+ },
10
+ "main": "dist/index.cjs",
11
+ "module": "dist/index.mjs",
12
+ "types": "dist/index.d.ts",
13
+ "files": [
14
+ "dist",
15
+ "src"
16
+ ],
17
+ "dependencies": {
18
+ "@posthog/core": "1.2.2"
19
+ },
20
+ "devDependencies": {
21
+ "jest": "^29.7.0",
22
+ "jest-environment-jsdom": "^29.7.0",
23
+ "@posthog-tooling/tsconfig-base": "1.0.0",
24
+ "@posthog-tooling/rollup-utils": "1.0.0"
11
25
  },
12
26
  "scripts": {
13
- "test": "jest -c jest.config.js",
14
- "prepublishOnly": "cd .. && yarn build"
27
+ "clean": "rimraf dist coverage",
28
+ "test:unit": "jest -c jest.config.js",
29
+ "lint": "eslint src test",
30
+ "lint:fix": "eslint src test --fix",
31
+ "prebuild": "node -p \"'export const version = ' + JSON.stringify(require('./package.json').version)\" > src/version.ts",
32
+ "build": "rollup -c",
33
+ "dev": "rollup -c -w",
34
+ "package": "pnpm pack --out $PACKAGE_DEST/%s.tgz"
15
35
  }
16
- }
36
+ }
package/src/context.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { utils } from 'posthog-core'
2
- import { version } from '../package.json'
1
+ import { currentTimestamp } from '@posthog/core'
2
+ import { version } from './version'
3
3
 
4
4
  export function getContext(window: Window | undefined): any {
5
5
  let context = {}
@@ -28,7 +28,7 @@ export function getContext(window: Window | undefined): any {
28
28
  $lib: 'js',
29
29
  $lib_version: version,
30
30
  $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),
31
- $time: utils.currentTimestamp() / 1000, // epoch time in seconds
31
+ $time: currentTimestamp() / 1000, // epoch time in seconds
32
32
  }
33
33
  return context // TODO: strip empty props?
34
34
  }
package/src/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { PostHog } from './posthog-web'
2
+
3
+ export default PostHog
4
+
5
+ export * from './posthog-web'
@@ -1,12 +1,12 @@
1
- import { version } from '../package.json'
1
+ import { version } from './version'
2
2
 
3
- import { PostHogCore, getFetch } from 'posthog-core'
3
+ import { PostHogCore, getFetch } from '@posthog/core'
4
4
  import type {
5
5
  PostHogEventProperties,
6
6
  PostHogFetchOptions,
7
7
  PostHogFetchResponse,
8
8
  PostHogPersistedProperty,
9
- } from 'posthog-core'
9
+ } from '@posthog/core'
10
10
 
11
11
  import { getContext } from './context'
12
12
  import { PostHogStorage, getStorage } from './storage'
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { PostHogCoreOptions } from 'posthog-core'
1
+ import type { PostHogCoreOptions } from '@posthog/core'
2
2
 
3
3
  export type PostHogOptions = {
4
4
  autocapture?: boolean
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const version = "4.1.2"