posthog-js 1.148.2 → 1.149.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.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.148.2",
3
+ "version": "1.149.0",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",
@@ -182,7 +182,7 @@ var PostHogPersistence = /** @class */ (function () {
182
182
  this.register(Info.searchInfo());
183
183
  };
184
184
  PostHogPersistence.prototype.update_referrer_info = function () {
185
- this.register(Info.referrerInfo());
185
+ this.register_once(Info.referrerInfo(), undefined);
186
186
  };
187
187
  PostHogPersistence.prototype.set_initial_person_info = function () {
188
188
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"posthog-persistence.js","sourceRoot":"","sources":["../../src/posthog-persistence.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint camelcase: \"off\" */\n\nimport { each, extend, include, stripEmptyProperties, stripLeadingDollar } from './utils'\nimport { cookieStore, localPlusCookieStore, localStore, memoryStore, sessionStore } from './storage'\nimport { PersistentStore, PostHogConfig, Properties } from './types'\nimport {\n ENABLED_FEATURE_FLAGS,\n EVENT_TIMERS_KEY,\n INITIAL_CAMPAIGN_PARAMS,\n INITIAL_PERSON_INFO,\n INITIAL_REFERRER_INFO,\n PERSISTENCE_RESERVED_PROPERTIES,\n} from './constants'\n\nimport { isObject, isUndefined } from './utils/type-utils'\nimport { Info } from './utils/event-utils'\nimport { logger } from './utils/logger'\n\nconst CASE_INSENSITIVE_PERSISTENCE_TYPES: readonly Lowercase<PostHogConfig['persistence']>[] = [\n 'cookie',\n 'localstorage',\n 'localstorage+cookie',\n 'sessionstorage',\n 'memory',\n]\n\nconst parseName = (config: PostHogConfig): string => {\n let token = ''\n if (config['token']) {\n token = config['token'].replace(/\\+/g, 'PL').replace(/\\//g, 'SL').replace(/=/g, 'EQ')\n }\n\n if (config['persistence_name']) {\n return 'ph_' + config['persistence_name']\n } else {\n return 'ph_' + token + '_posthog'\n }\n}\n\n/**\n * PostHog Persistence Object\n * @constructor\n */\nexport class PostHogPersistence {\n private config: PostHogConfig\n props: Properties\n storage: PersistentStore\n campaign_params_saved: boolean\n name: string\n disabled: boolean | undefined\n secure: boolean | undefined\n expire_days: number | undefined\n default_expiry: number | undefined\n cross_subdomain: boolean | undefined\n\n constructor(config: PostHogConfig) {\n this.config = config\n this.props = {}\n this.campaign_params_saved = false\n this.name = parseName(config)\n this.storage = this.buildStorage(config)\n this.load()\n this.update_config(config, config)\n this.save()\n }\n\n private buildStorage(config: PostHogConfig) {\n if (\n CASE_INSENSITIVE_PERSISTENCE_TYPES.indexOf(\n config['persistence'].toLowerCase() as Lowercase<PostHogConfig['persistence']>\n ) === -1\n ) {\n logger.critical(\n 'Unknown persistence type ' + config['persistence'] + '; falling back to localStorage+cookie'\n )\n config['persistence'] = 'localStorage+cookie'\n }\n\n let store: PersistentStore\n // We handle storage type in a case-insensitive way for backwards compatibility\n const storage_type = config['persistence'].toLowerCase() as Lowercase<PostHogConfig['persistence']>\n if (storage_type === 'localstorage' && localStore.is_supported()) {\n store = localStore\n } else if (storage_type === 'localstorage+cookie' && localPlusCookieStore.is_supported()) {\n store = localPlusCookieStore\n } else if (storage_type === 'sessionstorage' && sessionStore.is_supported()) {\n store = sessionStore\n } else if (storage_type === 'memory') {\n store = memoryStore\n } else if (storage_type === 'cookie') {\n store = cookieStore\n } else if (localPlusCookieStore.is_supported()) {\n // selected storage type wasn't supported, fallback to 'localstorage+cookie' if possible\n store = localPlusCookieStore\n } else {\n store = cookieStore\n }\n\n return store\n }\n\n properties(): Properties {\n const p: Properties = {}\n // Filter out reserved properties\n each(this.props, function (v, k) {\n if (k === ENABLED_FEATURE_FLAGS && isObject(v)) {\n const keys = Object.keys(v)\n for (let i = 0; i < keys.length; i++) {\n p[`$feature/${keys[i]}`] = v[keys[i]]\n }\n } else if (!include(PERSISTENCE_RESERVED_PROPERTIES, k)) {\n p[k] = v\n }\n })\n return p\n }\n\n load(): void {\n if (this.disabled) {\n return\n }\n\n const entry = this.storage.parse(this.name)\n\n if (entry) {\n this.props = extend({}, entry)\n }\n }\n\n /**\n * NOTE: Saving frequently causes issues with Recordings and Consent Management Platform (CMP) tools which\n * observe cookie changes, and modify their UI, often causing infinite loops.\n * As such callers of this should ideally check that the data has changed beforehand\n */\n save(): void {\n if (this.disabled) {\n return\n }\n this.storage.set(this.name, this.props, this.expire_days, this.cross_subdomain, this.secure)\n }\n\n remove(): void {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false)\n this.storage.remove(this.name, true)\n }\n\n // removes the storage entry and deletes all loaded data\n // forced name for tests\n\n clear(): void {\n this.remove()\n this.props = {}\n }\n\n /**\n * @param {Object} props\n * @param {*=} default_value\n * @param {number=} days\n */\n\n register_once(props: Properties, default_value: any, days?: number): boolean {\n if (isObject(props)) {\n if (isUndefined(default_value)) {\n default_value = 'None'\n }\n this.expire_days = isUndefined(days) ? this.default_expiry : days\n\n let hasChanges = false\n\n each(props, (val, prop) => {\n if (!this.props.hasOwnProperty(prop) || this.props[prop] === default_value) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n /**\n * @param {Object} props\n * @param {number=} days\n */\n\n register(props: Properties, days?: number): boolean {\n if (isObject(props)) {\n this.expire_days = isUndefined(days) ? this.default_expiry : days\n\n let hasChanges = false\n\n each(props, (val, prop) => {\n if (props.hasOwnProperty(prop) && this.props[prop] !== val) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n unregister(prop: string): void {\n if (prop in this.props) {\n delete this.props[prop]\n this.save()\n }\n }\n\n update_campaign_params(): void {\n if (!this.campaign_params_saved) {\n this.register(Info.campaignParams(this.config.custom_campaign_params))\n this.campaign_params_saved = true\n }\n }\n update_search_keyword(): void {\n this.register(Info.searchInfo())\n }\n\n update_referrer_info(): void {\n this.register(Info.referrerInfo())\n }\n\n set_initial_person_info(): void {\n if (this.props[INITIAL_CAMPAIGN_PARAMS] || this.props[INITIAL_REFERRER_INFO]) {\n // the user has initial properties stored the previous way, don't save them again\n return\n }\n\n this.register_once(\n {\n [INITIAL_PERSON_INFO]: Info.initialPersonInfo(),\n },\n undefined\n )\n }\n\n get_referrer_info(): Properties {\n return stripEmptyProperties({\n $referrer: this['props']['$referrer'],\n $referring_domain: this['props']['$referring_domain'],\n })\n }\n\n get_initial_props(): Properties {\n const p: Properties = {}\n\n // this section isn't written to anymore, but we should keep reading from it for backwards compatibility\n // for a while\n each([INITIAL_REFERRER_INFO, INITIAL_CAMPAIGN_PARAMS], (key) => {\n const initialReferrerInfo = this.props[key]\n if (initialReferrerInfo) {\n each(initialReferrerInfo, function (v, k) {\n p['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n })\n const initialPersonInfo = this.props[INITIAL_PERSON_INFO]\n if (initialPersonInfo) {\n const initialPersonProps = Info.initialPersonPropsFromInfo(initialPersonInfo)\n extend(p, initialPersonProps)\n }\n\n return p\n }\n\n // safely fills the passed in object with stored properties,\n // does not override any properties defined in both\n // returns the passed in object\n\n safe_merge(props: Properties): Properties {\n each(this.props, function (val, prop) {\n if (!(prop in props)) {\n props[prop] = val\n }\n })\n\n return props\n }\n\n update_config(config: PostHogConfig, oldConfig: PostHogConfig): void {\n this.default_expiry = this.expire_days = config['cookie_expiration']\n this.set_disabled(config['disable_persistence'])\n this.set_cross_subdomain(config['cross_subdomain_cookie'])\n this.set_secure(config['secure_cookie'])\n\n if (config.persistence !== oldConfig.persistence) {\n // If the persistence type has changed, we need to migrate the data.\n const newStore = this.buildStorage(config)\n const props = this.props\n\n // clear the old store\n this.clear()\n this.storage = newStore\n this.props = props\n\n this.save()\n }\n }\n\n set_disabled(disabled: boolean): void {\n this.disabled = disabled\n if (this.disabled) {\n this.remove()\n } else {\n this.save()\n }\n }\n\n set_cross_subdomain(cross_subdomain: boolean): void {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain\n this.remove()\n this.save()\n }\n }\n\n get_cross_subdomain(): boolean {\n return !!this.cross_subdomain\n }\n\n set_secure(secure: boolean): void {\n if (secure !== this.secure) {\n this.secure = secure\n this.remove()\n this.save()\n }\n }\n\n set_event_timer(event_name: string, timestamp: number): void {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n timers[event_name] = timestamp\n this.props[EVENT_TIMERS_KEY] = timers\n this.save()\n }\n\n remove_event_timer(event_name: string): number {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n const timestamp = timers[event_name]\n if (!isUndefined(timestamp)) {\n delete this.props[EVENT_TIMERS_KEY][event_name]\n this.save()\n }\n return timestamp\n }\n\n get_property(prop: string): any {\n return this.props[prop]\n }\n\n set_property(prop: string, to: any): void {\n this.props[prop] = to\n this.save()\n }\n}\n"]}
1
+ {"version":3,"file":"posthog-persistence.js","sourceRoot":"","sources":["../../src/posthog-persistence.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint camelcase: \"off\" */\n\nimport { each, extend, include, stripEmptyProperties, stripLeadingDollar } from './utils'\nimport { cookieStore, localPlusCookieStore, localStore, memoryStore, sessionStore } from './storage'\nimport { PersistentStore, PostHogConfig, Properties } from './types'\nimport {\n ENABLED_FEATURE_FLAGS,\n EVENT_TIMERS_KEY,\n INITIAL_CAMPAIGN_PARAMS,\n INITIAL_PERSON_INFO,\n INITIAL_REFERRER_INFO,\n PERSISTENCE_RESERVED_PROPERTIES,\n} from './constants'\n\nimport { isObject, isUndefined } from './utils/type-utils'\nimport { Info } from './utils/event-utils'\nimport { logger } from './utils/logger'\n\nconst CASE_INSENSITIVE_PERSISTENCE_TYPES: readonly Lowercase<PostHogConfig['persistence']>[] = [\n 'cookie',\n 'localstorage',\n 'localstorage+cookie',\n 'sessionstorage',\n 'memory',\n]\n\nconst parseName = (config: PostHogConfig): string => {\n let token = ''\n if (config['token']) {\n token = config['token'].replace(/\\+/g, 'PL').replace(/\\//g, 'SL').replace(/=/g, 'EQ')\n }\n\n if (config['persistence_name']) {\n return 'ph_' + config['persistence_name']\n } else {\n return 'ph_' + token + '_posthog'\n }\n}\n\n/**\n * PostHog Persistence Object\n * @constructor\n */\nexport class PostHogPersistence {\n private config: PostHogConfig\n props: Properties\n storage: PersistentStore\n campaign_params_saved: boolean\n name: string\n disabled: boolean | undefined\n secure: boolean | undefined\n expire_days: number | undefined\n default_expiry: number | undefined\n cross_subdomain: boolean | undefined\n\n constructor(config: PostHogConfig) {\n this.config = config\n this.props = {}\n this.campaign_params_saved = false\n this.name = parseName(config)\n this.storage = this.buildStorage(config)\n this.load()\n this.update_config(config, config)\n this.save()\n }\n\n private buildStorage(config: PostHogConfig) {\n if (\n CASE_INSENSITIVE_PERSISTENCE_TYPES.indexOf(\n config['persistence'].toLowerCase() as Lowercase<PostHogConfig['persistence']>\n ) === -1\n ) {\n logger.critical(\n 'Unknown persistence type ' + config['persistence'] + '; falling back to localStorage+cookie'\n )\n config['persistence'] = 'localStorage+cookie'\n }\n\n let store: PersistentStore\n // We handle storage type in a case-insensitive way for backwards compatibility\n const storage_type = config['persistence'].toLowerCase() as Lowercase<PostHogConfig['persistence']>\n if (storage_type === 'localstorage' && localStore.is_supported()) {\n store = localStore\n } else if (storage_type === 'localstorage+cookie' && localPlusCookieStore.is_supported()) {\n store = localPlusCookieStore\n } else if (storage_type === 'sessionstorage' && sessionStore.is_supported()) {\n store = sessionStore\n } else if (storage_type === 'memory') {\n store = memoryStore\n } else if (storage_type === 'cookie') {\n store = cookieStore\n } else if (localPlusCookieStore.is_supported()) {\n // selected storage type wasn't supported, fallback to 'localstorage+cookie' if possible\n store = localPlusCookieStore\n } else {\n store = cookieStore\n }\n\n return store\n }\n\n properties(): Properties {\n const p: Properties = {}\n // Filter out reserved properties\n each(this.props, function (v, k) {\n if (k === ENABLED_FEATURE_FLAGS && isObject(v)) {\n const keys = Object.keys(v)\n for (let i = 0; i < keys.length; i++) {\n p[`$feature/${keys[i]}`] = v[keys[i]]\n }\n } else if (!include(PERSISTENCE_RESERVED_PROPERTIES, k)) {\n p[k] = v\n }\n })\n return p\n }\n\n load(): void {\n if (this.disabled) {\n return\n }\n\n const entry = this.storage.parse(this.name)\n\n if (entry) {\n this.props = extend({}, entry)\n }\n }\n\n /**\n * NOTE: Saving frequently causes issues with Recordings and Consent Management Platform (CMP) tools which\n * observe cookie changes, and modify their UI, often causing infinite loops.\n * As such callers of this should ideally check that the data has changed beforehand\n */\n save(): void {\n if (this.disabled) {\n return\n }\n this.storage.set(this.name, this.props, this.expire_days, this.cross_subdomain, this.secure)\n }\n\n remove(): void {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false)\n this.storage.remove(this.name, true)\n }\n\n // removes the storage entry and deletes all loaded data\n // forced name for tests\n\n clear(): void {\n this.remove()\n this.props = {}\n }\n\n /**\n * @param {Object} props\n * @param {*=} default_value\n * @param {number=} days\n */\n\n register_once(props: Properties, default_value: any, days?: number): boolean {\n if (isObject(props)) {\n if (isUndefined(default_value)) {\n default_value = 'None'\n }\n this.expire_days = isUndefined(days) ? this.default_expiry : days\n\n let hasChanges = false\n\n each(props, (val, prop) => {\n if (!this.props.hasOwnProperty(prop) || this.props[prop] === default_value) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n /**\n * @param {Object} props\n * @param {number=} days\n */\n\n register(props: Properties, days?: number): boolean {\n if (isObject(props)) {\n this.expire_days = isUndefined(days) ? this.default_expiry : days\n\n let hasChanges = false\n\n each(props, (val, prop) => {\n if (props.hasOwnProperty(prop) && this.props[prop] !== val) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n unregister(prop: string): void {\n if (prop in this.props) {\n delete this.props[prop]\n this.save()\n }\n }\n\n update_campaign_params(): void {\n if (!this.campaign_params_saved) {\n this.register(Info.campaignParams(this.config.custom_campaign_params))\n this.campaign_params_saved = true\n }\n }\n update_search_keyword(): void {\n this.register(Info.searchInfo())\n }\n\n update_referrer_info(): void {\n this.register_once(Info.referrerInfo(), undefined)\n }\n\n set_initial_person_info(): void {\n if (this.props[INITIAL_CAMPAIGN_PARAMS] || this.props[INITIAL_REFERRER_INFO]) {\n // the user has initial properties stored the previous way, don't save them again\n return\n }\n\n this.register_once(\n {\n [INITIAL_PERSON_INFO]: Info.initialPersonInfo(),\n },\n undefined\n )\n }\n\n get_referrer_info(): Properties {\n return stripEmptyProperties({\n $referrer: this['props']['$referrer'],\n $referring_domain: this['props']['$referring_domain'],\n })\n }\n\n get_initial_props(): Properties {\n const p: Properties = {}\n\n // this section isn't written to anymore, but we should keep reading from it for backwards compatibility\n // for a while\n each([INITIAL_REFERRER_INFO, INITIAL_CAMPAIGN_PARAMS], (key) => {\n const initialReferrerInfo = this.props[key]\n if (initialReferrerInfo) {\n each(initialReferrerInfo, function (v, k) {\n p['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n })\n const initialPersonInfo = this.props[INITIAL_PERSON_INFO]\n if (initialPersonInfo) {\n const initialPersonProps = Info.initialPersonPropsFromInfo(initialPersonInfo)\n extend(p, initialPersonProps)\n }\n\n return p\n }\n\n // safely fills the passed in object with stored properties,\n // does not override any properties defined in both\n // returns the passed in object\n\n safe_merge(props: Properties): Properties {\n each(this.props, function (val, prop) {\n if (!(prop in props)) {\n props[prop] = val\n }\n })\n\n return props\n }\n\n update_config(config: PostHogConfig, oldConfig: PostHogConfig): void {\n this.default_expiry = this.expire_days = config['cookie_expiration']\n this.set_disabled(config['disable_persistence'])\n this.set_cross_subdomain(config['cross_subdomain_cookie'])\n this.set_secure(config['secure_cookie'])\n\n if (config.persistence !== oldConfig.persistence) {\n // If the persistence type has changed, we need to migrate the data.\n const newStore = this.buildStorage(config)\n const props = this.props\n\n // clear the old store\n this.clear()\n this.storage = newStore\n this.props = props\n\n this.save()\n }\n }\n\n set_disabled(disabled: boolean): void {\n this.disabled = disabled\n if (this.disabled) {\n this.remove()\n } else {\n this.save()\n }\n }\n\n set_cross_subdomain(cross_subdomain: boolean): void {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain\n this.remove()\n this.save()\n }\n }\n\n get_cross_subdomain(): boolean {\n return !!this.cross_subdomain\n }\n\n set_secure(secure: boolean): void {\n if (secure !== this.secure) {\n this.secure = secure\n this.remove()\n this.save()\n }\n }\n\n set_event_timer(event_name: string, timestamp: number): void {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n timers[event_name] = timestamp\n this.props[EVENT_TIMERS_KEY] = timers\n this.save()\n }\n\n remove_event_timer(event_name: string): number {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n const timestamp = timers[event_name]\n if (!isUndefined(timestamp)) {\n delete this.props[EVENT_TIMERS_KEY][event_name]\n this.save()\n }\n return timestamp\n }\n\n get_property(prop: string): any {\n return this.props[prop]\n }\n\n set_property(prop: string, to: any): void {\n this.props[prop] = to\n this.save()\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.148.2",
3
+ "version": "1.149.0",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",