@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.
- package/dist/esm/index.js +40 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/slim/index.js +40 -3
- package/dist/esm/slim/index.js.map +1 -1
- package/dist/esm/surveys/index.js +2 -0
- package/dist/esm/surveys/index.js.map +1 -1
- package/dist/types/index.d.ts +7 -6
- package/dist/types/slim/index.d.ts +8 -7
- package/dist/types/surveys/index.d.ts +2 -1
- package/dist/umd/index.js +58 -21
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/slim/index.js +56 -19
- package/dist/umd/slim/index.js.map +1 -1
- package/dist/umd/surveys/index.js +2 -0
- package/dist/umd/surveys/index.js.map +1 -1
- package/package.json +4 -6
- package/src/__tests__/umd-bundle.test.ts +23 -0
- package/src/components/PostHogCaptureOnViewed.tsx +3 -3
- package/src/components/PostHogErrorBoundary.tsx +4 -6
- package/src/components/PostHogFeature.tsx +2 -2
- package/src/components/__tests__/PostHogErrorBoundary.test.tsx +62 -7
- package/src/components/internal/VisibilityAndClickTracker.tsx +2 -2
- package/src/components/internal/VisibilityAndClickTrackers.tsx +2 -2
- package/src/context/PostHogProvider.tsx +7 -2
- package/src/context/PostHogProviderSlim.tsx +8 -2
- package/src/helpers/__tests__/error-helpers.test.ts +43 -0
- package/src/helpers/error-helpers.ts +2 -1
- package/src/helpers/react-component-stack.ts +53 -0
- package/src/hooks/__tests__/featureFlags.test.tsx +0 -6
- package/src/utils/type-utils.ts +0 -1
|
@@ -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
|
+
"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": "^
|
|
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-
|
|
57
|
-
"
|
|
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
|
|
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
|
-
}):
|
|
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):
|
|
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, {
|
|
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):
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
-
}):
|
|
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
|
|
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
|
-
}):
|
|
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({
|
|
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({
|
|
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
|
)
|