failproofai 1.0.1-beta.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (986) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +6 -6
  3. package/.next/standalone/.next/prerender-manifest.json +4 -4
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
  22. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
  24. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/api/audit/invite/route.js +1 -1
  26. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/audit/run/route.js +1 -1
  28. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +1 -1
  31. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
  35. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/status/route.js +1 -1
  37. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/audit/page/build-manifest.json +3 -3
  41. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  42. package/.next/standalone/.next/server/app/audit/page.js +1 -1
  43. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/index.html +1 -1
  46. package/.next/standalone/.next/server/app/index.rsc +14 -14
  47. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
  48. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  49. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  50. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  51. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  52. package/.next/standalone/.next/server/app/page.js +1 -1
  53. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
  56. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +10 -10
  57. package/.next/standalone/.next/server/app/policies/page.js +1 -1
  58. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
  61. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  62. package/.next/standalone/.next/server/app/project/[name]/page.js +2 -2
  63. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
  66. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  67. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +2 -2
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
  72. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  73. package/.next/standalone/.next/server/app/projects/page.js +2 -2
  74. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
  77. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
  78. package/.next/standalone/.next/server/app/settings/page.js +1 -1
  79. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0nne229._.js → [root-of-the-server]__0_usx0j._.js} +1 -1
  82. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1hstmft._.js → [root-of-the-server]__0_zk340._.js} +1 -1
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1u_na._.js +1 -1
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1adacul._.js +5 -5
  85. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ny9q5d._.js → [root-of-the-server]__1l-khtb._.js} +1 -1
  86. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/{_18ty6si._.js → _1ger0a2._.js} +1 -1
  88. package/.next/standalone/.next/server/chunks/_1vslkoe._.js +1 -1
  89. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +1 -1
  90. package/.next/standalone/.next/server/chunks/lib_telemetry_ts_0dctyyw._.js +1 -1
  91. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +2 -2
  92. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0f-x2b0._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_09d5c79._.js} +1 -1
  93. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +2 -2
  94. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0hwvl7e._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0el6rg8._.js} +1 -1
  95. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1ctjdzl._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_1d2g73o._.js} +1 -1
  96. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07tbbf3._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cxe_2_._.js +1 -1
  99. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__15c_z97._.js → [root-of-the-server]__0jzbk4_._.js} +1 -1
  100. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kc8_v5._.js +4 -0
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kgy9da._.js +2 -2
  102. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0mhqk5a._.js +4 -0
  103. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pltpn8._.js +4 -0
  105. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qkcyf-._.js +4 -0
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0spkm68._.js +2 -2
  107. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w0x_ok._.js +4 -0
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_dfocn._.js +2 -2
  109. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__03eykvd._.js → [root-of-the-server]__1bfex62._.js} +1 -1
  110. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07oh8b5._.js → [root-of-the-server]__1ctpynv._.js} +1 -1
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1kzapg5._.js +2 -2
  112. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11z_299._.js → [root-of-the-server]__1m84s36._.js} +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/{_04j57fb._.js → _0h_douw._.js} +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/_0lvyuv4._.js +23 -0
  116. package/.next/standalone/.next/server/chunks/ssr/{_05enntk._.js → _0u5zauv._.js} +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/_1_ozgif._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/{_0hom1s1._.js → _1u8-lu2._.js} +2 -2
  119. package/.next/standalone/.next/server/chunks/ssr/{_1q7j05x._.js → _1zopuov._.js} +2 -2
  120. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/node_modules_13n822a._.js +3 -0
  125. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +2 -2
  127. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  128. package/.next/standalone/.next/server/pages/404.html +1 -1
  129. package/.next/standalone/.next/server/pages/500.html +1 -1
  130. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/server-reference-manifest.json +15 -15
  132. package/.next/standalone/.next/static/chunks/{1o5sxp_mdaoci.js → 0k5050ezjvv49.js} +1 -1
  133. package/.next/standalone/.next/static/chunks/{054eg7y_cjyf9.js → 1ide1wl2f7zi1.js} +1 -1
  134. package/.next/standalone/.next/static/chunks/1oml7c7env4-g.js +31 -0
  135. package/.next/standalone/.next/static/chunks/1za08zjcctyil.js +22 -0
  136. package/.next/standalone/.next/static/chunks/2_2lhuojq2xop.js +1 -0
  137. package/.next/standalone/.next/static/chunks/{0mjufa_0xxz75.js → 2zpp1we2jv6tb.js} +1 -1
  138. package/.next/standalone/.next/static/chunks/{1-oz4co31nvc5.js → 31s1smp-g7gks.js} +1 -1
  139. package/.next/standalone/.next/static/chunks/36fw6yk1s6x_f.js +1 -0
  140. package/.next/standalone/.next/static/chunks/{2es4z1ei90vsv.js → 37fcpc36x9gpe.js} +1 -1
  141. package/.next/standalone/.next/static/chunks/{136ldjmzxhush.js → 3c808qrfcq0im.js} +1 -1
  142. package/.next/standalone/.next/static/chunks/3k7mxbp9hiom0.js +1 -0
  143. package/.next/standalone/.next/static/chunks/3tzq0260n17ae.js +6 -0
  144. package/.next/standalone/.next/static/chunks/{turbopack-0-gxz80mjds94.js → turbopack-3kjgdgwci4tqf.js} +1 -1
  145. package/.next/standalone/docs-old/agenteye/alerts.mdx +63 -0
  146. package/.next/standalone/docs-old/agenteye/api-keys.mdx +280 -0
  147. package/.next/standalone/docs-old/agenteye/assistant.mdx +63 -0
  148. package/.next/standalone/docs-old/agenteye/audits.mdx +54 -0
  149. package/.next/standalone/docs-old/agenteye/cli-and-agents.mdx +80 -0
  150. package/.next/standalone/docs-old/agenteye/cli-recipes.mdx +179 -0
  151. package/.next/standalone/docs-old/agenteye/cli-skill.mdx +159 -0
  152. package/.next/standalone/docs-old/agenteye/cli.mdx +350 -0
  153. package/.next/standalone/docs-old/agenteye/codex-capture.mdx +55 -0
  154. package/.next/standalone/docs-old/agenteye/concepts.mdx +87 -0
  155. package/.next/standalone/docs-old/agenteye/dashboards.mdx +46 -0
  156. package/.next/standalone/docs-old/agenteye/error-tracking.mdx +41 -0
  157. package/.next/standalone/docs-old/agenteye/evaluation-suite.mdx +402 -0
  158. package/.next/standalone/docs-old/agenteye/evaluations.mdx +51 -0
  159. package/.next/standalone/docs-old/agenteye/evaluator-skill.mdx +167 -0
  160. package/.next/standalone/docs-old/agenteye/event-stream.mdx +50 -0
  161. package/.next/standalone/docs-old/agenteye/hermes-capture.mdx +53 -0
  162. package/.next/standalone/docs-old/agenteye/images/alert-new.png +0 -0
  163. package/.next/standalone/docs-old/agenteye/images/alerts.png +0 -0
  164. package/.next/standalone/docs-old/agenteye/images/api-keys.png +0 -0
  165. package/.next/standalone/docs-old/agenteye/images/assistant.png +0 -0
  166. package/.next/standalone/docs-old/agenteye/images/audits.png +0 -0
  167. package/.next/standalone/docs-old/agenteye/images/dashboard-fleet.png +0 -0
  168. package/.next/standalone/docs-old/agenteye/images/dashboard-quality.png +0 -0
  169. package/.next/standalone/docs-old/agenteye/images/errors.png +0 -0
  170. package/.next/standalone/docs-old/agenteye/images/events-stream.png +0 -0
  171. package/.next/standalone/docs-old/agenteye/images/hooks.png +0 -0
  172. package/.next/standalone/docs-old/agenteye/images/incident-detail.png +0 -0
  173. package/.next/standalone/docs-old/agenteye/images/incidents.png +0 -0
  174. package/.next/standalone/docs-old/agenteye/images/login.png +0 -0
  175. package/.next/standalone/docs-old/agenteye/images/models.png +0 -0
  176. package/.next/standalone/docs-old/agenteye/images/queries.png +0 -0
  177. package/.next/standalone/docs-old/agenteye/images/query-lab.png +0 -0
  178. package/.next/standalone/docs-old/agenteye/images/session-detail.png +0 -0
  179. package/.next/standalone/docs-old/agenteye/images/sessions-list.png +0 -0
  180. package/.next/standalone/docs-old/agenteye/images/settings.png +0 -0
  181. package/.next/standalone/docs-old/agenteye/images/tools.png +0 -0
  182. package/.next/standalone/docs-old/agenteye/images/users.png +0 -0
  183. package/.next/standalone/docs-old/agenteye/images/video-audit.jpg +0 -0
  184. package/.next/standalone/docs-old/agenteye/images/video-tracing.jpg +0 -0
  185. package/.next/standalone/docs-old/agenteye/incidents.mdx +50 -0
  186. package/.next/standalone/docs-old/agenteye/observability.mdx +23 -0
  187. package/.next/standalone/docs-old/agenteye/openclaw-capture.mdx +49 -0
  188. package/.next/standalone/docs-old/agenteye/overview.mdx +108 -0
  189. package/.next/standalone/docs-old/agenteye/python-sdk-skill.mdx +131 -0
  190. package/.next/standalone/docs-old/agenteye/python-sdk.mdx +436 -0
  191. package/.next/standalone/docs-old/agenteye/queries.mdx +56 -0
  192. package/.next/standalone/docs-old/agenteye/security.mdx +68 -0
  193. package/.next/standalone/docs-old/agenteye/sessions.mdx +57 -0
  194. package/.next/standalone/docs-old/agenteye/telemetry.mdx +52 -0
  195. package/.next/standalone/docs-old/ar/agenteye/alerts.mdx +63 -0
  196. package/.next/standalone/docs-old/ar/agenteye/api-keys.mdx +279 -0
  197. package/.next/standalone/docs-old/ar/agenteye/assistant.mdx +62 -0
  198. package/.next/standalone/docs-old/ar/agenteye/audits.mdx +55 -0
  199. package/.next/standalone/docs-old/ar/agenteye/cli-and-agents.mdx +81 -0
  200. package/.next/standalone/docs-old/ar/agenteye/cli-recipes.mdx +178 -0
  201. package/.next/standalone/docs-old/ar/agenteye/cli-skill.mdx +160 -0
  202. package/.next/standalone/docs-old/ar/agenteye/cli.mdx +349 -0
  203. package/.next/standalone/docs-old/ar/agenteye/codex-capture.mdx +56 -0
  204. package/.next/standalone/docs-old/ar/agenteye/concepts.mdx +88 -0
  205. package/.next/standalone/docs-old/ar/agenteye/dashboards.mdx +46 -0
  206. package/.next/standalone/docs-old/ar/agenteye/error-tracking.mdx +41 -0
  207. package/.next/standalone/docs-old/ar/agenteye/evaluation-suite.mdx +299 -0
  208. package/.next/standalone/docs-old/ar/agenteye/evaluations.mdx +51 -0
  209. package/.next/standalone/docs-old/ar/agenteye/evaluator-skill.mdx +168 -0
  210. package/.next/standalone/docs-old/ar/agenteye/event-stream.mdx +50 -0
  211. package/.next/standalone/docs-old/ar/agenteye/hermes-capture.mdx +54 -0
  212. package/.next/standalone/docs-old/ar/agenteye/incidents.mdx +51 -0
  213. package/.next/standalone/docs-old/ar/agenteye/observability.mdx +24 -0
  214. package/.next/standalone/docs-old/ar/agenteye/openclaw-capture.mdx +50 -0
  215. package/.next/standalone/docs-old/ar/agenteye/overview.mdx +108 -0
  216. package/.next/standalone/docs-old/ar/agenteye/python-sdk-skill.mdx +129 -0
  217. package/.next/standalone/docs-old/ar/agenteye/python-sdk.mdx +435 -0
  218. package/.next/standalone/docs-old/ar/agenteye/queries.mdx +57 -0
  219. package/.next/standalone/docs-old/ar/agenteye/security.mdx +68 -0
  220. package/.next/standalone/docs-old/ar/agenteye/sessions.mdx +58 -0
  221. package/.next/standalone/docs-old/ar/agenteye/telemetry.mdx +52 -0
  222. package/.next/standalone/docs-old/ar/architecture.mdx +333 -0
  223. package/.next/standalone/docs-old/ar/built-in-policies.mdx +860 -0
  224. package/.next/standalone/docs-old/ar/cli/audit.mdx +120 -0
  225. package/.next/standalone/docs-old/ar/cli/dashboard.mdx +30 -0
  226. package/.next/standalone/docs-old/ar/cli/environment-variables.mdx +70 -0
  227. package/.next/standalone/docs-old/ar/cli/hook.mdx +31 -0
  228. package/.next/standalone/docs-old/ar/cli/install-policies.mdx +57 -0
  229. package/.next/standalone/docs-old/ar/cli/list-policies.mdx +32 -0
  230. package/.next/standalone/docs-old/ar/cli/migrate.mdx +110 -0
  231. package/.next/standalone/docs-old/ar/cli/remove-policies.mdx +44 -0
  232. package/.next/standalone/docs-old/ar/cli/update.mdx +79 -0
  233. package/.next/standalone/docs-old/ar/cli/version.mdx +13 -0
  234. package/.next/standalone/docs-old/ar/configuration.mdx +268 -0
  235. package/.next/standalone/docs-old/ar/custom-policies.mdx +359 -0
  236. package/.next/standalone/docs-old/ar/dashboard.mdx +152 -0
  237. package/.next/standalone/docs-old/ar/examples.mdx +307 -0
  238. package/.next/standalone/docs-old/ar/for-agents.mdx +38 -0
  239. package/.next/standalone/docs-old/ar/getting-started.mdx +199 -0
  240. package/.next/standalone/docs-old/ar/introduction.mdx +58 -0
  241. package/.next/standalone/docs-old/ar/package-aliases.mdx +83 -0
  242. package/.next/standalone/docs-old/ar/testing.mdx +260 -0
  243. package/.next/standalone/docs-old/architecture.mdx +332 -0
  244. package/.next/standalone/docs-old/built-in-policies.mdx +859 -0
  245. package/.next/standalone/docs-old/cli/audit.mdx +188 -0
  246. package/.next/standalone/docs-old/cli/dashboard.mdx +29 -0
  247. package/.next/standalone/docs-old/cli/environment-variables.mdx +75 -0
  248. package/.next/standalone/docs-old/cli/hook.mdx +30 -0
  249. package/.next/standalone/docs-old/cli/install-policies.mdx +57 -0
  250. package/.next/standalone/docs-old/cli/list-policies.mdx +31 -0
  251. package/.next/standalone/docs-old/cli/migrate.mdx +117 -0
  252. package/.next/standalone/docs-old/cli/remove-policies.mdx +43 -0
  253. package/.next/standalone/docs-old/cli/update.mdx +94 -0
  254. package/.next/standalone/docs-old/cli/version.mdx +12 -0
  255. package/.next/standalone/docs-old/configuration.mdx +295 -0
  256. package/.next/standalone/docs-old/custom-policies.mdx +362 -0
  257. package/.next/standalone/docs-old/dashboard.mdx +176 -0
  258. package/.next/standalone/docs-old/de/agenteye/alerts.mdx +63 -0
  259. package/.next/standalone/docs-old/de/agenteye/api-keys.mdx +280 -0
  260. package/.next/standalone/docs-old/de/agenteye/assistant.mdx +63 -0
  261. package/.next/standalone/docs-old/de/agenteye/audits.mdx +54 -0
  262. package/.next/standalone/docs-old/de/agenteye/cli-and-agents.mdx +80 -0
  263. package/.next/standalone/docs-old/de/agenteye/cli-recipes.mdx +179 -0
  264. package/.next/standalone/docs-old/de/agenteye/cli-skill.mdx +159 -0
  265. package/.next/standalone/docs-old/de/agenteye/cli.mdx +350 -0
  266. package/.next/standalone/docs-old/de/agenteye/codex-capture.mdx +55 -0
  267. package/.next/standalone/docs-old/de/agenteye/concepts.mdx +87 -0
  268. package/.next/standalone/docs-old/de/agenteye/dashboards.mdx +46 -0
  269. package/.next/standalone/docs-old/de/agenteye/error-tracking.mdx +41 -0
  270. package/.next/standalone/docs-old/de/agenteye/evaluation-suite.mdx +300 -0
  271. package/.next/standalone/docs-old/de/agenteye/evaluations.mdx +50 -0
  272. package/.next/standalone/docs-old/de/agenteye/evaluator-skill.mdx +167 -0
  273. package/.next/standalone/docs-old/de/agenteye/event-stream.mdx +50 -0
  274. package/.next/standalone/docs-old/de/agenteye/hermes-capture.mdx +53 -0
  275. package/.next/standalone/docs-old/de/agenteye/incidents.mdx +50 -0
  276. package/.next/standalone/docs-old/de/agenteye/observability.mdx +23 -0
  277. package/.next/standalone/docs-old/de/agenteye/openclaw-capture.mdx +49 -0
  278. package/.next/standalone/docs-old/de/agenteye/overview.mdx +108 -0
  279. package/.next/standalone/docs-old/de/agenteye/python-sdk-skill.mdx +131 -0
  280. package/.next/standalone/docs-old/de/agenteye/python-sdk.mdx +436 -0
  281. package/.next/standalone/docs-old/de/agenteye/queries.mdx +56 -0
  282. package/.next/standalone/docs-old/de/agenteye/security.mdx +68 -0
  283. package/.next/standalone/docs-old/de/agenteye/sessions.mdx +57 -0
  284. package/.next/standalone/docs-old/de/agenteye/telemetry.mdx +52 -0
  285. package/.next/standalone/docs-old/de/architecture.mdx +332 -0
  286. package/.next/standalone/docs-old/de/built-in-policies.mdx +859 -0
  287. package/.next/standalone/docs-old/de/cli/audit.mdx +131 -0
  288. package/.next/standalone/docs-old/de/cli/dashboard.mdx +29 -0
  289. package/.next/standalone/docs-old/de/cli/environment-variables.mdx +72 -0
  290. package/.next/standalone/docs-old/de/cli/hook.mdx +30 -0
  291. package/.next/standalone/docs-old/de/cli/install-policies.mdx +57 -0
  292. package/.next/standalone/docs-old/de/cli/list-policies.mdx +31 -0
  293. package/.next/standalone/docs-old/de/cli/migrate.mdx +122 -0
  294. package/.next/standalone/docs-old/de/cli/remove-policies.mdx +43 -0
  295. package/.next/standalone/docs-old/de/cli/update.mdx +75 -0
  296. package/.next/standalone/docs-old/de/cli/version.mdx +12 -0
  297. package/.next/standalone/docs-old/de/configuration.mdx +272 -0
  298. package/.next/standalone/docs-old/de/custom-policies.mdx +358 -0
  299. package/.next/standalone/docs-old/de/dashboard.mdx +151 -0
  300. package/.next/standalone/docs-old/de/examples.mdx +307 -0
  301. package/.next/standalone/docs-old/de/for-agents.mdx +38 -0
  302. package/.next/standalone/docs-old/de/getting-started.mdx +199 -0
  303. package/.next/standalone/docs-old/de/introduction.mdx +57 -0
  304. package/.next/standalone/docs-old/de/package-aliases.mdx +82 -0
  305. package/.next/standalone/docs-old/de/testing.mdx +260 -0
  306. package/.next/standalone/docs-old/docs.json +1830 -0
  307. package/.next/standalone/docs-old/es/agenteye/alerts.mdx +63 -0
  308. package/.next/standalone/docs-old/es/agenteye/api-keys.mdx +280 -0
  309. package/.next/standalone/docs-old/es/agenteye/assistant.mdx +63 -0
  310. package/.next/standalone/docs-old/es/agenteye/audits.mdx +54 -0
  311. package/.next/standalone/docs-old/es/agenteye/cli-and-agents.mdx +80 -0
  312. package/.next/standalone/docs-old/es/agenteye/cli-recipes.mdx +178 -0
  313. package/.next/standalone/docs-old/es/agenteye/cli-skill.mdx +159 -0
  314. package/.next/standalone/docs-old/es/agenteye/cli.mdx +350 -0
  315. package/.next/standalone/docs-old/es/agenteye/codex-capture.mdx +55 -0
  316. package/.next/standalone/docs-old/es/agenteye/concepts.mdx +87 -0
  317. package/.next/standalone/docs-old/es/agenteye/dashboards.mdx +46 -0
  318. package/.next/standalone/docs-old/es/agenteye/error-tracking.mdx +41 -0
  319. package/.next/standalone/docs-old/es/agenteye/evaluation-suite.mdx +300 -0
  320. package/.next/standalone/docs-old/es/agenteye/evaluations.mdx +50 -0
  321. package/.next/standalone/docs-old/es/agenteye/evaluator-skill.mdx +167 -0
  322. package/.next/standalone/docs-old/es/agenteye/event-stream.mdx +50 -0
  323. package/.next/standalone/docs-old/es/agenteye/hermes-capture.mdx +53 -0
  324. package/.next/standalone/docs-old/es/agenteye/incidents.mdx +50 -0
  325. package/.next/standalone/docs-old/es/agenteye/observability.mdx +23 -0
  326. package/.next/standalone/docs-old/es/agenteye/openclaw-capture.mdx +49 -0
  327. package/.next/standalone/docs-old/es/agenteye/overview.mdx +108 -0
  328. package/.next/standalone/docs-old/es/agenteye/python-sdk-skill.mdx +135 -0
  329. package/.next/standalone/docs-old/es/agenteye/python-sdk.mdx +436 -0
  330. package/.next/standalone/docs-old/es/agenteye/queries.mdx +56 -0
  331. package/.next/standalone/docs-old/es/agenteye/security.mdx +68 -0
  332. package/.next/standalone/docs-old/es/agenteye/sessions.mdx +56 -0
  333. package/.next/standalone/docs-old/es/agenteye/telemetry.mdx +52 -0
  334. package/.next/standalone/docs-old/es/architecture.mdx +332 -0
  335. package/.next/standalone/docs-old/es/built-in-policies.mdx +853 -0
  336. package/.next/standalone/docs-old/es/cli/audit.mdx +137 -0
  337. package/.next/standalone/docs-old/es/cli/dashboard.mdx +29 -0
  338. package/.next/standalone/docs-old/es/cli/environment-variables.mdx +72 -0
  339. package/.next/standalone/docs-old/es/cli/hook.mdx +30 -0
  340. package/.next/standalone/docs-old/es/cli/install-policies.mdx +57 -0
  341. package/.next/standalone/docs-old/es/cli/list-policies.mdx +31 -0
  342. package/.next/standalone/docs-old/es/cli/migrate.mdx +86 -0
  343. package/.next/standalone/docs-old/es/cli/remove-policies.mdx +43 -0
  344. package/.next/standalone/docs-old/es/cli/update.mdx +64 -0
  345. package/.next/standalone/docs-old/es/cli/version.mdx +12 -0
  346. package/.next/standalone/docs-old/es/configuration.mdx +271 -0
  347. package/.next/standalone/docs-old/es/custom-policies.mdx +358 -0
  348. package/.next/standalone/docs-old/es/dashboard.mdx +151 -0
  349. package/.next/standalone/docs-old/es/examples.mdx +307 -0
  350. package/.next/standalone/docs-old/es/for-agents.mdx +38 -0
  351. package/.next/standalone/docs-old/es/getting-started.mdx +199 -0
  352. package/.next/standalone/docs-old/es/introduction.mdx +57 -0
  353. package/.next/standalone/docs-old/es/package-aliases.mdx +82 -0
  354. package/.next/standalone/docs-old/es/testing.mdx +260 -0
  355. package/.next/standalone/docs-old/examples.mdx +307 -0
  356. package/.next/standalone/docs-old/favicon.ico +0 -0
  357. package/.next/standalone/docs-old/for-agents.mdx +38 -0
  358. package/.next/standalone/docs-old/fr/agenteye/alerts.mdx +63 -0
  359. package/.next/standalone/docs-old/fr/agenteye/api-keys.mdx +280 -0
  360. package/.next/standalone/docs-old/fr/agenteye/assistant.mdx +63 -0
  361. package/.next/standalone/docs-old/fr/agenteye/audits.mdx +54 -0
  362. package/.next/standalone/docs-old/fr/agenteye/cli-and-agents.mdx +79 -0
  363. package/.next/standalone/docs-old/fr/agenteye/cli-recipes.mdx +179 -0
  364. package/.next/standalone/docs-old/fr/agenteye/cli-skill.mdx +159 -0
  365. package/.next/standalone/docs-old/fr/agenteye/cli.mdx +350 -0
  366. package/.next/standalone/docs-old/fr/agenteye/codex-capture.mdx +55 -0
  367. package/.next/standalone/docs-old/fr/agenteye/concepts.mdx +87 -0
  368. package/.next/standalone/docs-old/fr/agenteye/dashboards.mdx +46 -0
  369. package/.next/standalone/docs-old/fr/agenteye/error-tracking.mdx +40 -0
  370. package/.next/standalone/docs-old/fr/agenteye/evaluation-suite.mdx +401 -0
  371. package/.next/standalone/docs-old/fr/agenteye/evaluations.mdx +50 -0
  372. package/.next/standalone/docs-old/fr/agenteye/evaluator-skill.mdx +167 -0
  373. package/.next/standalone/docs-old/fr/agenteye/event-stream.mdx +50 -0
  374. package/.next/standalone/docs-old/fr/agenteye/hermes-capture.mdx +53 -0
  375. package/.next/standalone/docs-old/fr/agenteye/incidents.mdx +50 -0
  376. package/.next/standalone/docs-old/fr/agenteye/observability.mdx +23 -0
  377. package/.next/standalone/docs-old/fr/agenteye/openclaw-capture.mdx +49 -0
  378. package/.next/standalone/docs-old/fr/agenteye/overview.mdx +108 -0
  379. package/.next/standalone/docs-old/fr/agenteye/python-sdk-skill.mdx +135 -0
  380. package/.next/standalone/docs-old/fr/agenteye/python-sdk.mdx +436 -0
  381. package/.next/standalone/docs-old/fr/agenteye/queries.mdx +56 -0
  382. package/.next/standalone/docs-old/fr/agenteye/security.mdx +68 -0
  383. package/.next/standalone/docs-old/fr/agenteye/sessions.mdx +57 -0
  384. package/.next/standalone/docs-old/fr/agenteye/telemetry.mdx +52 -0
  385. package/.next/standalone/docs-old/fr/architecture.mdx +332 -0
  386. package/.next/standalone/docs-old/fr/built-in-policies.mdx +851 -0
  387. package/.next/standalone/docs-old/fr/cli/audit.mdx +126 -0
  388. package/.next/standalone/docs-old/fr/cli/dashboard.mdx +29 -0
  389. package/.next/standalone/docs-old/fr/cli/environment-variables.mdx +70 -0
  390. package/.next/standalone/docs-old/fr/cli/hook.mdx +30 -0
  391. package/.next/standalone/docs-old/fr/cli/install-policies.mdx +57 -0
  392. package/.next/standalone/docs-old/fr/cli/list-policies.mdx +31 -0
  393. package/.next/standalone/docs-old/fr/cli/migrate.mdx +86 -0
  394. package/.next/standalone/docs-old/fr/cli/remove-policies.mdx +43 -0
  395. package/.next/standalone/docs-old/fr/cli/update.mdx +64 -0
  396. package/.next/standalone/docs-old/fr/cli/version.mdx +12 -0
  397. package/.next/standalone/docs-old/fr/configuration.mdx +271 -0
  398. package/.next/standalone/docs-old/fr/custom-policies.mdx +358 -0
  399. package/.next/standalone/docs-old/fr/dashboard.mdx +151 -0
  400. package/.next/standalone/docs-old/fr/examples.mdx +307 -0
  401. package/.next/standalone/docs-old/fr/for-agents.mdx +38 -0
  402. package/.next/standalone/docs-old/fr/getting-started.mdx +199 -0
  403. package/.next/standalone/docs-old/fr/introduction.mdx +57 -0
  404. package/.next/standalone/docs-old/fr/package-aliases.mdx +82 -0
  405. package/.next/standalone/docs-old/fr/testing.mdx +260 -0
  406. package/.next/standalone/docs-old/getting-started.mdx +201 -0
  407. package/.next/standalone/docs-old/he/agenteye/alerts.mdx +63 -0
  408. package/.next/standalone/docs-old/he/agenteye/api-keys.mdx +279 -0
  409. package/.next/standalone/docs-old/he/agenteye/assistant.mdx +63 -0
  410. package/.next/standalone/docs-old/he/agenteye/audits.mdx +53 -0
  411. package/.next/standalone/docs-old/he/agenteye/cli-and-agents.mdx +80 -0
  412. package/.next/standalone/docs-old/he/agenteye/cli-recipes.mdx +179 -0
  413. package/.next/standalone/docs-old/he/agenteye/cli-skill.mdx +160 -0
  414. package/.next/standalone/docs-old/he/agenteye/cli.mdx +349 -0
  415. package/.next/standalone/docs-old/he/agenteye/codex-capture.mdx +56 -0
  416. package/.next/standalone/docs-old/he/agenteye/concepts.mdx +87 -0
  417. package/.next/standalone/docs-old/he/agenteye/dashboards.mdx +46 -0
  418. package/.next/standalone/docs-old/he/agenteye/error-tracking.mdx +41 -0
  419. package/.next/standalone/docs-old/he/agenteye/evaluation-suite.mdx +299 -0
  420. package/.next/standalone/docs-old/he/agenteye/evaluations.mdx +51 -0
  421. package/.next/standalone/docs-old/he/agenteye/evaluator-skill.mdx +168 -0
  422. package/.next/standalone/docs-old/he/agenteye/event-stream.mdx +50 -0
  423. package/.next/standalone/docs-old/he/agenteye/hermes-capture.mdx +54 -0
  424. package/.next/standalone/docs-old/he/agenteye/incidents.mdx +50 -0
  425. package/.next/standalone/docs-old/he/agenteye/observability.mdx +23 -0
  426. package/.next/standalone/docs-old/he/agenteye/openclaw-capture.mdx +50 -0
  427. package/.next/standalone/docs-old/he/agenteye/overview.mdx +108 -0
  428. package/.next/standalone/docs-old/he/agenteye/python-sdk-skill.mdx +132 -0
  429. package/.next/standalone/docs-old/he/agenteye/python-sdk.mdx +436 -0
  430. package/.next/standalone/docs-old/he/agenteye/queries.mdx +56 -0
  431. package/.next/standalone/docs-old/he/agenteye/security.mdx +67 -0
  432. package/.next/standalone/docs-old/he/agenteye/sessions.mdx +58 -0
  433. package/.next/standalone/docs-old/he/agenteye/telemetry.mdx +52 -0
  434. package/.next/standalone/docs-old/he/architecture.mdx +332 -0
  435. package/.next/standalone/docs-old/he/built-in-policies.mdx +857 -0
  436. package/.next/standalone/docs-old/he/cli/audit.mdx +116 -0
  437. package/.next/standalone/docs-old/he/cli/dashboard.mdx +30 -0
  438. package/.next/standalone/docs-old/he/cli/environment-variables.mdx +69 -0
  439. package/.next/standalone/docs-old/he/cli/hook.mdx +30 -0
  440. package/.next/standalone/docs-old/he/cli/install-policies.mdx +58 -0
  441. package/.next/standalone/docs-old/he/cli/list-policies.mdx +32 -0
  442. package/.next/standalone/docs-old/he/cli/migrate.mdx +87 -0
  443. package/.next/standalone/docs-old/he/cli/remove-policies.mdx +44 -0
  444. package/.next/standalone/docs-old/he/cli/update.mdx +64 -0
  445. package/.next/standalone/docs-old/he/cli/version.mdx +13 -0
  446. package/.next/standalone/docs-old/he/configuration.mdx +264 -0
  447. package/.next/standalone/docs-old/he/custom-policies.mdx +359 -0
  448. package/.next/standalone/docs-old/he/dashboard.mdx +155 -0
  449. package/.next/standalone/docs-old/he/examples.mdx +308 -0
  450. package/.next/standalone/docs-old/he/for-agents.mdx +38 -0
  451. package/.next/standalone/docs-old/he/getting-started.mdx +200 -0
  452. package/.next/standalone/docs-old/he/introduction.mdx +58 -0
  453. package/.next/standalone/docs-old/he/package-aliases.mdx +82 -0
  454. package/.next/standalone/docs-old/he/testing.mdx +260 -0
  455. package/.next/standalone/docs-old/hi/agenteye/alerts.mdx +62 -0
  456. package/.next/standalone/docs-old/hi/agenteye/api-keys.mdx +279 -0
  457. package/.next/standalone/docs-old/hi/agenteye/assistant.mdx +63 -0
  458. package/.next/standalone/docs-old/hi/agenteye/audits.mdx +53 -0
  459. package/.next/standalone/docs-old/hi/agenteye/cli-and-agents.mdx +80 -0
  460. package/.next/standalone/docs-old/hi/agenteye/cli-recipes.mdx +178 -0
  461. package/.next/standalone/docs-old/hi/agenteye/cli-skill.mdx +159 -0
  462. package/.next/standalone/docs-old/hi/agenteye/cli.mdx +350 -0
  463. package/.next/standalone/docs-old/hi/agenteye/codex-capture.mdx +56 -0
  464. package/.next/standalone/docs-old/hi/agenteye/concepts.mdx +87 -0
  465. package/.next/standalone/docs-old/hi/agenteye/dashboards.mdx +47 -0
  466. package/.next/standalone/docs-old/hi/agenteye/error-tracking.mdx +42 -0
  467. package/.next/standalone/docs-old/hi/agenteye/evaluation-suite.mdx +299 -0
  468. package/.next/standalone/docs-old/hi/agenteye/evaluations.mdx +51 -0
  469. package/.next/standalone/docs-old/hi/agenteye/evaluator-skill.mdx +171 -0
  470. package/.next/standalone/docs-old/hi/agenteye/event-stream.mdx +49 -0
  471. package/.next/standalone/docs-old/hi/agenteye/hermes-capture.mdx +53 -0
  472. package/.next/standalone/docs-old/hi/agenteye/incidents.mdx +50 -0
  473. package/.next/standalone/docs-old/hi/agenteye/observability.mdx +23 -0
  474. package/.next/standalone/docs-old/hi/agenteye/openclaw-capture.mdx +50 -0
  475. package/.next/standalone/docs-old/hi/agenteye/overview.mdx +107 -0
  476. package/.next/standalone/docs-old/hi/agenteye/python-sdk-skill.mdx +133 -0
  477. package/.next/standalone/docs-old/hi/agenteye/python-sdk.mdx +434 -0
  478. package/.next/standalone/docs-old/hi/agenteye/queries.mdx +57 -0
  479. package/.next/standalone/docs-old/hi/agenteye/security.mdx +68 -0
  480. package/.next/standalone/docs-old/hi/agenteye/sessions.mdx +57 -0
  481. package/.next/standalone/docs-old/hi/agenteye/telemetry.mdx +51 -0
  482. package/.next/standalone/docs-old/hi/architecture.mdx +332 -0
  483. package/.next/standalone/docs-old/hi/built-in-policies.mdx +848 -0
  484. package/.next/standalone/docs-old/hi/cli/audit.mdx +117 -0
  485. package/.next/standalone/docs-old/hi/cli/dashboard.mdx +29 -0
  486. package/.next/standalone/docs-old/hi/cli/environment-variables.mdx +64 -0
  487. package/.next/standalone/docs-old/hi/cli/hook.mdx +30 -0
  488. package/.next/standalone/docs-old/hi/cli/install-policies.mdx +57 -0
  489. package/.next/standalone/docs-old/hi/cli/list-policies.mdx +31 -0
  490. package/.next/standalone/docs-old/hi/cli/migrate.mdx +85 -0
  491. package/.next/standalone/docs-old/hi/cli/remove-policies.mdx +43 -0
  492. package/.next/standalone/docs-old/hi/cli/update.mdx +65 -0
  493. package/.next/standalone/docs-old/hi/cli/version.mdx +12 -0
  494. package/.next/standalone/docs-old/hi/configuration.mdx +264 -0
  495. package/.next/standalone/docs-old/hi/custom-policies.mdx +359 -0
  496. package/.next/standalone/docs-old/hi/dashboard.mdx +152 -0
  497. package/.next/standalone/docs-old/hi/examples.mdx +307 -0
  498. package/.next/standalone/docs-old/hi/for-agents.mdx +38 -0
  499. package/.next/standalone/docs-old/hi/getting-started.mdx +200 -0
  500. package/.next/standalone/docs-old/hi/introduction.mdx +58 -0
  501. package/.next/standalone/docs-old/hi/package-aliases.mdx +83 -0
  502. package/.next/standalone/docs-old/hi/testing.mdx +260 -0
  503. package/.next/standalone/docs-old/i18n/README.ar.md +230 -0
  504. package/.next/standalone/docs-old/i18n/README.de.md +225 -0
  505. package/.next/standalone/docs-old/i18n/README.es.md +225 -0
  506. package/.next/standalone/docs-old/i18n/README.fr.md +225 -0
  507. package/.next/standalone/docs-old/i18n/README.he.md +230 -0
  508. package/.next/standalone/docs-old/i18n/README.hi.md +222 -0
  509. package/.next/standalone/docs-old/i18n/README.it.md +225 -0
  510. package/.next/standalone/docs-old/i18n/README.ja.md +219 -0
  511. package/.next/standalone/docs-old/i18n/README.ko.md +225 -0
  512. package/.next/standalone/docs-old/i18n/README.pt-br.md +225 -0
  513. package/.next/standalone/docs-old/i18n/README.ru.md +222 -0
  514. package/.next/standalone/docs-old/i18n/README.tr.md +221 -0
  515. package/.next/standalone/docs-old/i18n/README.vi.md +225 -0
  516. package/.next/standalone/docs-old/i18n/README.zh.md +219 -0
  517. package/.next/standalone/docs-old/introduction.mdx +57 -0
  518. package/.next/standalone/docs-old/it/agenteye/alerts.mdx +62 -0
  519. package/.next/standalone/docs-old/it/agenteye/api-keys.mdx +279 -0
  520. package/.next/standalone/docs-old/it/agenteye/assistant.mdx +63 -0
  521. package/.next/standalone/docs-old/it/agenteye/audits.mdx +54 -0
  522. package/.next/standalone/docs-old/it/agenteye/cli-and-agents.mdx +80 -0
  523. package/.next/standalone/docs-old/it/agenteye/cli-recipes.mdx +179 -0
  524. package/.next/standalone/docs-old/it/agenteye/cli-skill.mdx +159 -0
  525. package/.next/standalone/docs-old/it/agenteye/cli.mdx +349 -0
  526. package/.next/standalone/docs-old/it/agenteye/codex-capture.mdx +56 -0
  527. package/.next/standalone/docs-old/it/agenteye/concepts.mdx +87 -0
  528. package/.next/standalone/docs-old/it/agenteye/dashboards.mdx +46 -0
  529. package/.next/standalone/docs-old/it/agenteye/error-tracking.mdx +41 -0
  530. package/.next/standalone/docs-old/it/agenteye/evaluation-suite.mdx +299 -0
  531. package/.next/standalone/docs-old/it/agenteye/evaluations.mdx +51 -0
  532. package/.next/standalone/docs-old/it/agenteye/evaluator-skill.mdx +170 -0
  533. package/.next/standalone/docs-old/it/agenteye/event-stream.mdx +50 -0
  534. package/.next/standalone/docs-old/it/agenteye/hermes-capture.mdx +53 -0
  535. package/.next/standalone/docs-old/it/agenteye/incidents.mdx +49 -0
  536. package/.next/standalone/docs-old/it/agenteye/observability.mdx +23 -0
  537. package/.next/standalone/docs-old/it/agenteye/openclaw-capture.mdx +49 -0
  538. package/.next/standalone/docs-old/it/agenteye/overview.mdx +107 -0
  539. package/.next/standalone/docs-old/it/agenteye/python-sdk-skill.mdx +132 -0
  540. package/.next/standalone/docs-old/it/agenteye/python-sdk.mdx +437 -0
  541. package/.next/standalone/docs-old/it/agenteye/queries.mdx +55 -0
  542. package/.next/standalone/docs-old/it/agenteye/security.mdx +68 -0
  543. package/.next/standalone/docs-old/it/agenteye/sessions.mdx +57 -0
  544. package/.next/standalone/docs-old/it/agenteye/telemetry.mdx +52 -0
  545. package/.next/standalone/docs-old/it/architecture.mdx +333 -0
  546. package/.next/standalone/docs-old/it/built-in-policies.mdx +853 -0
  547. package/.next/standalone/docs-old/it/cli/audit.mdx +126 -0
  548. package/.next/standalone/docs-old/it/cli/dashboard.mdx +30 -0
  549. package/.next/standalone/docs-old/it/cli/environment-variables.mdx +65 -0
  550. package/.next/standalone/docs-old/it/cli/hook.mdx +30 -0
  551. package/.next/standalone/docs-old/it/cli/install-policies.mdx +57 -0
  552. package/.next/standalone/docs-old/it/cli/list-policies.mdx +31 -0
  553. package/.next/standalone/docs-old/it/cli/migrate.mdx +122 -0
  554. package/.next/standalone/docs-old/it/cli/remove-policies.mdx +43 -0
  555. package/.next/standalone/docs-old/it/cli/update.mdx +86 -0
  556. package/.next/standalone/docs-old/it/cli/version.mdx +12 -0
  557. package/.next/standalone/docs-old/it/configuration.mdx +269 -0
  558. package/.next/standalone/docs-old/it/custom-policies.mdx +359 -0
  559. package/.next/standalone/docs-old/it/dashboard.mdx +151 -0
  560. package/.next/standalone/docs-old/it/examples.mdx +307 -0
  561. package/.next/standalone/docs-old/it/for-agents.mdx +38 -0
  562. package/.next/standalone/docs-old/it/getting-started.mdx +199 -0
  563. package/.next/standalone/docs-old/it/introduction.mdx +58 -0
  564. package/.next/standalone/docs-old/it/package-aliases.mdx +82 -0
  565. package/.next/standalone/docs-old/it/testing.mdx +261 -0
  566. package/.next/standalone/docs-old/ja/agenteye/alerts.mdx +63 -0
  567. package/.next/standalone/docs-old/ja/agenteye/api-keys.mdx +280 -0
  568. package/.next/standalone/docs-old/ja/agenteye/assistant.mdx +63 -0
  569. package/.next/standalone/docs-old/ja/agenteye/audits.mdx +54 -0
  570. package/.next/standalone/docs-old/ja/agenteye/cli-and-agents.mdx +80 -0
  571. package/.next/standalone/docs-old/ja/agenteye/cli-recipes.mdx +179 -0
  572. package/.next/standalone/docs-old/ja/agenteye/cli-skill.mdx +159 -0
  573. package/.next/standalone/docs-old/ja/agenteye/cli.mdx +350 -0
  574. package/.next/standalone/docs-old/ja/agenteye/codex-capture.mdx +55 -0
  575. package/.next/standalone/docs-old/ja/agenteye/concepts.mdx +87 -0
  576. package/.next/standalone/docs-old/ja/agenteye/dashboards.mdx +46 -0
  577. package/.next/standalone/docs-old/ja/agenteye/error-tracking.mdx +41 -0
  578. package/.next/standalone/docs-old/ja/agenteye/evaluation-suite.mdx +300 -0
  579. package/.next/standalone/docs-old/ja/agenteye/evaluations.mdx +51 -0
  580. package/.next/standalone/docs-old/ja/agenteye/evaluator-skill.mdx +167 -0
  581. package/.next/standalone/docs-old/ja/agenteye/event-stream.mdx +50 -0
  582. package/.next/standalone/docs-old/ja/agenteye/hermes-capture.mdx +53 -0
  583. package/.next/standalone/docs-old/ja/agenteye/incidents.mdx +50 -0
  584. package/.next/standalone/docs-old/ja/agenteye/observability.mdx +23 -0
  585. package/.next/standalone/docs-old/ja/agenteye/openclaw-capture.mdx +49 -0
  586. package/.next/standalone/docs-old/ja/agenteye/overview.mdx +108 -0
  587. package/.next/standalone/docs-old/ja/agenteye/python-sdk-skill.mdx +131 -0
  588. package/.next/standalone/docs-old/ja/agenteye/python-sdk.mdx +433 -0
  589. package/.next/standalone/docs-old/ja/agenteye/queries.mdx +56 -0
  590. package/.next/standalone/docs-old/ja/agenteye/security.mdx +68 -0
  591. package/.next/standalone/docs-old/ja/agenteye/sessions.mdx +57 -0
  592. package/.next/standalone/docs-old/ja/agenteye/telemetry.mdx +52 -0
  593. package/.next/standalone/docs-old/ja/architecture.mdx +332 -0
  594. package/.next/standalone/docs-old/ja/built-in-policies.mdx +848 -0
  595. package/.next/standalone/docs-old/ja/cli/audit.mdx +116 -0
  596. package/.next/standalone/docs-old/ja/cli/dashboard.mdx +29 -0
  597. package/.next/standalone/docs-old/ja/cli/environment-variables.mdx +63 -0
  598. package/.next/standalone/docs-old/ja/cli/hook.mdx +30 -0
  599. package/.next/standalone/docs-old/ja/cli/install-policies.mdx +57 -0
  600. package/.next/standalone/docs-old/ja/cli/list-policies.mdx +31 -0
  601. package/.next/standalone/docs-old/ja/cli/migrate.mdx +86 -0
  602. package/.next/standalone/docs-old/ja/cli/remove-policies.mdx +43 -0
  603. package/.next/standalone/docs-old/ja/cli/update.mdx +64 -0
  604. package/.next/standalone/docs-old/ja/cli/version.mdx +12 -0
  605. package/.next/standalone/docs-old/ja/configuration.mdx +264 -0
  606. package/.next/standalone/docs-old/ja/custom-policies.mdx +358 -0
  607. package/.next/standalone/docs-old/ja/dashboard.mdx +151 -0
  608. package/.next/standalone/docs-old/ja/examples.mdx +307 -0
  609. package/.next/standalone/docs-old/ja/for-agents.mdx +38 -0
  610. package/.next/standalone/docs-old/ja/getting-started.mdx +199 -0
  611. package/.next/standalone/docs-old/ja/introduction.mdx +57 -0
  612. package/.next/standalone/docs-old/ja/package-aliases.mdx +82 -0
  613. package/.next/standalone/docs-old/ja/testing.mdx +260 -0
  614. package/.next/standalone/docs-old/ko/agenteye/alerts.mdx +63 -0
  615. package/.next/standalone/docs-old/ko/agenteye/api-keys.mdx +280 -0
  616. package/.next/standalone/docs-old/ko/agenteye/assistant.mdx +63 -0
  617. package/.next/standalone/docs-old/ko/agenteye/audits.mdx +54 -0
  618. package/.next/standalone/docs-old/ko/agenteye/cli-and-agents.mdx +80 -0
  619. package/.next/standalone/docs-old/ko/agenteye/cli-recipes.mdx +179 -0
  620. package/.next/standalone/docs-old/ko/agenteye/cli-skill.mdx +159 -0
  621. package/.next/standalone/docs-old/ko/agenteye/cli.mdx +350 -0
  622. package/.next/standalone/docs-old/ko/agenteye/codex-capture.mdx +55 -0
  623. package/.next/standalone/docs-old/ko/agenteye/concepts.mdx +87 -0
  624. package/.next/standalone/docs-old/ko/agenteye/dashboards.mdx +46 -0
  625. package/.next/standalone/docs-old/ko/agenteye/error-tracking.mdx +40 -0
  626. package/.next/standalone/docs-old/ko/agenteye/evaluation-suite.mdx +303 -0
  627. package/.next/standalone/docs-old/ko/agenteye/evaluations.mdx +50 -0
  628. package/.next/standalone/docs-old/ko/agenteye/evaluator-skill.mdx +167 -0
  629. package/.next/standalone/docs-old/ko/agenteye/event-stream.mdx +50 -0
  630. package/.next/standalone/docs-old/ko/agenteye/hermes-capture.mdx +53 -0
  631. package/.next/standalone/docs-old/ko/agenteye/incidents.mdx +50 -0
  632. package/.next/standalone/docs-old/ko/agenteye/observability.mdx +23 -0
  633. package/.next/standalone/docs-old/ko/agenteye/openclaw-capture.mdx +49 -0
  634. package/.next/standalone/docs-old/ko/agenteye/overview.mdx +108 -0
  635. package/.next/standalone/docs-old/ko/agenteye/python-sdk-skill.mdx +130 -0
  636. package/.next/standalone/docs-old/ko/agenteye/python-sdk.mdx +433 -0
  637. package/.next/standalone/docs-old/ko/agenteye/queries.mdx +56 -0
  638. package/.next/standalone/docs-old/ko/agenteye/security.mdx +68 -0
  639. package/.next/standalone/docs-old/ko/agenteye/sessions.mdx +57 -0
  640. package/.next/standalone/docs-old/ko/agenteye/telemetry.mdx +52 -0
  641. package/.next/standalone/docs-old/ko/architecture.mdx +332 -0
  642. package/.next/standalone/docs-old/ko/built-in-policies.mdx +854 -0
  643. package/.next/standalone/docs-old/ko/cli/audit.mdx +131 -0
  644. package/.next/standalone/docs-old/ko/cli/dashboard.mdx +29 -0
  645. package/.next/standalone/docs-old/ko/cli/environment-variables.mdx +66 -0
  646. package/.next/standalone/docs-old/ko/cli/hook.mdx +30 -0
  647. package/.next/standalone/docs-old/ko/cli/install-policies.mdx +57 -0
  648. package/.next/standalone/docs-old/ko/cli/list-policies.mdx +31 -0
  649. package/.next/standalone/docs-old/ko/cli/migrate.mdx +86 -0
  650. package/.next/standalone/docs-old/ko/cli/remove-policies.mdx +43 -0
  651. package/.next/standalone/docs-old/ko/cli/update.mdx +64 -0
  652. package/.next/standalone/docs-old/ko/cli/version.mdx +12 -0
  653. package/.next/standalone/docs-old/ko/configuration.mdx +267 -0
  654. package/.next/standalone/docs-old/ko/custom-policies.mdx +358 -0
  655. package/.next/standalone/docs-old/ko/dashboard.mdx +151 -0
  656. package/.next/standalone/docs-old/ko/examples.mdx +307 -0
  657. package/.next/standalone/docs-old/ko/for-agents.mdx +38 -0
  658. package/.next/standalone/docs-old/ko/getting-started.mdx +199 -0
  659. package/.next/standalone/docs-old/ko/introduction.mdx +57 -0
  660. package/.next/standalone/docs-old/ko/package-aliases.mdx +82 -0
  661. package/.next/standalone/docs-old/ko/testing.mdx +260 -0
  662. package/.next/standalone/docs-old/logo/Failproof_AI_logo.png +0 -0
  663. package/.next/standalone/docs-old/logo/Failproof_AI_logo_light.png +0 -0
  664. package/.next/standalone/docs-old/package-aliases.mdx +82 -0
  665. package/.next/standalone/docs-old/pt-br/agenteye/alerts.mdx +63 -0
  666. package/.next/standalone/docs-old/pt-br/agenteye/api-keys.mdx +280 -0
  667. package/.next/standalone/docs-old/pt-br/agenteye/assistant.mdx +63 -0
  668. package/.next/standalone/docs-old/pt-br/agenteye/audits.mdx +54 -0
  669. package/.next/standalone/docs-old/pt-br/agenteye/cli-and-agents.mdx +80 -0
  670. package/.next/standalone/docs-old/pt-br/agenteye/cli-recipes.mdx +179 -0
  671. package/.next/standalone/docs-old/pt-br/agenteye/cli-skill.mdx +159 -0
  672. package/.next/standalone/docs-old/pt-br/agenteye/cli.mdx +350 -0
  673. package/.next/standalone/docs-old/pt-br/agenteye/codex-capture.mdx +55 -0
  674. package/.next/standalone/docs-old/pt-br/agenteye/concepts.mdx +87 -0
  675. package/.next/standalone/docs-old/pt-br/agenteye/dashboards.mdx +45 -0
  676. package/.next/standalone/docs-old/pt-br/agenteye/error-tracking.mdx +40 -0
  677. package/.next/standalone/docs-old/pt-br/agenteye/evaluation-suite.mdx +401 -0
  678. package/.next/standalone/docs-old/pt-br/agenteye/evaluations.mdx +51 -0
  679. package/.next/standalone/docs-old/pt-br/agenteye/evaluator-skill.mdx +167 -0
  680. package/.next/standalone/docs-old/pt-br/agenteye/event-stream.mdx +50 -0
  681. package/.next/standalone/docs-old/pt-br/agenteye/hermes-capture.mdx +53 -0
  682. package/.next/standalone/docs-old/pt-br/agenteye/incidents.mdx +50 -0
  683. package/.next/standalone/docs-old/pt-br/agenteye/observability.mdx +23 -0
  684. package/.next/standalone/docs-old/pt-br/agenteye/openclaw-capture.mdx +49 -0
  685. package/.next/standalone/docs-old/pt-br/agenteye/overview.mdx +108 -0
  686. package/.next/standalone/docs-old/pt-br/agenteye/python-sdk-skill.mdx +136 -0
  687. package/.next/standalone/docs-old/pt-br/agenteye/python-sdk.mdx +436 -0
  688. package/.next/standalone/docs-old/pt-br/agenteye/queries.mdx +56 -0
  689. package/.next/standalone/docs-old/pt-br/agenteye/security.mdx +68 -0
  690. package/.next/standalone/docs-old/pt-br/agenteye/sessions.mdx +56 -0
  691. package/.next/standalone/docs-old/pt-br/agenteye/telemetry.mdx +52 -0
  692. package/.next/standalone/docs-old/pt-br/architecture.mdx +332 -0
  693. package/.next/standalone/docs-old/pt-br/built-in-policies.mdx +858 -0
  694. package/.next/standalone/docs-old/pt-br/cli/audit.mdx +132 -0
  695. package/.next/standalone/docs-old/pt-br/cli/dashboard.mdx +29 -0
  696. package/.next/standalone/docs-old/pt-br/cli/environment-variables.mdx +72 -0
  697. package/.next/standalone/docs-old/pt-br/cli/hook.mdx +30 -0
  698. package/.next/standalone/docs-old/pt-br/cli/install-policies.mdx +57 -0
  699. package/.next/standalone/docs-old/pt-br/cli/list-policies.mdx +31 -0
  700. package/.next/standalone/docs-old/pt-br/cli/migrate.mdx +86 -0
  701. package/.next/standalone/docs-old/pt-br/cli/remove-policies.mdx +43 -0
  702. package/.next/standalone/docs-old/pt-br/cli/update.mdx +64 -0
  703. package/.next/standalone/docs-old/pt-br/cli/version.mdx +12 -0
  704. package/.next/standalone/docs-old/pt-br/configuration.mdx +268 -0
  705. package/.next/standalone/docs-old/pt-br/custom-policies.mdx +358 -0
  706. package/.next/standalone/docs-old/pt-br/dashboard.mdx +151 -0
  707. package/.next/standalone/docs-old/pt-br/examples.mdx +307 -0
  708. package/.next/standalone/docs-old/pt-br/for-agents.mdx +38 -0
  709. package/.next/standalone/docs-old/pt-br/getting-started.mdx +199 -0
  710. package/.next/standalone/docs-old/pt-br/introduction.mdx +57 -0
  711. package/.next/standalone/docs-old/pt-br/package-aliases.mdx +82 -0
  712. package/.next/standalone/docs-old/pt-br/testing.mdx +260 -0
  713. package/.next/standalone/docs-old/ru/agenteye/alerts.mdx +63 -0
  714. package/.next/standalone/docs-old/ru/agenteye/api-keys.mdx +280 -0
  715. package/.next/standalone/docs-old/ru/agenteye/assistant.mdx +63 -0
  716. package/.next/standalone/docs-old/ru/agenteye/audits.mdx +54 -0
  717. package/.next/standalone/docs-old/ru/agenteye/cli-and-agents.mdx +80 -0
  718. package/.next/standalone/docs-old/ru/agenteye/cli-recipes.mdx +179 -0
  719. package/.next/standalone/docs-old/ru/agenteye/cli-skill.mdx +159 -0
  720. package/.next/standalone/docs-old/ru/agenteye/cli.mdx +350 -0
  721. package/.next/standalone/docs-old/ru/agenteye/codex-capture.mdx +55 -0
  722. package/.next/standalone/docs-old/ru/agenteye/concepts.mdx +87 -0
  723. package/.next/standalone/docs-old/ru/agenteye/dashboards.mdx +46 -0
  724. package/.next/standalone/docs-old/ru/agenteye/error-tracking.mdx +41 -0
  725. package/.next/standalone/docs-old/ru/agenteye/evaluation-suite.mdx +401 -0
  726. package/.next/standalone/docs-old/ru/agenteye/evaluations.mdx +51 -0
  727. package/.next/standalone/docs-old/ru/agenteye/evaluator-skill.mdx +171 -0
  728. package/.next/standalone/docs-old/ru/agenteye/event-stream.mdx +51 -0
  729. package/.next/standalone/docs-old/ru/agenteye/hermes-capture.mdx +53 -0
  730. package/.next/standalone/docs-old/ru/agenteye/incidents.mdx +50 -0
  731. package/.next/standalone/docs-old/ru/agenteye/observability.mdx +23 -0
  732. package/.next/standalone/docs-old/ru/agenteye/openclaw-capture.mdx +49 -0
  733. package/.next/standalone/docs-old/ru/agenteye/overview.mdx +107 -0
  734. package/.next/standalone/docs-old/ru/agenteye/python-sdk-skill.mdx +131 -0
  735. package/.next/standalone/docs-old/ru/agenteye/python-sdk.mdx +437 -0
  736. package/.next/standalone/docs-old/ru/agenteye/queries.mdx +56 -0
  737. package/.next/standalone/docs-old/ru/agenteye/security.mdx +68 -0
  738. package/.next/standalone/docs-old/ru/agenteye/sessions.mdx +57 -0
  739. package/.next/standalone/docs-old/ru/agenteye/telemetry.mdx +52 -0
  740. package/.next/standalone/docs-old/ru/architecture.mdx +333 -0
  741. package/.next/standalone/docs-old/ru/built-in-policies.mdx +853 -0
  742. package/.next/standalone/docs-old/ru/cli/audit.mdx +132 -0
  743. package/.next/standalone/docs-old/ru/cli/dashboard.mdx +29 -0
  744. package/.next/standalone/docs-old/ru/cli/environment-variables.mdx +72 -0
  745. package/.next/standalone/docs-old/ru/cli/hook.mdx +30 -0
  746. package/.next/standalone/docs-old/ru/cli/install-policies.mdx +57 -0
  747. package/.next/standalone/docs-old/ru/cli/list-policies.mdx +31 -0
  748. package/.next/standalone/docs-old/ru/cli/migrate.mdx +91 -0
  749. package/.next/standalone/docs-old/ru/cli/remove-policies.mdx +44 -0
  750. package/.next/standalone/docs-old/ru/cli/update.mdx +64 -0
  751. package/.next/standalone/docs-old/ru/cli/version.mdx +12 -0
  752. package/.next/standalone/docs-old/ru/configuration.mdx +269 -0
  753. package/.next/standalone/docs-old/ru/custom-policies.mdx +358 -0
  754. package/.next/standalone/docs-old/ru/dashboard.mdx +155 -0
  755. package/.next/standalone/docs-old/ru/examples.mdx +307 -0
  756. package/.next/standalone/docs-old/ru/for-agents.mdx +38 -0
  757. package/.next/standalone/docs-old/ru/getting-started.mdx +199 -0
  758. package/.next/standalone/docs-old/ru/introduction.mdx +58 -0
  759. package/.next/standalone/docs-old/ru/package-aliases.mdx +82 -0
  760. package/.next/standalone/docs-old/ru/testing.mdx +260 -0
  761. package/.next/standalone/docs-old/styles/config/vocabularies/Mintlify/accept.txt +52 -0
  762. package/.next/standalone/docs-old/superpowers/specs/2026-06-11-audit-poster-restructure-design.md +332 -0
  763. package/.next/standalone/docs-old/testing.mdx +260 -0
  764. package/.next/standalone/docs-old/tr/agenteye/alerts.mdx +63 -0
  765. package/.next/standalone/docs-old/tr/agenteye/api-keys.mdx +279 -0
  766. package/.next/standalone/docs-old/tr/agenteye/assistant.mdx +63 -0
  767. package/.next/standalone/docs-old/tr/agenteye/audits.mdx +54 -0
  768. package/.next/standalone/docs-old/tr/agenteye/cli-and-agents.mdx +80 -0
  769. package/.next/standalone/docs-old/tr/agenteye/cli-recipes.mdx +179 -0
  770. package/.next/standalone/docs-old/tr/agenteye/cli-skill.mdx +161 -0
  771. package/.next/standalone/docs-old/tr/agenteye/cli.mdx +350 -0
  772. package/.next/standalone/docs-old/tr/agenteye/codex-capture.mdx +56 -0
  773. package/.next/standalone/docs-old/tr/agenteye/concepts.mdx +87 -0
  774. package/.next/standalone/docs-old/tr/agenteye/dashboards.mdx +46 -0
  775. package/.next/standalone/docs-old/tr/agenteye/error-tracking.mdx +41 -0
  776. package/.next/standalone/docs-old/tr/agenteye/evaluation-suite.mdx +299 -0
  777. package/.next/standalone/docs-old/tr/agenteye/evaluations.mdx +51 -0
  778. package/.next/standalone/docs-old/tr/agenteye/evaluator-skill.mdx +167 -0
  779. package/.next/standalone/docs-old/tr/agenteye/event-stream.mdx +50 -0
  780. package/.next/standalone/docs-old/tr/agenteye/hermes-capture.mdx +53 -0
  781. package/.next/standalone/docs-old/tr/agenteye/incidents.mdx +50 -0
  782. package/.next/standalone/docs-old/tr/agenteye/observability.mdx +23 -0
  783. package/.next/standalone/docs-old/tr/agenteye/openclaw-capture.mdx +50 -0
  784. package/.next/standalone/docs-old/tr/agenteye/overview.mdx +107 -0
  785. package/.next/standalone/docs-old/tr/agenteye/python-sdk-skill.mdx +130 -0
  786. package/.next/standalone/docs-old/tr/agenteye/python-sdk.mdx +436 -0
  787. package/.next/standalone/docs-old/tr/agenteye/queries.mdx +55 -0
  788. package/.next/standalone/docs-old/tr/agenteye/security.mdx +69 -0
  789. package/.next/standalone/docs-old/tr/agenteye/sessions.mdx +57 -0
  790. package/.next/standalone/docs-old/tr/agenteye/telemetry.mdx +52 -0
  791. package/.next/standalone/docs-old/tr/architecture.mdx +332 -0
  792. package/.next/standalone/docs-old/tr/built-in-policies.mdx +848 -0
  793. package/.next/standalone/docs-old/tr/cli/audit.mdx +117 -0
  794. package/.next/standalone/docs-old/tr/cli/dashboard.mdx +29 -0
  795. package/.next/standalone/docs-old/tr/cli/environment-variables.mdx +65 -0
  796. package/.next/standalone/docs-old/tr/cli/hook.mdx +31 -0
  797. package/.next/standalone/docs-old/tr/cli/install-policies.mdx +57 -0
  798. package/.next/standalone/docs-old/tr/cli/list-policies.mdx +31 -0
  799. package/.next/standalone/docs-old/tr/cli/migrate.mdx +87 -0
  800. package/.next/standalone/docs-old/tr/cli/remove-policies.mdx +43 -0
  801. package/.next/standalone/docs-old/tr/cli/update.mdx +88 -0
  802. package/.next/standalone/docs-old/tr/cli/version.mdx +12 -0
  803. package/.next/standalone/docs-old/tr/configuration.mdx +268 -0
  804. package/.next/standalone/docs-old/tr/custom-policies.mdx +358 -0
  805. package/.next/standalone/docs-old/tr/dashboard.mdx +152 -0
  806. package/.next/standalone/docs-old/tr/examples.mdx +307 -0
  807. package/.next/standalone/docs-old/tr/for-agents.mdx +38 -0
  808. package/.next/standalone/docs-old/tr/getting-started.mdx +199 -0
  809. package/.next/standalone/docs-old/tr/introduction.mdx +57 -0
  810. package/.next/standalone/docs-old/tr/package-aliases.mdx +82 -0
  811. package/.next/standalone/docs-old/tr/testing.mdx +261 -0
  812. package/.next/standalone/docs-old/vi/agenteye/alerts.mdx +63 -0
  813. package/.next/standalone/docs-old/vi/agenteye/api-keys.mdx +280 -0
  814. package/.next/standalone/docs-old/vi/agenteye/assistant.mdx +63 -0
  815. package/.next/standalone/docs-old/vi/agenteye/audits.mdx +54 -0
  816. package/.next/standalone/docs-old/vi/agenteye/cli-and-agents.mdx +80 -0
  817. package/.next/standalone/docs-old/vi/agenteye/cli-recipes.mdx +178 -0
  818. package/.next/standalone/docs-old/vi/agenteye/cli-skill.mdx +159 -0
  819. package/.next/standalone/docs-old/vi/agenteye/cli.mdx +349 -0
  820. package/.next/standalone/docs-old/vi/agenteye/codex-capture.mdx +55 -0
  821. package/.next/standalone/docs-old/vi/agenteye/concepts.mdx +88 -0
  822. package/.next/standalone/docs-old/vi/agenteye/dashboards.mdx +46 -0
  823. package/.next/standalone/docs-old/vi/agenteye/error-tracking.mdx +41 -0
  824. package/.next/standalone/docs-old/vi/agenteye/evaluation-suite.mdx +300 -0
  825. package/.next/standalone/docs-old/vi/agenteye/evaluations.mdx +51 -0
  826. package/.next/standalone/docs-old/vi/agenteye/evaluator-skill.mdx +171 -0
  827. package/.next/standalone/docs-old/vi/agenteye/event-stream.mdx +50 -0
  828. package/.next/standalone/docs-old/vi/agenteye/hermes-capture.mdx +53 -0
  829. package/.next/standalone/docs-old/vi/agenteye/incidents.mdx +50 -0
  830. package/.next/standalone/docs-old/vi/agenteye/observability.mdx +23 -0
  831. package/.next/standalone/docs-old/vi/agenteye/openclaw-capture.mdx +49 -0
  832. package/.next/standalone/docs-old/vi/agenteye/overview.mdx +109 -0
  833. package/.next/standalone/docs-old/vi/agenteye/python-sdk-skill.mdx +131 -0
  834. package/.next/standalone/docs-old/vi/agenteye/python-sdk.mdx +433 -0
  835. package/.next/standalone/docs-old/vi/agenteye/queries.mdx +55 -0
  836. package/.next/standalone/docs-old/vi/agenteye/security.mdx +68 -0
  837. package/.next/standalone/docs-old/vi/agenteye/sessions.mdx +57 -0
  838. package/.next/standalone/docs-old/vi/agenteye/telemetry.mdx +52 -0
  839. package/.next/standalone/docs-old/vi/architecture.mdx +332 -0
  840. package/.next/standalone/docs-old/vi/built-in-policies.mdx +853 -0
  841. package/.next/standalone/docs-old/vi/cli/audit.mdx +120 -0
  842. package/.next/standalone/docs-old/vi/cli/dashboard.mdx +29 -0
  843. package/.next/standalone/docs-old/vi/cli/environment-variables.mdx +69 -0
  844. package/.next/standalone/docs-old/vi/cli/hook.mdx +30 -0
  845. package/.next/standalone/docs-old/vi/cli/install-policies.mdx +57 -0
  846. package/.next/standalone/docs-old/vi/cli/list-policies.mdx +32 -0
  847. package/.next/standalone/docs-old/vi/cli/migrate.mdx +122 -0
  848. package/.next/standalone/docs-old/vi/cli/remove-policies.mdx +43 -0
  849. package/.next/standalone/docs-old/vi/cli/update.mdx +95 -0
  850. package/.next/standalone/docs-old/vi/cli/version.mdx +12 -0
  851. package/.next/standalone/docs-old/vi/configuration.mdx +268 -0
  852. package/.next/standalone/docs-old/vi/custom-policies.mdx +358 -0
  853. package/.next/standalone/docs-old/vi/dashboard.mdx +151 -0
  854. package/.next/standalone/docs-old/vi/examples.mdx +308 -0
  855. package/.next/standalone/docs-old/vi/for-agents.mdx +39 -0
  856. package/.next/standalone/docs-old/vi/getting-started.mdx +200 -0
  857. package/.next/standalone/docs-old/vi/introduction.mdx +57 -0
  858. package/.next/standalone/docs-old/vi/package-aliases.mdx +83 -0
  859. package/.next/standalone/docs-old/vi/testing.mdx +261 -0
  860. package/.next/standalone/docs-old/zh/agenteye/alerts.mdx +63 -0
  861. package/.next/standalone/docs-old/zh/agenteye/api-keys.mdx +280 -0
  862. package/.next/standalone/docs-old/zh/agenteye/assistant.mdx +63 -0
  863. package/.next/standalone/docs-old/zh/agenteye/audits.mdx +54 -0
  864. package/.next/standalone/docs-old/zh/agenteye/cli-and-agents.mdx +79 -0
  865. package/.next/standalone/docs-old/zh/agenteye/cli-recipes.mdx +179 -0
  866. package/.next/standalone/docs-old/zh/agenteye/cli-skill.mdx +159 -0
  867. package/.next/standalone/docs-old/zh/agenteye/cli.mdx +350 -0
  868. package/.next/standalone/docs-old/zh/agenteye/codex-capture.mdx +55 -0
  869. package/.next/standalone/docs-old/zh/agenteye/concepts.mdx +87 -0
  870. package/.next/standalone/docs-old/zh/agenteye/dashboards.mdx +46 -0
  871. package/.next/standalone/docs-old/zh/agenteye/error-tracking.mdx +40 -0
  872. package/.next/standalone/docs-old/zh/agenteye/evaluation-suite.mdx +300 -0
  873. package/.next/standalone/docs-old/zh/agenteye/evaluations.mdx +51 -0
  874. package/.next/standalone/docs-old/zh/agenteye/evaluator-skill.mdx +167 -0
  875. package/.next/standalone/docs-old/zh/agenteye/event-stream.mdx +50 -0
  876. package/.next/standalone/docs-old/zh/agenteye/hermes-capture.mdx +53 -0
  877. package/.next/standalone/docs-old/zh/agenteye/incidents.mdx +50 -0
  878. package/.next/standalone/docs-old/zh/agenteye/observability.mdx +23 -0
  879. package/.next/standalone/docs-old/zh/agenteye/openclaw-capture.mdx +49 -0
  880. package/.next/standalone/docs-old/zh/agenteye/overview.mdx +108 -0
  881. package/.next/standalone/docs-old/zh/agenteye/python-sdk-skill.mdx +131 -0
  882. package/.next/standalone/docs-old/zh/agenteye/python-sdk.mdx +433 -0
  883. package/.next/standalone/docs-old/zh/agenteye/queries.mdx +56 -0
  884. package/.next/standalone/docs-old/zh/agenteye/security.mdx +68 -0
  885. package/.next/standalone/docs-old/zh/agenteye/sessions.mdx +56 -0
  886. package/.next/standalone/docs-old/zh/agenteye/telemetry.mdx +52 -0
  887. package/.next/standalone/docs-old/zh/architecture.mdx +332 -0
  888. package/.next/standalone/docs-old/zh/built-in-policies.mdx +850 -0
  889. package/.next/standalone/docs-old/zh/cli/audit.mdx +115 -0
  890. package/.next/standalone/docs-old/zh/cli/dashboard.mdx +29 -0
  891. package/.next/standalone/docs-old/zh/cli/environment-variables.mdx +62 -0
  892. package/.next/standalone/docs-old/zh/cli/hook.mdx +30 -0
  893. package/.next/standalone/docs-old/zh/cli/install-policies.mdx +57 -0
  894. package/.next/standalone/docs-old/zh/cli/list-policies.mdx +31 -0
  895. package/.next/standalone/docs-old/zh/cli/migrate.mdx +86 -0
  896. package/.next/standalone/docs-old/zh/cli/remove-policies.mdx +43 -0
  897. package/.next/standalone/docs-old/zh/cli/update.mdx +65 -0
  898. package/.next/standalone/docs-old/zh/cli/version.mdx +12 -0
  899. package/.next/standalone/docs-old/zh/configuration.mdx +266 -0
  900. package/.next/standalone/docs-old/zh/custom-policies.mdx +358 -0
  901. package/.next/standalone/docs-old/zh/dashboard.mdx +151 -0
  902. package/.next/standalone/docs-old/zh/examples.mdx +307 -0
  903. package/.next/standalone/docs-old/zh/for-agents.mdx +38 -0
  904. package/.next/standalone/docs-old/zh/getting-started.mdx +199 -0
  905. package/.next/standalone/docs-old/zh/introduction.mdx +57 -0
  906. package/.next/standalone/docs-old/zh/package-aliases.mdx +82 -0
  907. package/.next/standalone/docs-old/zh/testing.mdx +260 -0
  908. package/.next/standalone/lib/telemetry.ts +45 -40
  909. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  910. package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
  911. package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
  912. package/.next/standalone/node_modules/@swc/helpers/package.json +703 -469
  913. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  914. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +8 -6
  915. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +26 -20
  916. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +2 -1
  917. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +5 -2
  918. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +2 -1
  919. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +3 -1
  920. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +150 -169
  921. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +16 -54
  922. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +115 -23
  923. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +61 -6
  924. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +53 -36
  925. package/.next/standalone/node_modules/next/dist/client/route-params.js +4 -8
  926. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +26 -26
  927. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +26 -26
  928. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +2 -2
  929. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
  930. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  931. package/.next/standalone/node_modules/next/dist/lib/turbopack-cache-seed.js +15 -7
  932. package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +2 -0
  933. package/.next/standalone/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +2 -1
  934. package/.next/standalone/node_modules/next/dist/server/async-storage/request-store.js +29 -20
  935. package/.next/standalone/node_modules/next/dist/server/async-storage/work-store.js +1 -0
  936. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  937. package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +90 -11
  938. package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker.js +51 -9
  939. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +24 -4
  940. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  941. package/.next/standalone/node_modules/next/dist/server/dev/use-cache-probe-worker.js +1 -0
  942. package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +1 -0
  943. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  944. package/.next/standalone/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
  945. package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
  946. package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +2 -2
  947. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  948. package/.next/standalone/node_modules/next/dist/server/use-cache/handlers.js +14 -0
  949. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +2 -1
  950. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +100 -31
  951. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +88 -2
  952. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +12 -5
  953. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +13 -1
  954. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  955. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  956. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  957. package/.next/standalone/node_modules/next/package.json +11 -11
  958. package/.next/standalone/package.json +10 -10
  959. package/.next/standalone/server.js +1 -1
  960. package/README.md +11 -11
  961. package/dist/cli.mjs +81 -101
  962. package/dist/worker.mjs +1 -1
  963. package/lib/telemetry.ts +45 -40
  964. package/package.json +10 -10
  965. package/scripts/release-announcement.mjs +686 -0
  966. package/scripts/translate-docs/config.ts +19 -1
  967. package/src/audit/cli.ts +64 -49
  968. package/src/hooks/hook-telemetry.ts +3 -2
  969. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g2rg69._.js +0 -3
  970. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m98kzy._.js +0 -4
  971. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v5_91z._.js +0 -4
  972. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-a3135._.js +0 -4
  973. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e5g_ur._.js +0 -4
  974. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hmqefd._.js +0 -4
  975. package/.next/standalone/.next/server/chunks/ssr/_1nq-35m._.js +0 -23
  976. package/.next/standalone/.next/server/chunks/ssr/node_modules_1j2z5jb._.js +0 -3
  977. package/.next/standalone/.next/static/chunks/00q6cfzuzpc85.js +0 -1
  978. package/.next/standalone/.next/static/chunks/13--2yvqek_s1.js +0 -1
  979. package/.next/standalone/.next/static/chunks/18fqy3doo2ial.js +0 -6
  980. package/.next/standalone/.next/static/chunks/2ts65czrjjd_k.js +0 -31
  981. package/.next/standalone/.next/static/chunks/31orv9uidm1fn.js +0 -22
  982. package/.next/standalone/.next/static/chunks/3peix2vxzj7eh.js +0 -1
  983. package/.next/standalone/node_modules/next/dist/server/lib/encode-cache-tag.js +0 -45
  984. /package/.next/standalone/.next/static/{jSKB7CQQSNTX-uSbY2bUs → ZklXxyA5ygsWSQz2u_zii}/_buildManifest.js +0 -0
  985. /package/.next/standalone/.next/static/{jSKB7CQQSNTX-uSbY2bUs → ZklXxyA5ygsWSQz2u_zii}/_clientMiddlewareManifest.js +0 -0
  986. /package/.next/standalone/.next/static/{jSKB7CQQSNTX-uSbY2bUs → ZklXxyA5ygsWSQz2u_zii}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[28864,e=>{"use strict";let t,r,i,s,a;var n,o=e.i(14747);function l(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}let u=e=>void 0===e?void 0:e.variant??e.enabled,c=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}},d=["$feature_flag","$feature_flag_response","$feature_flag_has_experiment","$feature_flag_id","$feature_flag_version","$feature_flag_reason","$feature_flag_request_id","$feature_flag_evaluated_at","$feature_flag_error","locally_evaluated","$groups","$process_person_profile","$geoip_disable","$current_url","$pathname","$referring_domain","utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid","gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx","$session_id","$window_id","$lib","$lib_version","$device_id","$is_server"],h=(e,t=[])=>{let r={},i=t=>{void 0!==e[t]&&(r[t]=e[t])};return d.forEach(i),t.forEach(i),r};var g=((n={}).AnonymousId="anonymous_id",n.DistinctId="distinct_id",n.Props="props",n.EnablePersonProcessing="enable_person_processing",n.PersonMode="person_mode",n.FeatureFlagDetails="feature_flag_details",n.FeatureFlags="feature_flags",n.FeatureFlagPayloads="feature_flag_payloads",n.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",n.BootstrapFeatureFlags="bootstrap_feature_flags",n.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",n.OverrideFeatureFlags="override_feature_flags",n.Queue="queue",n.AiQueue="ai_queue",n.LogsQueue="logs_queue",n.OptedOut="opted_out",n.SessionId="session_id",n.SessionStartTimestamp="session_start_timestamp",n.SessionLastTimestamp="session_timestamp",n.PersonProperties="person_properties",n.GroupProperties="group_properties",n.InstalledAppBuild="installed_app_build",n.InstalledAppVersion="installed_app_version",n.SessionReplay="session_replay",n.PushRegistered="push_registered",n.SessionReplayEventTriggerActivatedSession="session_replay_event_trigger_activated_session",n.SurveyLastSeenDate="survey_last_seen_date",n.SurveysSeen="surveys_seen",n.Surveys="surveys",n.RemoteConfig="remote_config",n.FlagsEndpointWasHit="flags_endpoint_was_hit",n.DeviceId="device_id",n);let p={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",TIMEOUT:"timeout",CONNECTION_ERROR:"connection_error",UNKNOWN_ERROR:"unknown_error",apiError:e=>`api_error_${e}`},f=e=>{let t=Error(`Native gzip produced invalid output: ${e}`);throw t.name="NativeGzipValidationError",t},y=async(e,r)=>{e.size<18&&f("too-short");let i=new Uint8Array(await e.slice(0,10).arrayBuffer());i.length>=2&&31===i[0]&&139===i[1]&&8===i[2]||f("invalid-header");let s=new DataView(await e.slice(e.size-8).arrayBuffer());s.getUint32(0,!0)!==(e=>{let r=(()=>{if(t)return t;t=[];for(let e=0;e<256;e++){let r=e;for(let e=0;e<8;e++)r=1&r?0xedb88320^r>>>1:r>>>1;t[e]=r>>>0}return t})(),i=0xffffffff;for(let t=0;t<e.length;t++)i=r[(i^e[t])&255]^i>>>8;return(0xffffffff^i)>>>0})(r)&&f("invalid-crc");let a=r.length>>>0;s.getUint32(4,!0)!==a&&f("invalid-size")};async function m(e,t=!0,r){try{let t=new TextEncoder().encode(e),r=new globalThis.CompressionStream("gzip"),i=r.writable.getWriter(),s=i.write(t).then(()=>i.close()).catch(async e=>{try{await i.abort(e)}catch{}throw e}),a=new Response(r.readable).blob(),[n]=await Promise.all([a,s]);return await y(n,t),n}catch(e){if(r?.rethrow)throw e;return t&&console.error("Failed to gzip compress data",e),null}}function _(e){let t=[];return JSON.stringify(e,function(e,r){if("bigint"==typeof r)return r.toString();if("function"!=typeof r&&"symbol"!=typeof r){if(r instanceof Error)return{name:r.name,message:r.message,stack:r.stack};if(r&&"object"==typeof r){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(r))return"[Circular]";t.push(r)}return r}})??"null"}let v=Array.isArray,b=Object.prototype;b.hasOwnProperty;let w=b.toString,E=v||function(e){return"[object Array]"===w.call(e)},F=e=>e===Object(e)&&!E(e),P=e=>void 0===e,x=e=>"[object String]"==w.call(e),S=e=>null===e,$=e=>"[object Number]"==w.call(e)&&e==e;function C(e){return null===e||"object"!=typeof e}function I(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function k(e){return"u">typeof Event&&A(e,Event)}function A(e,t){try{return e instanceof t}catch{return!1}}let O="Android",R="BlackBerry",T="Nintendo",M="PlayStation",L="Xbox",j="Windows",D="(\\d+(\\.\\d+)?)";RegExp("Version/"+D),RegExp(L,"i"),RegExp(M+" \\w+","i"),RegExp(T+" \\w+","i"),RegExp(R+"|PlayBook|BB10","i");RegExp("rv:"+D),RegExp("Edge?\\/"+D),RegExp("(Chrome|CrMo)\\/"+D),RegExp("CriOS\\/"+D),RegExp("(UCBrowser|UCWEB)\\/"+D),RegExp("(Opera|OPR)\\/"+D),RegExp("Firefox\\/"+D),RegExp("FxiOS\\/"+D),RegExp("Konqueror[:/]?"+D,"i"),RegExp(R+" "+D),RegExp("android\\s"+D,"i"),RegExp("SamsungBrowser\\/"+D),RegExp("OculusBrowser\\/"+D),RegExp("Vivaldi\\/"+D),RegExp("YaBrowser\\/"+D),RegExp("Whale\\/"+D),RegExp("Brave\\/"+D),RegExp("(DuckDuckGo|Ddg)\\/"+D),RegExp("PaleMoon\\/"+D),RegExp("Waterfox\\/"+D),RegExp("GSA\\/"+D),RegExp("(rv:|MSIE )"+D),RegExp("rv:"+D),RegExp(L+"; "+L+" (.*?)[);]","i"),RegExp(T,"i"),RegExp(M,"i"),RegExp(j,"i"),RegExp("("+O+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+O+")","i");let B=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function U(e,t){return"string"==typeof e&&B.test(e)?e:t()}function N(e){return e?e.split("#")[0]:e}async function q(e,t){let r=null;for(let i=0;i<t.retryCount+1;i++){i>0&&await new Promise(e=>setTimeout(e,t.retryDelay));try{return await e()}catch(e){if(r=e,!t.retryCheck(e))throw e}}throw r}function H(){return new Date().toISOString()}function W(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}async function z(e,t,r){let i;try{return await Promise.race([e,new Promise((e,s)=>{i=W(()=>{try{r?.(),e()}catch(e){s(e)}},t)})])}finally{clearTimeout(i)}}let G=e=>e instanceof Error;function K(e){return Promise.all(e.map(e=>(e??Promise.resolve()).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}function V(e){let t=[];for(let r in e){let i=e[r];S(i)||P(i)||t.push({key:r,value:function e(t){if("[object Boolean]"===w.call(t))return{boolValue:t};if("number"==typeof t)return Number.isFinite(t)?Number.isInteger(t)?{intValue:t}:{doubleValue:t}:{stringValue:String(t)};if("string"==typeof t)return{stringValue:t};if(E(t))return{arrayValue:{values:t.map(t=>e(t))}};try{return{stringValue:JSON.stringify(t)}}catch{return{stringValue:String(t)}}}(i)})}return t}let Q=[0,5,10,25,50,75,100,250,500,750,1e3,2500,5e3,7500,1e4];function J(e){return String(e)+"000000"}function Y(e,t,r,i){let s="";return i&&(s=Object.keys(i).sort().map(e=>`${JSON.stringify(e)}:${JSON.stringify(i[e])}`).join(",")),`${e}\u0000${t}\u0000${r??""}\u0000${s}`}class X{constructor(e,t,r){this._instance=e,this._config=t,this._logger=r,this._series=new Map,this._flushPromise=null,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set,this._generation=0}count(e,t=1,r){this._capture({name:e,type:"count",value:t,unit:r?.unit,attributes:r?.attributes})}gauge(e,t,r){this._capture({name:e,type:"gauge",value:t,unit:r?.unit,attributes:r?.attributes})}histogram(e,t,r){this._capture({name:e,type:"histogram",value:t,unit:r?.unit,attributes:r?.attributes})}flush(){let e=this._flushPromise,t=(async()=>{e&&await e.catch(()=>{}),await this._doFlush()})().finally(()=>{this._flushPromise===t&&(this._flushPromise=null)});return this._flushPromise=t,t}drainWindow(){if(0===this._series.size)return null;let e=this._series;return this._series=new Map,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set,this._buildPayload(e)}reset(){this._generation++,this._clearFlushTimer(),this._series=new Map,this._flushPromise=null,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set}_capture(e){let t,r;if(this._instance.isDisabled||this._instance.optedOut)return;let i=this._runBeforeSend(e);if(null===i)return;if(!i.name||"string"!=typeof i.name)return void this._logger.warn("Dropping metric with empty name");if("number"!=typeof i.value||!Number.isFinite(i.value))return void this._logger.warn(`Dropping metric '${i.name}': value must be a finite number`);if("count"===i.type&&i.value<0)return void this._logger.warn(`Dropping count '${i.name}': counters are monotonic, value must be >= 0`);try{t=i.attributes?{...i.attributes}:void 0,r=Y(i.type,i.name,i.unit,t)}catch(e){this._logger.warn(`Dropping metric '${i.name}': attributes could not be serialized`,e);return}let s=this._series.get(r);if(!s){if(!this._admitNewSeries())return;s={name:i.name,type:i.type,unit:i.unit,attributes:t,windowStartMs:Date.now()},this._series.set(r,s)}let a=this._typeByName.get(i.name);void 0===a?this._typeByName.set(i.name,i.type):a===i.type||this._typeCollisionWarned.has(i.name)||(this._typeCollisionWarned.add(i.name),this._logger.warn(`Metric name '${i.name}' is already used as a ${a}; recording it as a ${i.type} too will blend both series in charts. Use a distinct name.`)),this._fold(s,i.value),this._armFlushTimer()}_admitNewSeries(){return this._series.size<this._config.maxSeriesPerFlush||(this._seriesCapWarned||(this._seriesCapWarned=!0,this._logger.warn(`Metric series cap reached (${this._config.maxSeriesPerFlush} per flush window); dropping new series until the next flush. Reduce attribute cardinality.`)),!1)}_fold(e,t){switch(e.type){case"count":e.total=(e.total??0)+t;break;case"gauge":e.last=t;break;case"histogram":{e.hist||(e.hist={count:0,sum:0,min:t,max:t,bucketCounts:Array(Q.length+1).fill(0)});let r=e.hist;r.count+=1,r.sum+=t,r.min=Math.min(r.min,t),r.max=Math.max(r.max,t),r.bucketCounts[function(e,t){for(let r=0;r<t.length;r++)if(e<=t[r])return r;return t.length}(t,Q)]+=1}}}_runBeforeSend(e){let t=this._config.beforeSend;if(!t)return e;let r=E(t)?t:[t],i=e;for(let e of r)try{let t=e(i);if(!t)return this._logger.info("Metric was rejected in beforeSend function"),null;i=t}catch(e){return this._logger.error("Error in beforeSend function for metric:",e),null}return i}_armFlushTimer(){this._flushTimer||(this._flushTimer=W(()=>{this._flushTimer=void 0,this.flush().catch(e=>{this._logger.error("Metrics flush failed:",e)})},this._config.flushIntervalMs))}_clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}async _doFlush(){if(0===this._series.size)return;let e=this._series;this._series=new Map,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set;let t=this._generation,r=await this._instance._sendMetricsBatch(this._buildPayload(e));if(t===this._generation)switch(r.kind){case"ok":return;case"retry-later":this._mergeWindowBack(e),this._armFlushTimer();return;case"too-large":this._logger.warn("Metrics batch exceeded the server size limit and was dropped");return;case"fatal":this._logger.error("Failed to send metrics batch:",r.error);return}}_buildPayload(e){var t,r,i,s,a,n,o;return s=this._buildMetrics(e),t=this._config,r=this._instance.getLibraryId(),i=this._instance.getLibraryVersion(),a={...t.resourceAttributes,"service.name":t.serviceName||"unknown_service",...t.environment&&{"deployment.environment":t.environment},...t.serviceVersion&&{"service.version":t.serviceVersion},"telemetry.sdk.name":r,"telemetry.sdk.version":i},n=this._instance.getLibraryId(),o=this._instance.getLibraryVersion(),{resourceMetrics:[{resource:{attributes:V(a)},scopeMetrics:[{scope:{name:n,version:o},metrics:s}]}]}}_buildMetrics(e){let t=J(Date.now()),r=new Map;for(let i of e.values()){let e=Y(i.type,i.name,i.unit,void 0),s=r.get(e);s||(s={name:i.name,...i.unit&&{unit:i.unit}},"count"===i.type?s.sum={aggregationTemporality:1,isMonotonic:!0,dataPoints:[]}:"gauge"===i.type?s.gauge={dataPoints:[]}:s.histogram={aggregationTemporality:1,dataPoints:[]},r.set(e,s));let a=V(i.attributes??{}),n=J(i.windowStartMs);if("count"===i.type){let e={attributes:a,startTimeUnixNano:n,timeUnixNano:t,asDouble:i.total??0};s.sum.dataPoints.push(e)}else if("gauge"===i.type){let e={attributes:a,timeUnixNano:t,asDouble:i.last??0};s.gauge.dataPoints.push(e)}else if(i.hist){let e={attributes:a,startTimeUnixNano:n,timeUnixNano:t,count:i.hist.count,sum:i.hist.sum,min:i.hist.min,max:i.hist.max,bucketCounts:i.hist.bucketCounts,explicitBounds:Q};s.histogram.dataPoints.push(e)}}return Array.from(r.values())}_mergeWindowBack(e){for(let[t,r]of e){let e=this._series.get(t);if(!e){this._admitNewSeries()&&this._series.set(t,r);continue}switch(e.windowStartMs=Math.min(e.windowStartMs,r.windowStartMs),e.type){case"count":e.total=(e.total??0)+(r.total??0);break;case"gauge":break;case"histogram":if(r.hist)if(e.hist){e.hist.count+=r.hist.count,e.hist.sum+=r.hist.sum,e.hist.min=Math.min(e.hist.min,r.hist.min),e.hist.max=Math.max(e.hist.max,r.hist.max);for(let t=0;t<e.hist.bucketCounts.length;t++)e.hist.bucketCounts[t]+=r.hist.bucketCounts[t]}else e.hist=r.hist}}}}let Z="0123456789abcdef";class ee{constructor(e){this.bytes=e}static ofInner(e){if(16===e.length)return new ee(e);throw TypeError("not 128-bit length")}static fromFieldsV7(e,t,r,i){if(!Number.isInteger(e)||!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(i)||e<0||t<0||r<0||i<0||e>0xffffffffffff||t>4095||r>0x3fffffff||i>0xffffffff)throw RangeError("invalid field value");let s=new Uint8Array(16);return s[0]=e/0x10000000000,s[1]=e/0x100000000,s[2]=e/0x1000000,s[3]=e/65536,s[4]=e/256,s[5]=e,s[6]=112|t>>>8,s[7]=t,s[8]=128|r>>>24,s[9]=r>>>16,s[10]=r>>>8,s[11]=r,s[12]=i>>>24,s[13]=i>>>16,s[14]=i>>>8,s[15]=i,new ee(s)}static parse(e){let t;switch(e.length){case 32:t=/^[0-9a-f]{32}$/i.exec(e)?.[0];break;case 36:t=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e)?.slice(1,6).join("");break;case 38:t=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e)?.slice(1,6).join("");break;case 45:t=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e)?.slice(1,6).join("")}if(t){let e=new Uint8Array(16);for(let r=0;r<16;r+=4){let i=parseInt(t.substring(2*r,2*r+8),16);e[r+0]=i>>>24,e[r+1]=i>>>16,e[r+2]=i>>>8,e[r+3]=i}return new ee(e)}throw SyntaxError("could not parse UUID string")}toString(){let e="";for(let t=0;t<this.bytes.length;t++)e+=Z.charAt(this.bytes[t]>>>4),e+=Z.charAt(15&this.bytes[t]),(3===t||5===t||7===t||9===t)&&(e+="-");return e}toHex(){let e="";for(let t=0;t<this.bytes.length;t++)e+=Z.charAt(this.bytes[t]>>>4),e+=Z.charAt(15&this.bytes[t]);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw Error("unreachable");if(e<=7)return this.bytes.every(e=>0===e)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(e=>255===e)?"MAX":"VAR_RESERVED";throw Error("unreachable")}getVersion(){return"VAR_10"===this.getVariant()?this.bytes[6]>>>4:void 0}clone(){return new ee(this.bytes.slice(0))}equals(e){return 0===this.compareTo(e)}compareTo(e){for(let t=0;t<16;t++){let r=this.bytes[t]-e.bytes[t];if(0!==r)return Math.sign(r)}return 0}}class et{constructor(e){this.timestamp=0,this.counter=0,this.random=e??er()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,t){let r=this.generateOrAbortCore(e,t);return void 0===r&&(this.timestamp=0,r=this.generateOrAbortCore(e,t)),r}generateOrAbortCore(e,t){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(t<0||t>0xffffffffffff)throw RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else{if(!(e+t>=this.timestamp))return;this.counter++,this.counter>0x3ffffffffff&&(this.timestamp++,this.resetCounter())}return ee.fromFieldsV7(this.timestamp,Math.trunc(this.counter/0x40000000),this.counter&0x40000000-1,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,ee.ofInner(e)}}let er=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),ei=()=>es().toString(),es=()=>(r||(r=new et)).generate();function ea(e){let t={};if(e)for(let r of e.split(";")){let[e,...i]=r.trim().split("=");if(e){let r=i.join("=").trim();try{t[e.trim()]=decodeURIComponent(r)}catch{t[e.trim()]=r}}}return{get:e=>e in t?{value:t[e]}:void 0}}function en(e){let t=e.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ");return`ph_${t}_posthog`}function eo(e){let t=Date.now();return JSON.stringify({distinct_id:e,$device_id:e,$user_state:"anonymous",$sesid:[t,ei(),t]})}function el(e,t){let r=en(t),i=e.get(r);return i?ec(i.value):null}function eu(e){if(!e)return;let t={};return e.sessionId&&(t.$session_id=e.sessionId),e.deviceId&&(t.$device_id=e.deviceId),Object.keys(t).length>0?t:void 0}function ec(e){if(!e)return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t||!t.distinct_id)return null;let r=E(t.$sesid)?t.$sesid[1]:void 0;return{distinctId:String(t.distinct_id),isIdentified:"identified"===t.$user_state,sessionId:"string"==typeof r?r:void 0,deviceId:"string"==typeof t.$device_id?t.$device_id:void 0}}catch{return null}}class ed{constructor(){this.events={},this.events={}}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),()=>{this.events[e]=this.events[e].filter(e=>e!==t)}}emit(e,t){for(let r of this.events[e]||[])r(t);for(let r of this.events["*"]||[])r(e,t)}}class eh{add(e){let t=ei(),r=++this.nextId;return this.promiseByIds[t]={id:r,promise:e},e.catch(()=>{}).finally(()=>{delete this.promiseByIds[t]}),e}async join(){let e=Object.values(this.promiseByIds).map(e=>e.promise),t=e.length;for(;t>0;)await Promise.all(e),t=(e=Object.values(this.promiseByIds).map(e=>e.promise)).length}getPromises(e=[],t=this.nextId){let r=new Set(e);return Object.values(this.promiseByIds).filter(e=>e.id<=t&&!r.has(e.promise)).map(e=>e.promise)}get maxId(){return this.nextId}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={},this.nextId=0}}let eg=(e,t,r)=>{function i(s,...a){t(()=>{(0,r[s])(e,...a)})}return{debug:(...e)=>{i("debug",...e)},info:(...e)=>{i("log",...e)},warn:(...e)=>{i("warn",...e)},error:(...e)=>{i("error",...e)},critical:(...t)=>{r.error(e,...t)},createLogger:i=>eg(`${e} ${i}`,t,r)}};class ep{constructor(e,t,r=[]){this.coercers=e,this.stackParser=t,this.modifiers=r}buildFromUnknown(e,t={}){let r=t&&t.mechanism||{handled:!0,type:"generic"},i=this.buildCoercingContext(r,t,0).apply(e),s=this.buildParsingContext(t),a=this.parseStacktrace(i,s);return{$exception_list:this.convertToExceptionList(a,r),$exception_level:"error"}}async modifyFrames(e){for(let t of e)t.stacktrace&&t.stacktrace.frames&&E(t.stacktrace.frames)&&(t.stacktrace.frames=await this.applyModifiers(t.stacktrace.frames));return e}coerceFallback(e){return{type:"Error",value:"Unknown error",stack:e.syntheticException?.stack,synthetic:!0}}parseStacktrace(e,t){let r,i;return null!=e.cause&&(r=this.parseStacktrace(e.cause,t)),""!=e.stack&&null!=e.stack&&(i=this.applyChunkIds(this.stackParser(e.stack,e.synthetic?t.skipFirstLines:0),t.chunkIdMap)),{...e,cause:r,stack:i}}applyChunkIds(e,t){return e.map(e=>(e.filename&&t&&(e.chunk_id=t[e.filename]),e))}applyCoercers(e,t){for(let r of this.coercers)if(r.match(e))return r.coerce(e,t);return this.coerceFallback(t)}async applyModifiers(e){let t=e;for(let e of this.modifiers)t=await e(t);return t}convertToExceptionList(e,t){let r={type:e.type,value:e.value,mechanism:{type:t.type??"generic",handled:t.handled??!0,synthetic:e.synthetic??!1}};e.stack&&(r.stacktrace={type:"raw",frames:e.stack});let i=[r];return null!=e.cause&&i.push(...this.convertToExceptionList(e.cause,{...t,handled:!0})),i}buildParsingContext(e){return{chunkIdMap:function(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return a&&r.length===s?a:(s=r.length,a=r.reduce((r,s)=>{i||(i={});let a=i[s];if(a)r[a[0]]=a[1];else{let a=e(s);for(let e=a.length-1;e>=0;e--){let n=a[e],o=n?.filename,l=t[s];if(o&&l){r[o]=l,i[s]=[o,l];break}}}return r},{}))}(this.stackParser),skipFirstLines:e.skipFirstLines??1}}buildCoercingContext(e,t,r=0){let i=(r,i)=>{if(i<=4){let s=this.buildCoercingContext(e,t,i);return this.applyCoercers(r,s)}};return{...t,syntheticException:0==r?t.syntheticException:void 0,mechanism:e,apply:e=>i(e,r),next:e=>i(e,r+1)}}}function ef(e,t,r,i,s){let a={platform:e,filename:t,function:"<anonymous>"===r?"?":r,in_app:!0};return P(i)||(a.lineno=i),P(s)||(a.colno=s),a}e.s(["ErrorPropertiesBuilder",0,ep],80446);let ey=(e,t)=>{let r=-1!==e.indexOf("safari-extension"),i=-1!==e.indexOf("safari-web-extension");return r||i?[-1!==e.indexOf("@")?e.split("@")[0]:"?",r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},em=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,e_=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ev=/\((\S*)(?::(\d+))(?::(\d+))\)/,eb=(e,t)=>{let r=em.exec(e);if(r){let[,e,i,s]=r;return ef(t,e,"?",+i,+s)}let i=e_.exec(e);if(i){if(i[2]&&0===i[2].indexOf("eval")){let e=ev.exec(i[2]);e&&(i[2]=e[1],i[3]=e[2],i[4]=e[3])}let[e,r]=ey(i[1]||"?",i[2]);return ef(t,r,e,i[3]?+i[3]:void 0,i[4]?+i[4]:void 0)}},ew=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,eE=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,eF=(e,t)=>{let r=ew.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let e=eE.exec(r[3]);e&&(r[1]=r[1]||"eval",r[3]=e[1],r[4]=e[2],r[5]="")}let e=r[3],i=r[1]||"?";return[i,e]=ey(i,e),ef(t,e,i,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}},eP=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,ex=(e,t)=>{let r=eP.exec(e);return r?ef(t,r[2],r[1]||"?",+r[3],r[4]?+r[4]:void 0):void 0},eS=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,e$=(e,t)=>{let r=eS.exec(e);return r?ef(t,r[2],r[3]||"?",+r[1]):void 0},eC=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,eI=(e,t)=>{let r=eC.exec(e);return r?ef(t,r[5],r[3]||r[4]||"?",+r[1],+r[2]):void 0},ek=/^\s*[-]{4,}$/,eA=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,eO=/^Promise\.(?:all|any)$/,eR=/^index \d+$/,eT=(e,t)=>{let r=e.match(eA);if(r){let e,i,s,a,n;if(r[1]){let t=(s=r[1]).lastIndexOf(".");if("."===s[t-1]&&t--,t>0){e=s.slice(0,t),i=s.slice(t+1);let r=e.indexOf(".Module");r>0&&(s=s.slice(r+1),e=e.slice(0,r))}a=void 0}i&&(a=e,n=i),"<anonymous>"===i&&(n=void 0,s=void 0),void 0===s&&(n=n||"?",s=a?`${a}.${n}`:n);let o=r[2]?.startsWith("file://")?r[2].slice(7):r[2],l="native"===r[5];return o?.match(/\/[A-Z]:/)&&(o=o.slice(1)),o||!r[5]||l||(o=r[5]),eO.test(s)&&eR.test(o||"")&&(o="node:internal/promise"),{filename:o?decodeURI(o):void 0,module:void 0,function:s,lineno:eM(r[3]),colno:eM(r[4]),in_app:function(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&void 0!==e&&!e.includes("node_modules/")}(o||"",l),platform:t}}if(e.match(ek))return{filename:e,platform:t}};function eM(e){return parseInt(e||"",10)||void 0}let eL=/\(error: (.*)\)/;function ej(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,50).map(e=>{var r;return{...e,filename:e.filename||((r=t)[r.length-1]||{}).filename,function:e.function||"?"}})}function eD(){return eB("web:javascript",eb,eF)}function eB(e,...t){return(r,i=0)=>{let s=[],a=r.split("\n");for(let r=i;r<a.length;r++){let i=a[r];if(i.length>1024)continue;let n=eL.test(i)?i.replace(eL,"$1"):i;if(!n.match(/\S*Error: /)){for(let r of t){let t=r(n,e);if(t){s.push(t);break}}if(s.length>=50)break}}return ej(s)}}e.s(["createDefaultStackParser",0,eD,"createStackParser",0,eB,"reverseAndStripFrames",0,ej],34246);class eU{match(e){return this.isDOMException(e)||this.isDOMError(e)}coerce(e,t){let r=x(e.stack);return{type:this.getType(e),value:this.getValue(e),stack:r?e.stack:void 0,cause:e.cause?t.next(e.cause):void 0,synthetic:!1}}getType(e){return this.isDOMError(e)?"DOMError":"DOMException"}getValue(e){let t=e.name||(this.isDOMError(e)?"DOMError":"DOMException");return e.message?`${t}: ${e.message}`:t}isDOMException(e){return I(e,"DOMException")}isDOMError(e){return I(e,"DOMError")}}e.s(["DOMExceptionCoercer",0,eU],29569);class eN{match(e){return!!I(e,"ErrorEvent")&&(void 0!=e.error||this._hasUsableMessage(e))}coerce(e,t){if(void 0!=e.error)return t.apply(e.error);let r=t.apply(e.message);return{...r,stack:this._buildLocationStack(e)??r.stack,synthetic:!0}}_hasUsableMessage(e){return x(e.message)&&e.message.length>0}_buildLocationStack(e){if(x(e.filename)&&e.filename.length>0){let t=e.lineno??0,r=e.colno??0;return`Error
2
- at ${e.filename}:${t}:${r}`}}}e.s(["ErrorEventCoercer",0,eN],43179);let eq=["fatal","error","warning","log","info","debug"];function eH(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let e=r.length;e>0;e--){let i=r.slice(0,e).join(", ");if(!(i.length>t)){if(e===r.length)return i;return i.length<=t?i:`${i.slice(0,t)}...`}}return""}class eW{match(e){return"object"==typeof e&&null!==e}coerce(e,t){let r=this.getErrorPropertyFromObject(e);return r?t.apply(r):{type:this.getType(e),value:this.getValue(e),stack:this.getStack(e)??t.syntheticException?.stack,level:this.isSeverityLevel(e.level)?e.level:"error",synthetic:!0}}getType(e){return k(e)?e.constructor.name:"Error"}getValue(e){if("name"in e&&"string"==typeof e.name){let t=`'${e.name}' captured as exception`;return"message"in e&&"string"==typeof e.message&&(t+=` with message: '${e.message}'`),t}if("message"in e&&"string"==typeof e.message)return e.message;let t=this.getObjectClassName(e),r=eH(e);return`${t&&"Object"!==t?`'${t}'`:"Object"} captured as exception with keys: ${r}`}isSeverityLevel(e){return x(e)&&!(x(e)&&0===e.trim().length)&&eq.indexOf(e)>=0}getStack(e){try{if(x(e.stacktrace)&&e.stacktrace.length>0)return e.stacktrace;return x(e.stack)&&e.stack.length>0?e.stack:void 0}catch{return}}getErrorPropertyFromObject(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let r=e[t];if(G(r))return r}}getObjectClassName(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){return}}}e.s(["ObjectCoercer",0,eW],6881);class ez{match(e){return k(e)}coerce(e,t){let r=e.constructor.name;return{type:r,value:`${r} captured as exception with keys: ${eH(e)}`,stack:t.syntheticException?.stack,synthetic:!0}}}e.s(["EventCoercer",0,ez],80322);class eG{match(e){return C(e)}coerce(e,t){return{type:"Error",value:`Primitive value captured as exception: ${String(e)}`,stack:t.syntheticException?.stack,synthetic:!0}}}e.s(["PrimitiveCoercer",0,eG],80049);class eK{match(e){return I(e,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(e)}isCustomEventWrappingRejection(e){if(!k(e))return!1;try{let t=e.detail;return null!=t&&"object"==typeof t&&"reason"in t}catch{return!1}}coerce(e,t){let r=this.getUnhandledRejectionReason(e);return C(r)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(r)}`,stack:t.syntheticException?.stack,synthetic:!0}:t.apply(r)}getUnhandledRejectionReason(e){try{if("reason"in e)return e.reason;if("detail"in e&&null!=e.detail&&"object"==typeof e.detail&&"reason"in e.detail)return e.detail.reason}catch{}return e}}e.s(["PromiseRejectionEventCoercer",0,eK],98689),e.s([],99573);let eV={MESSAGE:"$message",TIMESTAMP:"$timestamp"},eQ=new Set([eV.MESSAGE,eV.TIMESTAMP]),eJ={enabled:!0,max_bytes:32768};function eY(e){return e?{enabled:e.enabled??eJ.enabled,max_bytes:function(e,t){if(!$(e)||e===1/0||e===-1/0)return t;let r=Math.floor(e);return r<0?t:r}(e.max_bytes,eJ.max_bytes)}:{...eJ}}function eX(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};let t=[];return{sanitizedProperties:Object.keys(e).reduce((r,i)=>(eQ.has(i)?t.push(i):r[i]=e[i],r),{}),droppedKeys:t}}class eZ{constructor(e){this._entries=[],this._totalBytes=0,this._config=eY(e)}setConfig(e){this._config=eY(e),this._trimToMaxBytes()}add(e){let t=function(e){let t;try{t=_(e)}catch{return}try{let e=JSON.parse(t);if(!F(e))return;let r=e[eV.MESSAGE],i=e[eV.TIMESTAMP];if(!x(r)||0===r.trim().length||!x(i)&&!$(i))return;return{step:e,json:t}}catch{return}}(e);if(!t)return;let r=e0(t.json);r>this._config.max_bytes||(this._entries.push({step:t.step,bytes:r}),this._totalBytes+=r,this._trimToMaxBytes())}getAttachable(){return this._entries.map(e=>e.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){for(;this._totalBytes>this._config.max_bytes&&this._entries.length>0;){let e=this._entries.shift();e&&(this._totalBytes-=e.bytes)}}}function e0(e){if("u">typeof TextEncoder)return new TextEncoder().encode(e).length;let t=encodeURIComponent(e),r=0;for(let e=0;e<t.length;e++)"%"===t[e]?(r+=1,e+=2):r+=1;return r}e.s(["DEFAULT_EXCEPTION_STEPS_CONFIG",0,eJ,"EXCEPTION_STEP_INTERNAL_FIELDS",0,eV,"ExceptionStepsBuffer",0,eZ,"getUtf8ByteLength",0,e0,"resolveExceptionStepsConfig",0,eY,"stripReservedExceptionStepFields",0,eX],52001),e.s([],47114);class e1{match(e){switch(Object.prototype.toString.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object DOMError]":case"[object WebAssembly.Exception]":return!0;default:return A(e,Error)}}coerce(e,t){return{type:this.getType(e),value:this.getMessage(e,t),stack:this.getStack(e),cause:e.cause?t.next(e.cause):void 0,synthetic:!1}}getType(e){return e.name||e.constructor.name}getMessage(e,t){let r=e.message;return r.error&&"string"==typeof r.error.message?String(r.error.message):String(r)}getStack(e){return e.stacktrace||e.stack||void 0}}e.s(["ErrorCoercer",0,e1],11475);let e4=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class e2{match(e){return"string"==typeof e}coerce(e,t){let[r,i]=this.getInfos(e);return{type:r??"Error",value:i??e,stack:t.syntheticException?.stack,synthetic:!0}}getInfos(e){let t="Error",r=e,i=e.match(e4);return i&&(t=i[1],r=i[2]),[t,r]}}e.s(["StringCoercer",0,e2],45098);class e3 extends Error{constructor(e,t,r,i){super("HTTP error while fetching PostHog: status="+e.status+", reqByteLength="+t),this.response=e,this.reqByteLength=t,this.responseBodyDeadline=r,this.abortController=i,this.name="PostHogFetchHttpError",this._bodyReadTimedOut=!1}get status(){return this.response.status}get bodyReadTimedOut(){return this._bodyReadTimedOut}get text(){if(!this.responseBodyTextPromise)if(Date.now()>=this.responseBodyDeadline){this._bodyReadTimedOut=!0;let e=Error("Response body read timed out");e.name="AbortError",this.cancelResponseBody(e),this.responseBodyTextPromise=Promise.reject(e)}else{let e,t=new Promise((e,t)=>{this.responseBodyTimer=W(()=>{this._bodyReadTimedOut=!0;let e=Error("Response body read timed out");e.name="AbortError",t(e),this.cancelResponseBody(e)},this.responseBodyDeadline-Date.now())});try{e=Promise.resolve(this.response.text())}catch(t){e=Promise.reject(t)}this.responseBodyTextPromise=Promise.race([e,t]).finally(()=>clearTimeout(this.responseBodyTimer))}return this.responseBodyTextPromise}get json(){return this.text.then(e=>JSON.parse(e))}cancelResponseBody(e){clearTimeout(this.responseBodyTimer),this.abortController.signal.aborted||this.abortController.abort(e),(async()=>{try{await this.response.body?.cancel()}catch{}})()}}class e5 extends Error{constructor(e){super("Network error while fetching PostHog",e instanceof Error?{cause:e}:{}),this.error=e,this.name="PostHogFetchNetworkError"}}async function e8(e){if(e instanceof e3){let t="";try{t=await e.text}catch{e.bodyReadTimedOut&&(t="<response body read timed out>")}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function e9(e){return e instanceof e5}function e6(e){if(e instanceof e3)return 502===e.status||504===e.status;if(!(e instanceof e5))return!1;let t=e.error;return"ECONNREFUSED"!==(t?.code??t?.cause?.code)}function e7(e){return"object"==typeof e&&e instanceof e3&&413===e.status}function te(e){return e instanceof e3?408===e.status||429===e.status||e.status>=500:e9(e)}function tt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}let tr="default";class ti{getErrorPropertiesBuilder(){return this._errorPropertiesBuilder||(this._errorPropertiesBuilder=this.createErrorPropertiesBuilder()),this._errorPropertiesBuilder}createErrorPropertiesBuilder(){return new ep([new e1,new eW,new e2,new eG],eD())}constructor(e,t={}){this.flushPromise=null,this.pendingFlushPromise=null,this.flushPromises=new Set,this._dequeuedMessagesCount=0,this.shutdownPromise=null,this.promiseQueue=new eh,this._events=new ed,this._isInitialized=!1;const r="string"==typeof e?e.trim():"",i="string"==typeof t.host?t.host.trim():"",s=!r;this._logger=function(e,t=e=>e()){return eg(e,t,function(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}())}("[PostHog]",this.logMsgIfDebug.bind(this)),s&&this._logger.error("You must pass your PostHog project's api key. The client will be disabled."),this.apiKey=r,this.host=function(e){return e?.replace(/\/+$/,"")}(i||"https://us.i.posthog.com"),this.flushAt=t.flushAt?Math.max(t.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,t.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,t.maxQueueSize??1e3),this.flushInterval=t.flushInterval??1e4,this.preloadFeatureFlags=t.preloadFeatureFlags??!0,this.defaultOptIn=t.defaultOptIn??!0,this.disableSurveys=t.disableSurveys??!1,this._retryOptions={retryCount:t.fetchRetryCount??3,retryDelay:t.fetchRetryDelay??3e3,retryCheck:te},this.requestTimeout=t.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=t.featureFlagsRequestTimeoutMs??3e3,this.featureFlagsRequestMaxRetries=t.featureFlagsRequestMaxRetries??1,this.remoteConfigRequestTimeoutMs=t.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=t.disableGeoip??!0,this.disabled=(t.disabled??!1)||s,this.historicalMigration=t?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=t?.evaluationContexts??t?.evaluationEnvironments,t?.evaluationEnvironments&&!t?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!("CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&"function"==typeof Response.prototype.blob)||(t?.disableCompression??!1)}logMsgIfDebug(e){this.isDebug&&e()}wrap(e){return this.disabled?void this._logger.warn("The client is disabled"):this._isInitialized?e():void this._initPromise.then(()=>e())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(g.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(g.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(g.OptedOut,!0)})}on(e,t){return this._events.on(e,t)}debug(e=!0){if(this.removeDebugCallback?.(),e){let e=this.on("*",(e,t)=>this._logger.info(e,t));this.removeDebugCallback=()=>{e(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(e){let t=e.properties||{},r={...t,...this.getCommonEventProperties()};var i=r;for(let e of Object.keys(t))(e.startsWith("$feature/")||"$active_feature_flags"===e)&&(i[e]=t[e]);return"$feature_flag_called"===e.event&&!1===r.$feature_flag_has_experiment&&this.isMinimalFlagCalledEventsEnabled()&&(r=h(r)),{distinct_id:e.distinct_id,event:e.event,properties:r}}isMinimalFlagCalledEventsEnabled(){return!1}addPendingPromise(e){return this.promiseQueue.add(e)}identifyStateless(e,t,r){this.wrap(()=>{let i={...this.buildPayload({distinct_id:e,event:"$identify",properties:t})};this.enqueue("identify",i,r)})}async identifyStatelessImmediate(e,t,r){let i={...this.buildPayload({distinct_id:e,event:"$identify",properties:t})};await this.sendImmediate("identify",i,r)}captureStateless(e,t,r,i){this.wrap(()=>{let s=this.buildPayload({distinct_id:e,event:t,properties:r});this.enqueue("capture",s,i)})}async captureStatelessImmediate(e,t,r,i){let s=this.buildPayload({distinct_id:e,event:t,properties:r});await this.sendImmediate("capture",s,i)}aliasStateless(e,t,r,i){this.wrap(()=>{let s=this.buildPayload({event:"$create_alias",distinct_id:t,properties:{...r||{},distinct_id:t,alias:e}});this.enqueue("alias",s,i)})}async aliasStatelessImmediate(e,t,r,i){let s=this.buildPayload({event:"$create_alias",distinct_id:t,properties:{...r||{},distinct_id:t,alias:e}});await this.sendImmediate("alias",s,i)}groupIdentifyStateless(e,t,r,i,s,a){this.wrap(()=>{let n=this.buildPayload({distinct_id:s||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{},...a||{}}});this.enqueue("capture",n,i)})}async groupIdentifyStatelessImmediate(e,t,r,i,s,a){let n=this.buildPayload({distinct_id:s||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{},...a||{}}});await this.sendImmediate("capture",n,i)}async getRemoteConfig(){await this._initPromise;let e=this.host;"https://us.i.posthog.com"===e?e="https://us-assets.i.posthog.com":"https://eu.i.posthog.com"===e&&(e="https://eu-assets.i.posthog.com");let t=`${e}/array/${this.apiKey}/config`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(t,r,{type:"required",consume:e=>e.json()},{retryCount:0},this.remoteConfigRequestTimeoutMs).catch(e=>{this._logger.error("Remote config could not be loaded",e),this._events.emit("error",e)})}async getFlags(e,t={},r={},i={},s={},a=!1){await this._initPromise;let n=`${this.host}/flags/?v=2${a?"&config=true":""}`,o={token:this.apiKey,distinct_id:e,groups:t,person_properties:r,group_properties:i,...s};r.$device_id&&(o.$device_id=r.$device_id),this.evaluationContexts&&this.evaluationContexts.length>0&&(o.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(o)};return this._logger.info("Flags URL",n),this.fetchWithRetry(n,l,{type:"required",consume:e=>e.json()},{retryCount:this.featureFlagsRequestMaxRetries,retryCheck:e6},this.featureFlagsRequestTimeoutMs).then(e=>({success:!0,response:(e=>{if("flags"in e){let t,r=Object.fromEntries(Object.entries(e.flags??{}).map(([e,t])=>[e,u(t)]).filter(([,e])=>void 0!==e)),i=Object.fromEntries(Object.keys(t=e.flags??{}).filter(e=>{let r=t[e];return r.enabled&&r.metadata&&void 0!==r.metadata.payload}).map(e=>{let r=t[e].metadata?.payload;return[e,r?c(r):void 0]}));return{...e,featureFlags:r,featureFlagPayloads:i}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([e,t])=>[e,c(t)])),i=Object.fromEntries(Object.entries(t).map(([e,t])=>{var i,s;return[e,{key:e,enabled:"string"==typeof(i=t)||i,variant:"string"==typeof i?i:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:(s=r[e])?JSON.stringify(s):void 0,description:void 0}}]}));return{...e,featureFlags:t,featureFlagPayloads:r,flags:i}}})(e)})).catch(e=>(this._events.emit("error",e),{success:!1,error:this.categorizeRequestError(e)}))}categorizeRequestError(e){if(e instanceof e3)return{type:"api_error",statusCode:e.status};if(e instanceof e5){let t=e.error;return t instanceof Error&&("AbortError"===t.name||"TimeoutError"===t.name)?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(e,t,r={},i={},s={},a){await this._initPromise;let n=await this.getFeatureFlagDetailStateless(e,t,r,i,s,a);if(void 0===n)return{response:void 0,requestId:void 0};let o=u(n.response);return void 0===o&&(o=!1),{response:o,requestId:n.requestId}}async getFeatureFlagDetailStateless(e,t,r={},i={},s={},a){await this._initPromise;let n=await this.getFeatureFlagDetailsStateless(t,r,i,s,a,[e]);if(void 0!==n)return{response:n.flags[e],requestId:n.requestId,evaluatedAt:n.evaluatedAt}}async getFeatureFlagPayloadStateless(e,t,r={},i={},s={},a){await this._initPromise;let n=await this.getFeatureFlagPayloadsStateless(t,r,i,s,a,[e]);if(!n)return;let o=n[e];return void 0===o?null:o}async getFeatureFlagPayloadsStateless(e,t={},r={},i={},s,a){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(e,t,r,i,s,a)).payloads}async getFeatureFlagsStateless(e,t={},r={},i={},s,a){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(e,t,r,i,s,a)}async getFeatureFlagsAndPayloadsStateless(e,t={},r={},i={},s,a){await this._initPromise;let n=await this.getFeatureFlagDetailsStateless(e,t,r,i,s,a);return n?{flags:n.featureFlags,payloads:n.featureFlagPayloads,requestId:n.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(e,t={},r={},i={},s,a){await this._initPromise;let n={geoip_disable:s??this.disableGeoip};a&&(n.flag_keys_to_evaluate=a);let o=await this.getFlags(e,t,r,i,n);if(!o.success)return;let l=o.response;return(l.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),l.quotaLimited?.includes("feature_flags"))?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:l?.requestId,quotaLimited:l.quotaLimited}):l}async getSurveysStateless(){if(await this._initPromise,this.disabled)return[];if(!0===this.disableSurveys)return this._logger.info("Loading surveys is disabled."),[];let e=`${this.host}/api/surveys/?token=${this.apiKey}`,t={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},r=await this.fetchWithRetry(e,t,{type:"required",consume:e=>{if(200!==e.status||!e.json){let t=`Surveys API could not be loaded: ${e.status}`,r=Error(t);return this._logger.error(r),this._events.emit("error",Error(t)),Promise.resolve(void 0)}return e.json()}}).catch(e=>{this._logger.error("Surveys API could not be loaded",e),this._events.emit("error",e)}),i=r?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(g.Props)),this._props||{}}set props(e){this._props=e}async register(e){this.wrap(()=>{this.props={...this.props,...e},this.setPersistedProperty(g.Props,this.props)})}async unregister(e){this.wrap(()=>{delete this.props[e],this.setPersistedProperty(g.Props,this.props)})}processBeforeEnqueue(e){return e}async flushStorage(){}getQueueRouteKey(e){return tr}persistedQueueKeyForRoute(e){return g.Queue}getActiveQueueRoutes(){return[tr]}getRouteQueue(e){return this.getPersistedProperty(this.persistedQueueKeyForRoute(e))||[]}enqueue(e,t,r){this.wrap(()=>{if(this.optedOut)return void this._events.emit(e,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r);if(null===(i=this.processBeforeEnqueue(i)))return;i=this.normalizeMessage(i);let s=this.persistedQueueKeyForRoute(this.getQueueRouteKey(i)),a=this.getPersistedProperty(s)||[];a.length>=this.maxQueueSize&&(a.shift(),this._logger.warn("Queue is full, the oldest event is dropped.")),a.push({message:i}),this.setPersistedProperty(s,a),this._events.emit(e,i),a.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=W(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(e,t,r){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(e,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r);if(null!==(i=this.processBeforeEnqueue(i))){i=this.normalizeMessage(i);try{await this.sendBatch([i],void 0,this.getQueueRouteKey(i))}catch(e){this._events.emit("error",e)}}}normalizeMessage(e){let{type:t,library:r,library_version:i,...s}=e,a=tt(s.properties)?s.properties:void 0;return void 0!==r&&a?.$lib===void 0&&(a={...a||{},$lib:r}),void 0!==i&&a?.$lib_version===void 0&&(a={...a||{},$lib_version:i}),a&&(s.properties=a),s.uuid=U(s.uuid,ei),s}prepareMessage(e,t){let r={...e,timestamp:t?.timestamp?t?.timestamp:H(),uuid:U(t?.uuid,ei)};return(t?.disableGeoip??this.disableGeoip)&&(tt(r.properties)||(r.properties={}),r.properties.$geoip_disable=!0),r.distinctId&&(r.distinct_id=r.distinctId,delete r.distinctId),r}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.pendingFlushPromise||this.flush().catch(async e=>{await e8(e)})}async waitForPendingPromises(e,t=[]){let r=t.filter(e=>!!e),i=0;for(;;){let t=this.promiseQueue.getPromises([...r,...this.flushPromises],e);if(0===t.length)return;i>0&&this._logger.debug(`flush() re-checking ${t.length} pending promise(s) before flushing`),await Promise.all(t.map(e=>e.catch(()=>{}))),i++}}flushWithPendingPromises(){return this.flushInternal(!0)}flush(){return this.flushInternal(!1)}flushInternal(e){if(this.disabled)return Promise.resolve();if(!e&&this.pendingFlushPromise)return this.pendingFlushPromise;let t=this.flushPromise,r=this.promiseQueue.maxId,i=Promise.resolve().then(()=>{if(e)return this.waitForPendingPromises(r,[t,i])}).then(()=>K([t])).then(()=>(this.pendingFlushPromise===i&&(this.pendingFlushPromise=null),this._flush()));return this.pendingFlushPromise=i,this.flushPromise=i,this.flushPromises.add(i),this.addPendingPromise(i),K([i]).then(()=>{this.flushPromises.delete(i),this.pendingFlushPromise===i&&(this.pendingFlushPromise=null),this.flushPromise===i&&(this.flushPromise=null)}),i}getCustomHeaders(){let e=this.getCustomUserAgent(),t={};return e&&""!==e&&(t["User-Agent"]=e),t}compressPayload(e){return m(e,this.isDebug)}async sendBatch(e,t,r=tr){let i={api_key:this.apiKey,batch:e,sent_at:H()};this.historicalMigration&&(i.historical_migration=!0);let s=_(i),a=`${this.host}/batch/`,n=this.disableCompression?null:await this.compressPayload(s),o={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...null!==n&&{"Content-Encoding":"gzip"}},body:n||s};await this.fetchWithRetry(a,o,{type:"successful-write"},t)}async _flush(){let e;this.clearFlushTimer(),await this._initPromise;let t=this.getActiveQueueRoutes();if(!t.some(e=>this.getRouteQueue(e).length>0))return;let r=[];for(let i of t)try{await this._flushRoute(i,r)}catch(t){void 0===e&&(e=t)}if(void 0!==e)throw e;this._events.emit("flush",r)}async _flushRoute(e,t){let r=this.persistedQueueKeyForRoute(e),i=this.getPersistedProperty(r)||[];if(!i.length)return;let s=i.length,a=0;for(;i.length>0&&a<s;){let s=i.slice(0,this.maxBatchSize),n=s.map(e=>void 0===e.message?e.message:this.normalizeMessage(e.message)),o=async()=>{let e=this.getPersistedProperty(r)||[],t=[...s],a=e.filter(e=>{let r=e.message?.uuid,i=t.findIndex(t=>t===e||"string"==typeof r&&r.length>0&&t.message?.uuid===r);return -1===i||(t.splice(i,1),!1)});this.setPersistedProperty(r,a),i=a,this._dequeuedMessagesCount+=s.length,await this.flushStorage()},l={retryCheck:e=>!e7(e)&&te(e)};try{await this.sendBatch(n,l,e)}catch(e){if(e7(e)&&n.length>1){this.maxBatchSize=Math.max(1,Math.floor(n.length/2)),this._logger.warn(`Received 413 when sending batch of size ${n.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw e instanceof e5||await o(),this._events.emit("error",e),e}await o(),t.push(...n),a+=n.length}}async _sendLogsBatch(e){if(this.disabled)return{kind:"fatal",error:Error("The client is disabled")};let t=JSON.stringify(e),r=`${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`,i=this.disableCompression?null:await this.compressPayload(t),s={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...null!==i&&{"Content-Encoding":"gzip"}},body:i||t};try{return await this.fetchWithRetry(r,s,{type:"successful-write"},{retryCheck:e=>!e7(e)&&te(e)}),{kind:"ok"}}catch(e){if(e7(e))return{kind:"too-large"};if(e instanceof e5)return{kind:"retry-later",error:e};return{kind:"fatal",error:e}}}async _sendMetricsBatch(e){if(this.disabled)return{kind:"fatal",error:Error("The client is disabled")};let t=JSON.stringify(e),r=`${this.host}/i/v1/metrics?token=${encodeURIComponent(this.apiKey)}`,i=this.disableCompression?null:await this.compressPayload(t),s={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...null!==i&&{"Content-Encoding":"gzip"}},body:i||t};try{return await this.fetchWithRetry(r,s,{type:"successful-write"},{retryCheck:e=>!e7(e)&&te(e)}),{kind:"ok"}}catch(e){if(e7(e))return{kind:"too-large"};if(te(e))return{kind:"retry-later",error:e};return{kind:"fatal",error:e}}}async fetchWithRetry(e,t,r,i,s){let a=t.body?t.body:"",n=-1;try{n=a instanceof Blob?a.size:Buffer.byteLength(a,"utf8")}catch{n=a instanceof Blob?a.size:new TextEncoder().encode(a).length}let o={...this._retryOptions,...i},l=0;return await q(async()=>{let i,a,o;l++;let u=new AbortController,c=s??this.requestTimeout,d=Date.now()+c,h=new Promise((e,t)=>{i=W(()=>{let e=Error(`Request timed out after ${c}ms`);e.name="AbortError",t(e),u.abort(e)},c)}),g=!1,p=()=>o??=(async()=>{try{await a?.body?.cancel()}catch{}})();try{let i;try{i=this.fetch(e,{signal:u.signal,...t})}catch(e){throw new e5(e)}i.then(e=>{u.signal.aborted&&!g&&Promise.resolve(e.body?.cancel()).catch(()=>{})}).catch(()=>{});try{a=await Promise.race([i,h]),g=!0}catch(e){throw new e5(e)}if("no-cors"!==t.mode&&(a.status<200||a.status>=400))throw new e3(a,n,d,u);if("successful-write"===r.type){try{await Promise.race([p(),h])}catch{}return}try{return await Promise.race([r.consume(a),h])}catch(e){if(u.signal.aborted)throw new e5(e);throw e}}finally{clearTimeout(i),u.signal.aborted&&a&&p()}},{...o,retryCheck:e=>{let t=o.retryCheck(e);return t&&l<=o.retryCount&&e instanceof e3&&e.cancelResponseBody(),t}})}async _shutdown(e=3e4){await this._initPromise;let t=!1;if(this.clearFlushTimer(),!this.disabled)return z((async()=>{try{for(await this.promiseQueue.join();this.getActiveQueueRoutes().some(e=>this.getRouteQueue(e).length>0);){let e=this._dequeuedMessagesCount;if(await this.flush(),t)break;if(this._dequeuedMessagesCount===e){this._logger.warn("Shutdown flush completed but did not send any queued events. Stopping drain to avoid a loop.");break}}}catch(e){if(!("object"==typeof e&&(e instanceof e3||e9(e))))throw e;await e8(e)}})(),e,()=>{throw this._logger.error("Timed out while shutting down PostHog"),t=!0,"Timeout while shutting down PostHog. Some events may not have been sent."})}async shutdown(e=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(e).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}}e.i(47114),e.i(80446),e.i(34246),e.s(["chromeStackLineParser",0,eb,"createDefaultStackParser",0,eD,"createStackParser",0,eB,"geckoStackLineParser",0,eF,"nodeStackLineParser",0,eT,"opera10StackLineParser",0,e$,"opera11StackLineParser",0,eI,"reverseAndStripFrames",0,ej,"winjsStackLineParser",0,ex],70736),e.i(70736),e.i(99573),e.i(29569),e.i(11475),e.i(43179),e.i(45098),e.i(6881),e.i(80322),e.i(80049),e.i(98689),e.s(["DOMExceptionCoercer",0,eU,"ErrorCoercer",0,e1,"ErrorEventCoercer",0,eN,"EventCoercer",0,ez,"ObjectCoercer",0,eW,"PrimitiveCoercer",0,eG,"PromiseRejectionEventCoercer",0,eK,"StringCoercer",0,e2],21854),e.i(21854);class ts{constructor(e){this._maxSize=e,this._cache=new Map}get(e){let t=this._cache.get(e);if(void 0!==t)return this._cache.delete(e),this._cache.set(e,t),t}set(e,t){this._cache.set(e,t)}reduce(){for(;this._cache.size>=this._maxSize;){let e=this._cache.keys().next().value;e&&this._cache.delete(e)}}}function ta(){let e=globalThis._posthogReleaseId;return"string"==typeof e&&e.length>0?e:void 0}e.s(["ReduceableCache",0,ts],46986),e.i(46986),e.i(52001),e.s(["getInjectedReleaseId",0,ta],41508),e.i(41508),e.s(["DEFAULT_EXCEPTION_STEPS_CONFIG",0,eJ,"DOMExceptionCoercer",0,eU,"EXCEPTION_STEP_INTERNAL_FIELDS",0,eV,"ErrorCoercer",0,e1,"ErrorEventCoercer",0,eN,"ErrorPropertiesBuilder",0,ep,"EventCoercer",0,ez,"ExceptionStepsBuffer",0,eZ,"ObjectCoercer",0,eW,"PrimitiveCoercer",0,eG,"PromiseRejectionEventCoercer",0,eK,"ReduceableCache",0,ts,"StringCoercer",0,e2,"chromeStackLineParser",0,eb,"createDefaultStackParser",0,eD,"createStackParser",0,eB,"geckoStackLineParser",0,eF,"getInjectedReleaseId",0,ta,"getUtf8ByteLength",0,e0,"nodeStackLineParser",0,eT,"opera10StackLineParser",0,e$,"opera11StackLineParser",0,eI,"resolveExceptionStepsConfig",0,eY,"reverseAndStripFrames",0,ej,"stripReservedExceptionStepFields",0,eX,"winjsStackLineParser",0,ex],96117);var tn=e.i(96117),to=tn,tl=e.i(2157),tu=e.i(12714),tc=e.i(50227),td=e.i(1457);let th=new to.ReduceableCache(25),tg=new to.ReduceableCache(20);async function tp(e,t=tu.open,r){let i,s={};try{i=process.cwd()}catch{}for(let t=e.length-1;t>=0;t--){var a,n;let r=e[t],o=r?.filename;!(!r||"string"!=typeof o||"number"!=typeof r.lineno||(a=o).startsWith("node:")||a.endsWith(".min.js")||a.endsWith(".min.cjs")||a.endsWith(".min.mjs")||a.startsWith("data:")||void 0!==(n=r).lineno&&n.lineno>1e4||void 0!==n.colno&&n.colno>1e3)&&((0,tc.isAbsolute)(o)||void 0!==i)&&(s[o]||(s[o]=[]),s[o].push(r.lineno))}let o=Object.keys(s);if(0==o.length)return e;let l=[];for(let e of o){let a=t_(e,i);if(void 0===a||tg.get(a))continue;let n=s[e];if(!n)continue;n.sort((e,t)=>e-t);let o=function(e){if(!e.length)return[];let t=0,r=e[0];if("number"!=typeof r)return[];let i=tv(r),s=[];for(;;){if(t===e.length-1){s.push(i);break}let r=e[t+1];if("number"!=typeof r)break;r<=i[1]?i[1]=r+7:(s.push(i),i=tv(r)),t++}return s}(n);if(o.every(e=>(function(e,t){let r=th.get(e);if(void 0===r)return!1;for(let e=t[0];e<=t[1];e++)if(void 0===r[e])return!1;return!0})(a,e)))continue;let u=function(e,t,r){let i=e.get(t);return void 0===i?(e.set(t,r),r):i}(th,a,{});l.push(ty(e,o,u,a,t,r))}return await Promise.all(l).catch(()=>{}),e&&e.length>0&&function(e,t,r){for(let i of e)if(i.filename&&void 0===i.context_line&&"number"==typeof i.lineno){let e=t_(i.filename,r),s=void 0===e?void 0:t.get(e);if(void 0===s)continue;!function(e,t,r){if(void 0===t.lineno||void 0===r)return;t.pre_context=[];for(let i=tb(e);i<e;i++){let e=r[i];if(void 0===e)return void tm(t);t.pre_context.push(e)}if(void 0===r[e])return tm(t);t.context_line=r[e];let i=function(e){return e+7}(e);t.post_context=[];for(let s=e+1;s<=i;s++){let e=r[s];if(void 0===e)break;t.post_context.push(e)}}(i.lineno,i,s)}}(e,th,i),th.reduce(),e}async function tf(e,t,r){let i,s=!1;try{i=await t(e,tl.constants.O_RDONLY|tl.constants.O_NONBLOCK);let a=await i.stat();if(!a.isFile())return;if(a.size>0xa00000)return void r?.debug(`Skipping source context for oversized file ${e}: ${a.size} bytes exceeds 10485760`);return s=!0,i}catch{return}finally{i&&!s&&await i.close().catch(()=>{})}}async function ty(e,t,r,i,s,a){let n=await tf(e,s,a);return void 0===n?void tg.set(i,1):new Promise(e=>{let s,a,o=!1;function l(t){o||(o=!0,t?.destroy(),n.close().then(e,e))}try{s=n.createReadStream({autoClose:!1,start:0,end:0x9fffff})}catch{tg.set(i,1),l();return}try{a=(0,td.createInterface)({input:s})}catch{tg.set(i,1),l(s);return}let u=0,c=0,d=t[0];if(void 0===d)return void l(s);let h=d[0],g=d[1];function p(){tg.set(i,1),a.close(),a.removeAllListeners(),l(s)}s.on("error",p),a.on("error",p),a.on("close",()=>l(s)),a.on("line",e=>{if(!(++u<h)&&(r[u]=function(e,t){let r=e,i=r.length;if(i<=150)return r;t>i&&(t=i);let s=Math.max(t-60,0);s<5&&(s=0);let a=Math.min(s+140,i);return a>i-5&&(a=i),a===i&&(s=Math.max(a-140,0)),r=r.slice(s,a),s>0&&(r=`...${r}`),a<i&&(r+="..."),r}(e,0),u>=g)){if(c===t.length-1){a.close(),a.removeAllListeners();return}let e=t[++c];if(void 0===e){a.close(),a.removeAllListeners();return}h=e[0],g=e[1]}})})}function tm(e){delete e.pre_context,delete e.context_line,delete e.post_context}function t_(e,t){return(0,tc.isAbsolute)(e)?JSON.stringify([null,e]):void 0===t?void 0:JSON.stringify([t,e])}function tv(e){return[tb(e),e+7]}function tb(e){return Math.max(1,e-7)}let tw=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],tE=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return tw.concat(t).some(e=>{let t=e.toLowerCase();return -1!==r.indexOf(t)})},tF={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};e.s(["FeatureFlagError",0,tF],58325);class tP{constructor(e){this._host=e.host,this._distinctId=e.distinctId,this._groups=e.groups,this._disableGeoip=e.disableGeoip,this._flags=e.flags,this._requestId=e.requestId,this._evaluatedAt=e.evaluatedAt,this._flagDefinitionsLoadedAt=e.flagDefinitionsLoadedAt,this._errorsWhileComputing=e.errorsWhileComputing??!1,this._quotaLimited=e.quotaLimited??!1,this._accessed=e.accessed??new Set,this._isSlice=e.isSlice??!1}isEnabled(e){let t=this._flags[e];return this._recordAccess(e),t?.enabled??!1}getFlag(e){let t=this._flags[e];if(this._recordAccess(e),t)return!!t.enabled&&(t.variant??!0)}getFlagPayload(e){return this._flags[e]?.payload}onlyAccessed(){let e={};for(let t of this._accessed){let r=this._flags[t];r&&(e[t]=r)}return this._cloneWith(e)}only(e){let t={},r=[];for(let i of e){let e=this._flags[i];e?t[i]=e:r.push(i)}return r.length>0&&this._host.logWarning(`FeatureFlagEvaluations.only() was called with flag keys that are not in the evaluation set and will be dropped: ${r.join(", ")}`),this._cloneWith(t)}get keys(){return Object.keys(this._flags)}_getEventProperties(){let e={},t=[];for(let[r,i]of Object.entries(this._flags)){let s=!1!==i.enabled&&(i.variant??!0);e[`$feature/${r}`]=s,i.enabled&&t.push(r)}return t.length>0&&(t.sort(),e.$active_feature_flags=t),e}_cloneWith(e){return new tP({host:this._host,distinctId:this._distinctId,groups:this._groups,disableGeoip:this._disableGeoip,flags:e,requestId:this._requestId,evaluatedAt:this._evaluatedAt,flagDefinitionsLoadedAt:this._flagDefinitionsLoadedAt,errorsWhileComputing:this._errorsWhileComputing,quotaLimited:this._quotaLimited,accessed:new Set(this._accessed),isSlice:!0})}_recordAccess(e){if(this._accessed.add(e),""===this._distinctId||this._isSlice&&!(e in this._flags))return;let t=this._flags[e],r=void 0===t?void 0:!1!==t.enabled&&(t.variant??!0),i={$feature_flag:e,$feature_flag_response:r,$feature_flag_id:t?.id,$feature_flag_version:t?.version,$feature_flag_reason:t?.reason,locally_evaluated:t?.locallyEvaluated??!1,[`$feature/${e}`]:r,$feature_flag_request_id:this._requestId,$feature_flag_evaluated_at:t?.locallyEvaluated?Date.now():this._evaluatedAt};t?.hasExperiment!==void 0&&(i.$feature_flag_has_experiment=t.hasExperiment),t?.locallyEvaluated&&void 0!==this._flagDefinitionsLoadedAt&&(i.$feature_flag_definitions_loaded_at=this._flagDefinitionsLoadedAt);let s=[];this._errorsWhileComputing&&s.push(tF.ERRORS_WHILE_COMPUTING),this._quotaLimited&&s.push(tF.QUOTA_LIMITED),void 0===t&&s.push(tF.FLAG_MISSING),s.length>0&&(i.$feature_flag_error=s.join(",")),this._host.captureFlagCalledEventIfNeeded({distinctId:this._distinctId,key:e,response:r,groups:this._groups,disableGeoip:this._disableGeoip,properties:i})}}async function tx(e){let t=globalThis.crypto?.subtle;if(!t)throw Error("SubtleCrypto API not available");return Array.from(new Uint8Array(await t.digest("SHA-1",new TextEncoder().encode(e)))).map(e=>e.toString(16).padStart(2,"0")).join("")}let tS=["is_not","is_set"];class t$ extends Error{constructor(e){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=e,Object.setPrototypeOf(this,t$.prototype)}}function tC(e,t){e.name=t.name,Error.captureStackTrace(e,t),Object.setPrototypeOf(e,t.prototype)}class tI extends Error{constructor(e){super(e),tC(this,tI)}}class tk extends Error{constructor(e){super(e),tC(this,tk)}}class tA{constructor({pollingInterval:e,personalApiKey:t,projectApiKey:r,timeout:i,host:s,customHeaders:a,...n}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollerStopped=!1,this.pollingInterval=e,this.personalApiKey=t,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=r,this.host=s,this.poller=void 0,this.fetch=n.fetch||fetch,this.onError=n.onError,this.customHeaders=a,this.onLoad=n.onLoad,this.onMinimalFlagCalledEvents=n.onMinimalFlagCalledEvents,this.cacheProvider=n.cacheProvider,this.strictLocalEvaluation=n.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(e=!0){this.debugMode=e}logMsgIfDebug(e){this.debugMode&&e()}createEvaluationContext(e,t={},r={},i={},s={}){return{distinctId:e,groups:t,personProperties:r,groupProperties:i,evaluationCache:s}}async getFeatureFlag(e,t,r={},i={},s={}){let a,n;if(await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return a;if(void 0!==(n=this.featureFlagsByKey[e])){let o=this.createEvaluationContext(t,r,i,s);try{a=(await this.computeFlagAndPayloadLocally(n,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${e} -> ${a}`))}catch(t){t instanceof tk||t instanceof tI?this.logMsgIfDebug(()=>console.debug(`${t.name} when computing flag locally: ${e}: ${t.message}`)):t instanceof Error&&this.onError?.(Error(`Error computing flag locally: ${e}: ${t}`))}}return a}async getAllFlagsAndPayloads(e,t){await this.loadFeatureFlags();let r={},i={},s=0==this.featureFlags.length,a=t?t.map(e=>this.featureFlagsByKey[e]).filter(Boolean):this.featureFlags,n={...e,evaluationCache:e.evaluationCache??{}};return await Promise.all(a.map(async e=>{try{let{value:t,payload:s}=await this.computeFlagAndPayloadLocally(e,n);r[e.key]=t,s&&(i[e.key]=s)}catch(t){t instanceof tk||t instanceof tI?this.logMsgIfDebug(()=>console.debug(`${t.name} when computing flag locally: ${e.key}: ${t.message}`)):t instanceof Error&&this.onError?.(Error(`Error computing flag locally: ${e.key}: ${t}`)),s=!0}})),{response:r,payloads:i,fallbackToFlags:s}}async computeFlagAndPayloadLocally(e,t,r={}){let i,{matchValue:s,skipLoadCheck:a=!1}=r;if(a||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};i=void 0!==s?s:await this.computeFlagValueLocally(e,t);let n=this.getFeatureFlagPayload(e.key,i);return{value:i,payload:n}}async computeFlagValueLocally(e,t){let{distinctId:r,groups:i,personProperties:s,groupProperties:a}=t;if(!e.active)return!1;if(e.ensure_experience_continuity)throw new tI("Flag has experience continuity enabled");let n=(e.filters||{}).aggregation_group_type_index;if(void 0!=n){let r=this.groupTypeMapping[String(n)];if(!r)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${n} for feature flag ${e.key}`)),new tI("Flag has unknown group type index");if(!(r in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${e.key} without group names passed in`)),!1;"device_id"===e.bucketing_identifier&&(s?.$device_id===void 0||s?.$device_id===null||s?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${e.key}`));let o=a[r];return await this.matchFeatureFlagProperties(e,i[r],o,t)}{let i=this.getBucketingValueForFlag(e,r,s);if(void 0===i)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${e.key} without $device_id, falling back to server evaluation`)),new tI(`Can't compute feature flag: ${e.key} without $device_id`);return await this.matchFeatureFlagProperties(e,i,s,t)}}getBucketingValueForFlag(e,t,r){if(e.filters?.aggregation_group_type_index!=void 0)return t;if("device_id"===e.bucketing_identifier){let e=r?.$device_id;if(null==e||""===e)return;return e}return t}getFeatureFlagPayload(e,t){let r=null;if(!1!==t&&null!=t&&("boolean"==typeof t?r=this.featureFlagsByKey?.[e]?.filters?.payloads?.[t.toString()]||null:"string"==typeof t&&(r=this.featureFlagsByKey?.[e]?.filters?.payloads?.[t]||null),null!=r)){if("object"==typeof r)return r;if("string"==typeof r)try{return JSON.parse(r)}catch{}return r}return null}async evaluateFlagDependency(e,t,r){let{evaluationCache:i}=r,s=e.key;if(!this.featureFlagsByKey)throw new tI("Feature flags not available for dependency evaluation");if(!("dependency_chain"in e))throw new tI(`Flag dependency property for '${s}' is missing required 'dependency_chain' field`);let a=e.dependency_chain;if(!Array.isArray(a))throw new tI(`Flag dependency property for '${s}' has an invalid 'dependency_chain' (expected array, got ${typeof a})`);if(0===a.length)throw new tI(`Circular dependency detected for flag '${s}' (empty dependency chain)`);for(let e of a){if(!(e in i)){let t=this.featureFlagsByKey[e];if(t)if(t.active)try{let s=await this.computeFlagValueLocally(t,r);i[e]=s}catch(t){throw new tI(`Error evaluating flag dependency '${e}' for flag '${s}': ${t}`)}else i[e]=!1;else throw new tI(`Missing flag dependency '${e}' for flag '${s}'`)}if(null==i[e])throw new tI(`Dependency '${e}' could not be evaluated`)}let n=i[s];return this.flagEvaluatesToExpectedValue(e.value,n)}flagEvaluatesToExpectedValue(e,t){return"boolean"==typeof e?e===t||"string"==typeof t&&""!==t&&!0===e:"string"==typeof e&&t===e}async matchFeatureFlagProperties(e,t,r,i){let s,a=e.filters||{},n=a.groups||[],o=a.aggregation_group_type_index,l=a.early_exit??!1,{groups:u,groupProperties:c}=i,d=!1;for(let h of n)try{let n=void 0!==h.aggregation_group_type_index?h.aggregation_group_type_index:o,g=r,p=t;if(n!==o&&null!=n){let t=this.groupTypeMapping[String(n)];if(!t||!(t in u)){this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Skipping group condition for flag '${e.key}': group type index ${n} not available`));continue}if(!(t in c)){d=!0;continue}g=c[t],p=u[t]}let f=await this.isConditionMatch(e,p,h,g,i);if("match"===f){let t=h.variant,r=a.multivariate?.variants||[];s=t&&r.some(e=>e.key===t)?t:await this.getMatchingVariant(e,p)||!0;break}if(l&&"out_of_rollout_bound"===f)return!1}catch(e){if(e instanceof tk)throw e;if(e instanceof tI)d=!0;else throw e}if(void 0!==s)return s;if(d)throw new tI("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(e,t,r,i,s){let a=r.rollout_percentage,n=e=>{this.logMsgIfDebug(()=>console.warn(e))};if((r.properties||[]).length>0){for(let e of r.properties){let t=e.type,r=!1;if("cohort"===t){let t=await tT(e,i,this.cohorts,this.debugMode,e=>this.evaluateFlagDependency(e,i,s));r="not_in"===e.operator?!t:t}else r="flag"===t?await this.evaluateFlagDependency(e,i,s):tR(e,i,n);if(!r)return"no_match"}if(void 0==a)return"match"}return void 0!=a&&await tO(e.key,t)>a/100?"out_of_rollout_bound":"match"}async getMatchingVariant(e,t){let r=await tO(e.key,t,"variant"),i=this.variantLookupTable(e).find(e=>r>=e.valueMin&&r<e.valueMax);if(i)return i.key}variantLookupTable(e){let t=[],r=0,i=0,s=e.filters||{};return(s.multivariate?.variants||[]).forEach(e=>{i=r+e.rollout_percentage/100,t.push({valueMin:r,valueMax:i,key:e.key}),r=i}),t}updateFlagState(e){this.featureFlags=e.flags,this.featureFlagsByKey=e.flags.reduce((e,t)=>(e[t.key]=t,e),{}),this.groupTypeMapping=e.groupTypeMapping,this.cohorts=e.cohorts,this.loadedSuccessfullyOnce=!0,this.onMinimalFlagCalledEvents?.(!0===e.minimalFlagCalledEvents)}warnAboutExperienceContinuityFlags(e){if(this.strictLocalEvaluation)return;let t=e.filter(e=>e.ensure_experience_continuity);t.length>0&&console.warn(`[PostHog] You are using local evaluation but ${t.length} flag(s) have experience continuity enabled: ${t.map(e=>e.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(e){if(!this.cacheProvider)return!1;try{let t=await this.cacheProvider.getFlagDefinitions();if(t)return this.updateFlagState(t),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${e} (${t.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(t.flags),!0;return!1}catch(e){return this.onError?.(Error(`Failed to load from cache: ${e}`)),!1}}async loadFeatureFlags(e=!1){if(!this.loadedSuccessfullyOnce||e)return!e&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(e=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${e}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(6e4,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0);try{let e=!0;if(this.cacheProvider)try{e=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(e){this.onError?.(Error(`Error in shouldFetchFlagDefinitions: ${e}`))}if(!e&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let t=await this._requestFeatureFlagDefinitions();if(!t)return;switch(t.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=t.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new t$(`Your project key or secret key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.onMinimalFlagCalledEvents?.(!1);return;case 403:throw this.beginBackoff(),new t$(`Your secret key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct secret and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new t$(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let r=await t.json()??{};if(!("flags"in r))return void this.onError?.(Error(`Invalid response when getting feature flags: ${JSON.stringify(r)}`));this.flagsEtag=t.headers?.get("ETag")??void 0;let i={flags:r.flags??[],groupTypeMapping:r.group_type_mapping||{},cohorts:r.cohorts||{},minimalFlagCalledEvents:!0===r.minimal_flag_called_events};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&e)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(e){this.onError?.(Error(`Failed to store in cache: ${e}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(e){e instanceof t$&&this.onError?.(e)}finally{this.pollerStopped||(this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval()))}}getPersonalApiKeyRequestOptions(e="GET",t){let r={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return t&&(r["If-None-Match"]=t),{method:e,headers:r}}async _requestFeatureFlagDefinitions(){let e=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,t=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),r=null;if(this.timeout&&"number"==typeof this.timeout){let e=new AbortController;r=W(()=>{e.abort()},this.timeout),t.signal=e.signal}try{let i=this.fetch,s=await i(e,t);if(200!==s.status)return clearTimeout(r),s;return{status:s.status,headers:s.headers,body:s.body,text:async()=>{try{return await s.text()}finally{clearTimeout(r)}},json:async()=>{try{return await s.json()}finally{clearTimeout(r)}}}}catch(e){throw clearTimeout(r),e}}async stopPoller(e=3e4){if(this.pollerStopped=!0,clearTimeout(this.poller),this.poller=void 0,this.cacheProvider)try{let t=this.cacheProvider.shutdown();t instanceof Promise&&await z(t,e,()=>{throw Error(`Cache shutdown timeout after ${e}ms`)})}catch(e){this.onError?.(Error(`Error during cache shutdown: ${e}`))}}}async function tO(e,t,r=""){return parseInt((await tx(`${e}.${t}${r}`)).slice(0,15),16)/0x1000000000000000}function tR(e,t,r){let i=e.key,s=e.value,a=e.operator||"exact";if(i in t){if("is_not_set"===a)return!1}else{if("is_not_set"===a)return!0;throw new tI(`Property ${i} not found in propertyValues`)}let n=t[i];if(null==n&&!tS.includes(a))return r&&r(`Property ${i} cannot have a value of null/undefined with the ${a} operator`),!1;function o(e,t){return Array.isArray(e)?e.map(e=>String(e).toLowerCase()).includes(String(t).toLowerCase()):String(e).toLowerCase()===String(t).toLowerCase()}function l(e,t,r){if("gt"===r)return e>t;if("gte"===r)return e>=t;if("lt"===r)return e<t;if("lte"===r)return e<=t;throw Error(`Invalid operator: ${r}`)}switch(a){case"exact":return o(s,n);case"is_not":return!o(s,n);case"is_set":return i in t;case"icontains":return String(n).toLowerCase().includes(String(s).toLowerCase());case"not_icontains":return!String(n).toLowerCase().includes(String(s).toLowerCase());case"starts_with":return String(n).toLowerCase().startsWith(String(s).toLowerCase());case"not_starts_with":return!String(n).toLowerCase().startsWith(String(s).toLowerCase());case"ends_with":return String(n).toLowerCase().endsWith(String(s).toLowerCase());case"not_ends_with":return!String(n).toLowerCase().endsWith(String(s).toLowerCase());case"regex":return tL(String(s))&&null!==String(n).match(String(s));case"not_regex":return tL(String(s))&&null===String(n).match(String(s));case"gt":case"gte":case"lt":case"lte":{let e,t="number"==typeof s?s:parseFloat(String(s));if(e="number"==typeof n?n:null!=n?parseFloat(String(n)):NaN,Number.isFinite(t)&&Number.isFinite(e))return l(e,t,a);return l(String(n),String(s),a)}case"is_date_after":case"is_date_before":{if("boolean"==typeof s)throw new tI("Date operations cannot be performed on boolean values");let e=function(e){let t=e.match(/^-?(?<number>[0-9]+)(?<interval>[a-z])$/),r=new Date(new Date().toISOString());if(!t)return null;{if(!t.groups)return null;let e=parseInt(t.groups.number);if(e>=1e4)return null;let i=t.groups.interval;if("h"==i)r.setUTCHours(r.getUTCHours()-e);else if("d"==i)r.setUTCDate(r.getUTCDate()-e);else if("w"==i)r.setUTCDate(r.getUTCDate()-7*e);else if("m"==i)r.setUTCMonth(r.getUTCMonth()-e);else{if("y"!=i)return null;r.setUTCFullYear(r.getUTCFullYear()-e)}return r}}(String(s));if(null==e&&(e=tU(s)),null==e)throw new tI(`Invalid date: ${s}`);let t=tU(n);if(["is_date_before"].includes(a))return t<e;return t>e}case"semver_eq":return 0===tB(tD(String(n)),tD(String(s)));case"semver_neq":return 0!==tB(tD(String(n)),tD(String(s)));case"semver_gt":return tB(tD(String(n)),tD(String(s)))>0;case"semver_gte":return tB(tD(String(n)),tD(String(s)))>=0;case"semver_lt":return 0>tB(tD(String(n)),tD(String(s)));case"semver_lte":return 0>=tB(tD(String(n)),tD(String(s)));case"semver_tilde":{let e,t=tD(String(n)),{lower:r,upper:i}={lower:[(e=tD(String(s)))[0],e[1],e[2]],upper:[e[0],e[1]+1,0]};return tB(t,r)>=0&&0>tB(t,i)}case"semver_caret":{let e=tD(String(n)),{lower:t,upper:r}=function(e){let[t,r,i]=tD(e);return{lower:[t,r,i],upper:t>0?[t+1,0,0]:r>0?[0,r+1,0]:[0,0,i+1]}}(String(s));return tB(e,t)>=0&&0>tB(e,r)}case"semver_wildcard":{let e=tD(String(n)),{lower:t,upper:r}=function(e){let t,r,i=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!i)throw new tI(`Invalid wildcard semver: ${e}`);let s=i.split("."),a=t=>{try{return tj(t,e)}catch{throw new tI(`Invalid wildcard semver: ${e}`)}},n=a(s[0]);if(1===s.length)t=[n,0,0],r=[n+1,0,0];else{let e=a(s[1]);t=[n,e,0],r=[n,e+1,0]}return{lower:t,upper:r}}(String(s));return tB(e,t)>=0&&0>tB(e,r)}default:throw new tI(`Unknown operator: ${a}`)}}async function tT(e,t,r,i=!1,s){let a=String(e.value);if(!(a in r))throw new tk(`cohort ${a} not found in local cohorts - likely a static cohort that requires server evaluation`);return tM(r[a],t,r,i,s)}async function tM(e,t,r,i=!1,s){if(!e)return!0;let a=e.type,n=e.values;if(!n||0===n.length)return!0;let o=!1;if("values"in n[0]){for(let e of n)try{let n=await tM(e,t,r,i,s);if("AND"===a){if(!n)return!1}else if(n)return!0}catch(t){if(t instanceof tk)throw t;if(t instanceof tI)i&&console.debug(`Failed to compute property ${e} locally: ${t}`),o=!0;else throw t}if(o)throw new tI("Can't match cohort without a given cohort property value");return"AND"===a}for(let e of n)try{let n;if("cohort"===e.type)n=await tT(e,t,r,i,s);else if("flag"===e.type){if(!s)throw new tI(`Flag dependency '${e.key||"unknown"}' cannot be evaluated without a flag dependency evaluator`);n=await s(e)}else n=tR(e,t);let o=e.negation||!1;if("AND"===a){if(!n&&!o||n&&o)return!1}else if(n&&!o||!n&&o)return!0}catch(t){if(t instanceof tk)throw t;if(t instanceof tI)i&&console.debug(`Failed to compute property ${e} locally: ${t}`),o=!0;else throw t}if(o)throw new tI("can't match cohort without a given cohort property value");return"AND"===a}function tL(e){try{return new RegExp(e),!0}catch(e){return!1}}function tj(e,t){if(!/^\d+$/.test(e)||e.length>1&&"0"===e[0])throw new tI(`Invalid semver: ${t}`);return parseInt(e,10)}function tD(e){let t=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!t||t.startsWith("."))throw new tI(`Invalid semver: ${e}`);let r=t.split("."),i=t=>void 0===t||""===t?0:tj(t,e);return[i(r[0]),i(r[1]),i(r[2])]}function tB(e,t){for(let r=0;r<3;r++){if(e[r]<t[r])return -1;if(e[r]>t[r])return 1}return 0}function tU(e){if(e instanceof Date)return e;if("string"==typeof e||"number"==typeof e){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new tI(`${e} is in an invalid date format`)}throw new tI(`The date provided ${e} must be a string, number, or date object`)}let tN=["--unhandled-rejections","--unhandled_rejections"],tq=new Set(["throw","strict","warn","warn-with-error-code","none"]),tH=[...globalThis.process?.execArgv??[]],tW=globalThis.process?.env?.NODE_OPTIONS;function tz(e){let t;for(let r=0;r<e.length;r++){let i=e[r],s=tN.find(e=>i===e||i.startsWith(`${e}=`));if(!s)continue;let a=i===s?e[++r]:i.slice(s.length+1);tq.has(a)&&(t=a)}return t}let tG=function(e=tH,t=tW){return tz(e)??tz(function(e){let t=[],r="",i=!1;for(let s=0;s<e.length;s++){let a=e[s];"\\"===a&&i&&s+1<e.length?r+=e[++s]:" "!==a||i?'"'===a?i=!i:r+=a:r&&(t.push(r),r="")}return r&&t.push(r),t}(t??""))??"throw"}();function tK(e,t,r){e(t,{mechanism:{type:"unhandledRejection"===r?"onunhandledrejection":"onuncaughtexception",handled:!1}})}function tV(e,t,r,i,s){if(t>r&&(i.warn("min cannot be greater than max."),t=r),$(e))if(e>r)return i.warn(" cannot be greater than max: "+r+". Using max value instead."),r;else return e<t?(i.warn(" cannot be less than min: "+t+". Using min value instead."),t):e;return i.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+s),tV(s||r,t,r,i)}class tQ{constructor(e){this._buckets={},this._onBucketRateLimited=e._onBucketRateLimited,this._bucketSize=tV(e.bucketSize,0,100,e._logger),this._refillRate=tV(e.refillRate,0,this._bucketSize,e._logger),this._refillInterval=tV(e.refillInterval,0,864e5,e._logger)}_applyRefill(e,t){let r=Math.floor((t-e.lastAccess)/this._refillInterval);if(r>0){let t=r*this._refillRate;e.tokens=Math.min(e.tokens+t,this._bucketSize),e.lastAccess=e.lastAccess+r*this._refillInterval}}consumeRateLimit(e){let t=Date.now(),r=String(e),i=this._buckets[r];return i?this._applyRefill(i,t):(i={tokens:this._bucketSize,lastAccess:t},this._buckets[r]=i),0===i.tokens||(i.tokens--,0===i.tokens&&this._onBucketRateLimited?.(e),0===i.tokens)}stop(){this._buckets={}}}var to=tn;class tJ{constructor(e,t,r){this.client=e,this._exceptionAutocaptureEnabled=t.enableExceptionAutocapture||!1,this._logger=r,this._rateLimiter=new tQ({...function(e={}){return{refillRate:e.exceptionRateLimiterRefillRate??e.__exceptionRateLimiterRefillRate??1,bucketSize:e.exceptionRateLimiterBucketSize??e.__exceptionRateLimiterBucketSize??10}}(t),refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(e){return F(e)&&"__posthog_previously_captured_error"in e&&!0===e.__posthog_previously_captured_error}static async buildEventMessage(e,t,r,i,s){let a={...s},n=e.buildFromUnknown(t,r);n.$exception_list=await e.modifyFrames(n.$exception_list);let o=to.getInjectedReleaseId();return o&&(a.$release_id=o),{event:"$exception",distinctId:i,properties:{...n,...a},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(!function(t,r,i=tG){let s=globalThis.process;if(s){let a;if("strict"===i)return s.on("uncaughtExceptionMonitor",(e,r)=>tK(t,e,r));s.on("uncaughtException",(a=!1,Object.assign((i,s)=>{let n=e.g.process.listeners("uncaughtException").filter(e=>"domainUncaughtExceptionClear"!==e.name&&!0!==e._posthogErrorHandler).length;tK(t,i,s),a||0!==n||(a=!0,r(i))},{_posthogErrorHandler:!0})))}}(this.onException.bind(this),this.onFatalError.bind(this)),function(e,t=tG){let r=globalThis.process;r&&"throw"!==t&&"strict"!==t&&"warn-with-error-code"!==t&&r.on("unhandledRejection",t=>{e(t,{mechanism:{type:"onunhandledrejection",handled:!1}})})}(this.onException.bind(this)))}onException(e,t){this.client.addPendingPromise((async()=>{if(!tJ.isPreviouslyCapturedError(e)){let r=await tJ.buildEventMessage(this.client.getErrorPropertiesBuilder(),e,t),i=r.properties,s=i?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(s)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:s}):this.client._capturePreparedEvent(r,!1)}})())}async onFatalError(e){console.error(e),await this.client.shutdown(2e3),globalThis.process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}}class tY{getProperty(e){return this._memoryStorage[e]}setProperty(e,t){this._memoryStorage[e]=null!==t?t:void 0}constructor(){this._memoryStorage={}}}let tX="analytics";class tZ extends Error{constructor({requestId:e,drops:t,retryExhausted:r,cause:i}){super(tZ.buildMessage(e,t,r,i)),this.name="CaptureV1Error",this.requestId=e,this.drops=t,this.retryExhausted=r,this.cause=i}static buildMessage(e,t,r,i){let s=`Capture V1 batch ${e} did not fully deliver: ${t.length} dropped, ${r.length} undelivered`;return i instanceof Error&&(s+=` (${i.message})`),s}}function t0(e){if("boolean"==typeof e)return e;if("number"==typeof e)return 0!==e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}}let t1=[{property:"$cookieless_mode",optionKey:"cookieless_mode",coerce:t0},{property:"$ignore_sent_at",optionKey:"disable_skew_correction",coerce:t0},{property:"$process_person_profile",optionKey:"process_person_profile",coerce:t0},{property:"$product_tour_id",optionKey:"product_tour_id",coerce:function(e){return"string"==typeof e?e:void 0}}],t4=[{property:"$session_id",field:"session_id"},{property:"$window_id",field:"window_id"}];function t2(e,t,r){void 0===r||t in e||(e[t]=r)}function t3(e){var t;let r={..."object"==typeof(t=e.properties)&&null!==t&&!Array.isArray(t)?e.properties:{}},i={};for(let{property:e,optionKey:t,coerce:s}of t1)if(e in r){let a=s(r[e]);void 0!==a&&(i[t]=a),delete r[e]}let s={};for(let{property:e,field:t}of t4)if(e in r){let i=r[e];"string"==typeof i&&(s[t]=i),delete r[e]}return delete r.$lib,delete r.$lib_version,t2(r,"$set",e.$set),t2(r,"$set_once",e.$set_once),{event:String(e.event??""),uuid:String(e.uuid??""),distinct_id:String(e.distinct_id??""),timestamp:function(e){if("string"==typeof e)return Number.isNaN(new Date(e).getTime())?new Date().toISOString():e;if(e instanceof Date)return Number.isNaN(e.getTime())?new Date().toISOString():e.toISOString();let t=null==e?new Date:new Date(e);return Number.isNaN(t.getTime())?new Date().toISOString():t.toISOString()}(e.timestamp),...s,options:i,properties:r}}let t5=new Set([408,500,502,503,504]);class t8{constructor(e,t){this.config=e,this.maxBackoffMs=e.maxBackoffMs??3e4,this.fetchFn=t.fetch,this.onError=t.onError,this.now=t.now??Date.now,this.sleep=t.sleep??(e=>new Promise(t=>W(t,e))),this.generateRequestId=t.generateRequestId??ei,this.compress=t.compress??m}async sendV1Batch(e){if(0===e.length)return;let t=this.generateRequestId(),r=new Date(this.now()).toISOString(),{batch:i}=function(e,{createdAt:t,historicalMigration:r}){let i={created_at:t,batch:e.map(t3)};return r&&(i.historical_migration=!0),i}(e,{createdAt:r,historicalMigration:this.config.historicalMigration}),s=`${this.config.host}/i/v1/analytics/events`,a=[],n=i,o=Math.max(1,this.config.maxAttempts);for(let e=1;e<=o;e++){let i,l,u=e===o,c=_({created_at:r,...this.config.historicalMigration?{historical_migration:!0}:{},batch:n});try{let{response:r,signal:o}=i=await this.sendOnce(s,c,e,t),{status:d}=r;if(d<200||d>=300)if(!u&&t5.has(d)){let t=this.parseRetryAfter(r);await i.waitFor(i.cancelBody()).catch(()=>{}),l=this.backoffDelay(e,t)}else{let e=await this.buildHttpError(r,d,i.waitFor);return this.surfaceBatchFailure(t,a,n,e)}else{let s;try{s=await i.waitFor(this.parseResponse(r))}catch(e){if(o.aborted)throw e;return this.surfaceBatchFailure(t,a,n,Error(`Capture V1 returned an unparseable ${d} response body`))}let c=this.classify(n,s,a);if(0===c.length)return this.surfacePartialDrops(t,a);if(u)return void this.onError(new tZ({requestId:t,drops:a,retryExhausted:c.map(e=>e.uuid)}));n=c;let h=this.parseRetryAfter(r);l=this.backoffDelay(e,h)}}catch(r){if(i&&!i.signal.aborted)throw r;if(u)return this.surfaceBatchFailure(t,a,n,r);l=this.backoffDelay(e)}finally{i?.cleanup()}void 0!==l&&await this.sleep(l)}}async sendOnce(e,t,r,i){let s,a=this.buildHeaders(r,i),n=t;if(this.config.compressionEnabled){let e=await this.compress(t,this.config.isDebug);null!==e&&(n=e,a["Content-Encoding"]="gzip")}let o=new AbortController,l="waiting for response headers",u=new Promise((e,t)=>{s=W(()=>{let e=Error(`Capture V1 request timed out ${l} after ${this.config.requestTimeoutMs}ms`);e.name="AbortError",t(e),o.abort(e)},this.config.requestTimeoutMs)});try{let t,r=this.fetchFn(e,{method:"POST",headers:a,body:n,signal:o.signal}),i=!1;r.then(e=>{o.signal.aborted&&!i&&this.cancelBody(e)}).catch(()=>{});let c=await Promise.race([r,u]);i=!0,l="while reading the response body";let d=!1,h=()=>t??=this.cancelBody(c);return{response:c,signal:o.signal,waitFor:e=>Promise.race([e,u]),cancelBody:h,cleanup:()=>{!d&&(d=!0,clearTimeout(s),o.signal.aborted&&h())}}}catch(e){throw clearTimeout(s),e}}buildHeaders(e,t){let r=`${this.config.libraryId}/${this.config.libraryVersion}`,i={"Content-Type":"application/json",Authorization:`Bearer ${this.config.apiKey}`,"PostHog-Sdk-Info":r,"PostHog-Attempt":String(e),"PostHog-Request-Id":t,"PostHog-Request-Timestamp":new Date(this.now()).toISOString()};return this.config.userAgent&&(i["User-Agent"]=this.config.userAgent),i}classify(e,t,r){let i=t.results??{},s=[];for(let t of e){let e=i[t.uuid];e&&("drop"===e.result?r.push({uuid:t.uuid,details:e.details??void 0}):"retry"===e.result&&s.push(t))}return s}backoffDelay(e,t){let r=Math.min(this.config.initialRetryDelayMs*2**(e-1),this.maxBackoffMs);return void 0===t?r:Math.max(r,Math.min(t,this.maxBackoffMs))}parseRetryAfter(e){let t=e.headers?.get("Retry-After");if(!t)return;let r=t.trim();if(/^\d+$/.test(r)){let e=parseInt(r,10);return Number.isFinite(e)&&e>0?1e3*e:void 0}let i=Date.parse(r);if(Number.isNaN(i))return;let s=i-this.now();return s>0?s:void 0}async parseResponse(e){let t=JSON.parse(await e.text());if("object"!=typeof t||null===t||Array.isArray(t))throw Error("unexpected response shape");let r=t.results;if(void 0!==r&&("object"!=typeof r||null===r||Array.isArray(r)))throw Error("unexpected results shape");return{results:r??{}}}async buildHttpError(e,t,r){let i="";try{i=(await r(e.text())).slice(0,512)}catch{}let s=i?`: ${i}`:"";return Error(`Capture V1 request failed with HTTP ${t}${s}`)}surfaceBatchFailure(e,t,r,i){this.onError(new tZ({requestId:e,drops:t,retryExhausted:r.map(e=>e.uuid),cause:i}))}surfacePartialDrops(e,t){t.length>0&&this.onError(new tZ({requestId:e,drops:t,retryExhausted:[]}))}async cancelBody(e){try{await e.body?.cancel()}catch{}}}let t9=new Set;function t6(e,t){t9.has(e)||(t9.add(e),console.warn(`[PostHog] ${t}`))}class t7 extends ti{constructor(e,t={}){const r=function(e){return"string"==typeof e?e.trim():""}(e),i={...t,maxQueueSize:t.maxQueueSize??1e4,flushInterval:t.flushInterval??5e3,host:function(e){return("string"==typeof e?e.trim():"")||"https://us.i.posthog.com"}(t.host),personalApiKey:function(e){return("string"==typeof e?e.trim():"")||void 0}(t.secretKey??t.personalApiKey)};if(super(r,i),this._memoryStorage=new tY,this._minimalFlagCalledEvents=!1,this.options=i,this.captureMode=function(){let e="u">typeof process?process.env?.POSTHOG_CAPTURE_MODE:void 0;return"v0"===e||"v1"===e?e:"v0"}(),this.context=this.initializeContext(),this.options.featureFlagsPollingInterval="number"==typeof i.featureFlagsPollingInterval?Math.max(i.featureFlagsPollingInterval,100):3e4,"number"==typeof i.waitUntilDebounceMs&&(this.options.waitUntilDebounceMs=Math.max(i.waitUntilDebounceMs,0)),"number"==typeof i.waitUntilMaxWaitMs&&(this.options.waitUntilMaxWaitMs=Math.max(i.waitUntilMaxWaitMs,0)),!this.disabled&&i.personalApiKey){if(i.personalApiKey.includes("phc_"))throw Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');!1!==i.enableLocalEvaluation&&(this.featureFlagsPoller=new tA({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:i.personalApiKey,projectApiKey:r,timeout:i.requestTimeout??1e4,host:this.host,fetch:i.fetch,onError:e=>{this._events.emit("error",e)},onLoad:e=>{this._events.emit("localEvaluationFlagsLoaded",e)},onMinimalFlagCalledEvents:e=>{this._minimalFlagCalledEvents=e},customHeaders:this.getCustomHeaders(),cacheProvider:i.flagDefinitionCacheProvider,strictLocalEvaluation:i.strictLocalEvaluation}))}this.errorTracking=new tJ(this,i,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=i.maxCacheSize||5e4}enqueue(e,t,r){super.enqueue(e,t,r),this.scheduleDebouncedFlush()}async flush(){let e=this.flushWithPendingPromises(),t=this.options.waitUntil;if(t&&!this._waitUntilCycle)try{t(e.catch(()=>{}))}catch{}return e}scheduleDebouncedFlush(){let e=this.options.waitUntil;if(!e||this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let t,r=new Promise(e=>{t=e});try{e(r)}catch{return}this._waitUntilCycle={resolve:t,startedAt:Date.now(),timer:void 0}}let t=Date.now()-this._waitUntilCycle.startedAt,r=this.options.waitUntilMaxWaitMs??500;if(void 0!==this._waitUntilCycle.timer&&clearTimeout(this._waitUntilCycle.timer),t>=r)return void this.resolveWaitUntilFlush();let i=this.options.waitUntilDebounceMs??50;this._waitUntilCycle.timer=W(()=>{this.resolveWaitUntilFlush()},i)}_consumeWaitUntilCycle(){let e=this._waitUntilCycle;return e&&(clearTimeout(e.timer),this._waitUntilCycle=void 0),e?.resolve}async resolveWaitUntilFlush(){let e=this._consumeWaitUntilCycle();try{await this.flushWithPendingPromises()}catch{}finally{e?.()}}getPersistedProperty(e){return this._memoryStorage.getProperty(e)}setPersistedProperty(e,t){return this._memoryStorage.setProperty(e,t)}fetch(e,t){return this.options.fetch?this.options.fetch(e,t):fetch(e,t)}getQueueRouteKey(e){var t;return"v1"===this.captureMode&&"string"==typeof(t=e).event&&t.event.startsWith("$ai_")?"ai":tX}persistedQueueKeyForRoute(e){return"ai"===e?g.AiQueue:g.Queue}getActiveQueueRoutes(){return"v1"===this.captureMode?[tX,"ai"]:[tX]}async sendBatch(e,t,r=tX){if("v1"!==this.captureMode||"ai"===r)return super.sendBatch(e,t,r);let i=e.filter(e=>void 0!==e);await this.getV1Sender().sendV1Batch(i)}getV1Sender(){return this._v1Sender||(this._v1Sender=new t8({host:this.host,apiKey:this.apiKey,libraryId:this.getLibraryId(),libraryVersion:this.getLibraryVersion(),userAgent:this.getCustomUserAgent()||void 0,historicalMigration:this.historicalMigration,compressionEnabled:!this.disableCompression,requestTimeoutMs:this.requestTimeout,maxAttempts:(this.options.fetchRetryCount??3)+1,initialRetryDelayMs:this.options.fetchRetryDelay??3e3,isDebug:this.isDebug},{fetch:(e,t)=>this.fetch(e,t),onError:e=>this._events.emit("error",e),compress:e=>this.compressPayload(e)})),this._v1Sender}getLibraryVersion(){return"5.48.1"}get metrics(){var e;let t;return this._metrics||(this._metrics=new X(this,(e=this.options.metrics,t=e?.resourceAttributes,{serviceName:t?.["service.name"]??e?.serviceName,serviceVersion:t?.["service.version"]??e?.serviceVersion,environment:t?.["deployment.environment"]??e?.environment,resourceAttributes:t,beforeSend:e?.beforeSend,flushIntervalMs:e?.flushIntervalMs??1e4,maxSeriesPerFlush:e?.maxSeriesPerFlush??1e3}),this._logger)),this._metrics}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}getCommonEventProperties(){let e=super.getCommonEventProperties();return(this.options.isServer??!0)&&(e.$is_server=!0),e}enable(){return super.optIn()}disable(){return super.optOut()}debug(e=!0){super.debug(e),this.featureFlagsPoller?.debug(e)}_warnIfInvalidCapture(e,t,r){"string"==typeof e&&this._logger.warn(t),"$exception"!==e.event||e._originatedFromCaptureException||this._logger.warn(r)}_sendPreparedEvent(e,t,r,i){return this.addPendingPromise(this._prepareEventMessage(t,i).then(({distinctId:t,event:i,properties:s,options:a})=>{let n={timestamp:a.timestamp,disableGeoip:a.disableGeoip,uuid:a.uuid},o={distinctId:t,event:i,properties:{...s,...this.getCommonEventProperties()}};return r?this.sendImmediate(e,o,n):this.enqueue(e,o,n)}).catch(e=>{e&&console.error(e)}))}_capturePreparedEvent(e,t){return this._sendPreparedEvent("capture",e,t)}capture(e){this._warnIfInvalidCapture(e,"Called capture() with a string as the first argument when an object was expected.","Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this._capturePreparedEvent(e,!1)}async captureImmediate(e){return this._warnIfInvalidCapture(e,"Called captureImmediate() with a string as the first argument when an object was expected.","Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this._capturePreparedEvent(e,!0)}identify({distinctId:e,properties:t={},disableGeoip:r}){let{$set:i,$set_once:s,$anon_distinct_id:a,...n}=t;this._sendPreparedEvent("identify",{distinctId:e,event:"$identify",properties:{$set:i||n,$set_once:s||{},$anon_distinct_id:a??void 0},disableGeoip:r},!1,{includeContextProperties:!1})}async identifyImmediate({distinctId:e,properties:t={},disableGeoip:r}){let{$set:i,$set_once:s,$anon_distinct_id:a,...n}=t;await this._sendPreparedEvent("identify",{distinctId:e,event:"$identify",properties:{$set:i||n,$set_once:s||{},$anon_distinct_id:a??void 0},disableGeoip:r},!0,{includeContextProperties:!1})}setPersonProperties({distinctId:e,properties:t={},propertiesOnce:r={}}){if(0===Object.keys(t).length&&0===Object.keys(r).length)return;let i={};Object.keys(t).length>0&&(i.$set=t),Object.keys(r).length>0&&(i.$set_once=r),this.capture({distinctId:e,event:"$set",properties:i})}unsetPersonProperties({distinctId:e,properties:t}){let r=(Array.isArray(t)?t:[t]).filter(e=>"string"==typeof e&&e.trim().length>0);0!==r.length&&this.capture({distinctId:e,event:"$set",properties:{$unset:r}})}alias(e){this._sendPreparedEvent("alias",{distinctId:e.distinctId,event:"$create_alias",properties:{distinct_id:e.distinctId,alias:e.alias},disableGeoip:e.disableGeoip},!1,{includeContextProperties:!1})}async aliasImmediate(e){await this._sendPreparedEvent("alias",{distinctId:e.distinctId,event:"$create_alias",properties:{distinct_id:e.distinctId,alias:e.alias},disableGeoip:e.disableGeoip},!0,{includeContextProperties:!1})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(e=3e4){return!!this.isLocalEvaluationReady()||void 0!==this.featureFlagsPoller&&new Promise(t=>{let r=setTimeout(()=>{i(),t(!1)},e),i=this._events.on("localEvaluationFlagsLoaded",e=>{clearTimeout(r),i(),t(e>0)})})}_resolveDistinctId(e,t){return"string"==typeof e?{distinctId:e,options:t}:{distinctId:this.context?.get()?.distinctId,options:e}}async _getFeatureFlagResult(e,t,r={},i){let s,a,n,o,l,u,c,d;if(this.disabled)return void this._logger.warn("The client is disabled");let h=r.sendFeatureFlagEvents??!0;if(void 0!==this._flagOverrides&&e in this._flagOverrides){let t=this._flagOverrides[e];if(void 0===t)return;let r=this._payloadOverrides?.[e];return{key:e,enabled:!1!==t,variant:"string"==typeof t?t:void 0,payload:r}}let{groups:g,disableGeoip:p}=r,{onlyEvaluateLocally:f,personProperties:y,groupProperties:m}=r,_=this.addLocalPersonAndGroupProperties(t,g,y,m);y=_.allPersonProperties,m=_.allGroupProperties;let v=this.createFeatureFlagEvaluationContext(t,g,this.personPropertiesForLocalEvaluation(t,y),m);void 0==f&&(f=this.options.strictLocalEvaluation??!1);let b=!1;if(void 0!==this.featureFlagsPoller){await this.featureFlagsPoller?.loadFeatureFlags();let t=this.featureFlagsPoller?.featureFlagsByKey[e];if(t)try{let r=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(t,v,{matchValue:i});if(r){b=!0;let i=r.value;l=t.id,c="Evaluated locally",d=t.has_experiment,s={key:e,enabled:!1!==i,variant:"string"==typeof i?i:void 0,payload:r.payload??void 0}}}catch(t){if(t instanceof tk||t instanceof tI)this._logger?.info(`${t.name} when computing flag locally: ${e}: ${t.message}`);else throw t}}if(!b&&!f){let t=await super.getFeatureFlagDetailsStateless(v.distinctId,v.groups,y,m,p,[e]);if(void 0===t)o=tF.UNKNOWN_ERROR;else{this._minimalFlagCalledEvents=!0===t.minimalFlagCalledEvents,a=t.requestId,n=t.evaluatedAt;let r=[];t.errorsWhileComputingFlags&&r.push(tF.ERRORS_WHILE_COMPUTING),t.quotaLimited?.includes("feature_flags")&&r.push(tF.QUOTA_LIMITED);let i=t.flags[e];if(void 0===i)r.push(tF.FLAG_MISSING);else{let t;if(l=i.metadata?.id,u=i.metadata?.version,c=i.reason?.description??i.reason?.code,d=i.metadata?.has_experiment,i.metadata?.payload!==void 0)try{t=JSON.parse(i.metadata.payload)}catch{t=i.metadata.payload}s={key:e,enabled:i.enabled,variant:i.variant,payload:t}}r.length>0&&(o=r.join(","))}}if(h){let r=void 0===s?void 0:!1!==s.enabled&&(s.variant??!0),i={$feature_flag:e,$feature_flag_response:r,$feature_flag_id:l,$feature_flag_version:u,$feature_flag_reason:c,locally_evaluated:b,[`$feature/${e}`]:r,$feature_flag_request_id:a,$feature_flag_evaluated_at:b?Date.now():n};if(void 0!==d&&(i.$feature_flag_has_experiment=d),b&&this.featureFlagsPoller){let e=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();void 0!==e&&(i.$feature_flag_definitions_loaded_at=e)}o&&(i.$feature_flag_error=o),this._captureFlagCalledEventIfNeeded({distinctId:t,key:e,response:r,groups:g,disableGeoip:p,properties:i})}return void 0!==s&&void 0!==this._payloadOverrides&&e in this._payloadOverrides&&(s={...s,payload:this._payloadOverrides[e]}),s}async getFeatureFlag(e,t,r){t6("getFeatureFlag","`getFeatureFlag` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlag(key)` instead — this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(e,t,{...r,sendFeatureFlagEvents:r?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(void 0!==i)return!1!==i.enabled&&(i.variant??!0)}async getFeatureFlagPayload(e,t,r,i){if(t6("getFeatureFlagPayload","`getFeatureFlagPayload` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlagPayload(key)` instead — this consolidates flag evaluation into a single `/flags` request per incoming request."),void 0!==this._payloadOverrides&&e in this._payloadOverrides)return this._payloadOverrides[e];let s=await this._getFeatureFlagResult(e,t,{...i,sendFeatureFlagEvents:!1},r);if(void 0!==s)return s.payload??null}async getFeatureFlagResult(e,t,r){let{distinctId:i,options:s}=this._resolveDistinctId(t,r);return i?this._getFeatureFlagResult(e,i,{...s,sendFeatureFlagEvents:s?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required — pass it explicitly or use withContext()")}async getRemoteConfigPayload(e){if(this.disabled)return void this._logger.warn("The client is disabled");if(!this.options.personalApiKey)throw Error("Personal API key is required for remote config payload decryption");let t=await this._requestRemoteConfigPayload(e);if(!t)return;let r=await t.json();if("string"==typeof r)try{return JSON.parse(r)}catch(e){}return r}async isFeatureEnabled(e,t,r){t6("isFeatureEnabled","`isFeatureEnabled` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.isEnabled(key)` instead — this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(e,t,{...r,sendFeatureFlagEvents:r?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});return void 0===i?void 0:!1!==i.enabled&&!!(i.variant??!0)}async getAllFlags(e,t){let{distinctId:r,options:i}=this._resolveDistinctId(e,t);return r?(await this.getAllFlagsAndPayloads(r,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags — pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(e,t){let{distinctId:r,options:i}=this._resolveDistinctId(e,t);if(!r)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads — pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};if(this.disabled)return this._logger.warn("The client is disabled"),{featureFlags:{},featureFlagPayloads:{}};let{groups:s,disableGeoip:a,flagKeys:n}=i||{},{onlyEvaluateLocally:o,personProperties:l,groupProperties:u}=i||{},c=this.addLocalPersonAndGroupProperties(r,s,l,u);l=c.allPersonProperties,u=c.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,this.personPropertiesForLocalEvaluation(r,l),u);void 0==o&&(o=this.options.strictLocalEvaluation??!1);let h=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,n),g={},p={},f=!0;if(h&&(g=h.response,p=h.payloads,f=h.fallbackToFlags),f&&!o){let e=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,l,u,a,n);g={...g,...e.flags||{}},p={...p,...e.payloads||{}}}return void 0!==this._flagOverrides&&(g={...g,...this._flagOverrides}),void 0!==this._payloadOverrides&&(p={...p,...this._payloadOverrides}),{featureFlags:g,featureFlagPayloads:p}}async evaluateFlags(e,t){let r,i,{distinctId:s,options:a}=this._resolveDistinctId(e,t);if(!s)return this._logger.warn("[PostHog] distinctId is required to evaluate feature flags — pass it explicitly or use withContext()"),new tP({host:this._getFeatureFlagEvaluationsHost(),distinctId:"",flags:{}});if(this.disabled)return this._logger.warn("The client is disabled"),new tP({host:this._getFeatureFlagEvaluationsHost(),distinctId:s,flags:{}});let{groups:n,disableGeoip:o,flagKeys:l}=a||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:d}=a||{},h=this.addLocalPersonAndGroupProperties(s,n,c,d);c=h.allPersonProperties,d=h.allGroupProperties;let g=this.createFeatureFlagEvaluationContext(s,n,this.personPropertiesForLocalEvaluation(s,c),d);void 0==u&&(u=this.options.strictLocalEvaluation??!1);let p={},f=!1,y=!1,m=await this.featureFlagsPoller?.getAllFlagsAndPayloads(g,l),_=new Set;if(m)for(let[e,t]of Object.entries(m.response)){let r=this.featureFlagsPoller?.featureFlagsByKey[e];p[e]={key:e,enabled:!1!==t,variant:"string"==typeof t?t:void 0,payload:m.payloads[e],id:r?.id,version:void 0,reason:"Evaluated locally",locallyEvaluated:!0,hasExperiment:r?.has_experiment},_.add(e)}if((!m||m.fallbackToFlags)&&!u){let e=await super.getFeatureFlagDetailsStateless(g.distinctId,g.groups,c,d,o,l);if(e)for(let[t,s]of(this._minimalFlagCalledEvents=!0===e.minimalFlagCalledEvents,r=e.requestId,i=e.evaluatedAt,f=!!e.errorsWhileComputingFlags,y=Array.isArray(e.quotaLimited)&&e.quotaLimited.includes("feature_flags"),Object.entries(e.flags))){let e;if(!_.has(t)){if(s.metadata?.payload!==void 0)try{e=JSON.parse(s.metadata.payload)}catch{e=s.metadata.payload}p[t]={key:t,enabled:s.enabled,variant:s.variant,payload:e,id:s.metadata?.id,version:s.metadata?.version,reason:s.reason?.description??s.reason?.code,locallyEvaluated:!1,hasExperiment:s.metadata?.has_experiment}}}}if(void 0!==this._flagOverrides)for(let[e,t]of Object.entries(this._flagOverrides)){if(void 0===t){delete p[e];continue}let r=p[e];p[e]={key:e,enabled:!1!==t,variant:"string"==typeof t?t:void 0,payload:r?.payload,id:r?.id,version:r?.version,reason:r?.reason,locallyEvaluated:r?.locallyEvaluated??!1,hasExperiment:r?.hasExperiment}}if(void 0!==this._payloadOverrides)for(let[e,t]of Object.entries(this._payloadOverrides)){let r=p[e];r&&(p[e]={...r,payload:t})}return new tP({host:this._getFeatureFlagEvaluationsHost(),distinctId:s,groups:n,disableGeoip:o,flags:p,requestId:r,evaluatedAt:i,flagDefinitionsLoadedAt:this.featureFlagsPoller?.getFlagDefinitionsLoadedAt(),errorsWhileComputing:f,quotaLimited:y})}_shouldSendMinimalFlagCalledEvent(e,t){return"$feature_flag_called"===e&&this._minimalFlagCalledEvents&&!1===t.$feature_flag_has_experiment}_captureFlagCalledEventIfNeeded(e){let{distinctId:t,key:r,response:i,groups:s,disableGeoip:a,properties:n}=e,o=s&&Object.keys(s).length>0?`_${JSON.stringify(Object.entries(s).sort(([e],[t])=>e<t?-1:+(e>t)))}`:"",l=`${r}_${i}${o}`;t in this.distinctIdHasSentFlagCalls&&this.distinctIdHasSentFlagCalls[t].has(l)||(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),this.distinctIdHasSentFlagCalls[t]instanceof Set?this.distinctIdHasSentFlagCalls[t].add(l):this.distinctIdHasSentFlagCalls[t]=new Set([l]),this.capture({distinctId:t,event:"$feature_flag_called",properties:n,groups:s,disableGeoip:a}))}_getFeatureFlagEvaluationsHost(){return this._featureFlagEvaluationsHost||(this._featureFlagEvaluationsHost={captureFlagCalledEventIfNeeded:e=>this._captureFlagCalledEventIfNeeded(e),logWarning:e=>{!1!==this.options.featureFlagsLogWarnings&&console.warn(`[PostHog] ${e}`)}}),this._featureFlagEvaluationsHost}groupIdentify({groupType:e,groupKey:t,properties:r,distinctId:i,disableGeoip:s}){this._sendPreparedEvent("capture",{distinctId:i||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{}},disableGeoip:s},!1,{includeContextProperties:!1})}async groupIdentifyImmediate({groupType:e,groupKey:t,properties:r,distinctId:i,disableGeoip:s}){await this._sendPreparedEvent("capture",{distinctId:i||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{}},disableGeoip:s},!0,{includeContextProperties:!1})}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(e){let t=e=>Object.fromEntries(e.map(e=>[e,!0]));if(!1===e){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(e)){this._flagOverrides=t(e);return}if(this._isFeatureFlagOverrideOptions(e)){"flags"in e&&(!1===e.flags?this._flagOverrides=void 0:Array.isArray(e.flags)?this._flagOverrides=t(e.flags):void 0!==e.flags&&(this._flagOverrides={...e.flags})),"payloads"in e&&(!1===e.payloads?this._payloadOverrides=void 0:void 0!==e.payloads&&(this._payloadOverrides={...e.payloads}));return}this._flagOverrides={...e}}_isFeatureFlagOverrideOptions(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;if("flags"in e){let t=e.flags;if(!1===t||Array.isArray(t)||"object"==typeof t&&null!==t)return!0}if("payloads"in e){let t=e.payloads;if(!1===t||"object"==typeof t&&null!==t)return!0}return!1}withContext(e,t,r){return this.context?this.context.run(e,t,r):t()}getContext(){return this.context?.get()}enterContext(e,t){this.context?.enter(e,t)}async _shutdown(e){let t=Date.now()+(e??3e4),r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(e),this.errorTracking.shutdown(),this._metrics&&(await z(this._metrics.flush().catch(()=>{}),Math.max(0,t-Date.now())),this._metrics.reset());try{return await super._shutdown(Math.max(0,t-Date.now()))}finally{this.distinctIdHasSentFlagCalls={},r?.()}}async _requestRemoteConfigPayload(e){if(this.disabled||!this.apiKey||!this.options.personalApiKey)return;let t=`${this.host}/api/projects/@current/feature_flags/${e}/remote_config?token=${encodeURIComponent(this.apiKey)}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&"number"==typeof this.options.requestTimeout){let e=new AbortController;i=W(()=>{e.abort()},this.options.requestTimeout),r.signal=e.signal}try{return await this.fetch(t,r)}catch(e){this._events.emit("error",e);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(e,t){if(!e)return{personProperties:{},groupProperties:{}};let r={},i={};for(let[s,a]of Object.entries(e))if(I(a,"Object")&&t&&s in t){let e={};for(let[t,r]of Object.entries(a))e[String(t)]=String(r);i[String(s)]=e}else r[String(s)]=String(a);return{personProperties:r,groupProperties:i}}async getFeatureFlagsForEvent(e,t,r,i){if(this.disabled||!this.apiKey)return void this._logger.warn("The client is disabled");let s=i?.personProperties||{},a=i?.groupProperties||{},n=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation)if(!((this.featureFlagsPoller?.featureFlags?.length||0)>0))return{};else{let i={};for(let[e,r]of Object.entries(t||{}))i[e]=String(r);return await this.getAllFlags(e,{groups:i,personProperties:s,groupProperties:a,disableGeoip:r,onlyEvaluateLocally:!0,flagKeys:n})}if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let i={};for(let[e,r]of Object.entries(t||{}))i[e]=String(r);return await this.getAllFlags(e,{groups:i,personProperties:s,groupProperties:a,disableGeoip:r,onlyEvaluateLocally:!0,flagKeys:n})}return(await super.getFeatureFlagsStateless(e,t,s,a,r)).flags}addLocalPersonAndGroupProperties(e,t,r,i){let s={...r||{}},a={};if(t)for(let e of Object.keys(t))a[e]={$group_key:t[e],...i?.[e]||{}};return{allPersonProperties:s,allGroupProperties:a}}personPropertiesForLocalEvaluation(e,t){return{distinct_id:e,...t||{}}}createFeatureFlagEvaluationContext(e,t,r,i){return{distinctId:e,groups:t||{},personProperties:r||{},groupProperties:i||{},evaluationCache:{}}}captureException(e,t,r,i,s){if(!tJ.isPreviouslyCapturedError(e)){let a=Error("PostHog syntheticException");this.addPendingPromise(tJ.buildEventMessage(this.getErrorPropertiesBuilder(),e,{syntheticException:a},t,r).then(e=>this._capturePreparedEvent({...e,uuid:i,flags:s},!1)))}}async captureExceptionImmediate(e,t,r,i){if(!tJ.isPreviouslyCapturedError(e)){let s=Error("PostHog syntheticException");return this.addPendingPromise(tJ.buildEventMessage(this.getErrorPropertiesBuilder(),e,{syntheticException:s},t,r).then(e=>this.captureImmediate({...e,flags:i})))}}async prepareEventMessage(e){return this._prepareEventMessage(e)}async _prepareEventMessage(e,t={}){let{distinctId:r,event:i,properties:s,groups:a,flags:n,sendFeatureFlags:o,timestamp:l,disableGeoip:u,uuid:c}=e,d=this.context?.get(),g=t.includeContextProperties??!0,p=r||d?.distinctId,f=g?{...this.props,...d?.properties||{},...s||{}}:{...s||{}};p||(p=ei(),f.$process_person_profile=!1),g&&d?.sessionId&&!f.$session_id&&(f.$session_id=d.sessionId);let y=this._shouldSendMinimalFlagCalledEvent(i,f)?h(f):f,m=this._runBeforeSend({distinctId:p,event:i,properties:y,groups:a,flags:n,sendFeatureFlags:o,timestamp:l,disableGeoip:u,uuid:c});if(!m)return Promise.reject(null);let _=await Promise.resolve().then(async()=>{if(n)return o&&console.warn("[PostHog] Both `flags` and `sendFeatureFlags` were passed to capture(); using `flags` and ignoring `sendFeatureFlags`."),n._getEventProperties();if(o){t6("sendFeatureFlags","`sendFeatureFlags` is deprecated and will be removed in a future major version. Pass a `flags` snapshot from `posthog.evaluateFlags(...)` instead — it avoids a second `/flags` request per capture and guarantees the event carries the exact flag values your code branched on.");var e=await this.getFeatureFlagsForEvent(m.distinctId,a,u,"object"==typeof o?o:void 0);if(!e)return{};let t={};for(let[r,i]of Object.entries(e))t[`$feature/${r}`]=i;let r=Object.keys(e).filter(t=>!1!==e[t]).sort();return r.length>0&&(t.$active_feature_flags=r),t}return{}}).catch(()=>({})).then(e=>{let t=m.groups||a;return{...e,...m.properties||{},...void 0!==t&&Object.keys(t).length>0?{$groups:t}:{}}});return"$pageview"===m.event&&this.options.__preview_capture_bot_pageviews&&"string"==typeof _.$raw_user_agent&&tE(_.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(m.event="$bot_pageview",_.$browser_type="bot"),{distinctId:m.distinctId,event:m.event,properties:_,options:{timestamp:m.timestamp,disableGeoip:m.disableGeoip,uuid:m.uuid}}}_runBeforeSend(e){let t=this.options.before_send;if(!t)return e;let r=Array.isArray(t)?t:[t],i=e;for(let t of r){if(!(i=t(i)))return this._logger.info(`Event '${e.event}' was rejected in beforeSend function`),null;if(!i.properties||0===Object.keys(i.properties).length){let e=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(e)}}return i}}var to=tn,re=e.i(78500);class rt{constructor(){this.storage=new re.AsyncLocalStorage}get(){return this.storage.getStore()}run(e,t,r){return this.storage.run(this.resolve(e,r),t)}enter(e,t){this.storage.enterWith(this.resolve(e,t))}resolve(e,t){if(t?.fresh===!0)return e;let r=this.get()||{};return{distinctId:e.distinctId??r.distinctId,sessionId:e.sessionId??r.sessionId,properties:{...r.properties||{},...e.properties||{}}}}}var rr=e.i(27028);let ri=(0,e.i(12057).promisify)(rr.gzip);async function rs(e,t=!0){try{let t=await ri(e);return new Blob([new Uint8Array(t)])}catch(e){return t&&console.error("Failed to gzip compress data",e),null}}var to=tn;let ra="posthog-node";function rn(e,{organization:t,projectId:r,prefix:i,severityAllowList:s=["error"],sendExceptionsToPostHog:a=!0}={}){return n=>{if(!("*"===s||s.includes(n.level)))return n;n.tags||(n.tags={});let o=n.tags[rl.POSTHOG_ID_TAG];if(void 0===o)return n;let l=e.options.host??"https://us.i.posthog.com",u=new URL(`/project/${e.apiKey}/person/${o}`,l).toString();n.tags["PostHog Person URL"]=u;let c=n.exception?.values||[],d=c.map(e=>({...e,stacktrace:e.stacktrace?{...e.stacktrace,type:"raw",frames:(e.stacktrace.frames||[]).map(e=>({...e,platform:"node:javascript"}))}:void 0})),h={$exception_message:c[0]?.value||n.message,$exception_type:c[0]?.type,$exception_level:n.level,$exception_list:d,$sentry_event_id:n.event_id,$sentry_exception:n.exception,$sentry_exception_message:c[0]?.value||n.message,$sentry_exception_type:c[0]?.type,$sentry_tags:n.tags},g=to.getInjectedReleaseId();return g&&(h.$release_id=g),t&&r&&(h.$sentry_url=(i||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+n.event_id),a&&e.capture({event:"$exception",distinctId:o,properties:h}),n}}function ro(e,t){let r=rn(e,t);return{name:ra,processEvent:e=>r(e)}}class rl{static #e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(e,t,r,i,s){this.name=ra,this.name=ra,this.setupOnce=function(a,n){a(rn(e,{organization:t,projectId:n()?.getClient()?.getDsn()?.projectId,prefix:r,severityAllowList:i,sendExceptionsToPostHog:s??!0}))}}}e.s(["PostHogSentryIntegration",0,rl,"createEventProcessor",0,rn,"sentryIntegration",0,ro],91573);let ru=/[\x00-\x1f\x7f-\x9f]/g;function rc(e,t,r){null!=r&&""!==r&&(e[t]=r)}function rd(e){return Array.isArray(e)?e[0]:e}function rh(e){if(Array.isArray(e)){for(let t of e){let e=rh(t);if(void 0!==e)return e}return}if("string"!=typeof e)return;let t=e.replace(ru,"").trim();if(t)return t.length>1e3?t.slice(0,1e3):t}function rg(e,t){var r,i;let s,{sessionId:a,distinctId:n}=function(e){if(!e)return{};let t=rh(e["x-posthog-session-id"]),r=rh(e["x-posthog-distinct-id"]);return{...void 0!==t?{sessionId:t}:{},...void 0!==r?{distinctId:r}:{}}}(t.headers),o={},l=!0===e.options.disable_capture_url_hashes;return rc(o,"$current_url",(r=t.originalUrl||t.url,l?N(r):r)),rc(o,"$request_method",t.method),rc(o,"$request_path",(i=t.path,s=function(e){if(!e)return e;let t=e.indexOf("?"),r=e.indexOf("#");return -1===t||-1!==r&&r<t?e:`${e.slice(0,t)}${-1===r?"":e.slice(r)}`}(i),l?N(s):s)),rc(o,"$user_agent",rd(t.headers["user-agent"])),rc(o,"$ip",function(e){let t=rd(e.headers["x-forwarded-for"]);if(t){let e=t.split(",")[0].trim();if(e)return e}return e.socket?.remoteAddress}(t)),{...void 0!==a?{sessionId:a}:{},...void 0!==n?{distinctId:n}:{},properties:o}}function rp(e,t){var r;t.use((r=e,(e,t,i)=>{r.withContext(rg(r,e),()=>i())}))}function rf(e,t){var r;t.use((r=e,(e,t,i,s)=>{if(tJ.isPreviouslyCapturedError(e))return void s(e);let a=rg(r,t),n=Error("Synthetic exception"),o={...void 0!==a.sessionId?{$session_id:a.sessionId}:{},...a.properties||{},$response_status_code:i.statusCode};r.addPendingPromise(tJ.buildEventMessage(r.getErrorPropertiesBuilder(),e,{mechanism:{type:"middleware",handled:!1},syntheticException:n},a.distinctId,o).then(e=>r._capturePreparedEvent(e,!1))),s(e)}))}e.s(["setupExpressErrorHandler",0,rf,"setupExpressRequestContext",0,rp],93546),e.s([],92998);class ry extends t7{getLibraryId(){return"posthog-node"}compressPayload(e){return rs(e,this.isDebug)}initializeContext(){return new rt}createErrorPropertiesBuilder(){let e;return new to.ErrorPropertiesBuilder([new to.EventCoercer,new to.ErrorCoercer,new to.ObjectCoercer,new to.StringCoercer,new to.PrimitiveCoercer],to.createStackParser("node:javascript",to.nodeStackLineParser),[(e=function(e=process.argv[1]?(0,o.dirname)(process.argv[1]):process.cwd(),t="\\"===o.sep){let r=t?l(e):e;return e=>{if(!e)return;let i=t?l(e):e,{dir:s,base:a,ext:n}=o.posix.parse(i);(".js"===n||".mjs"===n||".cjs"===n)&&(a=a.slice(0,-1*n.length));let u=decodeURIComponent(a);s||(s=".");let c=s.lastIndexOf("/node_modules");if(c>-1)return`${s.slice(c+14).replace(/\//g,".")}:${u}`;if(s.startsWith(r)){let e=s.slice(r.length+1).replace(/\//g,".");return e?`${e}:${u}`:u}return u}}(),async t=>{for(let r of t)r.module=e(r.filename);return t}),e=>tp(e,void 0,this._logger),function(e=process.cwd()){o.sep;let t=e=>e,r=t(e);return async e=>{for(let i of e)!(!i.filename||i.filename.startsWith("node:")||i.filename.startsWith("data:"))&&(0,o.isAbsolute)(i.filename)&&(i.filename=t((0,o.relative)(r,t(i.filename))));return e}}()])}}e.s(["PostHog",0,ry],47839),e.i(47839),e.i(92998),e.i(91573),e.i(93546),e.i(58325),e.s(["FeatureFlagError",0,p,"FeatureFlagEvaluations",0,tP,"PostHogSentryIntegration",0,rl,"cookieStateToProperties",0,eu,"cookieStoreFromHeader",0,ea,"createEventProcessor",0,rn,"getPostHogCookieName",0,en,"parsePostHogCookie",0,ec,"readPostHogCookie",0,el,"sentryIntegration",0,ro,"serializePostHogCookie",0,eo,"setupExpressErrorHandler",0,rf,"setupExpressRequestContext",0,rp,"uuidv7",0,ei],57564),e.i(57564),e.s(["FeatureFlagError",0,p,"FeatureFlagEvaluations",0,tP,"PostHog",0,ry,"PostHogSentryIntegration",0,rl,"cookieStateToProperties",0,eu,"cookieStoreFromHeader",0,ea,"createEventProcessor",0,rn,"getPostHogCookieName",0,en,"parsePostHogCookie",0,ec,"readPostHogCookie",0,el,"sentryIntegration",0,ro,"serializePostHogCookie",0,eo,"setupExpressErrorHandler",0,rf,"setupExpressRequestContext",0,rp,"uuidv7",0,ei],28864)}];
1
+ module.exports=[28864,e=>{"use strict";let t,r,i,s,a;var n,o=e.i(14747);function l(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}let u=e=>void 0===e?void 0:e.variant??e.enabled,c=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}},d=["$feature_flag","$feature_flag_response","$feature_flag_has_experiment","$feature_flag_id","$feature_flag_version","$feature_flag_reason","$feature_flag_request_id","$feature_flag_evaluated_at","$feature_flag_error","locally_evaluated","$groups","$process_person_profile","$geoip_disable","$current_url","$pathname","$referring_domain","utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid","gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx","$session_id","$window_id","$lib","$lib_version","$device_id","$is_server"],h=(e,t=[])=>{let r={},i=t=>{void 0!==e[t]&&(r[t]=e[t])};return d.forEach(i),t.forEach(i),r};var g=((n={}).AnonymousId="anonymous_id",n.DistinctId="distinct_id",n.Props="props",n.EnablePersonProcessing="enable_person_processing",n.PersonMode="person_mode",n.FeatureFlagDetails="feature_flag_details",n.FeatureFlags="feature_flags",n.FeatureFlagPayloads="feature_flag_payloads",n.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",n.BootstrapFeatureFlags="bootstrap_feature_flags",n.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",n.OverrideFeatureFlags="override_feature_flags",n.Queue="queue",n.AiQueue="ai_queue",n.AiCaptureQueue="ai_capture_queue",n.LogsQueue="logs_queue",n.OptedOut="opted_out",n.SessionId="session_id",n.SessionStartTimestamp="session_start_timestamp",n.SessionLastTimestamp="session_timestamp",n.PersonProperties="person_properties",n.GroupProperties="group_properties",n.InstalledAppBuild="installed_app_build",n.InstalledAppVersion="installed_app_version",n.SessionReplay="session_replay",n.PushRegistered="push_registered",n.SessionReplayEventTriggerActivatedSession="session_replay_event_trigger_activated_session",n.SurveyLastSeenDate="survey_last_seen_date",n.SurveysSeen="surveys_seen",n.Surveys="surveys",n.RemoteConfig="remote_config",n.FlagsEndpointWasHit="flags_endpoint_was_hit",n.DeviceId="device_id",n);let p={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",TIMEOUT:"timeout",CONNECTION_ERROR:"connection_error",UNKNOWN_ERROR:"unknown_error",apiError:e=>`api_error_${e}`},f=e=>{let t=Error(`Native gzip produced invalid output: ${e}`);throw t.name="NativeGzipValidationError",t},m=async(e,r)=>{e.size<18&&f("too-short");let i=new Uint8Array(await e.slice(0,10).arrayBuffer());i.length>=2&&31===i[0]&&139===i[1]&&8===i[2]||f("invalid-header");let s=new DataView(await e.slice(e.size-8).arrayBuffer());s.getUint32(0,!0)!==(e=>{let r=(()=>{if(t)return t;t=[];for(let e=0;e<256;e++){let r=e;for(let e=0;e<8;e++)r=1&r?0xedb88320^r>>>1:r>>>1;t[e]=r>>>0}return t})(),i=0xffffffff;for(let t=0;t<e.length;t++)i=r[(i^e[t])&255]^i>>>8;return(0xffffffff^i)>>>0})(r)&&f("invalid-crc");let a=r.length>>>0;s.getUint32(4,!0)!==a&&f("invalid-size")};async function y(e,t=!0,r){try{let t=new TextEncoder().encode(e),r=new globalThis.CompressionStream("gzip"),i=r.writable.getWriter(),s=i.write(t).then(()=>i.close()).catch(async e=>{try{await i.abort(e)}catch{}throw e}),a=new Response(r.readable).blob(),[n]=await Promise.all([a,s]);return await m(n,t),n}catch(e){if(r?.rethrow)throw e;return t&&console.error("Failed to gzip compress data",e),null}}function _(e){let t=[];return JSON.stringify(e,function(e,r){if("bigint"==typeof r)return r.toString();if("function"!=typeof r&&"symbol"!=typeof r){if(r instanceof Error)return{name:r.name,message:r.message,stack:r.stack};if(r&&"object"==typeof r){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(r))return"[Circular]";t.push(r)}return r}})??"null"}let v=Array.isArray,b=Object.prototype;b.hasOwnProperty;let w=b.toString,E=v||function(e){return"[object Array]"===w.call(e)},P=e=>e===Object(e)&&!E(e),F=e=>void 0===e,x=e=>"[object String]"==w.call(e),S=e=>x(e)&&0===e.trim().length,$=e=>null===e,C=e=>"[object Number]"==w.call(e)&&e==e;function I(e){return null===e||"object"!=typeof e}function k(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function A(e){switch(Object.prototype.toString.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object DOMError]":case"[object WebAssembly.Exception]":return!0;default:return R(e,Error)}}function O(e){return"u">typeof Event&&R(e,Event)}function R(e,t){try{return e instanceof t}catch{return!1}}let T="Android",M="BlackBerry",L="Nintendo",D="PlayStation",j="Xbox",B="Windows",N="(\\d+(\\.\\d+)?)";RegExp("Version/"+N),RegExp(j,"i"),RegExp(D+" \\w+","i"),RegExp(L+" \\w+","i"),RegExp(M+"|PlayBook|BB10","i");RegExp("rv:"+N),RegExp("Edge?\\/"+N),RegExp("(Chrome|CrMo)\\/"+N),RegExp("CriOS\\/"+N),RegExp("(UCBrowser|UCWEB)\\/"+N),RegExp("(Opera|OPR)\\/"+N),RegExp("Firefox\\/"+N),RegExp("FxiOS\\/"+N),RegExp("Konqueror[:/]?"+N,"i"),RegExp(M+" "+N),RegExp("android\\s"+N,"i"),RegExp("SamsungBrowser\\/"+N),RegExp("OculusBrowser\\/"+N),RegExp("Vivaldi\\/"+N),RegExp("YaBrowser\\/"+N),RegExp("Whale\\/"+N),RegExp("Brave\\/"+N),RegExp("(DuckDuckGo|Ddg)\\/"+N),RegExp("PaleMoon\\/"+N),RegExp("Waterfox\\/"+N),RegExp("GSA\\/"+N),RegExp("(rv:|MSIE )"+N),RegExp("rv:"+N),RegExp(j+"; "+j+" (.*?)[);]","i"),RegExp(L,"i"),RegExp(D,"i"),RegExp(B,"i"),RegExp("("+T+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+T+")","i");let U=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function q(e,t){return"string"==typeof e&&U.test(e)?e:t()}function H(e){return e?e.split("#")[0]:e}async function W(e,t){let r=null;for(let i=0;i<t.retryCount+1;i++){i>0&&await new Promise(e=>setTimeout(e,t.retryDelay));try{return await e()}catch(e){if(r=e,!t.retryCheck(e))throw e}}throw r}function z(){return new Date().toISOString()}function G(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}async function K(e,t,r){let i;try{return await Promise.race([e,new Promise((e,s)=>{i=G(()=>{try{r?.(),e()}catch(e){s(e)}},t)})])}finally{clearTimeout(i)}}function V(e){return Promise.all(e.map(e=>(e??Promise.resolve()).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}function Q(e){let t=[];for(let r in e){let i=e[r];$(i)||F(i)||t.push({key:r,value:function e(t){if("[object Boolean]"===w.call(t))return{boolValue:t};if("number"==typeof t)return Number.isFinite(t)?Number.isInteger(t)?{intValue:t}:{doubleValue:t}:{stringValue:String(t)};if("string"==typeof t)return{stringValue:t};if(E(t))return{arrayValue:{values:t.map(t=>e(t))}};try{return{stringValue:JSON.stringify(t)}}catch{return{stringValue:String(t)}}}(i)})}return t}let J=[0,5,10,25,50,75,100,250,500,750,1e3,2500,5e3,7500,1e4];function Z(e){return String(e)+"000000"}function Y(e,t,r,i){let s="";return i&&(s=Object.keys(i).sort().map(e=>`${JSON.stringify(e)}:${JSON.stringify(i[e])}`).join(",")),`${e}\u0000${t}\u0000${r??""}\u0000${s}`}class X{constructor(e,t,r){this._instance=e,this._config=t,this._logger=r,this._series=new Map,this._flushPromise=null,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set,this._generation=0}count(e,t=1,r){this._capture({name:e,type:"count",value:t,unit:r?.unit,attributes:r?.attributes})}gauge(e,t,r){this._capture({name:e,type:"gauge",value:t,unit:r?.unit,attributes:r?.attributes})}histogram(e,t,r){this._capture({name:e,type:"histogram",value:t,unit:r?.unit,attributes:r?.attributes})}flush(){let e=this._flushPromise,t=(async()=>{e&&await e.catch(()=>{}),await this._doFlush()})().finally(()=>{this._flushPromise===t&&(this._flushPromise=null)});return this._flushPromise=t,t}drainWindow(){if(0===this._series.size)return null;let e=this._series;return this._series=new Map,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set,this._buildPayload(e)}reset(){this._generation++,this._clearFlushTimer(),this._series=new Map,this._flushPromise=null,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set}_capture(e){let t,r;if(this._instance.isDisabled||this._instance.optedOut)return;let i=this._runBeforeSend(e);if(null===i)return;if(!i.name||"string"!=typeof i.name)return void this._logger.warn("Dropping metric with empty name");if("number"!=typeof i.value||!Number.isFinite(i.value))return void this._logger.warn(`Dropping metric '${i.name}': value must be a finite number`);if("count"===i.type&&i.value<0)return void this._logger.warn(`Dropping count '${i.name}': counters are monotonic, value must be >= 0`);try{t=i.attributes?{...i.attributes}:void 0,r=Y(i.type,i.name,i.unit,t)}catch(e){this._logger.warn(`Dropping metric '${i.name}': attributes could not be serialized`,e);return}let s=this._series.get(r);if(!s){if(!this._admitNewSeries())return;s={name:i.name,type:i.type,unit:i.unit,attributes:t,windowStartMs:Date.now()},this._series.set(r,s)}let a=this._typeByName.get(i.name);void 0===a?this._typeByName.set(i.name,i.type):a===i.type||this._typeCollisionWarned.has(i.name)||(this._typeCollisionWarned.add(i.name),this._logger.warn(`Metric name '${i.name}' is already used as a ${a}; recording it as a ${i.type} too will blend both series in charts. Use a distinct name.`)),this._fold(s,i.value),this._armFlushTimer()}_admitNewSeries(){return this._series.size<this._config.maxSeriesPerFlush||(this._seriesCapWarned||(this._seriesCapWarned=!0,this._logger.warn(`Metric series cap reached (${this._config.maxSeriesPerFlush} per flush window); dropping new series until the next flush. Reduce attribute cardinality.`)),!1)}_fold(e,t){switch(e.type){case"count":e.total=(e.total??0)+t;break;case"gauge":e.last=t;break;case"histogram":{e.hist||(e.hist={count:0,sum:0,min:t,max:t,bucketCounts:Array(J.length+1).fill(0)});let r=e.hist;r.count+=1,r.sum+=t,r.min=Math.min(r.min,t),r.max=Math.max(r.max,t),r.bucketCounts[function(e,t){for(let r=0;r<t.length;r++)if(e<=t[r])return r;return t.length}(t,J)]+=1}}}_runBeforeSend(e){let t=this._config.beforeSend;if(!t)return e;let r=E(t)?t:[t],i=e;for(let e of r)try{let t=e(i);if(!t)return this._logger.info("Metric was rejected in beforeSend function"),null;i=t}catch(e){return this._logger.error("Error in beforeSend function for metric:",e),null}return i}_armFlushTimer(){this._flushTimer||(this._flushTimer=G(()=>{this._flushTimer=void 0,this.flush().catch(e=>{this._logger.error("Metrics flush failed:",e)})},this._config.flushIntervalMs))}_clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}async _doFlush(){if(0===this._series.size)return;let e=this._series;this._series=new Map,this._seriesCapWarned=!1,this._typeByName=new Map,this._typeCollisionWarned=new Set;let t=this._generation,r=await this._instance._sendMetricsBatch(this._buildPayload(e));if(t===this._generation)switch(r.kind){case"ok":return;case"retry-later":this._mergeWindowBack(e),this._armFlushTimer();return;case"too-large":this._logger.warn("Metrics batch exceeded the server size limit and was dropped");return;case"fatal":this._logger.error("Failed to send metrics batch:",r.error);return}}_buildPayload(e){var t,r,i,s,a,n,o;return s=this._buildMetrics(e),t=this._config,r=this._instance.getLibraryId(),i=this._instance.getLibraryVersion(),a={...t.resourceAttributes,"service.name":t.serviceName||"unknown_service",...t.environment&&{"deployment.environment":t.environment},...t.serviceVersion&&{"service.version":t.serviceVersion},"telemetry.sdk.name":r,"telemetry.sdk.version":i},n=this._instance.getLibraryId(),o=this._instance.getLibraryVersion(),{resourceMetrics:[{resource:{attributes:Q(a)},scopeMetrics:[{scope:{name:n,version:o},metrics:s}]}]}}_buildMetrics(e){let t=Z(Date.now()),r=new Map;for(let i of e.values()){let e=Y(i.type,i.name,i.unit,void 0),s=r.get(e);s||(s={name:i.name,...i.unit&&{unit:i.unit}},"count"===i.type?s.sum={aggregationTemporality:1,isMonotonic:!0,dataPoints:[]}:"gauge"===i.type?s.gauge={dataPoints:[]}:s.histogram={aggregationTemporality:1,dataPoints:[]},r.set(e,s));let a=Q(i.attributes??{}),n=Z(i.windowStartMs);if("count"===i.type){let e={attributes:a,startTimeUnixNano:n,timeUnixNano:t,asDouble:i.total??0};s.sum.dataPoints.push(e)}else if("gauge"===i.type){let e={attributes:a,timeUnixNano:t,asDouble:i.last??0};s.gauge.dataPoints.push(e)}else if(i.hist){let e={attributes:a,startTimeUnixNano:n,timeUnixNano:t,count:i.hist.count,sum:i.hist.sum,min:i.hist.min,max:i.hist.max,bucketCounts:i.hist.bucketCounts,explicitBounds:J};s.histogram.dataPoints.push(e)}}return Array.from(r.values())}_mergeWindowBack(e){for(let[t,r]of e){let e=this._series.get(t);if(!e){this._admitNewSeries()&&this._series.set(t,r);continue}switch(e.windowStartMs=Math.min(e.windowStartMs,r.windowStartMs),e.type){case"count":e.total=(e.total??0)+(r.total??0);break;case"gauge":break;case"histogram":if(r.hist)if(e.hist){e.hist.count+=r.hist.count,e.hist.sum+=r.hist.sum,e.hist.min=Math.min(e.hist.min,r.hist.min),e.hist.max=Math.max(e.hist.max,r.hist.max);for(let t=0;t<e.hist.bucketCounts.length;t++)e.hist.bucketCounts[t]+=r.hist.bucketCounts[t]}else e.hist=r.hist}}}}let ee="0123456789abcdef";class et{constructor(e){this.bytes=e}static ofInner(e){if(16===e.length)return new et(e);throw TypeError("not 128-bit length")}static fromFieldsV7(e,t,r,i){if(!Number.isInteger(e)||!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(i)||e<0||t<0||r<0||i<0||e>0xffffffffffff||t>4095||r>0x3fffffff||i>0xffffffff)throw RangeError("invalid field value");let s=new Uint8Array(16);return s[0]=e/0x10000000000,s[1]=e/0x100000000,s[2]=e/0x1000000,s[3]=e/65536,s[4]=e/256,s[5]=e,s[6]=112|t>>>8,s[7]=t,s[8]=128|r>>>24,s[9]=r>>>16,s[10]=r>>>8,s[11]=r,s[12]=i>>>24,s[13]=i>>>16,s[14]=i>>>8,s[15]=i,new et(s)}static parse(e){let t;switch(e.length){case 32:t=/^[0-9a-f]{32}$/i.exec(e)?.[0];break;case 36:t=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e)?.slice(1,6).join("");break;case 38:t=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e)?.slice(1,6).join("");break;case 45:t=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e)?.slice(1,6).join("")}if(t){let e=new Uint8Array(16);for(let r=0;r<16;r+=4){let i=parseInt(t.substring(2*r,2*r+8),16);e[r+0]=i>>>24,e[r+1]=i>>>16,e[r+2]=i>>>8,e[r+3]=i}return new et(e)}throw SyntaxError("could not parse UUID string")}toString(){let e="";for(let t=0;t<this.bytes.length;t++)e+=ee.charAt(this.bytes[t]>>>4),e+=ee.charAt(15&this.bytes[t]),(3===t||5===t||7===t||9===t)&&(e+="-");return e}toHex(){let e="";for(let t=0;t<this.bytes.length;t++)e+=ee.charAt(this.bytes[t]>>>4),e+=ee.charAt(15&this.bytes[t]);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw Error("unreachable");if(e<=7)return this.bytes.every(e=>0===e)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(e=>255===e)?"MAX":"VAR_RESERVED";throw Error("unreachable")}getVersion(){return"VAR_10"===this.getVariant()?this.bytes[6]>>>4:void 0}clone(){return new et(this.bytes.slice(0))}equals(e){return 0===this.compareTo(e)}compareTo(e){for(let t=0;t<16;t++){let r=this.bytes[t]-e.bytes[t];if(0!==r)return Math.sign(r)}return 0}}class er{constructor(e){this.timestamp=0,this.counter=0,this.random=e??ei()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,t){let r=this.generateOrAbortCore(e,t);return void 0===r&&(this.timestamp=0,r=this.generateOrAbortCore(e,t)),r}generateOrAbortCore(e,t){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(t<0||t>0xffffffffffff)throw RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else{if(!(e+t>=this.timestamp))return;this.counter++,this.counter>0x3ffffffffff&&(this.timestamp++,this.resetCounter())}return et.fromFieldsV7(this.timestamp,Math.trunc(this.counter/0x40000000),this.counter&0x40000000-1,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,et.ofInner(e)}}let ei=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),es=()=>ea().toString(),ea=()=>(r||(r=new er)).generate();function en(e){let t={};if(e)for(let r of e.split(";")){let[e,...i]=r.trim().split("=");if(e){let r=i.join("=").trim();try{t[e.trim()]=decodeURIComponent(r)}catch{t[e.trim()]=r}}}return{get:e=>e in t?{value:t[e]}:void 0}}function eo(e){let t=e.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ");return`ph_${t}_posthog`}function el(e){let t=Date.now();return JSON.stringify({distinct_id:e,$device_id:e,$user_state:"anonymous",$sesid:[t,es(),t]})}function eu(e,t){let r=eo(t),i=e.get(r);return i?ed(i.value):null}function ec(e){if(!e)return;let t={};return e.sessionId&&(t.$session_id=e.sessionId),e.deviceId&&(t.$device_id=e.deviceId),Object.keys(t).length>0?t:void 0}function ed(e){if(!e)return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t||!t.distinct_id)return null;let r=E(t.$sesid)?t.$sesid[1]:void 0;return{distinctId:String(t.distinct_id),isIdentified:"identified"===t.$user_state,sessionId:"string"==typeof r?r:void 0,deviceId:"string"==typeof t.$device_id?t.$device_id:void 0}}catch{return null}}class eh{constructor(){this.events={},this.events={}}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),()=>{this.events[e]=this.events[e].filter(e=>e!==t)}}emit(e,t){for(let r of this.events[e]||[])r(t);for(let r of this.events["*"]||[])r(e,t)}}class eg{add(e){let t=es(),r=++this.nextId;return this.promiseByIds[t]={id:r,promise:e},e.catch(()=>{}).finally(()=>{delete this.promiseByIds[t]}),e}async join(){let e=Object.values(this.promiseByIds).map(e=>e.promise),t=e.length;for(;t>0;)await Promise.all(e),t=(e=Object.values(this.promiseByIds).map(e=>e.promise)).length}getPromises(e=[],t=this.nextId){let r=new Set(e);return Object.values(this.promiseByIds).filter(e=>e.id<=t&&!r.has(e.promise)).map(e=>e.promise)}get maxId(){return this.nextId}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={},this.nextId=0}}let ep=(e,t,r)=>{function i(s,...a){t(()=>{(0,r[s])(e,...a)})}return{debug:(...e)=>{i("debug",...e)},info:(...e)=>{i("log",...e)},warn:(...e)=>{i("warn",...e)},error:(...e)=>{i("error",...e)},critical:(...t)=>{r.error(e,...t)},createLogger:i=>ep(`${e} ${i}`,t,r)}};class ef{constructor(e,t,r=[]){this.coercers=e,this.stackParser=t,this.modifiers=r}buildFromUnknown(e,t={}){let r=t&&t.mechanism||{handled:!0,type:"generic"},i=this.buildCoercingContext(r,t,0).apply(e),s=this.buildParsingContext(t),a=this.parseStacktrace(i,s);return{$exception_list:this.convertToExceptionList(a,r),$exception_level:"error"}}async modifyFrames(e){for(let t of e)t.stacktrace&&t.stacktrace.frames&&E(t.stacktrace.frames)&&(t.stacktrace.frames=await this.applyModifiers(t.stacktrace.frames));return e}coerceFallback(e){return{type:"Error",value:"Unknown error",stack:e.syntheticException?.stack,synthetic:!0}}parseStacktrace(e,t){let r,i;return null!=e.cause&&(r=this.parseStacktrace(e.cause,t)),""!=e.stack&&null!=e.stack&&(i=this.applyChunkIds(this.stackParser(e.stack,e.synthetic?t.skipFirstLines:0),t.chunkIdMap)),{...e,cause:r,stack:i}}applyChunkIds(e,t){return e.map(e=>(e.filename&&t&&(e.chunk_id=t[e.filename]),e))}applyCoercers(e,t){for(let r of this.coercers)if(r.match(e))return r.coerce(e,t);return this.coerceFallback(t)}async applyModifiers(e){let t=e;for(let e of this.modifiers)t=await e(t);return t}convertToExceptionList(e,t){let r={type:e.type,value:e.value,mechanism:{type:t.type??"generic",handled:t.handled??!0,synthetic:e.synthetic??!1}};e.stack&&(r.stacktrace={type:"raw",frames:e.stack});let i=[r];return null!=e.cause&&i.push(...this.convertToExceptionList(e.cause,{...t,handled:!0})),i}buildParsingContext(e){return{chunkIdMap:function(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return a&&r.length===s?a:(s=r.length,a=r.reduce((r,s)=>{i||(i={});let a=i[s];if(a)r[a[0]]=a[1];else{let a=e(s);for(let e=a.length-1;e>=0;e--){let n=a[e],o=n?.filename,l=t[s];if(o&&l){r[o]=l,i[s]=[o,l];break}}}return r},{}))}(this.stackParser),skipFirstLines:e.skipFirstLines??1}}buildCoercingContext(e,t,r=0){let i=(r,i)=>{if(i<=4){let s=this.buildCoercingContext(e,t,i);return this.applyCoercers(r,s)}};return{...t,syntheticException:0==r?t.syntheticException:void 0,mechanism:e,apply:e=>i(e,r),next:e=>i(e,r+1)}}}function em(e,t,r,i,s){let a={platform:e,filename:t,function:"<anonymous>"===r?"?":r,in_app:!0};return F(i)||(a.lineno=i),F(s)||(a.colno=s),a}e.s(["ErrorPropertiesBuilder",0,ef],80446);let ey=(e,t)=>{let r=-1!==e.indexOf("safari-extension"),i=-1!==e.indexOf("safari-web-extension");return r||i?[-1!==e.indexOf("@")?e.split("@")[0]:"?",r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},e_=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ev=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,eb=/\((\S*)(?::(\d+))(?::(\d+))\)/,ew=(e,t)=>{let r=e_.exec(e);if(r){let[,e,i,s]=r;return em(t,e,"?",+i,+s)}let i=ev.exec(e);if(i){if(i[2]&&0===i[2].indexOf("eval")){let e=eb.exec(i[2]);e&&(i[2]=e[1],i[3]=e[2],i[4]=e[3])}let[e,r]=ey(i[1]||"?",i[2]);return em(t,r,e,i[3]?+i[3]:void 0,i[4]?+i[4]:void 0)}},eE=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,eP=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,eF=(e,t)=>{let r=eE.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let e=eP.exec(r[3]);e&&(r[1]=r[1]||"eval",r[3]=e[1],r[4]=e[2],r[5]="")}let e=r[3],i=r[1]||"?";return[i,e]=ey(i,e),em(t,e,i,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}},ex=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,eS=(e,t)=>{let r=ex.exec(e);return r?em(t,r[2],r[1]||"?",+r[3],r[4]?+r[4]:void 0):void 0},e$=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,eC=(e,t)=>{let r=e$.exec(e);return r?em(t,r[2],r[3]||"?",+r[1]):void 0},eI=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,ek=(e,t)=>{let r=eI.exec(e);return r?em(t,r[5],r[3]||r[4]||"?",+r[1],+r[2]):void 0},eA=/^\s*[-]{4,}$/,eO=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,eR=/^Promise\.(?:all|any)$/,eT=/^index \d+$/,eM=(e,t)=>{let r=e.match(eO);if(r){let e,i,s,a,n;if(r[1]){let t=(s=r[1]).lastIndexOf(".");if("."===s[t-1]&&t--,t>0){e=s.slice(0,t),i=s.slice(t+1);let r=e.indexOf(".Module");r>0&&(s=s.slice(r+1),e=e.slice(0,r))}a=void 0}i&&(a=e,n=i),"<anonymous>"===i&&(n=void 0,s=void 0),void 0===s&&(n=n||"?",s=a?`${a}.${n}`:n);let o=r[2]?.startsWith("file://")?r[2].slice(7):r[2],l="native"===r[5];return o?.match(/\/[A-Z]:/)&&(o=o.slice(1)),o||!r[5]||l||(o=r[5]),eR.test(s)&&eT.test(o||"")&&(o="node:internal/promise"),{filename:o?decodeURI(o):void 0,module:void 0,function:s,lineno:eL(r[3]),colno:eL(r[4]),in_app:function(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&void 0!==e&&!e.includes("node_modules/")}(o||"",l),platform:t}}if(e.match(eA))return{filename:e,platform:t}};function eL(e){return parseInt(e||"",10)||void 0}let eD=/\(error: (.*)\)/;function ej(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,50).map(e=>{var r;return{...e,filename:e.filename||((r=t)[r.length-1]||{}).filename,function:e.function||"?"}})}function eB(){return eN("web:javascript",ew,eF)}function eN(e,...t){return(r,i=0)=>{let s=[],a=r.split("\n");for(let r=i;r<a.length;r++){let i=a[r];if(i.length>1024)continue;let n=eD.test(i)?i.replace(eD,"$1"):i;if(!n.match(/\S*Error: /)){for(let r of t){let t=r(n,e);if(t){s.push(t);break}}if(s.length>=50)break}}return ej(s)}}e.s(["createDefaultStackParser",0,eB,"createStackParser",0,eN,"reverseAndStripFrames",0,ej],34246);class eU{match(e){return this.isDOMException(e)||this.isDOMError(e)}coerce(e,t){let r=x(e.stack);return{type:this.getType(e),value:this.getValue(e),stack:r?e.stack:void 0,cause:e.cause?t.next(e.cause):void 0,synthetic:!1}}getType(e){return this.isDOMError(e)?"DOMError":"DOMException"}getValue(e){let t=e.name||(this.isDOMError(e)?"DOMError":"DOMException");return e.message?`${t}: ${e.message}`:t}isDOMException(e){return k(e,"DOMException")}isDOMError(e){return k(e,"DOMError")}}e.s(["DOMExceptionCoercer",0,eU],29569);class eq{match(e){return!!k(e,"ErrorEvent")&&(void 0!=e.error||this._hasUsableMessage(e))}coerce(e,t){if(void 0!=e.error)return t.apply(e.error);let r=t.apply(e.message);return{...r,stack:this._buildLocationStack(e)??r.stack,synthetic:!0}}_hasUsableMessage(e){return x(e.message)&&e.message.length>0}_buildLocationStack(e){if(x(e.filename)&&e.filename.length>0){let t=e.lineno??0,r=e.colno??0;return`Error
2
+ at ${e.filename}:${t}:${r}`}}}e.s(["ErrorEventCoercer",0,eq],43179);let eH=["fatal","error","warning","log","info","debug"];function eW(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let e=r.length;e>0;e--){let i=r.slice(0,e).join(", ");if(!(i.length>t)){if(e===r.length)return i;return i.length<=t?i:`${i.slice(0,t)}...`}}return""}class ez{match(e){return"object"==typeof e&&null!==e}coerce(e,t){let r=this.getErrorPropertyFromObject(e);return r?t.apply(r):{type:this.getType(e),value:this.getValue(e),stack:this.getStack(e)??t.syntheticException?.stack,level:this.isSeverityLevel(e.level)?e.level:"error",synthetic:!0}}getType(e){if(O(e))return e.constructor.name;let t="name"in e?e.name:void 0;return x(t)&&!S(t)?t:"Error"}getValue(e){if("name"in e&&"string"==typeof e.name){let t=`'${e.name}' captured as exception`;return"message"in e&&"string"==typeof e.message&&(t+=` with message: '${e.message}'`),t}if("message"in e&&"string"==typeof e.message)return e.message;let t=this.getObjectClassName(e),r=eW(e);return`${t&&"Object"!==t?`'${t}'`:"Object"} captured as exception with keys: ${r}`}isSeverityLevel(e){return x(e)&&!S(e)&&eH.indexOf(e)>=0}getStack(e){try{if(x(e.stacktrace)&&e.stacktrace.length>0)return e.stacktrace;return x(e.stack)&&e.stack.length>0?e.stack:void 0}catch{return}}getErrorPropertyFromObject(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let r=e[t];if(A(r))return r}}getObjectClassName(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){return}}}e.s(["ObjectCoercer",0,ez],6881);class eG{match(e){return O(e)}coerce(e,t){let r=e.constructor.name;return{type:r,value:`${r} captured as exception with keys: ${eW(e)}`,stack:t.syntheticException?.stack,synthetic:!0}}}e.s(["EventCoercer",0,eG],80322);class eK{match(e){return I(e)}coerce(e,t){return{type:"Error",value:`Primitive value captured as exception: ${String(e)}`,stack:t.syntheticException?.stack,synthetic:!0}}}e.s(["PrimitiveCoercer",0,eK],80049);class eV{match(e){return k(e,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(e)}isCustomEventWrappingRejection(e){if(!O(e))return!1;try{let t=e.detail;return null!=t&&"object"==typeof t&&"reason"in t}catch{return!1}}coerce(e,t){let r=this.getUnhandledRejectionReason(e);return I(r)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(r)}`,stack:t.syntheticException?.stack,synthetic:!0}:t.apply(r)}getUnhandledRejectionReason(e){try{if("reason"in e)return e.reason;if("detail"in e&&null!=e.detail&&"object"==typeof e.detail&&"reason"in e.detail)return e.detail.reason}catch{}return e}}e.s(["PromiseRejectionEventCoercer",0,eV],98689),e.s([],99573);let eQ={MESSAGE:"$message",TIMESTAMP:"$timestamp"},eJ=new Set([eQ.MESSAGE,eQ.TIMESTAMP]),eZ={enabled:!0,max_bytes:32768};function eY(e){return e?{enabled:e.enabled??eZ.enabled,max_bytes:function(e,t){if(!C(e)||e===1/0||e===-1/0)return t;let r=Math.floor(e);return r<0?t:r}(e.max_bytes,eZ.max_bytes)}:{...eZ}}function eX(e){if(!e)return{sanitizedProperties:{},droppedKeys:[]};let t=[];return{sanitizedProperties:Object.keys(e).reduce((r,i)=>(eJ.has(i)?t.push(i):r[i]=e[i],r),{}),droppedKeys:t}}class e0{constructor(e){this._entries=[],this._totalBytes=0,this._config=eY(e)}setConfig(e){this._config=eY(e),this._trimToMaxBytes()}add(e){let t=function(e){let t;try{t=_(e)}catch{return}try{let e=JSON.parse(t);if(!P(e))return;let r=e[eQ.MESSAGE],i=e[eQ.TIMESTAMP];if(!x(r)||0===r.trim().length||!x(i)&&!C(i))return;return{step:e,json:t}}catch{return}}(e);if(!t)return;let r=e1(t.json);r>this._config.max_bytes||(this._entries.push({step:t.step,bytes:r}),this._totalBytes+=r,this._trimToMaxBytes())}getAttachable(){return this._entries.map(e=>e.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){for(;this._totalBytes>this._config.max_bytes&&this._entries.length>0;){let e=this._entries.shift();e&&(this._totalBytes-=e.bytes)}}}function e1(e){if("u">typeof TextEncoder)return new TextEncoder().encode(e).length;let t=encodeURIComponent(e),r=0;for(let e=0;e<t.length;e++)"%"===t[e]?(r+=1,e+=2):r+=1;return r}e.s(["DEFAULT_EXCEPTION_STEPS_CONFIG",0,eZ,"EXCEPTION_STEP_INTERNAL_FIELDS",0,eQ,"ExceptionStepsBuffer",0,e0,"getUtf8ByteLength",0,e1,"resolveExceptionStepsConfig",0,eY,"stripReservedExceptionStepFields",0,eX],52001),e.s([],47114);class e4{match(e){return A(e)}coerce(e,t){return{type:this.getType(e),value:this.getMessage(e,t),stack:this.getStack(e),cause:e.cause?t.next(e.cause):void 0,synthetic:!1}}getType(e){return e.name||e.constructor.name}getMessage(e,t){let r=e.message;return r.error&&"string"==typeof r.error.message?String(r.error.message):String(r)}getStack(e){return e.stacktrace||e.stack||void 0}}e.s(["ErrorCoercer",0,e4],11475);let e2=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class e3{match(e){return"string"==typeof e}coerce(e,t){let[r,i]=this.getInfos(e);return{type:r??"Error",value:i??e,stack:t.syntheticException?.stack,synthetic:!0}}getInfos(e){let t="Error",r=e,i=e.match(e2);return i&&(t=i[1],r=i[2]),[t,r]}}e.s(["StringCoercer",0,e3],45098);class e5 extends Error{constructor(e,t,r,i){super("HTTP error while fetching PostHog: status="+e.status+", reqByteLength="+t),this.response=e,this.reqByteLength=t,this.responseBodyDeadline=r,this.abortController=i,this.name="PostHogFetchHttpError",this._bodyReadTimedOut=!1}get status(){return this.response.status}get bodyReadTimedOut(){return this._bodyReadTimedOut}get text(){if(!this.responseBodyTextPromise)if(Date.now()>=this.responseBodyDeadline){this._bodyReadTimedOut=!0;let e=Error("Response body read timed out");e.name="AbortError",this.cancelResponseBody(e),this.responseBodyTextPromise=Promise.reject(e)}else{let e,t=new Promise((e,t)=>{this.responseBodyTimer=G(()=>{this._bodyReadTimedOut=!0;let e=Error("Response body read timed out");e.name="AbortError",t(e),this.cancelResponseBody(e)},this.responseBodyDeadline-Date.now())});try{e=Promise.resolve(this.response.text())}catch(t){e=Promise.reject(t)}this.responseBodyTextPromise=Promise.race([e,t]).finally(()=>clearTimeout(this.responseBodyTimer))}return this.responseBodyTextPromise}get json(){return this.text.then(e=>JSON.parse(e))}cancelResponseBody(e){clearTimeout(this.responseBodyTimer),this.abortController.signal.aborted||this.abortController.abort(e),(async()=>{try{await this.response.body?.cancel()}catch{}})()}}class e8 extends Error{constructor(e){super("Network error while fetching PostHog",e instanceof Error?{cause:e}:{}),this.error=e,this.name="PostHogFetchNetworkError"}}async function e9(e){if(e instanceof e5){let t="";try{t=await e.text}catch{e.bodyReadTimedOut&&(t="<response body read timed out>")}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function e6(e){return e instanceof e8}function e7(e){if(e instanceof e5)return 502===e.status||504===e.status;if(!(e instanceof e8))return!1;let t=e.error;return"ECONNREFUSED"!==(t?.code??t?.cause?.code)}function te(e){return"object"==typeof e&&e instanceof e5&&413===e.status}function tt(e){return e instanceof e5?408===e.status||429===e.status||e.status>=500:e6(e)}function tr(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}let ti="default";class ts{getErrorPropertiesBuilder(){return this._errorPropertiesBuilder||(this._errorPropertiesBuilder=this.createErrorPropertiesBuilder()),this._errorPropertiesBuilder}createErrorPropertiesBuilder(){return new ef([new e4,new ez,new e3,new eK],eB())}constructor(e,t={}){this.flushPromise=null,this.pendingFlushPromise=null,this.flushPromises=new Set,this._dequeuedMessagesCount=0,this.shutdownPromise=null,this.promiseQueue=new eg,this._events=new eh,this._isInitialized=!1;const r="string"==typeof e?e.trim():"",i="string"==typeof t.host?t.host.trim():"",s=!r;this._logger=function(e,t=e=>e()){return ep(e,t,function(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}())}("[PostHog]",this.logMsgIfDebug.bind(this)),s&&this._logger.error("You must pass your PostHog project's api key. The client will be disabled."),this.apiKey=r,this.host=function(e){return e?.replace(/\/+$/,"")}(i||"https://us.i.posthog.com"),this.flushAt=t.flushAt?Math.max(t.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,t.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,t.maxQueueSize??1e3),this.flushInterval=t.flushInterval??1e4,this.preloadFeatureFlags=t.preloadFeatureFlags??!0,this.defaultOptIn=t.defaultOptIn??!0,this.disableSurveys=t.disableSurveys??!1,this._retryOptions={retryCount:t.fetchRetryCount??3,retryDelay:t.fetchRetryDelay??3e3,retryCheck:tt},this.requestTimeout=t.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=t.featureFlagsRequestTimeoutMs??3e3,this.featureFlagsRequestMaxRetries=t.featureFlagsRequestMaxRetries??1,this.remoteConfigRequestTimeoutMs=t.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=t.disableGeoip??!0,this.disabled=(t.disabled??!1)||s,this.historicalMigration=t?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=t?.evaluationContexts??t?.evaluationEnvironments,t?.evaluationEnvironments&&!t?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!("CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&"function"==typeof Response.prototype.blob)||(t?.disableCompression??!1)}logMsgIfDebug(e){this.isDebug&&e()}wrap(e){return this.disabled?void this._logger.warn("The client is disabled"):this._isInitialized?e():void this._initPromise.then(()=>e())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(g.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(g.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(g.OptedOut,!0)})}on(e,t){return this._events.on(e,t)}debug(e=!0){if(this.removeDebugCallback?.(),e){let e=this.on("*",(e,t)=>this._logger.info(e,t));this.removeDebugCallback=()=>{e(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(e){let t=e.properties||{},r={...t,...this.getCommonEventProperties()};var i=r;for(let e of Object.keys(t))(e.startsWith("$feature/")||"$active_feature_flags"===e)&&(i[e]=t[e]);return"$feature_flag_called"===e.event&&!1===r.$feature_flag_has_experiment&&this.isMinimalFlagCalledEventsEnabled()&&(r=h(r)),{distinct_id:e.distinct_id,event:e.event,properties:r}}isMinimalFlagCalledEventsEnabled(){return!1}addPendingPromise(e){return this.promiseQueue.add(e)}identifyStateless(e,t,r){this.wrap(()=>{let i={...this.buildPayload({distinct_id:e,event:"$identify",properties:t})};this.enqueue("identify",i,r)})}async identifyStatelessImmediate(e,t,r){let i={...this.buildPayload({distinct_id:e,event:"$identify",properties:t})};await this.sendImmediate("identify",i,r)}captureStateless(e,t,r,i){this.wrap(()=>{let s=this.buildPayload({distinct_id:e,event:t,properties:r});this.enqueue("capture",s,i)})}async captureStatelessImmediate(e,t,r,i){let s=this.buildPayload({distinct_id:e,event:t,properties:r});await this.sendImmediate("capture",s,i)}aliasStateless(e,t,r,i){this.wrap(()=>{let s=this.buildPayload({event:"$create_alias",distinct_id:t,properties:{...r||{},distinct_id:t,alias:e}});this.enqueue("alias",s,i)})}async aliasStatelessImmediate(e,t,r,i){let s=this.buildPayload({event:"$create_alias",distinct_id:t,properties:{...r||{},distinct_id:t,alias:e}});await this.sendImmediate("alias",s,i)}groupIdentifyStateless(e,t,r,i,s,a){this.wrap(()=>{let n=this.buildPayload({distinct_id:s||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{},...a||{}}});this.enqueue("capture",n,i)})}async groupIdentifyStatelessImmediate(e,t,r,i,s,a){let n=this.buildPayload({distinct_id:s||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{},...a||{}}});await this.sendImmediate("capture",n,i)}async getRemoteConfig(){await this._initPromise;let e=this.host;"https://us.i.posthog.com"===e?e="https://us-assets.i.posthog.com":"https://eu.i.posthog.com"===e&&(e="https://eu-assets.i.posthog.com");let t=`${e}/array/${this.apiKey}/config`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(t,r,{type:"required",consume:e=>e.json()},{retryCount:0},this.remoteConfigRequestTimeoutMs).catch(e=>{this._logger.error("Remote config could not be loaded",e),this._events.emit("error",e)})}async getFlags(e,t={},r={},i={},s={},a=!1){await this._initPromise;let n=`${this.host}/flags/?v=2${a?"&config=true":""}`,o={token:this.apiKey,distinct_id:e,groups:t,person_properties:r,group_properties:i,...s};r.$device_id&&(o.$device_id=r.$device_id),this.evaluationContexts&&this.evaluationContexts.length>0&&(o.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(o)};return this._logger.info("Flags URL",n),this.fetchWithRetry(n,l,{type:"required",consume:e=>e.json()},{retryCount:this.featureFlagsRequestMaxRetries,retryCheck:e7},this.featureFlagsRequestTimeoutMs).then(e=>({success:!0,response:(e=>{if("flags"in e){let t,r=Object.fromEntries(Object.entries(e.flags??{}).map(([e,t])=>[e,u(t)]).filter(([,e])=>void 0!==e)),i=Object.fromEntries(Object.keys(t=e.flags??{}).filter(e=>{let r=t[e];return r.enabled&&r.metadata&&void 0!==r.metadata.payload}).map(e=>{let r=t[e].metadata?.payload;return[e,r?c(r):void 0]}));return{...e,featureFlags:r,featureFlagPayloads:i}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([e,t])=>[e,c(t)])),i=Object.fromEntries(Object.entries(t).map(([e,t])=>{var i,s;return[e,{key:e,enabled:"string"==typeof(i=t)||i,variant:"string"==typeof i?i:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:(s=r[e])?JSON.stringify(s):void 0,description:void 0}}]}));return{...e,featureFlags:t,featureFlagPayloads:r,flags:i}}})(e)})).catch(e=>(this._events.emit("error",e),{success:!1,error:this.categorizeRequestError(e)}))}categorizeRequestError(e){if(e instanceof e5)return{type:"api_error",statusCode:e.status};if(e instanceof e8){let t=e.error;return t instanceof Error&&("AbortError"===t.name||"TimeoutError"===t.name)?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(e,t,r={},i={},s={},a){await this._initPromise;let n=await this.getFeatureFlagDetailStateless(e,t,r,i,s,a);if(void 0===n)return{response:void 0,requestId:void 0};let o=u(n.response);return void 0===o&&(o=!1),{response:o,requestId:n.requestId}}async getFeatureFlagDetailStateless(e,t,r={},i={},s={},a){await this._initPromise;let n=await this.getFeatureFlagDetailsStateless(t,r,i,s,a,[e]);if(void 0!==n)return{response:n.flags[e],requestId:n.requestId,evaluatedAt:n.evaluatedAt}}async getFeatureFlagPayloadStateless(e,t,r={},i={},s={},a){await this._initPromise;let n=await this.getFeatureFlagPayloadsStateless(t,r,i,s,a,[e]);if(!n)return;let o=n[e];return void 0===o?null:o}async getFeatureFlagPayloadsStateless(e,t={},r={},i={},s,a){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(e,t,r,i,s,a)).payloads}async getFeatureFlagsStateless(e,t={},r={},i={},s,a){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(e,t,r,i,s,a)}async getFeatureFlagsAndPayloadsStateless(e,t={},r={},i={},s,a){await this._initPromise;let n=await this.getFeatureFlagDetailsStateless(e,t,r,i,s,a);return n?{flags:n.featureFlags,payloads:n.featureFlagPayloads,requestId:n.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(e,t={},r={},i={},s,a){await this._initPromise;let n={geoip_disable:s??this.disableGeoip};a&&(n.flag_keys_to_evaluate=a);let o=await this.getFlags(e,t,r,i,n);if(!o.success)return;let l=o.response;return(l.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),l.quotaLimited?.includes("feature_flags"))?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:l?.requestId,quotaLimited:l.quotaLimited}):l}async getSurveysStateless(){if(await this._initPromise,this.disabled)return[];if(!0===this.disableSurveys)return this._logger.info("Loading surveys is disabled."),[];let e=`${this.host}/api/surveys/?token=${this.apiKey}`,t={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},r=await this.fetchWithRetry(e,t,{type:"required",consume:e=>{if(200!==e.status||!e.json){let t=`Surveys API could not be loaded: ${e.status}`,r=Error(t);return this._logger.error(r),this._events.emit("error",Error(t)),Promise.resolve(void 0)}return e.json()}}).catch(e=>{this._logger.error("Surveys API could not be loaded",e),this._events.emit("error",e)}),i=r?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(g.Props)),this._props||{}}set props(e){this._props=e}async register(e){this.wrap(()=>{this.props={...this.props,...e},this.setPersistedProperty(g.Props,this.props)})}async unregister(e){this.wrap(()=>{delete this.props[e],this.setPersistedProperty(g.Props,this.props)})}processBeforeEnqueue(e){return e}async flushStorage(){}getQueueRouteKey(e){return ti}persistedQueueKeyForRoute(e){return g.Queue}getActiveQueueRoutes(){return[ti]}getRouteQueue(e){return this.getPersistedProperty(this.persistedQueueKeyForRoute(e))||[]}enqueue(e,t,r,i){this.wrap(()=>{if(this.optedOut)return void this._events.emit(e,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let s=this.prepareMessage(t,r);if(null===(s=this.processBeforeEnqueue(s)))return;s=this.normalizeMessage(s);let a=this.persistedQueueKeyForRoute(i??this.getQueueRouteKey(s)),n=this.getPersistedProperty(a)||[];n.length>=this.maxQueueSize&&(n.shift(),this._logger.warn("Queue is full, the oldest event is dropped.")),n.push({message:s}),this.setPersistedProperty(a,n),this._events.emit(e,s),n.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=G(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(e,t,r,i){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(e,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let s=this.prepareMessage(t,r);if(null!==(s=this.processBeforeEnqueue(s))){s=this.normalizeMessage(s);try{await this.sendBatch([s],void 0,i??this.getQueueRouteKey(s))}catch(e){this._events.emit("error",e)}}}normalizeMessage(e){let{type:t,library:r,library_version:i,...s}=e,a=tr(s.properties)?s.properties:void 0;return void 0!==r&&a?.$lib===void 0&&(a={...a||{},$lib:r}),void 0!==i&&a?.$lib_version===void 0&&(a={...a||{},$lib_version:i}),a&&(s.properties=a),s.uuid=q(s.uuid,es),s}normalizeTimestampForWire(e){let t=e instanceof Date?e:"string"==typeof e?new Date(e):null;if(!t||Number.isNaN(t.getTime()))return e;let r=t.toISOString(),i="string"==typeof e?e.match(/\.(\d+)(?:Z|[+-]\d{2}:?\d{2})?$/i)?.[1]:void 0;return i&&i.length>3?r.replace(/\.\d{3}Z$/,`.${i}Z`):r}prepareMessage(e,t){let r={...e,timestamp:t?.timestamp?t?.timestamp:z(),uuid:q(t?.uuid,es)};return(t?.disableGeoip??this.disableGeoip)&&(tr(r.properties)||(r.properties={}),r.properties.$geoip_disable=!0),r.distinctId&&(r.distinct_id=r.distinctId,delete r.distinctId),r}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.pendingFlushPromise||this.flush().catch(async e=>{await e9(e)})}async waitForPendingPromises(e,t=[]){let r=t.filter(e=>!!e),i=0;for(;;){let t=this.promiseQueue.getPromises([...r,...this.flushPromises],e);if(0===t.length)return;i>0&&this._logger.debug(`flush() re-checking ${t.length} pending promise(s) before flushing`),await Promise.all(t.map(e=>e.catch(()=>{}))),i++}}flushWithPendingPromises(){return this.flushInternal(!0)}flush(){return this.flushInternal(!1)}flushInternal(e){if(this.disabled)return Promise.resolve();if(!e&&this.pendingFlushPromise)return this.pendingFlushPromise;let t=this.flushPromise,r=this.promiseQueue.maxId,i=Promise.resolve().then(()=>{if(e)return this.waitForPendingPromises(r,[t,i])}).then(()=>V([t])).then(()=>(this.pendingFlushPromise===i&&(this.pendingFlushPromise=null),this._flush()));return this.pendingFlushPromise=i,this.flushPromise=i,this.flushPromises.add(i),this.addPendingPromise(i),V([i]).then(()=>{this.flushPromises.delete(i),this.pendingFlushPromise===i&&(this.pendingFlushPromise=null),this.flushPromise===i&&(this.flushPromise=null)}),i}getCustomHeaders(){let e=this.getCustomUserAgent(),t={};return e&&""!==e&&(t["User-Agent"]=e),t}compressPayload(e){return y(e,this.isDebug)}getBatchEndpointPath(e){return"/batch/"}async sendBatch(e,t,r=ti){let i={api_key:this.apiKey,batch:e.map(e=>{if(!e)return e;let t=this.normalizeTimestampForWire(e.timestamp);return t===e.timestamp?e:{...e,timestamp:t}}),sent_at:z()};this.historicalMigration&&(i.historical_migration=!0);let s=_(i),a=`${this.host}${this.getBatchEndpointPath(r)}`,n=this.disableCompression?null:await this.compressPayload(s),o={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...null!==n&&{"Content-Encoding":"gzip"}},body:n||s};await this.fetchWithRetry(a,o,{type:"successful-write"},t)}async _flush(){let e;this.clearFlushTimer(),await this._initPromise;let t=this.getActiveQueueRoutes();if(!t.some(e=>this.getRouteQueue(e).length>0))return;let r=[];for(let i of t)try{await this._flushRoute(i,r)}catch(t){void 0===e&&(e=t)}if(void 0!==e)throw e;this._events.emit("flush",r)}async _flushRoute(e,t){let r=this.persistedQueueKeyForRoute(e),i=this.getPersistedProperty(r)||[];if(!i.length)return;let s=i.length,a=0;for(;i.length>0&&a<s;){let s=i.slice(0,this.maxBatchSize),n=s.map(e=>void 0===e.message?e.message:this.normalizeMessage(e.message)),o=async()=>{let e=this.getPersistedProperty(r)||[],t=[...s],a=e.filter(e=>{let r=e.message?.uuid,i=t.findIndex(t=>t===e||"string"==typeof r&&r.length>0&&t.message?.uuid===r);return -1===i||(t.splice(i,1),!1)});this.setPersistedProperty(r,a),i=a,this._dequeuedMessagesCount+=s.length,await this.flushStorage()},l={retryCheck:e=>!te(e)&&tt(e)};try{await this.sendBatch(n,l,e)}catch(e){if(te(e)&&n.length>1){this.maxBatchSize=Math.max(1,Math.floor(n.length/2)),this._logger.warn(`Received 413 when sending batch of size ${n.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw e instanceof e8||await o(),this._events.emit("error",e),e}await o(),t.push(...n),a+=n.length}}async _sendLogsBatch(e){if(this.disabled)return{kind:"fatal",error:Error("The client is disabled")};let t=JSON.stringify(e),r=`${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`,i=this.disableCompression?null:await this.compressPayload(t),s={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...null!==i&&{"Content-Encoding":"gzip"}},body:i||t};try{return await this.fetchWithRetry(r,s,{type:"successful-write"},{retryCheck:e=>!te(e)&&tt(e)}),{kind:"ok"}}catch(e){if(te(e))return{kind:"too-large"};if(e instanceof e8)return{kind:"retry-later",error:e};return{kind:"fatal",error:e}}}async _sendMetricsBatch(e){if(this.disabled)return{kind:"fatal",error:Error("The client is disabled")};let t=JSON.stringify(e),r=`${this.host}/i/v1/metrics?token=${encodeURIComponent(this.apiKey)}`,i=this.disableCompression?null:await this.compressPayload(t),s={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...null!==i&&{"Content-Encoding":"gzip"}},body:i||t};try{return await this.fetchWithRetry(r,s,{type:"successful-write"},{retryCheck:e=>!te(e)&&tt(e)}),{kind:"ok"}}catch(e){if(te(e))return{kind:"too-large"};if(tt(e))return{kind:"retry-later",error:e};return{kind:"fatal",error:e}}}async fetchWithRetry(e,t,r,i,s){let a=t.body?t.body:"",n=-1;try{n=a instanceof Blob?a.size:Buffer.byteLength(a,"utf8")}catch{n=a instanceof Blob?a.size:new TextEncoder().encode(a).length}let o={...this._retryOptions,...i},l=0;return await W(async()=>{let i,a,o;l++;let u=new AbortController,c=s??this.requestTimeout,d=Date.now()+c,h=new Promise((e,t)=>{i=G(()=>{let e=Error(`Request timed out after ${c}ms`);e.name="AbortError",t(e),u.abort(e)},c)}),g=!1,p=()=>o??=(async()=>{try{await a?.body?.cancel()}catch{}})();try{let i;try{i=this.fetch(e,{signal:u.signal,...t})}catch(e){throw new e8(e)}i.then(e=>{u.signal.aborted&&!g&&Promise.resolve(e.body?.cancel()).catch(()=>{})}).catch(()=>{});try{a=await Promise.race([i,h]),g=!0}catch(e){throw new e8(e)}if("no-cors"!==t.mode&&(a.status<200||a.status>=400))throw new e5(a,n,d,u);if("successful-write"===r.type){try{await Promise.race([p(),h])}catch{}return}try{return await Promise.race([r.consume(a),h])}catch(e){if(u.signal.aborted)throw new e8(e);throw e}}finally{clearTimeout(i),u.signal.aborted&&a&&p()}},{...o,retryCheck:e=>{let t=o.retryCheck(e);return t&&l<=o.retryCount&&e instanceof e5&&e.cancelResponseBody(),t}})}async _shutdown(e=3e4){await this._initPromise;let t=!1;if(this.clearFlushTimer(),!this.disabled)return K((async()=>{try{for(await this.promiseQueue.join();this.getActiveQueueRoutes().some(e=>this.getRouteQueue(e).length>0);){let e=this._dequeuedMessagesCount;if(await this.flush(),t)break;if(this._dequeuedMessagesCount===e){this._logger.warn("Shutdown flush completed but did not send any queued events. Stopping drain to avoid a loop.");break}}}catch(e){if(!("object"==typeof e&&(e instanceof e5||e6(e))))throw e;await e9(e)}})(),e,()=>{this._logger.critical("Timeout while shutting down PostHog. Some events may not have been sent.",{shutdownTimeoutMs:e}),t=!0})}async shutdown(e=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(e).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}}e.i(47114),e.i(80446),e.i(34246),e.s(["chromeStackLineParser",0,ew,"createDefaultStackParser",0,eB,"createStackParser",0,eN,"geckoStackLineParser",0,eF,"nodeStackLineParser",0,eM,"opera10StackLineParser",0,eC,"opera11StackLineParser",0,ek,"reverseAndStripFrames",0,ej,"winjsStackLineParser",0,eS],70736),e.i(70736),e.i(99573),e.i(29569),e.i(11475),e.i(43179),e.i(45098),e.i(6881),e.i(80322),e.i(80049),e.i(98689),e.s(["DOMExceptionCoercer",0,eU,"ErrorCoercer",0,e4,"ErrorEventCoercer",0,eq,"EventCoercer",0,eG,"ObjectCoercer",0,ez,"PrimitiveCoercer",0,eK,"PromiseRejectionEventCoercer",0,eV,"StringCoercer",0,e3],21854),e.i(21854);class ta{constructor(e){this._maxSize=e,this._cache=new Map}get(e){let t=this._cache.get(e);if(void 0!==t)return this._cache.delete(e),this._cache.set(e,t),t}set(e,t){this._cache.set(e,t)}reduce(){for(;this._cache.size>=this._maxSize;){let e=this._cache.keys().next().value;e&&this._cache.delete(e)}}}function tn(){let e=globalThis._posthogReleaseId;return"string"==typeof e&&e.length>0?e:void 0}e.s(["ReduceableCache",0,ta],46986),e.i(46986),e.i(52001),e.s(["getInjectedReleaseId",0,tn],41508),e.i(41508),e.s(["DEFAULT_EXCEPTION_STEPS_CONFIG",0,eZ,"DOMExceptionCoercer",0,eU,"EXCEPTION_STEP_INTERNAL_FIELDS",0,eQ,"ErrorCoercer",0,e4,"ErrorEventCoercer",0,eq,"ErrorPropertiesBuilder",0,ef,"EventCoercer",0,eG,"ExceptionStepsBuffer",0,e0,"ObjectCoercer",0,ez,"PrimitiveCoercer",0,eK,"PromiseRejectionEventCoercer",0,eV,"ReduceableCache",0,ta,"StringCoercer",0,e3,"chromeStackLineParser",0,ew,"createDefaultStackParser",0,eB,"createStackParser",0,eN,"geckoStackLineParser",0,eF,"getInjectedReleaseId",0,tn,"getUtf8ByteLength",0,e1,"nodeStackLineParser",0,eM,"opera10StackLineParser",0,eC,"opera11StackLineParser",0,ek,"resolveExceptionStepsConfig",0,eY,"reverseAndStripFrames",0,ej,"stripReservedExceptionStepFields",0,eX,"winjsStackLineParser",0,eS],96117);var to=e.i(96117),tl=to,tu=e.i(2157),tc=e.i(12714),td=e.i(50227),th=e.i(1457);let tg=new tl.ReduceableCache(25),tp=new tl.ReduceableCache(20);async function tf(e,t=tc.open,r){let i,s={};try{i=process.cwd()}catch{}for(let t=e.length-1;t>=0;t--){var a,n;let r=e[t],o=r?.filename;!(!r||"string"!=typeof o||"number"!=typeof r.lineno||(a=o).startsWith("node:")||a.endsWith(".min.js")||a.endsWith(".min.cjs")||a.endsWith(".min.mjs")||a.startsWith("data:")||void 0!==(n=r).lineno&&n.lineno>1e4||void 0!==n.colno&&n.colno>1e3)&&((0,td.isAbsolute)(o)||void 0!==i)&&(s[o]||(s[o]=[]),s[o].push(r.lineno))}let o=Object.keys(s);if(0==o.length)return e;let l=[];for(let e of o){let a=tv(e,i);if(void 0===a||tp.get(a))continue;let n=s[e];if(!n)continue;n.sort((e,t)=>e-t);let o=function(e){if(!e.length)return[];let t=0,r=e[0];if("number"!=typeof r)return[];let i=tb(r),s=[];for(;;){if(t===e.length-1){s.push(i);break}let r=e[t+1];if("number"!=typeof r)break;r<=i[1]?i[1]=r+7:(s.push(i),i=tb(r)),t++}return s}(n);if(o.every(e=>(function(e,t){let r=tg.get(e);if(void 0===r)return!1;for(let e=t[0];e<=t[1];e++)if(void 0===r[e])return!1;return!0})(a,e)))continue;let u=function(e,t,r){let i=e.get(t);return void 0===i?(e.set(t,r),r):i}(tg,a,{});l.push(ty(e,o,u,a,t,r))}return await Promise.all(l).catch(()=>{}),e&&e.length>0&&function(e,t,r){for(let i of e)if(i.filename&&void 0===i.context_line&&"number"==typeof i.lineno){let e=tv(i.filename,r),s=void 0===e?void 0:t.get(e);if(void 0===s)continue;!function(e,t,r){if(void 0===t.lineno||void 0===r)return;t.pre_context=[];for(let i=tw(e);i<e;i++){let e=r[i];if(void 0===e)return void t_(t);t.pre_context.push(e)}if(void 0===r[e])return t_(t);t.context_line=r[e];let i=function(e){return e+7}(e);t.post_context=[];for(let s=e+1;s<=i;s++){let e=r[s];if(void 0===e)break;t.post_context.push(e)}}(i.lineno,i,s)}}(e,tg,i),tg.reduce(),e}async function tm(e,t,r){let i,s=!1;try{i=await t(e,tu.constants.O_RDONLY|tu.constants.O_NONBLOCK);let a=await i.stat();if(!a.isFile())return;if(a.size>0xa00000)return void r?.debug(`Skipping source context for oversized file ${e}: ${a.size} bytes exceeds 10485760`);return s=!0,i}catch{return}finally{i&&!s&&await i.close().catch(()=>{})}}async function ty(e,t,r,i,s,a){let n=await tm(e,s,a);return void 0===n?void tp.set(i,1):new Promise(e=>{let s,a,o=!1;function l(t){o||(o=!0,t?.destroy(),n.close().then(e,e))}try{s=n.createReadStream({autoClose:!1,start:0,end:0x9fffff})}catch{tp.set(i,1),l();return}try{a=(0,th.createInterface)({input:s})}catch{tp.set(i,1),l(s);return}let u=0,c=0,d=t[0];if(void 0===d)return void l(s);let h=d[0],g=d[1];function p(){tp.set(i,1),a.close(),a.removeAllListeners(),l(s)}s.on("error",p),a.on("error",p),a.on("close",()=>l(s)),a.on("line",e=>{if(!(++u<h)&&(r[u]=function(e,t){let r=e,i=r.length;if(i<=150)return r;t>i&&(t=i);let s=Math.max(t-60,0);s<5&&(s=0);let a=Math.min(s+140,i);return a>i-5&&(a=i),a===i&&(s=Math.max(a-140,0)),r=r.slice(s,a),s>0&&(r=`...${r}`),a<i&&(r+="..."),r}(e,0),u>=g)){if(c===t.length-1){a.close(),a.removeAllListeners();return}let e=t[++c];if(void 0===e){a.close(),a.removeAllListeners();return}h=e[0],g=e[1]}})})}function t_(e){delete e.pre_context,delete e.context_line,delete e.post_context}function tv(e,t){return(0,td.isAbsolute)(e)?JSON.stringify([null,e]):void 0===t?void 0:JSON.stringify([t,e])}function tb(e){return[tw(e),e+7]}function tw(e){return Math.max(1,e-7)}let tE=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],tP=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return tE.concat(t).some(e=>{let t=e.toLowerCase();return -1!==r.indexOf(t)})},tF={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};e.s(["FeatureFlagError",0,tF],58325);class tx{constructor(e){this._host=e.host,this._distinctId=e.distinctId,this._groups=e.groups,this._disableGeoip=e.disableGeoip,this._flags=e.flags,this._requestId=e.requestId,this._evaluatedAt=e.evaluatedAt,this._flagDefinitionsLoadedAt=e.flagDefinitionsLoadedAt,this._errorsWhileComputing=e.errorsWhileComputing??!1,this._quotaLimited=e.quotaLimited??!1,this._accessed=e.accessed??new Set,this._isSlice=e.isSlice??!1}isEnabled(e){let t=this._flags[e];return this._recordAccess(e),t?.enabled??!1}getFlag(e){let t=this._flags[e];if(this._recordAccess(e),t)return!!t.enabled&&(t.variant??!0)}getFlagPayload(e){return this._flags[e]?.payload}onlyAccessed(){let e={};for(let t of this._accessed){let r=this._flags[t];r&&(e[t]=r)}return this._cloneWith(e)}only(e){let t={},r=[];for(let i of e){let e=this._flags[i];e?t[i]=e:r.push(i)}return r.length>0&&this._host.logWarning(`FeatureFlagEvaluations.only() was called with flag keys that are not in the evaluation set and will be dropped: ${r.join(", ")}`),this._cloneWith(t)}get keys(){return Object.keys(this._flags)}_getEventProperties(){let e={},t=[];for(let[r,i]of Object.entries(this._flags)){let s=!1!==i.enabled&&(i.variant??!0);e[`$feature/${r}`]=s,i.enabled&&t.push(r)}return t.length>0&&(t.sort(),e.$active_feature_flags=t),e}_cloneWith(e){return new tx({host:this._host,distinctId:this._distinctId,groups:this._groups,disableGeoip:this._disableGeoip,flags:e,requestId:this._requestId,evaluatedAt:this._evaluatedAt,flagDefinitionsLoadedAt:this._flagDefinitionsLoadedAt,errorsWhileComputing:this._errorsWhileComputing,quotaLimited:this._quotaLimited,accessed:new Set(this._accessed),isSlice:!0})}_recordAccess(e){if(this._accessed.add(e),""===this._distinctId||this._isSlice&&!(e in this._flags))return;let t=this._flags[e],r=void 0===t?void 0:!1!==t.enabled&&(t.variant??!0),i={$feature_flag:e,$feature_flag_response:r,$feature_flag_id:t?.id,$feature_flag_version:t?.version,$feature_flag_reason:t?.reason,locally_evaluated:t?.locallyEvaluated??!1,[`$feature/${e}`]:r,$feature_flag_request_id:this._requestId,$feature_flag_evaluated_at:t?.locallyEvaluated?Date.now():this._evaluatedAt};t?.hasExperiment!==void 0&&(i.$feature_flag_has_experiment=t.hasExperiment),t?.locallyEvaluated&&void 0!==this._flagDefinitionsLoadedAt&&(i.$feature_flag_definitions_loaded_at=this._flagDefinitionsLoadedAt);let s=[];this._errorsWhileComputing&&s.push(tF.ERRORS_WHILE_COMPUTING),this._quotaLimited&&s.push(tF.QUOTA_LIMITED),void 0===t&&s.push(tF.FLAG_MISSING),s.length>0&&(i.$feature_flag_error=s.join(",")),this._host.captureFlagCalledEventIfNeeded({distinctId:this._distinctId,key:e,response:r,groups:this._groups,disableGeoip:this._disableGeoip,properties:i})}}async function tS(e){let t=globalThis.crypto?.subtle;if(!t)throw Error("SubtleCrypto API not available");return Array.from(new Uint8Array(await t.digest("SHA-1",new TextEncoder().encode(e)))).map(e=>e.toString(16).padStart(2,"0")).join("")}let t$=["is_not","is_set"];class tC extends Error{constructor(e){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=e,Object.setPrototypeOf(this,tC.prototype)}}function tI(e,t){e.name=t.name,Error.captureStackTrace(e,t),Object.setPrototypeOf(e,t.prototype)}class tk extends Error{constructor(e){super(e),tI(this,tk)}}class tA extends Error{constructor(e){super(e),tI(this,tA)}}class tO{constructor({pollingInterval:e,personalApiKey:t,projectApiKey:r,timeout:i,host:s,customHeaders:a,...n}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollerStopped=!1,this.pollingInterval=e,this.personalApiKey=t,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=r,this.host=s,this.poller=void 0,this.fetch=n.fetch||fetch,this.onError=n.onError,this.customHeaders=a,this.onLoad=n.onLoad,this.onMinimalFlagCalledEvents=n.onMinimalFlagCalledEvents,this.cacheProvider=n.cacheProvider,this.strictLocalEvaluation=n.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(e=!0){this.debugMode=e}logMsgIfDebug(e){this.debugMode&&e()}createEvaluationContext(e,t={},r={},i={},s={}){return{distinctId:e,groups:t,personProperties:r,groupProperties:i,evaluationCache:s}}async getFeatureFlag(e,t,r={},i={},s={}){let a,n;if(await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return a;if(void 0!==(n=this.featureFlagsByKey[e])){let o=this.createEvaluationContext(t,r,i,s);try{a=(await this.computeFlagAndPayloadLocally(n,o)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${e} -> ${a}`))}catch(t){t instanceof tA||t instanceof tk?this.logMsgIfDebug(()=>console.debug(`${t.name} when computing flag locally: ${e}: ${t.message}`)):t instanceof Error&&this.onError?.(Error(`Error computing flag locally: ${e}: ${t}`))}}return a}async getAllFlagsAndPayloads(e,t){await this.loadFeatureFlags();let r={},i={},s=0==this.featureFlags.length,a=t?t.map(e=>this.featureFlagsByKey[e]).filter(Boolean):this.featureFlags,n={...e,evaluationCache:e.evaluationCache??{}};return await Promise.all(a.map(async e=>{try{let{value:t,payload:s}=await this.computeFlagAndPayloadLocally(e,n);r[e.key]=t,s&&(i[e.key]=s)}catch(t){t instanceof tA||t instanceof tk?this.logMsgIfDebug(()=>console.debug(`${t.name} when computing flag locally: ${e.key}: ${t.message}`)):t instanceof Error&&this.onError?.(Error(`Error computing flag locally: ${e.key}: ${t}`)),s=!0}})),{response:r,payloads:i,fallbackToFlags:s}}async computeFlagAndPayloadLocally(e,t,r={}){let i,{matchValue:s,skipLoadCheck:a=!1}=r;if(a||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};i=void 0!==s?s:await this.computeFlagValueLocally(e,t);let n=this.getFeatureFlagPayload(e.key,i);return{value:i,payload:n}}async computeFlagValueLocally(e,t){let{distinctId:r,groups:i,personProperties:s,groupProperties:a}=t;if(!e.active)return!1;if(e.ensure_experience_continuity)throw new tk("Flag has experience continuity enabled");let n=(e.filters||{}).aggregation_group_type_index;if(void 0!=n){let r=this.groupTypeMapping[String(n)];if(!r)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${n} for feature flag ${e.key}`)),new tk("Flag has unknown group type index");if(!(r in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${e.key} without group names passed in`)),!1;"device_id"===e.bucketing_identifier&&(s?.$device_id===void 0||s?.$device_id===null||s?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${e.key}`));let o=a[r];return await this.matchFeatureFlagProperties(e,i[r],o,t)}{let i=this.getBucketingValueForFlag(e,r,s);if(void 0===i)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${e.key} without $device_id, falling back to server evaluation`)),new tk(`Can't compute feature flag: ${e.key} without $device_id`);return await this.matchFeatureFlagProperties(e,i,s,t)}}getBucketingValueForFlag(e,t,r){if(e.filters?.aggregation_group_type_index!=void 0)return t;if("device_id"===e.bucketing_identifier){let e=r?.$device_id;if(null==e||""===e)return;return e}return t}getFeatureFlagPayload(e,t){let r=null;if(!1!==t&&null!=t&&("boolean"==typeof t?r=this.featureFlagsByKey?.[e]?.filters?.payloads?.[t.toString()]||null:"string"==typeof t&&(r=this.featureFlagsByKey?.[e]?.filters?.payloads?.[t]||null),null!=r)){if("object"==typeof r)return r;if("string"==typeof r)try{return JSON.parse(r)}catch{}return r}return null}async evaluateFlagDependency(e,t,r){let{evaluationCache:i}=r,s=e.key;if(!this.featureFlagsByKey)throw new tk("Feature flags not available for dependency evaluation");if(!("dependency_chain"in e))throw new tk(`Flag dependency property for '${s}' is missing required 'dependency_chain' field`);let a=e.dependency_chain;if(!Array.isArray(a))throw new tk(`Flag dependency property for '${s}' has an invalid 'dependency_chain' (expected array, got ${typeof a})`);if(0===a.length)throw new tk(`Circular dependency detected for flag '${s}' (empty dependency chain)`);for(let e of a){if(!(e in i)){let t=this.featureFlagsByKey[e];if(t)if(t.active)try{let s=await this.computeFlagValueLocally(t,r);i[e]=s}catch(t){throw new tk(`Error evaluating flag dependency '${e}' for flag '${s}': ${t}`)}else i[e]=!1;else throw new tk(`Missing flag dependency '${e}' for flag '${s}'`)}if(null==i[e])throw new tk(`Dependency '${e}' could not be evaluated`)}let n=i[s];return this.flagEvaluatesToExpectedValue(e.value,n)}flagEvaluatesToExpectedValue(e,t){return"boolean"==typeof e?e===t||"string"==typeof t&&""!==t&&!0===e:"string"==typeof e&&t===e}async matchFeatureFlagProperties(e,t,r,i){let s,a=e.filters||{},n=a.groups||[],o=a.aggregation_group_type_index,l=a.early_exit??!1,{groups:u,groupProperties:c}=i,d=!1;for(let h of n)try{let n=void 0!==h.aggregation_group_type_index?h.aggregation_group_type_index:o,g=r,p=t;if(n!==o&&null!=n){let t=this.groupTypeMapping[String(n)];if(!t||!(t in u)){this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Skipping group condition for flag '${e.key}': group type index ${n} not available`));continue}if(!(t in c)){d=!0;continue}g=c[t],p=u[t]}let f=await this.isConditionMatch(e,p,h,g,i);if("match"===f){let t=h.variant,r=a.multivariate?.variants||[];s=t&&r.some(e=>e.key===t)?t:await this.getMatchingVariant(e,p)||!0;break}if(l&&"out_of_rollout_bound"===f)return!1}catch(e){if(e instanceof tA)throw e;if(e instanceof tk)d=!0;else throw e}if(void 0!==s)return s;if(d)throw new tk("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(e,t,r,i,s){let a=r.rollout_percentage,n=e=>{this.logMsgIfDebug(()=>console.warn(e))};if((r.properties||[]).length>0){for(let e of r.properties){let t=e.type,r=!1;if("cohort"===t){let t=await tM(e,i,this.cohorts,this.debugMode,e=>this.evaluateFlagDependency(e,i,s));r="not_in"===e.operator?!t:t}else r="flag"===t?await this.evaluateFlagDependency(e,i,s):tT(e,i,n);if(!r)return"no_match"}if(void 0==a)return"match"}return void 0!=a&&await tR(e.key,t)>a/100?"out_of_rollout_bound":"match"}async getMatchingVariant(e,t){let r=await tR(e.key,t,"variant"),i=this.variantLookupTable(e).find(e=>r>=e.valueMin&&r<e.valueMax);if(i)return i.key}variantLookupTable(e){let t=[],r=0,i=0,s=e.filters||{};return(s.multivariate?.variants||[]).forEach(e=>{i=r+e.rollout_percentage/100,t.push({valueMin:r,valueMax:i,key:e.key}),r=i}),t}updateFlagState(e){this.featureFlags=e.flags,this.featureFlagsByKey=e.flags.reduce((e,t)=>(e[t.key]=t,e),{}),this.groupTypeMapping=e.groupTypeMapping,this.cohorts=e.cohorts,this.loadedSuccessfullyOnce=!0,this.onMinimalFlagCalledEvents?.(!0===e.minimalFlagCalledEvents)}warnAboutExperienceContinuityFlags(e){if(this.strictLocalEvaluation)return;let t=e.filter(e=>e.ensure_experience_continuity);t.length>0&&console.warn(`[PostHog] You are using local evaluation but ${t.length} flag(s) have experience continuity enabled: ${t.map(e=>e.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(e){if(!this.cacheProvider)return!1;try{let t=await this.cacheProvider.getFlagDefinitions();if(t)return this.updateFlagState(t),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${e} (${t.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(t.flags),!0;return!1}catch(e){return this.onError?.(Error(`Failed to load from cache: ${e}`)),!1}}async loadFeatureFlags(e=!1){if(!this.loadedSuccessfullyOnce||e)return!e&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(e=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${e}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(6e4,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0);try{let e=!0;if(this.cacheProvider)try{e=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(e){this.onError?.(Error(`Error in shouldFetchFlagDefinitions: ${e}`))}if(!e&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let t=await this._requestFeatureFlagDefinitions();if(!t)return;switch(t.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=t.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new tC(`Your project key or secret key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.onMinimalFlagCalledEvents?.(!1);return;case 403:throw this.beginBackoff(),new tC(`Your secret key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct secret and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new tC(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let r=await t.json()??{};if(!("flags"in r))return void this.onError?.(Error(`Invalid response when getting feature flags: ${JSON.stringify(r)}`));this.flagsEtag=t.headers?.get("ETag")??void 0;let i={flags:r.flags??[],groupTypeMapping:r.group_type_mapping||{},cohorts:r.cohorts||{},minimalFlagCalledEvents:!0===r.minimal_flag_called_events};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&e)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(e){this.onError?.(Error(`Failed to store in cache: ${e}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(e){e instanceof tC&&this.onError?.(e)}finally{this.pollerStopped||(this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval()))}}getPersonalApiKeyRequestOptions(e="GET",t){let r={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return t&&(r["If-None-Match"]=t),{method:e,headers:r}}async _requestFeatureFlagDefinitions(){let e=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,t=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),r=null;if(this.timeout&&"number"==typeof this.timeout){let e=new AbortController;r=G(()=>{e.abort()},this.timeout),t.signal=e.signal}try{let i=this.fetch,s=await i(e,t);if(200!==s.status)return clearTimeout(r),s;return{status:s.status,headers:s.headers,body:s.body,text:async()=>{try{return await s.text()}finally{clearTimeout(r)}},json:async()=>{try{return await s.json()}finally{clearTimeout(r)}}}}catch(e){throw clearTimeout(r),e}}async stopPoller(e=3e4){if(this.pollerStopped=!0,clearTimeout(this.poller),this.poller=void 0,this.cacheProvider)try{let t=this.cacheProvider.shutdown();t instanceof Promise&&await K(t,e,()=>{throw Error(`Cache shutdown timeout after ${e}ms`)})}catch(e){this.onError?.(Error(`Error during cache shutdown: ${e}`))}}}async function tR(e,t,r=""){return parseInt((await tS(`${e}.${t}${r}`)).slice(0,15),16)/0x1000000000000000}function tT(e,t,r){let i=e.key,s=e.value,a=e.operator||"exact";if(i in t){if("is_not_set"===a)return!1}else{if("is_not_set"===a)return!0;throw new tk(`Property ${i} not found in propertyValues`)}let n=t[i];if(null==n&&!t$.includes(a))return r&&r(`Property ${i} cannot have a value of null/undefined with the ${a} operator`),!1;function o(e,t){return Array.isArray(e)?e.map(e=>String(e).toLowerCase()).includes(String(t).toLowerCase()):String(e).toLowerCase()===String(t).toLowerCase()}function l(e,t,r){if("gt"===r)return e>t;if("gte"===r)return e>=t;if("lt"===r)return e<t;if("lte"===r)return e<=t;throw Error(`Invalid operator: ${r}`)}switch(a){case"exact":return o(s,n);case"is_not":return!o(s,n);case"is_set":return i in t;case"icontains":return String(n).toLowerCase().includes(String(s).toLowerCase());case"not_icontains":return!String(n).toLowerCase().includes(String(s).toLowerCase());case"starts_with":return String(n).toLowerCase().startsWith(String(s).toLowerCase());case"not_starts_with":return!String(n).toLowerCase().startsWith(String(s).toLowerCase());case"ends_with":return String(n).toLowerCase().endsWith(String(s).toLowerCase());case"not_ends_with":return!String(n).toLowerCase().endsWith(String(s).toLowerCase());case"regex":return tD(String(s))&&null!==String(n).match(String(s));case"not_regex":return tD(String(s))&&null===String(n).match(String(s));case"gt":case"gte":case"lt":case"lte":{let e,t="number"==typeof s?s:parseFloat(String(s));if(e="number"==typeof n?n:null!=n?parseFloat(String(n)):NaN,Number.isFinite(t)&&Number.isFinite(e))return l(e,t,a);return l(String(n),String(s),a)}case"is_date_after":case"is_date_before":{if("boolean"==typeof s)throw new tk("Date operations cannot be performed on boolean values");let e=function(e){let t=e.match(/^-?(?<number>[0-9]+)(?<interval>[a-z])$/),r=new Date(new Date().toISOString());if(!t)return null;{if(!t.groups)return null;let e=parseInt(t.groups.number);if(e>=1e4)return null;let i=t.groups.interval;if("h"==i)r.setUTCHours(r.getUTCHours()-e);else if("d"==i)r.setUTCDate(r.getUTCDate()-e);else if("w"==i)r.setUTCDate(r.getUTCDate()-7*e);else if("m"==i)r.setUTCMonth(r.getUTCMonth()-e);else{if("y"!=i)return null;r.setUTCFullYear(r.getUTCFullYear()-e)}return r}}(String(s));if(null==e&&(e=tU(s)),null==e)throw new tk(`Invalid date: ${s}`);let t=tU(n);if(["is_date_before"].includes(a))return t<e;return t>e}case"semver_eq":return 0===tN(tB(String(n)),tB(String(s)));case"semver_neq":return 0!==tN(tB(String(n)),tB(String(s)));case"semver_gt":return tN(tB(String(n)),tB(String(s)))>0;case"semver_gte":return tN(tB(String(n)),tB(String(s)))>=0;case"semver_lt":return 0>tN(tB(String(n)),tB(String(s)));case"semver_lte":return 0>=tN(tB(String(n)),tB(String(s)));case"semver_tilde":{let e,t=tB(String(n)),{lower:r,upper:i}={lower:[(e=tB(String(s)))[0],e[1],e[2]],upper:[e[0],e[1]+1,0]};return tN(t,r)>=0&&0>tN(t,i)}case"semver_caret":{let e=tB(String(n)),{lower:t,upper:r}=function(e){let[t,r,i]=tB(e);return{lower:[t,r,i],upper:t>0?[t+1,0,0]:r>0?[0,r+1,0]:[0,0,i+1]}}(String(s));return tN(e,t)>=0&&0>tN(e,r)}case"semver_wildcard":{let e=tB(String(n)),{lower:t,upper:r}=function(e){let t,r,i=String(e).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!i)throw new tk(`Invalid wildcard semver: ${e}`);let s=i.split("."),a=t=>{try{return tj(t,e)}catch{throw new tk(`Invalid wildcard semver: ${e}`)}},n=a(s[0]);if(1===s.length)t=[n,0,0],r=[n+1,0,0];else{let e=a(s[1]);t=[n,e,0],r=[n,e+1,0]}return{lower:t,upper:r}}(String(s));return tN(e,t)>=0&&0>tN(e,r)}default:throw new tk(`Unknown operator: ${a}`)}}async function tM(e,t,r,i=!1,s){let a=String(e.value);if(!(a in r))throw new tA(`cohort ${a} not found in local cohorts - likely a static cohort that requires server evaluation`);return tL(r[a],t,r,i,s)}async function tL(e,t,r,i=!1,s){if(!e)return!0;let a=e.type,n=e.values;if(!n||0===n.length)return!0;let o=!1;if("values"in n[0]){for(let e of n)try{let n=await tL(e,t,r,i,s);if("AND"===a){if(!n)return!1}else if(n)return!0}catch(t){if(t instanceof tA)throw t;if(t instanceof tk)i&&console.debug(`Failed to compute property ${e} locally: ${t}`),o=!0;else throw t}if(o)throw new tk("Can't match cohort without a given cohort property value");return"AND"===a}for(let e of n)try{let n;if("cohort"===e.type)n=await tM(e,t,r,i,s);else if("flag"===e.type){if(!s)throw new tk(`Flag dependency '${e.key||"unknown"}' cannot be evaluated without a flag dependency evaluator`);n=await s(e)}else n=tT(e,t);let o=e.negation||!1;if("AND"===a){if(!n&&!o||n&&o)return!1}else if(n&&!o||!n&&o)return!0}catch(t){if(t instanceof tA)throw t;if(t instanceof tk)i&&console.debug(`Failed to compute property ${e} locally: ${t}`),o=!0;else throw t}if(o)throw new tk("can't match cohort without a given cohort property value");return"AND"===a}function tD(e){try{return new RegExp(e),!0}catch(e){return!1}}function tj(e,t){if(!/^\d+$/.test(e)||e.length>1&&"0"===e[0])throw new tk(`Invalid semver: ${t}`);return parseInt(e,10)}function tB(e){let t=String(e).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!t||t.startsWith("."))throw new tk(`Invalid semver: ${e}`);let r=t.split("."),i=t=>void 0===t||""===t?0:tj(t,e);return[i(r[0]),i(r[1]),i(r[2])]}function tN(e,t){for(let r=0;r<3;r++){if(e[r]<t[r])return -1;if(e[r]>t[r])return 1}return 0}function tU(e){if(e instanceof Date)return e;if("string"==typeof e||"number"==typeof e){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new tk(`${e} is in an invalid date format`)}throw new tk(`The date provided ${e} must be a string, number, or date object`)}let tq=["--unhandled-rejections","--unhandled_rejections"],tH=new Set(["throw","strict","warn","warn-with-error-code","none"]),tW=[...globalThis.process?.execArgv??[]],tz=globalThis.process?.env?.NODE_OPTIONS;function tG(e){let t;for(let r=0;r<e.length;r++){let i=e[r],s=tq.find(e=>i===e||i.startsWith(`${e}=`));if(!s)continue;let a=i===s?e[++r]:i.slice(s.length+1);tH.has(a)&&(t=a)}return t}let tK=function(e=tW,t=tz){return tG(e)??tG(function(e){let t=[],r="",i=!1;for(let s=0;s<e.length;s++){let a=e[s];"\\"===a&&i&&s+1<e.length?r+=e[++s]:" "!==a||i?'"'===a?i=!i:r+=a:r&&(t.push(r),r="")}return r&&t.push(r),t}(t??""))??"throw"}();function tV(e,t,r){e(t,{mechanism:{type:"unhandledRejection"===r?"onunhandledrejection":"onuncaughtexception",handled:!1}})}function tQ(e,t,r,i,s){if(t>r&&(i.warn("min cannot be greater than max."),t=r),C(e))if(e>r)return i.warn(" cannot be greater than max: "+r+". Using max value instead."),r;else return e<t?(i.warn(" cannot be less than min: "+t+". Using min value instead."),t):e;return i.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+s),tQ(s||r,t,r,i)}class tJ{constructor(e){this._buckets={},this._onBucketRateLimited=e._onBucketRateLimited,this._bucketSize=tQ(e.bucketSize,0,100,e._logger),this._refillRate=tQ(e.refillRate,0,this._bucketSize,e._logger),this._refillInterval=tQ(e.refillInterval,0,864e5,e._logger)}_applyRefill(e,t){let r=Math.floor((t-e.lastAccess)/this._refillInterval);if(r>0){let t=r*this._refillRate;e.tokens=Math.min(e.tokens+t,this._bucketSize),e.lastAccess=e.lastAccess+r*this._refillInterval}}consumeRateLimit(e){let t=Date.now(),r=String(e),i=this._buckets[r];return i?this._applyRefill(i,t):(i={tokens:this._bucketSize,lastAccess:t},this._buckets[r]=i),0===i.tokens||(i.tokens--,0===i.tokens&&this._onBucketRateLimited?.(e),0===i.tokens)}stop(){this._buckets={}}}var tl=to;class tZ{constructor(e,t,r){this.client=e,this._exceptionAutocaptureEnabled=t.enableExceptionAutocapture||!1,this._logger=r,this._rateLimiter=new tJ({...function(e={}){return{refillRate:e.exceptionRateLimiterRefillRate??e.__exceptionRateLimiterRefillRate??1,bucketSize:e.exceptionRateLimiterBucketSize??e.__exceptionRateLimiterBucketSize??10}}(t),refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(e){return P(e)&&"__posthog_previously_captured_error"in e&&!0===e.__posthog_previously_captured_error}static async buildEventMessage(e,t,r,i,s){let a={...s},n=e.buildFromUnknown(t,r);n.$exception_list=await e.modifyFrames(n.$exception_list);let o=tl.getInjectedReleaseId();return o&&(a.$release_id=o),{event:"$exception",distinctId:i,properties:{...n,...a},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(!function(t,r,i=tK){let s=globalThis.process;if(s){let a;if("strict"===i)return s.on("uncaughtExceptionMonitor",(e,r)=>tV(t,e,r));s.on("uncaughtException",(a=!1,Object.assign((i,s)=>{let n=e.g.process.listeners("uncaughtException").filter(e=>"domainUncaughtExceptionClear"!==e.name&&!0!==e._posthogErrorHandler).length;tV(t,i,s),a||0!==n||(a=!0,r(i))},{_posthogErrorHandler:!0})))}}(this.onException.bind(this),this.onFatalError.bind(this)),function(e,t=tK){let r=globalThis.process;r&&"throw"!==t&&"strict"!==t&&"warn-with-error-code"!==t&&r.on("unhandledRejection",t=>{e(t,{mechanism:{type:"onunhandledrejection",handled:!1}})})}(this.onException.bind(this)))}onException(e,t){this.client.addPendingPromise((async()=>{if(!tZ.isPreviouslyCapturedError(e)){let r=await tZ.buildEventMessage(this.client.getErrorPropertiesBuilder(),e,t),i=r.properties,s=i?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(s)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:s}):this.client._capturePreparedEvent(r,!1)}})())}async onFatalError(e){console.error(e),await this.client.shutdown(2e3),globalThis.process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}}class tY{getProperty(e){return this._memoryStorage[e]}setProperty(e,t){this._memoryStorage[e]=null!==t?t:void 0}constructor(){this._memoryStorage={}}}let tX="analytics";class t0 extends Error{constructor({requestId:e,drops:t,retryExhausted:r,cause:i}){super(t0.buildMessage(e,t,r,i)),this.name="CaptureV1Error",this.requestId=e,this.drops=t,this.retryExhausted=r,this.cause=i}static buildMessage(e,t,r,i){let s=`Capture V1 batch ${e} did not fully deliver: ${t.length} dropped, ${r.length} undelivered`;return i instanceof Error&&(s+=` (${i.message})`),s}}function t1(e){if("boolean"==typeof e)return e;if("number"==typeof e)return 0!==e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}}let t4=[{property:"$cookieless_mode",optionKey:"cookieless_mode",coerce:t1},{property:"$ignore_sent_at",optionKey:"disable_skew_correction",coerce:t1},{property:"$process_person_profile",optionKey:"process_person_profile",coerce:t1},{property:"$product_tour_id",optionKey:"product_tour_id",coerce:function(e){return"string"==typeof e?e:void 0}}],t2=[{property:"$session_id",field:"session_id"},{property:"$window_id",field:"window_id"}];function t3(e,t,r){void 0===r||t in e||(e[t]=r)}function t5(e){var t;let r={..."object"==typeof(t=e.properties)&&null!==t&&!Array.isArray(t)?e.properties:{}},i={};for(let{property:e,optionKey:t,coerce:s}of t4)if(e in r){let a=s(r[e]);void 0!==a&&(i[t]=a),delete r[e]}let s={};for(let{property:e,field:t}of t2)if(e in r){let i=r[e];"string"==typeof i&&(s[t]=i),delete r[e]}return delete r.$lib,delete r.$lib_version,t3(r,"$set",e.$set),t3(r,"$set_once",e.$set_once),{event:String(e.event??""),uuid:String(e.uuid??""),distinct_id:String(e.distinct_id??""),timestamp:function(e){if("string"==typeof e){let t=new Date(e);if(Number.isNaN(t.getTime()))return new Date().toISOString();let r=t.toISOString(),i=e.match(/\.(\d+)(?:Z|[+-]\d{2}:?\d{2})?$/i)?.[1];return i&&i.length>3?r.replace(/\.\d{3}Z$/,`.${i}Z`):r}if(e instanceof Date)return Number.isNaN(e.getTime())?new Date().toISOString():e.toISOString();let t=null==e?new Date:new Date(e);return Number.isNaN(t.getTime())?new Date().toISOString():t.toISOString()}(e.timestamp),...s,options:i,properties:r}}let t8=new Set([408,500,502,503,504]);class t9{constructor(e,t){this.config=e,this.maxBackoffMs=e.maxBackoffMs??3e4,this.fetchFn=t.fetch,this.onError=t.onError,this.now=t.now??Date.now,this.sleep=t.sleep??(e=>new Promise(t=>G(t,e))),this.generateRequestId=t.generateRequestId??es,this.compress=t.compress??y}async sendV1Batch(e){if(0===e.length)return;let t=this.generateRequestId(),r=new Date(this.now()).toISOString(),{batch:i}=function(e,{createdAt:t,historicalMigration:r}){let i={created_at:t,batch:e.map(t5)};return r&&(i.historical_migration=!0),i}(e,{createdAt:r,historicalMigration:this.config.historicalMigration}),s=`${this.config.host}/i/v1/analytics/events`,a=[],n=i,o=Math.max(1,this.config.maxAttempts);for(let e=1;e<=o;e++){let i,l,u=e===o,c=_({created_at:r,...this.config.historicalMigration?{historical_migration:!0}:{},batch:n});try{let{response:r,signal:o}=i=await this.sendOnce(s,c,e,t),{status:d}=r;if(d<200||d>=300)if(!u&&t8.has(d)){let t=this.parseRetryAfter(r);await i.waitFor(i.cancelBody()).catch(()=>{}),l=this.backoffDelay(e,t)}else{let e=await this.buildHttpError(r,d,i.waitFor);return this.surfaceBatchFailure(t,a,n,e)}else{let s;try{s=await i.waitFor(this.parseResponse(r))}catch(e){if(o.aborted)throw e;return this.surfaceBatchFailure(t,a,n,Error(`Capture V1 returned an unparseable ${d} response body`))}let c=this.classify(n,s,a);if(0===c.length)return this.surfacePartialDrops(t,a);if(u)return void this.onError(new t0({requestId:t,drops:a,retryExhausted:c.map(e=>e.uuid)}));n=c;let h=this.parseRetryAfter(r);l=this.backoffDelay(e,h)}}catch(r){if(i&&!i.signal.aborted)throw r;if(u)return this.surfaceBatchFailure(t,a,n,r);l=this.backoffDelay(e)}finally{i?.cleanup()}void 0!==l&&await this.sleep(l)}}async sendOnce(e,t,r,i){let s,a=this.buildHeaders(r,i),n=t;if(this.config.compressionEnabled){let e=await this.compress(t,this.config.isDebug);null!==e&&(n=e,a["Content-Encoding"]="gzip")}let o=new AbortController,l="waiting for response headers",u=new Promise((e,t)=>{s=G(()=>{let e=Error(`Capture V1 request timed out ${l} after ${this.config.requestTimeoutMs}ms`);e.name="AbortError",t(e),o.abort(e)},this.config.requestTimeoutMs)});try{let t,r=this.fetchFn(e,{method:"POST",headers:a,body:n,signal:o.signal}),i=!1;r.then(e=>{o.signal.aborted&&!i&&this.cancelBody(e)}).catch(()=>{});let c=await Promise.race([r,u]);i=!0,l="while reading the response body";let d=!1,h=()=>t??=this.cancelBody(c);return{response:c,signal:o.signal,waitFor:e=>Promise.race([e,u]),cancelBody:h,cleanup:()=>{!d&&(d=!0,clearTimeout(s),o.signal.aborted&&h())}}}catch(e){throw clearTimeout(s),e}}buildHeaders(e,t){let r=`${this.config.libraryId}/${this.config.libraryVersion}`,i={"Content-Type":"application/json",Authorization:`Bearer ${this.config.apiKey}`,"PostHog-Sdk-Info":r,"PostHog-Attempt":String(e),"PostHog-Request-Id":t,"PostHog-Request-Timestamp":new Date(this.now()).toISOString()};return this.config.userAgent&&(i["User-Agent"]=this.config.userAgent),i}classify(e,t,r){let i=t.results??{},s=[];for(let t of e){let e=i[t.uuid];e&&("drop"===e.result?r.push({uuid:t.uuid,details:e.details??void 0}):"retry"===e.result&&s.push(t))}return s}backoffDelay(e,t){let r=Math.min(this.config.initialRetryDelayMs*2**(e-1),this.maxBackoffMs);return void 0===t?r:Math.max(r,Math.min(t,this.maxBackoffMs))}parseRetryAfter(e){let t=e.headers?.get("Retry-After");if(!t)return;let r=t.trim();if(/^\d+$/.test(r)){let e=parseInt(r,10);return Number.isFinite(e)&&e>0?1e3*e:void 0}let i=Date.parse(r);if(Number.isNaN(i))return;let s=i-this.now();return s>0?s:void 0}async parseResponse(e){let t=JSON.parse(await e.text());if("object"!=typeof t||null===t||Array.isArray(t))throw Error("unexpected response shape");let r=t.results;if(void 0!==r&&("object"!=typeof r||null===r||Array.isArray(r)))throw Error("unexpected results shape");return{results:r??{}}}async buildHttpError(e,t,r){let i="";try{i=(await r(e.text())).slice(0,512)}catch{}let s=i?`: ${i}`:"";return Error(`Capture V1 request failed with HTTP ${t}${s}`)}surfaceBatchFailure(e,t,r,i){this.onError(new t0({requestId:e,drops:t,retryExhausted:r.map(e=>e.uuid),cause:i}))}surfacePartialDrops(e,t){t.length>0&&this.onError(new t0({requestId:e,drops:t,retryExhausted:[]}))}async cancelBody(e){try{await e.body?.cancel()}catch{}}}let t6="ai-capture",t7="/i/v0/ai/batch/",re=new TextEncoder;function rt(e){return re.encode(_(e)).length}let rr=new Set;function ri(e,t){rr.has(e)||(rr.add(e),console.warn(`[PostHog] ${t}`))}class rs extends ts{constructor(e,t={}){const r=function(e){return"string"==typeof e?e.trim():""}(e),i={...t,maxQueueSize:t.maxQueueSize??1e4,flushInterval:t.flushInterval??5e3,host:function(e){return("string"==typeof e?e.trim():"")||"https://us.i.posthog.com"}(t.host),personalApiKey:function(e){return("string"==typeof e?e.trim():"")||void 0}(t.secretKey??t.personalApiKey)};if(super(r,i),this._memoryStorage=new tY,this._aiCaptureRouteActive=!1,this._minimalFlagCalledEvents=!1,this.options=i,this.captureMode=function(){let e="u">typeof process?process.env?.POSTHOG_CAPTURE_MODE:void 0;return"v0"===e||"v1"===e?e:"v0"}(),this.enableFullAiCapture=!0===i.enableFullAiCapture,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval="number"==typeof i.featureFlagsPollingInterval?Math.max(i.featureFlagsPollingInterval,100):3e4,"number"==typeof i.waitUntilDebounceMs&&(this.options.waitUntilDebounceMs=Math.max(i.waitUntilDebounceMs,0)),"number"==typeof i.waitUntilMaxWaitMs&&(this.options.waitUntilMaxWaitMs=Math.max(i.waitUntilMaxWaitMs,0)),!this.disabled&&i.personalApiKey){if(i.personalApiKey.includes("phc_"))throw Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');!1!==i.enableLocalEvaluation&&(this.featureFlagsPoller=new tO({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:i.personalApiKey,projectApiKey:r,timeout:i.requestTimeout??1e4,host:this.host,fetch:i.fetch,onError:e=>{this._events.emit("error",e)},onLoad:e=>{this._events.emit("localEvaluationFlagsLoaded",e)},onMinimalFlagCalledEvents:e=>{this._minimalFlagCalledEvents=e},customHeaders:this.getCustomHeaders(),cacheProvider:i.flagDefinitionCacheProvider,strictLocalEvaluation:i.strictLocalEvaluation}))}this.errorTracking=new tZ(this,i,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=i.maxCacheSize||5e4}enqueue(e,t,r,i){super.enqueue(e,t,r,i),this.scheduleDebouncedFlush()}async flush(){let e=this.flushWithPendingPromises(),t=this.options.waitUntil;if(t&&!this._waitUntilCycle)try{t(e.catch(()=>{}))}catch{}return e}scheduleDebouncedFlush(){let e=this.options.waitUntil;if(!e||this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let t,r=new Promise(e=>{t=e});try{e(r)}catch{return}this._waitUntilCycle={resolve:t,startedAt:Date.now(),timer:void 0}}let t=Date.now()-this._waitUntilCycle.startedAt,r=this.options.waitUntilMaxWaitMs??500;if(void 0!==this._waitUntilCycle.timer&&clearTimeout(this._waitUntilCycle.timer),t>=r)return void this.resolveWaitUntilFlush();let i=this.options.waitUntilDebounceMs??50;this._waitUntilCycle.timer=G(()=>{this.resolveWaitUntilFlush()},i)}_consumeWaitUntilCycle(){let e=this._waitUntilCycle;return e&&(clearTimeout(e.timer),this._waitUntilCycle=void 0),e?.resolve}async resolveWaitUntilFlush(){let e=this._consumeWaitUntilCycle();try{await this.flushWithPendingPromises()}catch{}finally{e?.()}}getPersistedProperty(e){return this._memoryStorage.getProperty(e)}setPersistedProperty(e,t){return this._memoryStorage.setProperty(e,t)}fetch(e,t){return this.options.fetch?this.options.fetch(e,t):fetch(e,t)}getQueueRouteKey(e){var t;return"v1"===this.captureMode&&"string"==typeof(t=e).event&&t.event.startsWith("$ai_")?"ai":tX}persistedQueueKeyForRoute(e){return e===t6?g.AiCaptureQueue:"ai"===e?g.AiQueue:g.Queue}getActiveQueueRoutes(){let e="v1"===this.captureMode?[tX,"ai"]:[tX];return this._aiCaptureRouteActive&&e.push(t6),e}getBatchEndpointPath(e){return e===t6?t7:super.getBatchEndpointPath(e)}async sendBatch(e,t,r=tX){if(r===t6)return this.sendAiCaptureBatch(e,t);if("v1"!==this.captureMode||"ai"===r)return super.sendBatch(e,t,r);let i=e.filter(e=>void 0!==e);await this.getV1Sender().sendV1Batch(i)}async sendAiCaptureBatch(e,t){let{batches:r,dropped:i}=function(e,t=8388608,r=5242880){let i=[],s=[],a=[],n=0;for(let o of e){if(void 0===o)continue;let e=rt(o);if(e>t){s.push({event:"string"==typeof o.event?o.event:"unknown",bytes:e});continue}a.length>0&&n+e>r&&(i.push(a),a=[],n=0),a.push(o),n+=e}return a.length>0&&i.push(a),{batches:i,dropped:s}}(e);for(let{event:e,bytes:t}of i){let r=`Event ${e} (${t} bytes) exceeds the 8MiB limit for ${t7}, dropping.`;this._logger.error(r),this._events.emit("error",Error(r))}for(let e of r)await this.sendAiSubBatch(e,t)}async sendAiSubBatch(e,t){try{await super.sendBatch(e,t,t6)}catch(i){if(!te(i))throw i;if(1===e.length){let[t]=e,r="string"==typeof t.event?t.event:"unknown",i=`Event ${r} (${rt(t)} bytes) was rejected with 413 by ${t7} on its own, dropping.`;this._logger.error(i),this._events.emit("error",Error(i));return}let r=Math.ceil(e.length/2);await this.sendAiSubBatch(e.slice(0,r),t),await this.sendAiSubBatch(e.slice(r),t)}}getV1Sender(){return this._v1Sender||(this._v1Sender=new t9({host:this.host,apiKey:this.apiKey,libraryId:this.getLibraryId(),libraryVersion:this.getLibraryVersion(),userAgent:this.getCustomUserAgent()||void 0,historicalMigration:this.historicalMigration,compressionEnabled:!this.disableCompression,requestTimeoutMs:this.requestTimeout,maxAttempts:(this.options.fetchRetryCount??3)+1,initialRetryDelayMs:this.options.fetchRetryDelay??3e3,isDebug:this.isDebug},{fetch:(e,t)=>this.fetch(e,t),onError:e=>this._events.emit("error",e),compress:e=>this.compressPayload(e)})),this._v1Sender}getLibraryVersion(){return"5.49.1"}get metrics(){var e;let t;return this._metrics||(this._metrics=new X(this,(e=this.options.metrics,t=e?.resourceAttributes,{serviceName:t?.["service.name"]??e?.serviceName,serviceVersion:t?.["service.version"]??e?.serviceVersion,environment:t?.["deployment.environment"]??e?.environment,resourceAttributes:t,beforeSend:e?.beforeSend,flushIntervalMs:e?.flushIntervalMs??1e4,maxSeriesPerFlush:e?.maxSeriesPerFlush??1e3}),this._logger)),this._metrics}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}getCommonEventProperties(){let e=super.getCommonEventProperties();return(this.options.isServer??!0)&&(e.$is_server=!0),e}enable(){return super.optIn()}disable(){return super.optOut()}debug(e=!0){super.debug(e),this.featureFlagsPoller?.debug(e)}_warnIfInvalidCapture(e,t,r){"string"==typeof e&&this._logger.warn(t),"$exception"!==e.event||e._originatedFromCaptureException||this._logger.warn(r)}_sendPreparedEvent(e,t,r,i,s){return this.addPendingPromise(this._prepareEventMessage(t,i).then(({distinctId:t,event:i,properties:a,options:n})=>{let o={timestamp:n.timestamp,disableGeoip:n.disableGeoip,uuid:n.uuid},l={distinctId:t,event:i,properties:{...a,...this.getCommonEventProperties()}};return r?this.sendImmediate(e,l,o,s):this.enqueue(e,l,o,s)}).catch(e=>{e&&console.error(e)}))}_capturePreparedEvent(e,t){return this._sendPreparedEvent("capture",e,t)}capture(e){this._warnIfInvalidCapture(e,"Called capture() with a string as the first argument when an object was expected.","Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this._capturePreparedEvent(e,!1)}async captureImmediate(e){return this._warnIfInvalidCapture(e,"Called captureImmediate() with a string as the first argument when an object was expected.","Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this._capturePreparedEvent(e,!0)}captureAi(e){if(this.disabled)return;let t=q(e.uuid,es);return this._sendPreparedAiEvent({...e,uuid:t},!1),t}async captureAiImmediate(e){if(this.disabled)return;let t=q(e.uuid,es);return await this._sendPreparedAiEvent({...e,uuid:t},!0),t}_sendPreparedAiEvent(e,t){return"string"!=typeof e?.event||e.event.startsWith("$ai_")||this._logger.debug(`captureAi called with non-AI event ${e.event}; routing it to the AI endpoint anyway.`),this._aiCaptureRouteActive=!0,this._sendPreparedEvent("capture",e,t,void 0,t6)}identify({distinctId:e,properties:t={},disableGeoip:r}){let{$set:i,$set_once:s,$anon_distinct_id:a,...n}=t;this._sendPreparedEvent("identify",{distinctId:e,event:"$identify",properties:{$set:i||n,$set_once:s||{},$anon_distinct_id:a??void 0},disableGeoip:r},!1,{includeContextProperties:!1})}async identifyImmediate({distinctId:e,properties:t={},disableGeoip:r}){let{$set:i,$set_once:s,$anon_distinct_id:a,...n}=t;await this._sendPreparedEvent("identify",{distinctId:e,event:"$identify",properties:{$set:i||n,$set_once:s||{},$anon_distinct_id:a??void 0},disableGeoip:r},!0,{includeContextProperties:!1})}setPersonProperties({distinctId:e,properties:t={},propertiesOnce:r={}}){if(0===Object.keys(t).length&&0===Object.keys(r).length)return;let i={};Object.keys(t).length>0&&(i.$set=t),Object.keys(r).length>0&&(i.$set_once=r),this.capture({distinctId:e,event:"$set",properties:i})}unsetPersonProperties({distinctId:e,properties:t}){let r=(Array.isArray(t)?t:[t]).filter(e=>"string"==typeof e&&e.trim().length>0);0!==r.length&&this.capture({distinctId:e,event:"$set",properties:{$unset:r}})}alias(e){this._sendPreparedEvent("alias",{distinctId:e.distinctId,event:"$create_alias",properties:{distinct_id:e.distinctId,alias:e.alias},disableGeoip:e.disableGeoip},!1,{includeContextProperties:!1})}async aliasImmediate(e){await this._sendPreparedEvent("alias",{distinctId:e.distinctId,event:"$create_alias",properties:{distinct_id:e.distinctId,alias:e.alias},disableGeoip:e.disableGeoip},!0,{includeContextProperties:!1})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(e=3e4){return!!this.isLocalEvaluationReady()||void 0!==this.featureFlagsPoller&&new Promise(t=>{let r=setTimeout(()=>{i(),t(!1)},e),i=this._events.on("localEvaluationFlagsLoaded",e=>{clearTimeout(r),i(),t(e>0)})})}_resolveDistinctId(e,t){return"string"==typeof e?{distinctId:e,options:t}:{distinctId:this.context?.get()?.distinctId,options:e}}async _getFeatureFlagResult(e,t,r={},i){let s,a,n,o,l,u,c,d;if(this.disabled)return void this._logger.warn("The client is disabled");let h=r.sendFeatureFlagEvents??!0;if(void 0!==this._flagOverrides&&e in this._flagOverrides){let t=this._flagOverrides[e];if(void 0===t)return;let r=this._payloadOverrides?.[e];return{key:e,enabled:!1!==t,variant:"string"==typeof t?t:void 0,payload:r}}let{groups:g,disableGeoip:p}=r,{onlyEvaluateLocally:f,personProperties:m,groupProperties:y}=r,_=this.addLocalPersonAndGroupProperties(t,g,m,y);m=_.allPersonProperties,y=_.allGroupProperties;let v=this.createFeatureFlagEvaluationContext(t,g,this.personPropertiesForLocalEvaluation(t,m),y);void 0==f&&(f=this.options.strictLocalEvaluation??!1);let b=!1;if(void 0!==this.featureFlagsPoller){await this.featureFlagsPoller?.loadFeatureFlags();let t=this.featureFlagsPoller?.featureFlagsByKey[e];if(t)try{let r=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(t,v,{matchValue:i});if(r){b=!0;let i=r.value;l=t.id,c="Evaluated locally",d=t.has_experiment,s={key:e,enabled:!1!==i,variant:"string"==typeof i?i:void 0,payload:r.payload??void 0}}}catch(t){if(t instanceof tA||t instanceof tk)this._logger?.info(`${t.name} when computing flag locally: ${e}: ${t.message}`);else throw t}}if(!b&&!f){let t=await super.getFeatureFlagDetailsStateless(v.distinctId,v.groups,m,y,p,[e]);if(void 0===t)o=tF.UNKNOWN_ERROR;else{this._minimalFlagCalledEvents=!0===t.minimalFlagCalledEvents,a=t.requestId,n=t.evaluatedAt;let r=[];t.errorsWhileComputingFlags&&r.push(tF.ERRORS_WHILE_COMPUTING),t.quotaLimited?.includes("feature_flags")&&r.push(tF.QUOTA_LIMITED);let i=t.flags[e];if(void 0===i)r.push(tF.FLAG_MISSING);else{let t;if(l=i.metadata?.id,u=i.metadata?.version,c=i.reason?.description??i.reason?.code,d=i.metadata?.has_experiment,i.metadata?.payload!==void 0)try{t=JSON.parse(i.metadata.payload)}catch{t=i.metadata.payload}s={key:e,enabled:i.enabled,variant:i.variant,payload:t}}r.length>0&&(o=r.join(","))}}if(h){let r=void 0===s?void 0:!1!==s.enabled&&(s.variant??!0),i={$feature_flag:e,$feature_flag_response:r,$feature_flag_id:l,$feature_flag_version:u,$feature_flag_reason:c,locally_evaluated:b,[`$feature/${e}`]:r,$feature_flag_request_id:a,$feature_flag_evaluated_at:b?Date.now():n};if(void 0!==d&&(i.$feature_flag_has_experiment=d),b&&this.featureFlagsPoller){let e=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();void 0!==e&&(i.$feature_flag_definitions_loaded_at=e)}o&&(i.$feature_flag_error=o),this._captureFlagCalledEventIfNeeded({distinctId:t,key:e,response:r,groups:g,disableGeoip:p,properties:i})}return void 0!==s&&void 0!==this._payloadOverrides&&e in this._payloadOverrides&&(s={...s,payload:this._payloadOverrides[e]}),s}async getFeatureFlag(e,t,r){ri("getFeatureFlag","`getFeatureFlag` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlag(key)` instead — this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(e,t,{...r,sendFeatureFlagEvents:r?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(void 0!==i)return!1!==i.enabled&&(i.variant??!0)}async getFeatureFlagPayload(e,t,r,i){if(ri("getFeatureFlagPayload","`getFeatureFlagPayload` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.getFlagPayload(key)` instead — this consolidates flag evaluation into a single `/flags` request per incoming request."),void 0!==this._payloadOverrides&&e in this._payloadOverrides)return this._payloadOverrides[e];let s=await this._getFeatureFlagResult(e,t,{...i,sendFeatureFlagEvents:!1},r);if(void 0!==s)return s.payload??null}async getFeatureFlagResult(e,t,r){let{distinctId:i,options:s}=this._resolveDistinctId(t,r);return i?this._getFeatureFlagResult(e,i,{...s,sendFeatureFlagEvents:s?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required — pass it explicitly or use withContext()")}async getRemoteConfigPayload(e){if(this.disabled)return void this._logger.warn("The client is disabled");if(!this.options.personalApiKey)throw Error("Personal API key is required for remote config payload decryption");let t=await this._requestRemoteConfigPayload(e);if(!t)return;let r=await t.json();if("string"==typeof r)try{return JSON.parse(r)}catch(e){}return r}async isFeatureEnabled(e,t,r){ri("isFeatureEnabled","`isFeatureEnabled` is deprecated and will be removed in a future major version. Use `posthog.evaluateFlags(distinctId, ...)` and call `flags.isEnabled(key)` instead — this consolidates flag evaluation into a single `/flags` request per incoming request.");let i=await this._getFeatureFlagResult(e,t,{...r,sendFeatureFlagEvents:r?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});return void 0===i?void 0:!1!==i.enabled&&!!(i.variant??!0)}async getAllFlags(e,t){let{distinctId:r,options:i}=this._resolveDistinctId(e,t);return r?(await this.getAllFlagsAndPayloads(r,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags — pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(e,t){let{distinctId:r,options:i}=this._resolveDistinctId(e,t);if(!r)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads — pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};if(this.disabled)return this._logger.warn("The client is disabled"),{featureFlags:{},featureFlagPayloads:{}};let{groups:s,disableGeoip:a,flagKeys:n}=i||{},{onlyEvaluateLocally:o,personProperties:l,groupProperties:u}=i||{},c=this.addLocalPersonAndGroupProperties(r,s,l,u);l=c.allPersonProperties,u=c.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,this.personPropertiesForLocalEvaluation(r,l),u);void 0==o&&(o=this.options.strictLocalEvaluation??!1);let h=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,n),g={},p={},f=!0;if(h&&(g=h.response,p=h.payloads,f=h.fallbackToFlags),f&&!o){let e=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,l,u,a,n);g={...g,...e.flags||{}},p={...p,...e.payloads||{}}}return void 0!==this._flagOverrides&&(g={...g,...this._flagOverrides}),void 0!==this._payloadOverrides&&(p={...p,...this._payloadOverrides}),{featureFlags:g,featureFlagPayloads:p}}async evaluateFlags(e,t){let r,i,{distinctId:s,options:a}=this._resolveDistinctId(e,t);if(!s)return this._logger.warn("[PostHog] distinctId is required to evaluate feature flags — pass it explicitly or use withContext()"),new tx({host:this._getFeatureFlagEvaluationsHost(),distinctId:"",flags:{}});if(this.disabled)return this._logger.warn("The client is disabled"),new tx({host:this._getFeatureFlagEvaluationsHost(),distinctId:s,flags:{}});let{groups:n,disableGeoip:o,flagKeys:l}=a||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:d}=a||{},h=this.addLocalPersonAndGroupProperties(s,n,c,d);c=h.allPersonProperties,d=h.allGroupProperties;let g=this.createFeatureFlagEvaluationContext(s,n,this.personPropertiesForLocalEvaluation(s,c),d);void 0==u&&(u=this.options.strictLocalEvaluation??!1);let p={},f=!1,m=!1,y=await this.featureFlagsPoller?.getAllFlagsAndPayloads(g,l),_=new Set;if(y)for(let[e,t]of Object.entries(y.response)){let r=this.featureFlagsPoller?.featureFlagsByKey[e];p[e]={key:e,enabled:!1!==t,variant:"string"==typeof t?t:void 0,payload:y.payloads[e],id:r?.id,version:void 0,reason:"Evaluated locally",locallyEvaluated:!0,hasExperiment:r?.has_experiment},_.add(e)}if((!y||y.fallbackToFlags)&&!u){let e=await super.getFeatureFlagDetailsStateless(g.distinctId,g.groups,c,d,o,l);if(e)for(let[t,s]of(this._minimalFlagCalledEvents=!0===e.minimalFlagCalledEvents,r=e.requestId,i=e.evaluatedAt,f=!!e.errorsWhileComputingFlags,m=Array.isArray(e.quotaLimited)&&e.quotaLimited.includes("feature_flags"),Object.entries(e.flags))){let e;if(!_.has(t)){if(s.metadata?.payload!==void 0)try{e=JSON.parse(s.metadata.payload)}catch{e=s.metadata.payload}p[t]={key:t,enabled:s.enabled,variant:s.variant,payload:e,id:s.metadata?.id,version:s.metadata?.version,reason:s.reason?.description??s.reason?.code,locallyEvaluated:!1,hasExperiment:s.metadata?.has_experiment}}}}if(void 0!==this._flagOverrides)for(let[e,t]of Object.entries(this._flagOverrides)){if(void 0===t){delete p[e];continue}let r=p[e];p[e]={key:e,enabled:!1!==t,variant:"string"==typeof t?t:void 0,payload:r?.payload,id:r?.id,version:r?.version,reason:r?.reason,locallyEvaluated:r?.locallyEvaluated??!1,hasExperiment:r?.hasExperiment}}if(void 0!==this._payloadOverrides)for(let[e,t]of Object.entries(this._payloadOverrides)){let r=p[e];r&&(p[e]={...r,payload:t})}return new tx({host:this._getFeatureFlagEvaluationsHost(),distinctId:s,groups:n,disableGeoip:o,flags:p,requestId:r,evaluatedAt:i,flagDefinitionsLoadedAt:this.featureFlagsPoller?.getFlagDefinitionsLoadedAt(),errorsWhileComputing:f,quotaLimited:m})}_shouldSendMinimalFlagCalledEvent(e,t){return"$feature_flag_called"===e&&this._minimalFlagCalledEvents&&!1===t.$feature_flag_has_experiment}_captureFlagCalledEventIfNeeded(e){let{distinctId:t,key:r,response:i,groups:s,disableGeoip:a,properties:n}=e,o=s&&Object.keys(s).length>0?`_${JSON.stringify(Object.entries(s).sort(([e],[t])=>e<t?-1:+(e>t)))}`:"",l=`${r}_${i}${o}`;t in this.distinctIdHasSentFlagCalls&&this.distinctIdHasSentFlagCalls[t].has(l)||(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),this.distinctIdHasSentFlagCalls[t]instanceof Set?this.distinctIdHasSentFlagCalls[t].add(l):this.distinctIdHasSentFlagCalls[t]=new Set([l]),this.capture({distinctId:t,event:"$feature_flag_called",properties:n,groups:s,disableGeoip:a}))}_getFeatureFlagEvaluationsHost(){return this._featureFlagEvaluationsHost||(this._featureFlagEvaluationsHost={captureFlagCalledEventIfNeeded:e=>this._captureFlagCalledEventIfNeeded(e),logWarning:e=>{!1!==this.options.featureFlagsLogWarnings&&console.warn(`[PostHog] ${e}`)}}),this._featureFlagEvaluationsHost}groupIdentify({groupType:e,groupKey:t,properties:r,distinctId:i,disableGeoip:s}){this._sendPreparedEvent("capture",{distinctId:i||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{}},disableGeoip:s},!1,{includeContextProperties:!1})}async groupIdentifyImmediate({groupType:e,groupKey:t,properties:r,distinctId:i,disableGeoip:s}){await this._sendPreparedEvent("capture",{distinctId:i||`$${e}_${t}`,event:"$groupidentify",properties:{$group_type:e,$group_key:t,$group_set:r||{}},disableGeoip:s},!0,{includeContextProperties:!1})}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(e){let t=e=>Object.fromEntries(e.map(e=>[e,!0]));if(!1===e){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(e)){this._flagOverrides=t(e);return}if(this._isFeatureFlagOverrideOptions(e)){"flags"in e&&(!1===e.flags?this._flagOverrides=void 0:Array.isArray(e.flags)?this._flagOverrides=t(e.flags):void 0!==e.flags&&(this._flagOverrides={...e.flags})),"payloads"in e&&(!1===e.payloads?this._payloadOverrides=void 0:void 0!==e.payloads&&(this._payloadOverrides={...e.payloads}));return}this._flagOverrides={...e}}_isFeatureFlagOverrideOptions(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;if("flags"in e){let t=e.flags;if(!1===t||Array.isArray(t)||"object"==typeof t&&null!==t)return!0}if("payloads"in e){let t=e.payloads;if(!1===t||"object"==typeof t&&null!==t)return!0}return!1}withContext(e,t,r){return this.context?this.context.run(e,t,r):t()}getContext(){return this.context?.get()}enterContext(e,t){this.context?.enter(e,t)}async _shutdown(e){let t=Date.now()+(e??3e4),r=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(e),this.errorTracking.shutdown(),this._metrics&&(await K(this._metrics.flush().catch(()=>{}),Math.max(0,t-Date.now())),this._metrics.reset());try{return await super._shutdown(Math.max(0,t-Date.now()))}finally{this.distinctIdHasSentFlagCalls={},r?.()}}async _requestRemoteConfigPayload(e){if(this.disabled||!this.apiKey||!this.options.personalApiKey)return;let t=`${this.host}/api/projects/@current/feature_flags/${e}/remote_config?token=${encodeURIComponent(this.apiKey)}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&"number"==typeof this.options.requestTimeout){let e=new AbortController;i=G(()=>{e.abort()},this.options.requestTimeout),r.signal=e.signal}try{return await this.fetch(t,r)}catch(e){this._events.emit("error",e);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(e,t){if(!e)return{personProperties:{},groupProperties:{}};let r={},i={};for(let[s,a]of Object.entries(e))if(k(a,"Object")&&t&&s in t){let e={};for(let[t,r]of Object.entries(a))e[String(t)]=String(r);i[String(s)]=e}else r[String(s)]=String(a);return{personProperties:r,groupProperties:i}}async getFeatureFlagsForEvent(e,t,r,i){if(this.disabled||!this.apiKey)return void this._logger.warn("The client is disabled");let s=i?.personProperties||{},a=i?.groupProperties||{},n=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation)if(!((this.featureFlagsPoller?.featureFlags?.length||0)>0))return{};else{let i={};for(let[e,r]of Object.entries(t||{}))i[e]=String(r);return await this.getAllFlags(e,{groups:i,personProperties:s,groupProperties:a,disableGeoip:r,onlyEvaluateLocally:!0,flagKeys:n})}if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let i={};for(let[e,r]of Object.entries(t||{}))i[e]=String(r);return await this.getAllFlags(e,{groups:i,personProperties:s,groupProperties:a,disableGeoip:r,onlyEvaluateLocally:!0,flagKeys:n})}return(await super.getFeatureFlagsStateless(e,t,s,a,r)).flags}addLocalPersonAndGroupProperties(e,t,r,i){let s={...r||{}},a={};if(t)for(let e of Object.keys(t))a[e]={$group_key:t[e],...i?.[e]||{}};return{allPersonProperties:s,allGroupProperties:a}}personPropertiesForLocalEvaluation(e,t){return{distinct_id:e,...t||{}}}createFeatureFlagEvaluationContext(e,t,r,i){return{distinctId:e,groups:t||{},personProperties:r||{},groupProperties:i||{},evaluationCache:{}}}captureException(e,t,r,i,s){if(!tZ.isPreviouslyCapturedError(e)){let a=Error("PostHog syntheticException");this.addPendingPromise(tZ.buildEventMessage(this.getErrorPropertiesBuilder(),e,{syntheticException:a},t,r).then(e=>this._capturePreparedEvent({...e,uuid:i,flags:s},!1)))}}async captureExceptionImmediate(e,t,r,i){if(!tZ.isPreviouslyCapturedError(e)){let s=Error("PostHog syntheticException");return this.addPendingPromise(tZ.buildEventMessage(this.getErrorPropertiesBuilder(),e,{syntheticException:s},t,r).then(e=>this.captureImmediate({...e,flags:i})))}}async prepareEventMessage(e){return this._prepareEventMessage(e)}async _prepareEventMessage(e,t={}){let{distinctId:r,event:i,properties:s,groups:a,flags:n,sendFeatureFlags:o,timestamp:l,disableGeoip:u,uuid:c}=e,d=this.context?.get(),g=t.includeContextProperties??!0,p=r||d?.distinctId,f=g?{...this.props,...d?.properties||{},...s||{}}:{...s||{}};p||(p=es(),f.$process_person_profile=!1),g&&d?.sessionId&&!f.$session_id&&(f.$session_id=d.sessionId);let m=this._shouldSendMinimalFlagCalledEvent(i,f)?h(f):f,y=this._runBeforeSend({distinctId:p,event:i,properties:m,groups:a,flags:n,sendFeatureFlags:o,timestamp:l,disableGeoip:u,uuid:c});if(!y)return Promise.reject(null);let _=await Promise.resolve().then(async()=>{if(n)return o&&console.warn("[PostHog] Both `flags` and `sendFeatureFlags` were passed to capture(); using `flags` and ignoring `sendFeatureFlags`."),n._getEventProperties();if(o){ri("sendFeatureFlags","`sendFeatureFlags` is deprecated and will be removed in a future major version. Pass a `flags` snapshot from `posthog.evaluateFlags(...)` instead — it avoids a second `/flags` request per capture and guarantees the event carries the exact flag values your code branched on.");var e=await this.getFeatureFlagsForEvent(y.distinctId,a,u,"object"==typeof o?o:void 0);if(!e)return{};let t={};for(let[r,i]of Object.entries(e))t[`$feature/${r}`]=i;let r=Object.keys(e).filter(t=>!1!==e[t]).sort();return r.length>0&&(t.$active_feature_flags=r),t}return{}}).catch(()=>({})).then(e=>{let t=y.groups||a;return{...e,...y.properties||{},...void 0!==t&&Object.keys(t).length>0?{$groups:t}:{}}});return"$pageview"===y.event&&this.options.__preview_capture_bot_pageviews&&"string"==typeof _.$raw_user_agent&&tP(_.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(y.event="$bot_pageview",_.$browser_type="bot"),{distinctId:y.distinctId,event:y.event,properties:_,options:{timestamp:y.timestamp,disableGeoip:y.disableGeoip,uuid:y.uuid}}}_runBeforeSend(e){let t=this.options.before_send;if(!t)return e;let r=Array.isArray(t)?t:[t],i=e;for(let t of r){if(!(i=t(i)))return this._logger.info(`Event '${e.event}' was rejected in beforeSend function`),null;if(!i.properties||0===Object.keys(i.properties).length){let e=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(e)}}return i}}var tl=to,ra=e.i(78500);class rn{constructor(){this.storage=new ra.AsyncLocalStorage}get(){return this.storage.getStore()}run(e,t,r){return this.storage.run(this.resolve(e,r),t)}enter(e,t){this.storage.enterWith(this.resolve(e,t))}resolve(e,t){if(t?.fresh===!0)return e;let r=this.get()||{};return{distinctId:e.distinctId??r.distinctId,sessionId:e.sessionId??r.sessionId,properties:{...r.properties||{},...e.properties||{}}}}}var ro=e.i(27028);let rl=(0,e.i(12057).promisify)(ro.gzip);async function ru(e,t=!0){try{let t=await rl(e);return new Blob([new Uint8Array(t)])}catch(e){return t&&console.error("Failed to gzip compress data",e),null}}var tl=to;let rc="posthog-node";function rd(e,{organization:t,projectId:r,prefix:i,severityAllowList:s=["error"],sendExceptionsToPostHog:a=!0}={}){return n=>{if(!("*"===s||s.includes(n.level)))return n;n.tags||(n.tags={});let o=n.tags[rg.POSTHOG_ID_TAG];if(void 0===o)return n;let l=e.options.host??"https://us.i.posthog.com",u=new URL(`/project/${e.apiKey}/person/${o}`,l).toString();n.tags["PostHog Person URL"]=u;let c=n.exception?.values||[],d=c.map(e=>({...e,stacktrace:e.stacktrace?{...e.stacktrace,type:"raw",frames:(e.stacktrace.frames||[]).map(e=>({...e,platform:"node:javascript"}))}:void 0})),h={$exception_message:c[0]?.value||n.message,$exception_type:c[0]?.type,$exception_level:n.level,$exception_list:d,$sentry_event_id:n.event_id,$sentry_exception:n.exception,$sentry_exception_message:c[0]?.value||n.message,$sentry_exception_type:c[0]?.type,$sentry_tags:n.tags},g=tl.getInjectedReleaseId();return g&&(h.$release_id=g),t&&r&&(h.$sentry_url=(i||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+n.event_id),a&&e.capture({event:"$exception",distinctId:o,properties:h}),n}}function rh(e,t){let r=rd(e,t);return{name:rc,processEvent:e=>r(e)}}class rg{static #e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(e,t,r,i,s){this.name=rc,this.name=rc,this.setupOnce=function(a,n){a(rd(e,{organization:t,projectId:n()?.getClient()?.getDsn()?.projectId,prefix:r,severityAllowList:i,sendExceptionsToPostHog:s??!0}))}}}e.s(["PostHogSentryIntegration",0,rg,"createEventProcessor",0,rd,"sentryIntegration",0,rh],91573);let rp=/[\x00-\x1f\x7f-\x9f]/g;function rf(e,t,r){null!=r&&""!==r&&(e[t]=r)}function rm(e){return Array.isArray(e)?e[0]:e}function ry(e){if(Array.isArray(e)){for(let t of e){let e=ry(t);if(void 0!==e)return e}return}if("string"!=typeof e)return;let t=e.replace(rp,"").trim();if(t)return t.length>1e3?t.slice(0,1e3):t}function r_(e,t){var r,i;let s,{sessionId:a,distinctId:n}=function(e){if(!e)return{};let t=ry(e["x-posthog-session-id"]),r=ry(e["x-posthog-distinct-id"]);return{...void 0!==t?{sessionId:t}:{},...void 0!==r?{distinctId:r}:{}}}(t.headers),o={},l=!0===e.options.disable_capture_url_hashes;return rf(o,"$current_url",(r=t.originalUrl||t.url,l?H(r):r)),rf(o,"$request_method",t.method),rf(o,"$request_path",(i=t.path,s=function(e){if(!e)return e;let t=e.indexOf("?"),r=e.indexOf("#");return -1===t||-1!==r&&r<t?e:`${e.slice(0,t)}${-1===r?"":e.slice(r)}`}(i),l?H(s):s)),rf(o,"$user_agent",rm(t.headers["user-agent"])),rf(o,"$ip",function(e){let t=rm(e.headers["x-forwarded-for"]);if(t){let e=t.split(",")[0].trim();if(e)return e}return e.socket?.remoteAddress}(t)),{...void 0!==a?{sessionId:a}:{},...void 0!==n?{distinctId:n}:{},properties:o}}function rv(e,t){var r;t.use((r=e,(e,t,i)=>{r.withContext(r_(r,e),()=>i())}))}function rb(e,t){var r;t.use((r=e,(e,t,i,s)=>{if(tZ.isPreviouslyCapturedError(e))return void s(e);let a=r_(r,t),n=Error("Synthetic exception"),o={...void 0!==a.sessionId?{$session_id:a.sessionId}:{},...a.properties||{},$response_status_code:i.statusCode};r.addPendingPromise(tZ.buildEventMessage(r.getErrorPropertiesBuilder(),e,{mechanism:{type:"middleware",handled:!1},syntheticException:n},a.distinctId,o).then(e=>r._capturePreparedEvent(e,!1))),s(e)}))}e.s(["setupExpressErrorHandler",0,rb,"setupExpressRequestContext",0,rv],93546),e.s([],92998);class rw extends rs{getLibraryId(){return"posthog-node"}compressPayload(e){return ru(e,this.isDebug)}initializeContext(){return new rn}createErrorPropertiesBuilder(){let e;return new tl.ErrorPropertiesBuilder([new tl.EventCoercer,new tl.ErrorCoercer,new tl.ObjectCoercer,new tl.StringCoercer,new tl.PrimitiveCoercer],tl.createStackParser("node:javascript",tl.nodeStackLineParser),[(e=function(e=process.argv[1]?(0,o.dirname)(process.argv[1]):process.cwd(),t="\\"===o.sep){let r=t?l(e):e;return e=>{if(!e)return;let i=t?l(e):e,{dir:s,base:a,ext:n}=o.posix.parse(i);(".js"===n||".mjs"===n||".cjs"===n)&&(a=a.slice(0,-1*n.length));let u=decodeURIComponent(a);s||(s=".");let c=s.lastIndexOf("/node_modules");if(c>-1)return`${s.slice(c+14).replace(/\//g,".")}:${u}`;if(s.startsWith(r)){let e=s.slice(r.length+1).replace(/\//g,".");return e?`${e}:${u}`:u}return u}}(),async t=>{for(let r of t)r.module=e(r.filename);return t}),e=>tf(e,void 0,this._logger),function(e=process.cwd()){o.sep;let t=e=>e,r=t(e);return async e=>{for(let i of e)!(!i.filename||i.filename.startsWith("node:")||i.filename.startsWith("data:"))&&(0,o.isAbsolute)(i.filename)&&(i.filename=t((0,o.relative)(r,t(i.filename))));return e}}()])}}e.s(["PostHog",0,rw],47839),e.i(47839),e.i(92998),e.i(91573),e.i(93546),e.i(58325),e.s(["FeatureFlagError",0,p,"FeatureFlagEvaluations",0,tx,"PostHogSentryIntegration",0,rg,"cookieStateToProperties",0,ec,"cookieStoreFromHeader",0,en,"createEventProcessor",0,rd,"getPostHogCookieName",0,eo,"parsePostHogCookie",0,ed,"readPostHogCookie",0,eu,"sentryIntegration",0,rh,"serializePostHogCookie",0,el,"setupExpressErrorHandler",0,rb,"setupExpressRequestContext",0,rv,"uuidv7",0,es],57564),e.i(57564),e.s(["FeatureFlagError",0,p,"FeatureFlagEvaluations",0,tx,"PostHog",0,rw,"PostHogSentryIntegration",0,rg,"cookieStateToProperties",0,ec,"cookieStoreFromHeader",0,en,"createEventProcessor",0,rd,"getPostHogCookieName",0,eo,"parsePostHogCookie",0,ed,"readPostHogCookie",0,eu,"sentryIntegration",0,rh,"serializePostHogCookie",0,el,"setupExpressErrorHandler",0,rb,"setupExpressRequestContext",0,rv,"uuidv7",0,es],28864)}];
3
3
 
4
4
  //# sourceMappingURL=node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js.map