@posthog/react 1.10.3 → 1.10.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../node_modules/.pnpm/@rollup+plugin-typescript@12.1.4_rollup@4.53.3_tslib@2.8.1_typescript@5.8.2/node_modules/tslib/tslib.es6.js","../../../src/context/posthog-default.ts","../../../src/context/PostHogContext.ts","../../../src/hooks/usePostHog.ts","../../../src/hooks/useThumbSurvey.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,null,null],"names":["createContext","useContext","SurveyPosition","useState","useMemo","useRef","useCallback","SurveyEventName","SurveyEventProperties","useEffect","DisplaySurveyType"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@rollup/plugin-typescript/12.3.0/a49171445b2c3f3d96d891ff6721d23b8de386de8d70203bcc74b5f1d2e9ddd2/node_modules/tslib/tslib.es6.js","../../../src/context/posthog-default.ts","../../../src/context/PostHogContext.ts","../../../src/hooks/usePostHog.ts","../../../src/hooks/useThumbSurvey.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,null,null],"names":["createContext","useContext","SurveyPosition","useState","useMemo","useRef","useCallback","SurveyEventName","SurveyEventProperties","useEffect","DisplaySurveyType"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posthog/react",
3
- "version": "1.10.3",
3
+ "version": "1.10.5",
4
4
  "bugs": {
5
5
  "url": "https://github.com/PostHog/posthog-js/issues"
6
6
  },
@@ -36,8 +36,6 @@
36
36
  "@babel/preset-env": "^7.27.1",
37
37
  "@babel/preset-react": "^7.27.1",
38
38
  "@babel/preset-typescript": "^7.27.1",
39
- "@rollup/plugin-inject": "^4.0.2",
40
- "@rollup/plugin-replace": "^2.3.4",
41
39
  "@testing-library/dom": "^10.4.1",
42
40
  "@testing-library/jest-dom": "^6.9.1",
43
41
  "@testing-library/react": "^16.3.0",
@@ -49,12 +47,12 @@
49
47
  "react": "^19.2.1",
50
48
  "react-dom": "^19.2.1",
51
49
  "react-test-renderer": "^19.2.1",
52
- "rollup": "^2.35.1",
50
+ "rollup": "^4.53.3",
53
51
  "rollup-plugin-copy": "^3.5.0",
54
52
  "tslib": "^2.5.0",
55
53
  "typescript": "5.8.2",
56
- "posthog-js": "^1.391.8",
57
- "@posthog-tooling/rollup-utils": "1.1.1"
54
+ "@posthog-tooling/rollup-utils": "1.1.1",
55
+ "posthog-js": "^1.419.2"
58
56
  },
59
57
  "scripts": {
60
58
  "clean": "rimraf dist",
@@ -0,0 +1,23 @@
1
+ import { renderHook } from '@testing-library/react'
2
+
3
+ const mockPostHogInstance = {
4
+ capture: jest.fn(),
5
+ isFeatureEnabled: jest.fn(),
6
+ }
7
+
8
+ jest.mock('posthog-js', () => ({
9
+ default: mockPostHogInstance,
10
+ posthog: mockPostHogInstance,
11
+ }))
12
+
13
+ describe('UMD bundle', () => {
14
+ it('unwraps the posthog-js CommonJS namespace for the default instance', () => {
15
+ const { usePostHog } = jest.requireActual('../../dist/umd/index.js')
16
+
17
+ const { result } = renderHook(() => usePostHog())
18
+
19
+ expect(result.current).toBe(mockPostHogInstance)
20
+ expect(result.current.capture).toBe(mockPostHogInstance.capture)
21
+ expect(result.current.isFeatureEnabled).toBe(mockPostHogInstance.isFeatureEnabled)
22
+ })
23
+ })
@@ -1,4 +1,4 @@
1
- import React, { Children, useCallback, useRef, JSX } from 'react'
1
+ import React, { Children, ReactElement, useCallback, useRef } from 'react'
2
2
  import { usePostHog } from '../hooks'
3
3
  import { VisibilityAndClickTracker } from './internal/VisibilityAndClickTracker'
4
4
 
@@ -21,7 +21,7 @@ function TrackedChild({
21
21
  name?: string
22
22
  properties?: Record<string, any>
23
23
  observerOptions?: IntersectionObserverInit
24
- }): JSX.Element {
24
+ }): ReactElement<any, any> {
25
25
  const trackedRef = useRef(false)
26
26
  const posthog = usePostHog()
27
27
 
@@ -82,7 +82,7 @@ export function PostHogCaptureOnViewed({
82
82
  trackAllChildren,
83
83
  children,
84
84
  ...props
85
- }: PostHogCaptureOnViewedProps): JSX.Element {
85
+ }: PostHogCaptureOnViewedProps): ReactElement<any, any> {
86
86
  const trackedRef = useRef(false)
87
87
  const posthog = usePostHog()
88
88
 
@@ -1,5 +1,6 @@
1
1
  import React, { FunctionComponent } from 'react'
2
2
  import { PostHogContext } from '../context'
3
+ import { addReactComponentStack } from '../helpers/react-component-stack'
3
4
  import { isFunction } from '../utils/type-utils'
4
5
 
5
6
  export type Properties = Record<string, any>
@@ -13,7 +14,7 @@ export type PostHogErrorBoundaryFallbackProps = {
13
14
  export type PostHogErrorBoundaryProps = {
14
15
  children?: React.ReactNode | (() => React.ReactNode)
15
16
  fallback?: React.ReactNode | FunctionComponent<PostHogErrorBoundaryFallbackProps>
16
- additionalProperties?: Properties | ((error: unknown) => Properties)
17
+ additionalProperties?: Properties | ((error: unknown, errorInfo: React.ErrorInfo) => Properties)
17
18
  }
18
19
 
19
20
  type PostHogErrorBoundaryState = {
@@ -43,18 +44,16 @@ export class PostHogErrorBoundary extends React.Component<PostHogErrorBoundaryPr
43
44
  }
44
45
 
45
46
  componentDidCatch(error: unknown, errorInfo: React.ErrorInfo) {
46
- //eslint-disable-next-line react/prop-types
47
47
  const { additionalProperties } = this.props
48
48
  let currentProperties
49
49
  if (isFunction(additionalProperties)) {
50
- currentProperties = additionalProperties(error)
50
+ currentProperties = additionalProperties(error, errorInfo)
51
51
  } else if (typeof additionalProperties === 'object') {
52
52
  currentProperties = additionalProperties
53
53
  }
54
54
  const { client } = this.context
55
- const exceptionEvent = client.captureException(error, currentProperties)
56
-
57
55
  const { componentStack } = errorInfo
56
+ const exceptionEvent = client.captureException(addReactComponentStack(error, componentStack), currentProperties)
58
57
  this.setState({
59
58
  error,
60
59
  componentStack: componentStack ?? null,
@@ -63,7 +62,6 @@ export class PostHogErrorBoundary extends React.Component<PostHogErrorBoundaryPr
63
62
  }
64
63
 
65
64
  public render(): React.ReactNode {
66
- //eslint-disable-next-line react/prop-types
67
65
  const { children, fallback } = this.props
68
66
  const state = this.state
69
67
 
@@ -1,5 +1,5 @@
1
1
  import { useFeatureFlagPayload, useFeatureFlagVariantKey, usePostHog } from '../hooks'
2
- import React, { JSX } from 'react'
2
+ import React, { ReactElement } from 'react'
3
3
  import { PostHog } from '../context'
4
4
  import { isFunction, isUndefined } from '../utils/type-utils'
5
5
  import { VisibilityAndClickTrackers } from './internal/VisibilityAndClickTrackers'
@@ -23,7 +23,7 @@ export function PostHogFeature({
23
23
  trackInteraction,
24
24
  trackView,
25
25
  ...props
26
- }: PostHogFeatureProps): JSX.Element | null {
26
+ }: PostHogFeatureProps): ReactElement<any, any> | null {
27
27
  const payload = useFeatureFlagPayload(flag)
28
28
  const variant = useFeatureFlagVariantKey(flag)
29
29
  const posthog = usePostHog()
@@ -24,7 +24,8 @@ describe('PostHogErrorBoundary component', () => {
24
24
 
25
25
  it('should call captureException with error message', () => {
26
26
  const { container } = renderWithError({ message: 'Test error', fallback: <div></div> })
27
- expect(posthog.captureException).toHaveBeenCalledWith(new Error('Test error'), undefined)
27
+ expect(posthog.captureException).toHaveBeenCalledWith(expect.any(Error), undefined)
28
+ expectCapturedReactError()
28
29
  expect(container.innerHTML).toBe('<div></div>')
29
30
  expect(console.error).toHaveBeenCalledTimes(1)
30
31
  expect((console.error as any).mock.calls[0][1].message).toEqual('Test error')
@@ -32,14 +33,16 @@ describe('PostHogErrorBoundary component', () => {
32
33
 
33
34
  it('should warn user when fallback is null', () => {
34
35
  const { container } = renderWithError({ fallback: null })
35
- expect(posthog.captureException).toHaveBeenCalledWith(new Error('Error'), undefined)
36
+ expect(posthog.captureException).toHaveBeenCalledWith(expect.any(Error), undefined)
37
+ expectCapturedReactError()
36
38
  expect(container.innerHTML).toBe('')
37
39
  expect(console.warn).toHaveBeenCalledWith(__POSTHOG_ERROR_MESSAGES.INVALID_FALLBACK)
38
40
  })
39
41
 
40
42
  it('should warn user when fallback is a string', () => {
41
43
  const { container } = renderWithError({ fallback: 'hello' })
42
- expect(posthog.captureException).toHaveBeenCalledWith(new Error('Error'), undefined)
44
+ expect(posthog.captureException).toHaveBeenCalledWith(expect.any(Error), undefined)
45
+ expectCapturedReactError()
43
46
  expect(container.innerHTML).toBe('')
44
47
  expect(console.warn).toHaveBeenCalledWith(__POSTHOG_ERROR_MESSAGES.INVALID_FALLBACK)
45
48
  })
@@ -47,19 +50,40 @@ describe('PostHogErrorBoundary component', () => {
47
50
  it('should add additional properties before sending event (as object)', () => {
48
51
  const props = { team_id: '1234' }
49
52
  renderWithError({ message: 'Kaboom', additionalProperties: props })
50
- expect(posthog.captureException).toHaveBeenCalledWith(new Error('Kaboom'), props)
53
+ expect(posthog.captureException).toHaveBeenCalledWith(expect.any(Error), props)
54
+ expectCapturedReactError()
51
55
  })
52
56
 
53
57
  it('should add additional properties before sending event (as function)', () => {
54
58
  const props = { team_id: '1234' }
55
59
  renderWithError({
56
60
  message: 'Kaboom',
57
- additionalProperties: (err: Error) => {
61
+ additionalProperties: (err: Error, errorInfo: React.ErrorInfo) => {
58
62
  expect(err.message).toBe('Kaboom')
63
+ expect(errorInfo.componentStack).toContain('PostHogErrorBoundary.test.tsx')
59
64
  return props
60
65
  },
61
66
  })
62
- expect(posthog.captureException).toHaveBeenCalledWith(new Error('Kaboom'), props)
67
+ expect(posthog.captureException).toHaveBeenCalledWith(expect.any(Error), props)
68
+ expectCapturedReactError()
69
+ })
70
+
71
+ it('should capture the component stack for primitive exceptions', () => {
72
+ render(
73
+ <PostHogErrorBoundary fallback={<div></div>}>
74
+ <ComponentWithUndefinedError />
75
+ </PostHogErrorBoundary>
76
+ )
77
+
78
+ expect(posthog.captureException).toHaveBeenCalledWith(expect.any(Error), undefined)
79
+ const capturedError = (posthog.captureException as jest.Mock).mock.calls[0][0]
80
+ expect(capturedError).toEqual(
81
+ expect.objectContaining({
82
+ message: 'Primitive value captured as exception: undefined',
83
+ name: 'React ErrorBoundary Error',
84
+ stack: expect.stringContaining('ComponentWithUndefinedError'),
85
+ })
86
+ )
63
87
  })
64
88
 
65
89
  it('should render children without errors', () => {
@@ -88,12 +112,39 @@ describe('captureException processing', () => {
88
112
  const captureCalls = (posthog.capture as jest.Mock).mock.calls
89
113
  expect(captureCalls.length).toBe(1)
90
114
  const exceptionList = captureCalls[0][1].$exception_list
91
- expect(exceptionList.length).toBe(1)
115
+ expect(exceptionList.length).toBe(2)
92
116
  const stacktrace = exceptionList[0].stacktrace
93
117
  expect(stacktrace.frames.length).toBeGreaterThan(20)
118
+ expect(exceptionList[1].type).toBe('React ErrorBoundary Error')
119
+ expectComponentStackFrames(exceptionList[1].stacktrace.frames, 'PostHogErrorBoundary')
120
+ })
121
+
122
+ it('should parse the component stack for primitive exceptions', () => {
123
+ render(
124
+ <PostHogErrorBoundary fallback={<div></div>}>
125
+ <ComponentWithUndefinedError />
126
+ </PostHogErrorBoundary>
127
+ )
128
+
129
+ const captureCalls = (posthog.capture as jest.Mock).mock.calls
130
+ const exceptionList = captureCalls[0][1].$exception_list
131
+ expect(exceptionList).toHaveLength(1)
132
+ expect(exceptionList[0].type).toBe('React ErrorBoundary Error')
133
+ expectComponentStackFrames(exceptionList[0].stacktrace.frames, 'ComponentWithUndefinedError')
94
134
  })
95
135
  })
96
136
 
137
+ function expectComponentStackFrames(frames: Array<{ function?: string }>, expectedFunction: string) {
138
+ expect(frames.length).toBeGreaterThan(0)
139
+ expect(frames.some((frame) => frame.function === expectedFunction)).toBe(true)
140
+ }
141
+
142
+ function expectCapturedReactError() {
143
+ const capturedError = (posthog.captureException as jest.Mock).mock.calls[0][0]
144
+ expect(capturedError.cause.name).toBe('React ErrorBoundary Error')
145
+ expect(capturedError.cause.stack).toContain('PostHogErrorBoundary.test.tsx')
146
+ }
147
+
97
148
  function mockFunction(object: any, funcName: string) {
98
149
  const originalFunc = object[funcName]
99
150
 
@@ -110,6 +161,10 @@ function ComponentWithError({ message }: { message: string }): React.ReactElemen
110
161
  throw new Error(message)
111
162
  }
112
163
 
164
+ function ComponentWithUndefinedError(): React.ReactElement {
165
+ throw undefined
166
+ }
167
+
113
168
  function RenderWithError({ message = 'Error', fallback, additionalProperties }: any) {
114
169
  return (
115
170
  <PostHogErrorBoundary fallback={fallback} additionalProperties={additionalProperties}>
@@ -1,4 +1,4 @@
1
- import React, { MouseEventHandler, useEffect, useMemo, useRef, JSX } from 'react'
1
+ import React, { MouseEventHandler, ReactElement, useEffect, useMemo, useRef } from 'react'
2
2
  import { isNull } from '../../utils/type-utils'
3
3
 
4
4
  /**
@@ -20,7 +20,7 @@ export function VisibilityAndClickTracker({
20
20
  onClick?: MouseEventHandler<HTMLDivElement>
21
21
  trackView: boolean
22
22
  options?: IntersectionObserverInit
23
- }): JSX.Element {
23
+ }): ReactElement<any, any> {
24
24
  const ref = useRef<HTMLDivElement>(null)
25
25
 
26
26
  const observerOptions = useMemo(
@@ -1,4 +1,4 @@
1
- import React, { Children, ReactNode, useCallback, useRef, JSX } from 'react'
1
+ import React, { Children, ReactElement, ReactNode, useCallback, useRef } from 'react'
2
2
  import { VisibilityAndClickTracker } from './VisibilityAndClickTracker'
3
3
 
4
4
  /**
@@ -24,7 +24,7 @@ export function VisibilityAndClickTrackers({
24
24
  options?: IntersectionObserverInit
25
25
  onInteract?: () => void
26
26
  onView?: () => void
27
- }): JSX.Element {
27
+ }): ReactElement<any, any> {
28
28
  const clickTrackedRef = useRef(false)
29
29
  const visibilityTrackedRef = useRef(false)
30
30
 
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-console */
2
2
  import type { PostHogConfig } from 'posthog-js'
3
3
 
4
- import React, { useEffect, useMemo, useRef } from 'react'
4
+ import React, { ReactElement, useEffect, useMemo, useRef } from 'react'
5
5
  import { PostHog, PostHogContext } from './PostHogContext'
6
6
  import { getDefaultPostHogInstance } from './posthog-default'
7
7
  import { isDeepEqual } from '../utils/object-utils'
@@ -39,7 +39,12 @@ type PostHogProviderProps =
39
39
  * have changed and only call `posthogJs.set_config` if they have, but it's better to
40
40
  * avoid unnecessary re-renders in the first place.
41
41
  */
42
- export function PostHogProvider({ children, client, apiKey, options }: WithOptionalChildren<PostHogProviderProps>) {
42
+ export function PostHogProvider({
43
+ children,
44
+ client,
45
+ apiKey,
46
+ options,
47
+ }: WithOptionalChildren<PostHogProviderProps>): ReactElement<any, any> {
43
48
  // Used to detect if the client was already initialized
44
49
  // This is used to prevent double initialization when running under React.StrictMode
45
50
  // We're not storing a simple boolean here because we want to be able to detect if the
@@ -1,4 +1,4 @@
1
- import React, { useMemo } from 'react'
1
+ import React, { ReactElement, useMemo } from 'react'
2
2
  import type { PostHog } from 'posthog-js'
3
3
  import { PostHogContext } from './PostHogContext'
4
4
 
@@ -8,7 +8,13 @@ import { PostHogContext } from './PostHogContext'
8
8
  * Only accepts a pre-initialized `client` instance. Does not support
9
9
  * `apiKey`/`options` props since the slim bundle has no posthog-js runtime.
10
10
  */
11
- export function PostHogProvider({ client, children }: { client: PostHog; children?: React.ReactNode }) {
11
+ export function PostHogProvider({
12
+ client,
13
+ children,
14
+ }: {
15
+ client: PostHog
16
+ children?: React.ReactNode
17
+ }): ReactElement<any, any> {
12
18
  const value = useMemo(() => ({ client, bootstrap: client.config?.bootstrap }), [client])
13
19
  return <PostHogContext.Provider value={value}>{children}</PostHogContext.Provider>
14
20
  }
@@ -0,0 +1,43 @@
1
+ import type { ErrorInfo } from 'react'
2
+ import { setupReactErrorHandler } from '../error-helpers'
3
+
4
+ describe('setupReactErrorHandler', () => {
5
+ it('captures the React component stack', () => {
6
+ const captureException = jest.fn()
7
+ const errorInfo: ErrorInfo = { componentStack: '\n in CrashingComponent' }
8
+ const handler = setupReactErrorHandler({ captureException } as any)
9
+
10
+ handler(undefined, errorInfo)
11
+
12
+ expect(captureException).toHaveBeenCalledWith(
13
+ expect.objectContaining({
14
+ message: 'Primitive value captured as exception: undefined',
15
+ name: 'React ErrorBoundary Error',
16
+ stack: errorInfo.componentStack,
17
+ })
18
+ )
19
+ })
20
+
21
+ it('appends the React component stack after existing error causes', () => {
22
+ const captureException = jest.fn()
23
+ const errorInfo: ErrorInfo = { componentStack: '\n in CrashingComponent' }
24
+ const handler = setupReactErrorHandler({ captureException } as any)
25
+ const error = new Error('outer error') as Error & { cause?: unknown }
26
+ const cause = new Error('inner error') as Error & { cause?: unknown }
27
+ const nestedCause = new Error('nested error') as Error & { cause?: unknown }
28
+ error.cause = cause
29
+ cause.cause = nestedCause
30
+
31
+ handler(error, errorInfo)
32
+
33
+ expect(captureException).toHaveBeenCalledWith(error)
34
+ expect(error.cause).toBe(cause)
35
+ expect(cause.cause).toBe(nestedCause)
36
+ expect(nestedCause.cause).toEqual(
37
+ expect.objectContaining({
38
+ name: 'React ErrorBoundary Error',
39
+ stack: errorInfo.componentStack,
40
+ })
41
+ )
42
+ })
43
+ })
@@ -1,13 +1,14 @@
1
1
  import type { ErrorInfo } from 'react'
2
2
  import { PostHog } from '../context'
3
3
  import type { CaptureResult } from 'posthog-js'
4
+ import { addReactComponentStack } from './react-component-stack'
4
5
 
5
6
  export const setupReactErrorHandler = (
6
7
  client: PostHog,
7
8
  callback?: (event: CaptureResult | undefined, error: any, errorInfo: ErrorInfo) => void
8
9
  ) => {
9
10
  return (error: any, errorInfo: ErrorInfo): void => {
10
- const event = client.captureException(error)
11
+ const event = client.captureException(addReactComponentStack(error, errorInfo.componentStack))
11
12
  if (callback) {
12
13
  callback(event, error, errorInfo)
13
14
  }
@@ -0,0 +1,53 @@
1
+ import { isUndefined } from '../utils/type-utils'
2
+
3
+ type ErrorWithCause = Error & { cause?: unknown }
4
+
5
+ const isError = (value: unknown): value is ErrorWithCause => {
6
+ const tag = Object.prototype.toString.call(value)
7
+ return (
8
+ value instanceof Error ||
9
+ tag === '[object Error]' ||
10
+ tag === '[object Exception]' ||
11
+ tag === '[object DOMException]' ||
12
+ tag === '[object DOMError]'
13
+ )
14
+ }
15
+
16
+ const setCause = (error: ErrorWithCause, cause: ErrorWithCause): void => {
17
+ const seenErrors = new WeakSet<ErrorWithCause>()
18
+ let currentError = error
19
+
20
+ while (!seenErrors.has(currentError)) {
21
+ seenErrors.add(currentError)
22
+
23
+ if (!isError(currentError.cause)) {
24
+ if (!isUndefined(currentError.cause)) {
25
+ cause.cause = currentError.cause
26
+ }
27
+ currentError.cause = cause
28
+ return
29
+ }
30
+
31
+ currentError = currentError.cause
32
+ }
33
+ }
34
+
35
+ // Model React's component stack as a linked error so existing exception parsing and rendering can handle it.
36
+ export const addReactComponentStack = (error: unknown, componentStack?: string | null): unknown => {
37
+ if (!componentStack) {
38
+ return error
39
+ }
40
+
41
+ const componentStackError = new Error(
42
+ isError(error) ? error.message : `Primitive value captured as exception: ${String(error)}`
43
+ )
44
+ componentStackError.name = `React ErrorBoundary ${isError(error) ? error.name : 'Error'}`
45
+ componentStackError.stack = componentStack
46
+
47
+ if (isError(error)) {
48
+ setCause(error, componentStackError)
49
+ return error
50
+ }
51
+
52
+ return componentStackError
53
+ }
@@ -66,7 +66,6 @@ describe('feature flag hooks', () => {
66
66
  } as unknown as PostHog['featureFlags'],
67
67
  } as unknown as PostHog
68
68
 
69
- // eslint-disable-next-line react/display-name
70
69
  renderProvider = ({ children }) => <PostHogProvider client={posthog}>{children}</PostHogProvider>
71
70
  })
72
71
 
@@ -125,7 +124,6 @@ describe('feature flag hooks', () => {
125
124
  } as unknown as PostHog['featureFlags'],
126
125
  } as unknown as PostHog
127
126
 
128
- // eslint-disable-next-line react/display-name
129
127
  const wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (
130
128
  <PostHogProvider client={client}>{children}</PostHogProvider>
131
129
  )
@@ -197,7 +195,6 @@ describe('feature flag hooks', () => {
197
195
  } as unknown as PostHog['featureFlags'],
198
196
  } as unknown as PostHog
199
197
 
200
- // eslint-disable-next-line react/display-name
201
198
  const wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (
202
199
  <PostHogProvider client={client}>{children}</PostHogProvider>
203
200
  )
@@ -227,7 +224,6 @@ describe('feature flag hooks', () => {
227
224
  } as unknown as PostHog['featureFlags'],
228
225
  } as unknown as PostHog
229
226
 
230
- // eslint-disable-next-line react/display-name
231
227
  const wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (
232
228
  <PostHogProvider client={client}>{children}</PostHogProvider>
233
229
  )
@@ -306,7 +302,6 @@ describe('feature flag hooks', () => {
306
302
  } as unknown as PostHog['featureFlags'],
307
303
  } as unknown as PostHog
308
304
 
309
- // eslint-disable-next-line react/display-name
310
305
  const wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (
311
306
  <PostHogProvider client={client}>{children}</PostHogProvider>
312
307
  )
@@ -349,7 +344,6 @@ describe('feature flag hooks', () => {
349
344
  } as unknown as PostHog['featureFlags'],
350
345
  } as unknown as PostHog
351
346
 
352
- // eslint-disable-next-line react/display-name
353
347
  const wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (
354
348
  <PostHogProvider client={client}>{children}</PostHogProvider>
355
349
  )
@@ -11,6 +11,5 @@ export const isUndefined = function (x: unknown): x is undefined {
11
11
  }
12
12
 
13
13
  export const isNull = function (x: unknown): x is null {
14
- // eslint-disable-next-line posthog-js/no-direct-null-check
15
14
  return x === null
16
15
  }