@leanbase.com/js 0.1.3 → 0.2.0-alpha.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 (141) hide show
  1. package/LICENSE +37 -0
  2. package/dist/autocapture-utils.d.ts +17 -0
  3. package/dist/autocapture.d.ts +35 -0
  4. package/dist/config.d.ts +5 -0
  5. package/dist/consent.d.ts +25 -0
  6. package/dist/constants.d.ts +54 -0
  7. package/dist/entrypoints/main.cjs.d.ts +4 -0
  8. package/dist/entrypoints/module.es.d.ts +4 -0
  9. package/dist/extensions/rageclick.d.ts +9 -0
  10. package/dist/iife.d.ts +19 -0
  11. package/dist/index.d.ts +2 -779
  12. package/dist/leanbase-logger.d.ts +6 -0
  13. package/dist/leanbase-persistence.d.ts +64 -0
  14. package/dist/leanbase.d.ts +53 -0
  15. package/dist/leanbase.iife.js +1 -4747
  16. package/dist/leanbase.iife.js.map +1 -1
  17. package/dist/main.js +2 -0
  18. package/dist/main.js.map +1 -0
  19. package/dist/module.d.ts +856 -0
  20. package/dist/module.js +2 -0
  21. package/dist/module.js.map +1 -0
  22. package/dist/page-view.d.ts +29 -0
  23. package/dist/scroll-manager.d.ts +21 -0
  24. package/dist/session-props.d.ts +32 -0
  25. package/dist/sessionid.d.ts +50 -0
  26. package/dist/storage.d.ts +24 -0
  27. package/{src/types.ts → dist/types.d.ts} +200 -242
  28. package/dist/utils/blocked-uas.d.ts +17 -0
  29. package/dist/utils/element-utils.d.ts +5 -0
  30. package/dist/utils/event-utils.d.ts +22 -0
  31. package/dist/utils/index.d.ts +46 -0
  32. package/dist/utils/request-utils.d.ts +12 -0
  33. package/dist/utils/simple-event-emitter.d.ts +6 -0
  34. package/dist/utils/user-agent-utils.d.ts +18 -0
  35. package/dist/uuidv7.d.ts +43 -0
  36. package/dist/version.d.ts +1 -0
  37. package/lib/autocapture-utils.d.ts +17 -0
  38. package/{src/autocapture-utils.ts → lib/autocapture-utils.js} +196 -280
  39. package/lib/autocapture-utils.js.map +1 -0
  40. package/lib/autocapture.d.ts +35 -0
  41. package/lib/autocapture.js +311 -0
  42. package/lib/autocapture.js.map +1 -0
  43. package/lib/config.d.ts +5 -0
  44. package/lib/config.js +7 -0
  45. package/lib/config.js.map +1 -0
  46. package/lib/consent.d.ts +25 -0
  47. package/lib/consent.js +101 -0
  48. package/lib/consent.js.map +1 -0
  49. package/lib/constants.d.ts +54 -0
  50. package/{src/constants.ts → lib/constants.js} +50 -57
  51. package/lib/constants.js.map +1 -0
  52. package/lib/entrypoints/main.cjs.d.ts +4 -0
  53. package/lib/entrypoints/main.cjs.js +3 -0
  54. package/lib/entrypoints/main.cjs.js.map +1 -0
  55. package/lib/entrypoints/module.es.d.ts +4 -0
  56. package/lib/entrypoints/module.es.js +3 -0
  57. package/lib/entrypoints/module.es.js.map +1 -0
  58. package/lib/extensions/rageclick.d.ts +9 -0
  59. package/lib/extensions/rageclick.js +27 -0
  60. package/lib/extensions/rageclick.js.map +1 -0
  61. package/lib/iife.d.ts +19 -0
  62. package/lib/iife.js +67 -0
  63. package/lib/iife.js.map +1 -0
  64. package/{src/index.ts → lib/index.d.ts} +2 -2
  65. package/lib/index.js +2 -0
  66. package/lib/index.js.map +1 -0
  67. package/lib/leanbase-logger.d.ts +6 -0
  68. package/lib/leanbase-logger.js +25 -0
  69. package/lib/leanbase-logger.js.map +1 -0
  70. package/lib/leanbase-persistence.d.ts +64 -0
  71. package/lib/leanbase-persistence.js +287 -0
  72. package/lib/leanbase-persistence.js.map +1 -0
  73. package/lib/leanbase.d.ts +53 -0
  74. package/lib/leanbase.js +359 -0
  75. package/lib/leanbase.js.map +1 -0
  76. package/lib/page-view.d.ts +29 -0
  77. package/lib/page-view.js +81 -0
  78. package/lib/page-view.js.map +1 -0
  79. package/lib/scroll-manager.d.ts +21 -0
  80. package/lib/scroll-manager.js +79 -0
  81. package/lib/scroll-manager.js.map +1 -0
  82. package/lib/session-props.d.ts +32 -0
  83. package/lib/session-props.js +73 -0
  84. package/lib/session-props.js.map +1 -0
  85. package/lib/sessionid.d.ts +50 -0
  86. package/{src/sessionid.ts → lib/sessionid.js} +128 -204
  87. package/lib/sessionid.js.map +1 -0
  88. package/lib/storage.d.ts +24 -0
  89. package/{src/storage.ts → lib/storage.js} +182 -225
  90. package/lib/storage.js.map +1 -0
  91. package/lib/types.d.ts +592 -0
  92. package/lib/types.js +7 -0
  93. package/lib/types.js.map +1 -0
  94. package/lib/utils/blocked-uas.d.ts +17 -0
  95. package/{src/utils/blocked-uas.ts → lib/utils/blocked-uas.js} +19 -48
  96. package/lib/utils/blocked-uas.js.map +1 -0
  97. package/lib/utils/element-utils.d.ts +5 -0
  98. package/{src/utils/element-utils.ts → lib/utils/element-utils.js} +13 -17
  99. package/lib/utils/element-utils.js.map +1 -0
  100. package/lib/utils/event-utils.d.ts +22 -0
  101. package/lib/utils/event-utils.js +258 -0
  102. package/lib/utils/event-utils.js.map +1 -0
  103. package/lib/utils/index.d.ts +46 -0
  104. package/lib/utils/index.js +192 -0
  105. package/lib/utils/index.js.map +1 -0
  106. package/lib/utils/request-utils.d.ts +12 -0
  107. package/lib/utils/request-utils.js +107 -0
  108. package/lib/utils/request-utils.js.map +1 -0
  109. package/lib/utils/simple-event-emitter.d.ts +6 -0
  110. package/lib/utils/simple-event-emitter.js +24 -0
  111. package/lib/utils/simple-event-emitter.js.map +1 -0
  112. package/lib/utils/user-agent-utils.d.ts +18 -0
  113. package/lib/utils/user-agent-utils.js +369 -0
  114. package/lib/utils/user-agent-utils.js.map +1 -0
  115. package/lib/uuidv7.d.ts +43 -0
  116. package/{src/uuidv7.ts → lib/uuidv7.js} +103 -131
  117. package/lib/uuidv7.js.map +1 -0
  118. package/lib/version.d.ts +1 -0
  119. package/lib/version.js +2 -0
  120. package/lib/version.js.map +1 -0
  121. package/package.json +56 -45
  122. package/dist/index.cjs +0 -3034
  123. package/dist/index.cjs.map +0 -1
  124. package/dist/index.mjs +0 -3032
  125. package/dist/index.mjs.map +0 -1
  126. package/src/autocapture.ts +0 -415
  127. package/src/config.ts +0 -8
  128. package/src/extensions/rageclick.ts +0 -34
  129. package/src/iife.ts +0 -87
  130. package/src/leanbase-logger.ts +0 -26
  131. package/src/leanbase-persistence.ts +0 -374
  132. package/src/leanbase.ts +0 -424
  133. package/src/page-view.ts +0 -124
  134. package/src/scroll-manager.ts +0 -103
  135. package/src/session-props.ts +0 -114
  136. package/src/utils/event-utils.ts +0 -304
  137. package/src/utils/index.ts +0 -222
  138. package/src/utils/request-utils.ts +0 -128
  139. package/src/utils/simple-event-emitter.ts +0 -27
  140. package/src/utils/user-agent-utils.ts +0 -357
  141. package/src/version.ts +0 -1
@@ -0,0 +1,287 @@
1
+ /* eslint camelcase: "off" */
2
+ import { each, extend, include, stripEmptyProperties } from './utils';
3
+ import { cookieStore, localPlusCookieStore, localStore, memoryStore, sessionStore } from './storage';
4
+ import { ENABLED_FEATURE_FLAGS, EVENT_TIMERS_KEY, INITIAL_CAMPAIGN_PARAMS, INITIAL_PERSON_INFO, INITIAL_REFERRER_INFO, PERSISTENCE_RESERVED_PROPERTIES, } from './constants';
5
+ import { isUndefined } from '@posthog/core';
6
+ import { getCampaignParams, getInitialPersonPropsFromInfo, getPersonInfo, getReferrerInfo, getSearchInfo, } from './utils/event-utils';
7
+ import { stripLeadingDollar, isEmptyObject, isObject } from '@posthog/core';
8
+ import { logger } from './leanbase-logger';
9
+ const CASE_INSENSITIVE_PERSISTENCE_TYPES = [
10
+ 'cookie',
11
+ 'localstorage',
12
+ 'localstorage+cookie',
13
+ 'sessionstorage',
14
+ 'memory',
15
+ ];
16
+ const parseName = (config) => {
17
+ let token = '';
18
+ if (config['token']) {
19
+ token = config['token'].replace(/\+/g, 'PL').replace(/\//g, 'SL').replace(/=/g, 'EQ');
20
+ }
21
+ if (config['persistence_name']) {
22
+ return config['persistence_name'];
23
+ }
24
+ return 'leanbase_' + token;
25
+ };
26
+ /**
27
+ * Leanbase Persistence Object
28
+ * @constructor
29
+ */
30
+ export class LeanbasePersistence {
31
+ /**
32
+ * @param {LeanbaseConfig} config initial PostHog configuration
33
+ * @param {boolean=} isDisabled should persistence be disabled (e.g. because of consent management)
34
+ */
35
+ constructor(config, isDisabled) {
36
+ this._config = config;
37
+ this.props = {};
38
+ this._campaign_params_saved = false;
39
+ this._name = parseName(config);
40
+ this._storage = this._buildStorage(config);
41
+ this.load();
42
+ if (config.debug) {
43
+ logger.info('Persistence loaded', config['persistence'], { ...this.props });
44
+ }
45
+ this.update_config(config, config, isDisabled);
46
+ this.save();
47
+ }
48
+ /**
49
+ * Returns whether persistence is disabled. Only available in SDKs > 1.257.1. Do not use on extensions, otherwise
50
+ * it'll break backwards compatibility for any version before 1.257.1.
51
+ */
52
+ isDisabled() {
53
+ return !!this._disabled;
54
+ }
55
+ _buildStorage(config) {
56
+ if (CASE_INSENSITIVE_PERSISTENCE_TYPES.indexOf(config['persistence'].toLowerCase()) === -1) {
57
+ logger.info('Unknown persistence type ' + config['persistence'] + '; falling back to localStorage+cookie');
58
+ config['persistence'] = 'localStorage+cookie';
59
+ }
60
+ let store;
61
+ const storage_type = config['persistence'].toLowerCase();
62
+ if (storage_type === 'localstorage' && localStore._is_supported()) {
63
+ store = localStore;
64
+ }
65
+ else if (storage_type === 'localstorage+cookie' && localPlusCookieStore._is_supported()) {
66
+ store = localPlusCookieStore;
67
+ }
68
+ else if (storage_type === 'sessionstorage' && sessionStore._is_supported()) {
69
+ store = sessionStore;
70
+ }
71
+ else if (storage_type === 'memory') {
72
+ store = memoryStore;
73
+ }
74
+ else if (storage_type === 'cookie') {
75
+ store = cookieStore;
76
+ }
77
+ else if (localPlusCookieStore._is_supported()) {
78
+ store = localPlusCookieStore;
79
+ }
80
+ else {
81
+ store = cookieStore;
82
+ }
83
+ return store;
84
+ }
85
+ properties() {
86
+ const p = {};
87
+ // Filter out reserved properties
88
+ each(this.props, function (v, k) {
89
+ if (k === ENABLED_FEATURE_FLAGS && isObject(v)) {
90
+ const keys = Object.keys(v);
91
+ for (let i = 0; i < keys.length; i++) {
92
+ p[`$feature/${keys[i]}`] = v[keys[i]];
93
+ }
94
+ }
95
+ else if (!include(PERSISTENCE_RESERVED_PROPERTIES, k)) {
96
+ p[k] = v;
97
+ }
98
+ });
99
+ return p;
100
+ }
101
+ load() {
102
+ if (this._disabled) {
103
+ return;
104
+ }
105
+ const entry = this._storage._parse(this._name);
106
+ if (entry) {
107
+ this.props = extend({}, entry);
108
+ }
109
+ }
110
+ /**
111
+ * NOTE: Saving frequently causes issues with Recordings and Consent Management Platform (CMP) tools which
112
+ * observe cookie changes, and modify their UI, often causing infinite loops.
113
+ * As such callers of this should ideally check that the data has changed beforehand
114
+ */
115
+ save() {
116
+ if (this._disabled) {
117
+ return;
118
+ }
119
+ this._storage._set(this._name, this.props, this._expire_days, this._cross_subdomain, this._secure, this._config.debug);
120
+ }
121
+ remove() {
122
+ this._storage._remove(this._name, false);
123
+ this._storage._remove(this._name, true);
124
+ }
125
+ clear() {
126
+ this.remove();
127
+ this.props = {};
128
+ }
129
+ /**
130
+ * @param {Object} props
131
+ * @param {*=} default_value
132
+ * @param {number=} days
133
+ */
134
+ register_once(props, default_value, days) {
135
+ if (isObject(props)) {
136
+ if (isUndefined(default_value)) {
137
+ default_value = 'None';
138
+ }
139
+ this._expire_days = isUndefined(days) ? this._default_expiry : days;
140
+ let hasChanges = false;
141
+ each(props, (val, prop) => {
142
+ if (!this.props.hasOwnProperty(prop) || this.props[prop] === default_value) {
143
+ this.props[prop] = val;
144
+ hasChanges = true;
145
+ }
146
+ });
147
+ if (hasChanges) {
148
+ this.save();
149
+ return true;
150
+ }
151
+ }
152
+ return false;
153
+ }
154
+ /**
155
+ * @param {Object} props
156
+ * @param {number=} days
157
+ */
158
+ register(props, days) {
159
+ if (isObject(props)) {
160
+ this._expire_days = isUndefined(days) ? this._default_expiry : days;
161
+ let hasChanges = false;
162
+ each(props, (val, prop) => {
163
+ if (props.hasOwnProperty(prop) && this.props[prop] !== val) {
164
+ this.props[prop] = val;
165
+ hasChanges = true;
166
+ }
167
+ });
168
+ if (hasChanges) {
169
+ this.save();
170
+ return true;
171
+ }
172
+ }
173
+ return false;
174
+ }
175
+ unregister(prop) {
176
+ if (prop in this.props) {
177
+ delete this.props[prop];
178
+ this.save();
179
+ }
180
+ }
181
+ update_campaign_params() {
182
+ if (!this._campaign_params_saved) {
183
+ const campaignParams = getCampaignParams(this._config.custom_campaign_params, this._config.mask_personal_data_properties, this._config.custom_personal_data_properties);
184
+ if (!isEmptyObject(stripEmptyProperties(campaignParams))) {
185
+ this.register(campaignParams);
186
+ }
187
+ this._campaign_params_saved = true;
188
+ }
189
+ }
190
+ update_search_keyword() {
191
+ this.register(getSearchInfo());
192
+ }
193
+ update_referrer_info() {
194
+ this.register_once(getReferrerInfo(), undefined);
195
+ }
196
+ set_initial_person_info() {
197
+ if (this.props[INITIAL_CAMPAIGN_PARAMS] || this.props[INITIAL_REFERRER_INFO]) {
198
+ return;
199
+ }
200
+ this.register_once({
201
+ [INITIAL_PERSON_INFO]: getPersonInfo(this._config.mask_personal_data_properties, this._config.custom_personal_data_properties),
202
+ }, undefined);
203
+ }
204
+ get_initial_props() {
205
+ const p = {};
206
+ each([INITIAL_REFERRER_INFO, INITIAL_CAMPAIGN_PARAMS], (key) => {
207
+ const initialReferrerInfo = this.props[key];
208
+ if (initialReferrerInfo) {
209
+ each(initialReferrerInfo, function (v, k) {
210
+ p['$initial_' + stripLeadingDollar(k)] = v;
211
+ });
212
+ }
213
+ });
214
+ const initialPersonInfo = this.props[INITIAL_PERSON_INFO];
215
+ if (initialPersonInfo) {
216
+ const initialPersonProps = getInitialPersonPropsFromInfo(initialPersonInfo);
217
+ extend(p, initialPersonProps);
218
+ }
219
+ return p;
220
+ }
221
+ safe_merge(props) {
222
+ each(this.props, function (val, prop) {
223
+ if (!(prop in props)) {
224
+ props[prop] = val;
225
+ }
226
+ });
227
+ return props;
228
+ }
229
+ update_config(config, oldConfig, isDisabled) {
230
+ this._default_expiry = this._expire_days = config['cookie_expiration'];
231
+ this.set_disabled(config['disable_persistence'] || !!isDisabled);
232
+ this.set_cross_subdomain(config['cross_subdomain_cookie']);
233
+ this.set_secure(config['secure_cookie']);
234
+ if (config.persistence !== oldConfig.persistence) {
235
+ const newStore = this._buildStorage(config);
236
+ const props = this.props;
237
+ this.clear();
238
+ this._storage = newStore;
239
+ this.props = props;
240
+ this.save();
241
+ }
242
+ }
243
+ set_disabled(disabled) {
244
+ this._disabled = disabled;
245
+ if (this._disabled) {
246
+ return this.remove();
247
+ }
248
+ this.save();
249
+ }
250
+ set_cross_subdomain(cross_subdomain) {
251
+ if (cross_subdomain !== this._cross_subdomain) {
252
+ this._cross_subdomain = cross_subdomain;
253
+ this.remove();
254
+ this.save();
255
+ }
256
+ }
257
+ set_secure(secure) {
258
+ if (secure !== this._secure) {
259
+ this._secure = secure;
260
+ this.remove();
261
+ this.save();
262
+ }
263
+ }
264
+ set_event_timer(event_name, timestamp) {
265
+ const timers = this.props[EVENT_TIMERS_KEY] || {};
266
+ timers[event_name] = timestamp;
267
+ this.props[EVENT_TIMERS_KEY] = timers;
268
+ this.save();
269
+ }
270
+ remove_event_timer(event_name) {
271
+ const timers = this.props[EVENT_TIMERS_KEY] || {};
272
+ const timestamp = timers[event_name];
273
+ if (!isUndefined(timestamp)) {
274
+ delete this.props[EVENT_TIMERS_KEY][event_name];
275
+ this.save();
276
+ }
277
+ return timestamp;
278
+ }
279
+ get_property(prop) {
280
+ return this.props[prop];
281
+ }
282
+ set_property(prop, to) {
283
+ this.props[prop] = to;
284
+ this.save();
285
+ }
286
+ }
287
+ //# sourceMappingURL=leanbase-persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leanbase-persistence.js","sourceRoot":"","sources":["../src/leanbase-persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { PostHogCore } from '@posthog/core';
2
+ import type { PostHogEventProperties, PostHogFetchOptions, PostHogFetchResponse, PostHogPersistedProperty } from '@posthog/core';
3
+ import { LeanbaseConfig, LeanbasegCaptureOptions as LeanbaseCaptureOptions, RemoteConfig, Properties } from './types';
4
+ import { LeanbasePersistence } from './leanbase-persistence';
5
+ import { Autocapture } from './autocapture';
6
+ import { SessionIdManager } from './sessionid';
7
+ import { SessionPropsManager } from './session-props';
8
+ import { PageViewManager } from './page-view';
9
+ import { ScrollManager } from './scroll-manager';
10
+ import { ConsentManager } from './consent';
11
+ export declare class Leanbase extends PostHogCore {
12
+ config: LeanbaseConfig;
13
+ scrollManager: ScrollManager;
14
+ pageViewManager: PageViewManager;
15
+ consent: ConsentManager;
16
+ replayAutocapture?: Autocapture;
17
+ persistence?: LeanbasePersistence;
18
+ sessionPersistence?: LeanbasePersistence;
19
+ sessionManager?: SessionIdManager;
20
+ sessionPropsManager?: SessionPropsManager;
21
+ isRemoteConfigLoaded?: boolean;
22
+ personProcessingSetOncePropertiesSent: boolean;
23
+ isLoaded: boolean;
24
+ initialPageviewCaptured: boolean;
25
+ visibilityStateListener: (() => void) | null;
26
+ constructor(token: string, config?: Partial<LeanbaseConfig>);
27
+ init(token: string, config: Partial<LeanbaseConfig>): this;
28
+ captureInitialPageview(): void;
29
+ capturePageLeave(): void;
30
+ loadRemoteConfig(): Promise<void>;
31
+ onRemoteConfig(config: RemoteConfig): void;
32
+ fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse>;
33
+ setConfig(config: Partial<LeanbaseConfig>): void;
34
+ getLibraryId(): string;
35
+ getLibraryVersion(): string;
36
+ getCustomUserAgent(): void;
37
+ getPersistedProperty<T>(key: PostHogPersistedProperty): T | undefined;
38
+ setPersistedProperty<T>(key: PostHogPersistedProperty, value: T | null): void;
39
+ calculateEventProperties(eventName: string, eventProperties: PostHogEventProperties, timestamp: Date, uuid: string, readOnly?: boolean): Properties;
40
+ isIdentified(): boolean;
41
+ isCapturing(): boolean;
42
+ /**
43
+ * Add additional set_once properties to the event when creating a person profile. This allows us to create the
44
+ * profile with mostly-accurate properties, despite earlier events not setting them. We do this by storing them in
45
+ * persistence.
46
+ * @param dataSetOnce
47
+ */
48
+ calculateSetOnceProperties(dataSetOnce?: Properties): Properties | undefined;
49
+ capture(event: string, properties?: PostHogEventProperties, options?: LeanbaseCaptureOptions): void;
50
+ identify(distinctId?: string, properties?: PostHogEventProperties, options?: LeanbaseCaptureOptions): void;
51
+ destroy(): void;
52
+ private _isPersistenceDisabled;
53
+ }