oh-my-opencode 5.0.0-beta.18 → 5.0.0-beta.19

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 (143) hide show
  1. package/dist/cli/index.js +289 -160
  2. package/dist/cli-node/index.js +289 -160
  3. package/dist/index.js +324 -176
  4. package/dist/skills/ast-grep/AGENTS.md +51 -0
  5. package/dist/skills/coding-agent-sessions/AGENTS.md +62 -0
  6. package/dist/skills/start-work/SKILL.md +2 -1
  7. package/dist/skills/ultimate-browsing/SKILL.md +2 -0
  8. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  9. package/dist/skills/visual-qa/AGENTS.md +58 -0
  10. package/dist/tui.js +17 -17
  11. package/package.json +21 -21
  12. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  13. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  14. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  15. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  18. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  19. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  22. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  23. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  24. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  25. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  27. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +1 -5
  28. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +1 -5
  29. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  30. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +1 -5
  32. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +1 -4
  33. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  34. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  35. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  36. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  37. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  38. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  40. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  41. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  42. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  43. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  44. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  45. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  46. package/packages/omo-codex/plugin/components/rules/dist/cli.js +43 -30
  47. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  48. package/packages/omo-codex/plugin/components/rules/package.json +2 -2
  49. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  50. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  51. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +6 -2
  52. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  53. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  54. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +1 -2
  55. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  56. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  57. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  58. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +2 -3
  59. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +1 -2
  60. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  61. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  62. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  63. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +1 -2
  64. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  65. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  66. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  67. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -2
  68. package/packages/omo-codex/plugin/components/start-work-continuation/biome.json +2 -2
  69. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  70. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  71. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  72. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  73. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  74. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  75. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +237 -99
  76. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +237 -99
  77. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  78. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  79. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  80. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  81. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  82. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  83. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -0
  84. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  85. package/packages/omo-codex/plugin/components/ultrawork/directive.md +7 -1
  86. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  87. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  88. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +7 -1
  89. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  90. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +16 -0
  91. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  92. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +7 -1
  93. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +1 -1
  94. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +1 -1
  95. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  96. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  97. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +3 -1
  98. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  99. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +18 -0
  100. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +3 -2
  101. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +8 -5
  102. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  104. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  105. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  106. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  107. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  113. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  114. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  115. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  116. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  118. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  119. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  120. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  121. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  122. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  123. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  124. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  125. package/packages/omo-codex/plugin/package-lock.json +19 -19
  126. package/packages/omo-codex/plugin/package.json +1 -1
  127. package/packages/omo-codex/plugin/scripts/AGENTS.md +40 -0
  128. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  129. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  130. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +2 -1
  131. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -0
  132. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  133. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +7 -1
  134. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  135. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  136. package/packages/omo-codex/scripts/AGENTS.md +36 -0
  137. package/packages/omo-codex/scripts/install-dist/install-local.mjs +249 -120
  138. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  139. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  140. package/packages/shared-skills/skills/start-work/SKILL.md +2 -1
  141. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -0
  142. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  143. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
@@ -334,7 +334,7 @@ function getTelemetryHost(env = process.env, defaultHost = DEFAULT_POSTHOG_HOST)
334
334
  return env["POSTHOG_HOST"]?.trim() || defaultHost;
335
335
  }
336
336
 
337
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
337
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
338
338
  import { dirname, posix, sep } from "path";
339
339
  function createModulerModifier() {
340
340
  const getModuleFromFileName = createGetModuleFromFilename();
@@ -370,7 +370,7 @@ function normalizeWindowsPath(path2) {
370
370
  return path2.replace(/^[A-Z]:/, "").replace(/\\/g, "/");
371
371
  }
372
372
 
373
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/featureFlagUtils.mjs
373
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/featureFlagUtils.mjs
374
374
  var normalizeFlagsResponse = (flagsResponse) => {
375
375
  if ("flags" in flagsResponse) {
376
376
  const featureFlags = getFlagValuesFromFlags(flagsResponse.flags);
@@ -502,7 +502,7 @@ var minimizeFlagCalledEventProperties = (properties, transportKeys = []) => {
502
502
  return minimal;
503
503
  };
504
504
 
505
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/types.mjs
505
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/types.mjs
506
506
  var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedProperty) {
507
507
  PostHogPersistedProperty["AnonymousId"] = "anonymous_id";
508
508
  PostHogPersistedProperty["DistinctId"] = "distinct_id";
@@ -540,7 +540,7 @@ var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedPr
540
540
  return PostHogPersistedProperty;
541
541
  }({});
542
542
 
543
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/gzip.mjs
543
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/gzip.mjs
544
544
  function isGzipSupported() {
545
545
  return "CompressionStream" in globalThis && "TextEncoder" in globalThis && "Response" in globalThis && typeof Response.prototype.blob == "function";
546
546
  }
@@ -614,7 +614,34 @@ async function gzipCompress(input, isDebug = true, options) {
614
614
  }
615
615
  }
616
616
 
617
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/bot-detection.mjs
617
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/json-utils.mjs
618
+ var MAX_JSON_SAFE_VALUE_DEPTH = 20;
619
+ var MAX_JSON_SAFE_VALUE_ITEMS = 1000;
620
+ var MAX_JSON_SAFE_VALUE_NODES = 1e4;
621
+ var CIRCULAR_VALUE = "[Circular]";
622
+ var TRUNCATED_VALUE = "[Truncated]";
623
+ var UNSERIALIZABLE_VALUE = "[Unserializable]";
624
+ var FUNCTION_VALUE = "[Function]";
625
+ var dateGetTime = Date.prototype.getTime;
626
+ var dateToISOString = Date.prototype.toISOString;
627
+ function sanitizeString(value) {
628
+ let output = "";
629
+ for (let index = 0;index < value.length; index++) {
630
+ const codeUnit = value.charCodeAt(index);
631
+ if (codeUnit >= 55296 && codeUnit <= 56319) {
632
+ const nextCodeUnit = value.charCodeAt(index + 1);
633
+ if (nextCodeUnit >= 56320 && nextCodeUnit <= 57343) {
634
+ output += value[index] + value[index + 1];
635
+ index++;
636
+ } else
637
+ output += "�";
638
+ } else
639
+ output += codeUnit >= 56320 && codeUnit <= 57343 ? "�" : value[index];
640
+ }
641
+ return output;
642
+ }
643
+
644
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/bot-detection.mjs
618
645
  var DEFAULT_BLOCKED_UA_STRS = [
619
646
  "amazonbot",
620
647
  "amazonproductbot",
@@ -703,7 +730,7 @@ var isBlockedUA = function(ua, customBlockedUserAgents = []) {
703
730
  return uaLower.indexOf(blockedUaLower) !== -1;
704
731
  });
705
732
  };
706
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/string-utils.mjs
733
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/string-utils.mjs
707
734
  function safeJsonStringify(value) {
708
735
  const ancestors = [];
709
736
  return JSON.stringify(value, function(_key, replacementValue) {
@@ -727,7 +754,7 @@ function safeJsonStringify(value) {
727
754
  return replacementValue;
728
755
  }) ?? "null";
729
756
  }
730
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/type-utils.mjs
757
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/type-utils.mjs
731
758
  var nativeIsArray = Array.isArray;
732
759
  var ObjProto = Object.prototype;
733
760
  var type_utils_hasOwnProperty = ObjProto.hasOwnProperty;
@@ -740,6 +767,7 @@ var isUndefined = (x) => x === undefined;
740
767
  var isString = (x) => type_utils_toString.call(x) == "[object String]";
741
768
  var isEmptyString = (x) => isString(x) && x.trim().length === 0;
742
769
  var isNull = (x) => x === null;
770
+ var isNullish = (x) => isUndefined(x) || isNull(x);
743
771
  var isNumber = (x) => type_utils_toString.call(x) == "[object Number]" && x === x;
744
772
  var isBoolean = (x) => type_utils_toString.call(x) === "[object Boolean]";
745
773
  function isPrimitive(value) {
@@ -777,7 +805,7 @@ function isInstanceOf(candidate, base) {
777
805
  }
778
806
  }
779
807
 
780
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/number-utils.mjs
808
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/number-utils.mjs
781
809
  function clampToRange(value, min, max, logger, fallbackValue) {
782
810
  if (min > max) {
783
811
  logger.warn("min cannot be greater than max.");
@@ -797,7 +825,7 @@ function clampToRange(value, min, max, logger, fallbackValue) {
797
825
  return clampToRange(fallbackValue || max, min, max, logger);
798
826
  }
799
827
 
800
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
828
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
801
829
  var ONE_DAY_IN_MS = 86400000;
802
830
  var DEFAULT_EXCEPTION_RATE_LIMITER_REFILL_RATE = 1;
803
831
  var DEFAULT_EXCEPTION_RATE_LIMITER_BUCKET_SIZE = 10;
@@ -849,10 +877,7 @@ class BucketedRateLimiter {
849
877
  this._buckets = {};
850
878
  }
851
879
  }
852
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/json-utils.mjs
853
- var dateGetTime = Date.prototype.getTime;
854
- var dateToISOString = Date.prototype.toISOString;
855
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
880
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
856
881
  /*! For license information please see uuidv7.mjs.LICENSE.txt */
857
882
  var DIGITS = "0123456789abcdef";
858
883
 
@@ -1030,7 +1055,7 @@ var defaultGenerator;
1030
1055
  var uuidv7 = () => uuidv7obj().toString();
1031
1056
  var uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator)).generate();
1032
1057
 
1033
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/promise-queue.mjs
1058
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/promise-queue.mjs
1034
1059
  class PromiseQueue {
1035
1060
  add(promise) {
1036
1061
  const promiseUUID = uuidv7();
@@ -1068,7 +1093,7 @@ class PromiseQueue {
1068
1093
  this.nextId = 0;
1069
1094
  }
1070
1095
  }
1071
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/logger.mjs
1096
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/logger.mjs
1072
1097
  function createConsole(consoleLike = console) {
1073
1098
  const lockedMethods = {
1074
1099
  log: consoleLike.log.bind(consoleLike),
@@ -1109,7 +1134,7 @@ var passThrough = (fn) => fn();
1109
1134
  function createLogger(prefix, maybeCall = passThrough) {
1110
1135
  return _createLogger(prefix, maybeCall, createConsole());
1111
1136
  }
1112
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
1137
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
1113
1138
  var MOBILE = "Mobile";
1114
1139
  var IOS = "iOS";
1115
1140
  var ANDROID = "Android";
@@ -1402,7 +1427,7 @@ var osMatchers = [
1402
1427
  ]
1403
1428
  ];
1404
1429
 
1405
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/utils/index.mjs
1430
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/utils/index.mjs
1406
1431
  var STRING_FORMAT = "utf8";
1407
1432
  var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1408
1433
  function isValidUUID(value) {
@@ -1468,7 +1493,7 @@ function allSettled(promises) {
1468
1493
  }))));
1469
1494
  }
1470
1495
 
1471
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/logs/logs-utils.mjs
1496
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/logs/logs-utils.mjs
1472
1497
  var OTLP_SEVERITY_MAP = {
1473
1498
  trace: {
1474
1499
  text: "TRACE",
@@ -1496,7 +1521,27 @@ var OTLP_SEVERITY_MAP = {
1496
1521
  }
1497
1522
  };
1498
1523
  var DEFAULT_OTLP_SEVERITY = OTLP_SEVERITY_MAP.info;
1499
- function toOtlpAnyValue(value) {
1524
+ var INT64_RANGE_LIMIT = 9223372036854776000;
1525
+ var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
1526
+ function newState() {
1527
+ return {
1528
+ ancestors: new WeakSet,
1529
+ remainingNodes: MAX_JSON_SAFE_VALUE_NODES
1530
+ };
1531
+ }
1532
+ function toOtlpKeyValueList(attrs, logger2) {
1533
+ try {
1534
+ return encodeKeyValueList(attrs, logger2, newState(), 0);
1535
+ } catch {
1536
+ return [];
1537
+ }
1538
+ }
1539
+ function encodeAnyValue(value, logger2, state, depth) {
1540
+ if (state.remainingNodes <= 0)
1541
+ return {
1542
+ stringValue: TRUNCATED_VALUE
1543
+ };
1544
+ state.remainingNodes--;
1500
1545
  if (isBoolean(value))
1501
1546
  return {
1502
1547
  boolValue: value
@@ -1506,48 +1551,134 @@ function toOtlpAnyValue(value) {
1506
1551
  return {
1507
1552
  stringValue: String(value)
1508
1553
  };
1509
- if (Number.isInteger(value))
1554
+ if (Number.isInteger(value)) {
1555
+ if (Number.isSafeInteger(value))
1556
+ return {
1557
+ intValue: String(value)
1558
+ };
1559
+ if (typeof BigInt == "undefined")
1560
+ return {
1561
+ stringValue: String(value)
1562
+ };
1563
+ const decimal = BigInt(value).toString();
1564
+ if (value >= INT64_RANGE_LIMIT || value < -INT64_RANGE_LIMIT) {
1565
+ logger2?.debug(`Attribute ${decimal} is outside the int64 range; encoding it as a string`);
1566
+ return {
1567
+ stringValue: decimal
1568
+ };
1569
+ }
1510
1570
  return {
1511
- intValue: value
1571
+ intValue: decimal
1512
1572
  };
1573
+ }
1513
1574
  return {
1514
1575
  doubleValue: value
1515
1576
  };
1516
1577
  }
1517
1578
  if (typeof value == "string")
1518
1579
  return {
1519
- stringValue: value
1580
+ stringValue: sanitizeString(value)
1520
1581
  };
1521
- if (isArray(value))
1582
+ if (typeof value == "function")
1522
1583
  return {
1523
- arrayValue: {
1524
- values: value.map((v) => toOtlpAnyValue(v))
1525
- }
1584
+ stringValue: FUNCTION_VALUE
1526
1585
  };
1527
- try {
1528
- return {
1529
- stringValue: JSON.stringify(value)
1530
- };
1531
- } catch {
1586
+ if (typeof value == "symbol")
1532
1587
  return {
1533
1588
  stringValue: String(value)
1534
1589
  };
1590
+ if (typeof value == "object" && value !== null) {
1591
+ if (state.ancestors.has(value))
1592
+ return {
1593
+ stringValue: CIRCULAR_VALUE
1594
+ };
1595
+ if (depth >= MAX_JSON_SAFE_VALUE_DEPTH)
1596
+ return {
1597
+ stringValue: TRUNCATED_VALUE
1598
+ };
1599
+ if (value instanceof Date) {
1600
+ const time = value.getTime();
1601
+ const iso = Number.isFinite(time) ? value.toISOString() : String(value);
1602
+ return {
1603
+ stringValue: typeof iso == "string" ? sanitizeString(iso) : String(iso)
1604
+ };
1605
+ }
1606
+ state.ancestors.add(value);
1607
+ try {
1608
+ try {
1609
+ const toJSON = value.toJSON;
1610
+ if (typeof toJSON == "function")
1611
+ return encodeAnyValue(toJSON.call(value), logger2, state, depth + 1);
1612
+ } catch {}
1613
+ if (isArray(value))
1614
+ return {
1615
+ arrayValue: {
1616
+ values: encodeArrayValues(value, logger2, state, depth + 1)
1617
+ }
1618
+ };
1619
+ return {
1620
+ kvlistValue: {
1621
+ values: encodeKeyValueList(value, logger2, state, depth + 1)
1622
+ }
1623
+ };
1624
+ } finally {
1625
+ state.ancestors.delete(value);
1626
+ }
1535
1627
  }
1628
+ return {
1629
+ stringValue: sanitizeString(String(value))
1630
+ };
1536
1631
  }
1537
- function toOtlpKeyValueList(attrs) {
1632
+ function encodeArrayValues(values, logger2, state, depth) {
1538
1633
  const result = [];
1539
- for (const key in attrs) {
1540
- const value = attrs[key];
1541
- if (!(isNull(value) || isUndefined(value)))
1634
+ const itemCount = Math.min(values.length, MAX_JSON_SAFE_VALUE_ITEMS);
1635
+ let index = 0;
1636
+ for (;index < itemCount && state.remainingNodes > 0; index++)
1637
+ try {
1638
+ const element = index in values ? values[index] : undefined;
1639
+ if (isNullish(element))
1640
+ continue;
1641
+ result.push(encodeAnyValue(element, logger2, state, depth));
1642
+ } catch {
1542
1643
  result.push({
1543
- key,
1544
- value: toOtlpAnyValue(value)
1644
+ stringValue: UNSERIALIZABLE_VALUE
1545
1645
  });
1546
- }
1646
+ }
1647
+ if (values.length > index)
1648
+ result.push({
1649
+ stringValue: TRUNCATED_VALUE
1650
+ });
1651
+ return result;
1652
+ }
1653
+ function encodeKeyValueList(attrs, logger2, state, depth) {
1654
+ const result = [];
1655
+ for (const key in attrs)
1656
+ if (propertyIsEnumerable.call(attrs, key)) {
1657
+ if (result.length >= MAX_JSON_SAFE_VALUE_ITEMS || state.remainingNodes <= 0) {
1658
+ logger2?.debug("Attributes truncated: the value exceeds the OTLP encoder budget");
1659
+ break;
1660
+ }
1661
+ try {
1662
+ const value = attrs[key];
1663
+ if (isNull(value) || isUndefined(value))
1664
+ continue;
1665
+ result.push({
1666
+ key: sanitizeString(key),
1667
+ value: encodeAnyValue(value, logger2, state, depth)
1668
+ });
1669
+ } catch {
1670
+ result.push({
1671
+ key: sanitizeString(key),
1672
+ value: {
1673
+ stringValue: UNSERIALIZABLE_VALUE
1674
+ }
1675
+ });
1676
+ }
1677
+ }
1547
1678
  return result;
1548
1679
  }
1549
1680
 
1550
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/metrics/metrics-utils.mjs
1681
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/metrics/metrics-utils.mjs
1551
1682
  var DEFAULT_HISTOGRAM_BOUNDS = [
1552
1683
  0,
1553
1684
  5,
@@ -1617,7 +1748,7 @@ function buildOtlpMetricsPayload(metrics, resourceAttributes, scopeName, scopeVe
1617
1748
  };
1618
1749
  }
1619
1750
 
1620
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/metrics/config.mjs
1751
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/metrics/config.mjs
1621
1752
  var DEFAULT_FLUSH_INTERVAL_MS = 1e4;
1622
1753
  var DEFAULT_MAX_SERIES_PER_FLUSH = 1000;
1623
1754
  function resolveMetricsConfig(config) {
@@ -1633,7 +1764,7 @@ function resolveMetricsConfig(config) {
1633
1764
  };
1634
1765
  }
1635
1766
 
1636
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/metrics/index.mjs
1767
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/metrics/index.mjs
1637
1768
  var OTLP_TEMPORALITY_DELTA = 1;
1638
1769
 
1639
1770
  class PostHogMetrics {
@@ -1888,7 +2019,7 @@ class PostHogMetrics {
1888
2019
  };
1889
2020
  byMetric.set(metricKey, metric);
1890
2021
  }
1891
- const attributes = toOtlpKeyValueList(state.attributes ?? {});
2022
+ const attributes = toOtlpKeyValueList(state.attributes ?? {}, this._logger);
1892
2023
  const startNano = msToUnixNano(state.windowStartMs);
1893
2024
  if (state.type === "count") {
1894
2025
  const dp = {
@@ -1953,7 +2084,7 @@ class PostHogMetrics {
1953
2084
  }
1954
2085
  }
1955
2086
  }
1956
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/eventemitter.mjs
2087
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/eventemitter.mjs
1957
2088
  class SimpleEventEmitter {
1958
2089
  constructor() {
1959
2090
  this.events = {};
@@ -1975,7 +2106,7 @@ class SimpleEventEmitter {
1975
2106
  }
1976
2107
  }
1977
2108
 
1978
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/index.mjs
2109
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/index.mjs
1979
2110
  var exports_error_tracking = {};
1980
2111
  __export(exports_error_tracking, {
1981
2112
  DEFAULT_EXCEPTION_STEPS_CONFIG: () => DEFAULT_EXCEPTION_STEPS_CONFIG,
@@ -2006,7 +2137,7 @@ __export(exports_error_tracking, {
2006
2137
  winjsStackLineParser: () => winjsStackLineParser
2007
2138
  });
2008
2139
 
2009
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
2140
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
2010
2141
  var parsedStackResults;
2011
2142
  var lastKeysCount;
2012
2143
  var cachedFilenameChunkIds;
@@ -2045,7 +2176,7 @@ function getFilenameToChunkIdMap(stackParser) {
2045
2176
  return cachedFilenameChunkIds;
2046
2177
  }
2047
2178
 
2048
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
2179
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
2049
2180
  var MAX_CAUSE_RECURSION = 4;
2050
2181
 
2051
2182
  class ErrorPropertiesBuilder {
@@ -2167,7 +2298,7 @@ class ErrorPropertiesBuilder {
2167
2298
  return context;
2168
2299
  }
2169
2300
  }
2170
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
2301
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
2171
2302
  var UNKNOWN_FUNCTION = "?";
2172
2303
  var MASKED_URL_PREFIX = "webkit-masked-url://";
2173
2304
  var ANONYMOUS_FILENAME = "<anonymous>";
@@ -2185,7 +2316,7 @@ function createFrame(platform, filename, func, lineno, colno) {
2185
2316
  return frame;
2186
2317
  }
2187
2318
 
2188
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
2319
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
2189
2320
  var extractSafariExtensionDetails = (func, filename) => {
2190
2321
  const isSafariExtension = func.indexOf("safari-extension") !== -1;
2191
2322
  const isSafariWebExtension = func.indexOf("safari-web-extension") !== -1;
@@ -2198,7 +2329,7 @@ var extractSafariExtensionDetails = (func, filename) => {
2198
2329
  ];
2199
2330
  };
2200
2331
 
2201
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
2332
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
2202
2333
  var chromeRegexNoFnName = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i;
2203
2334
  var chromeRegex = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
2204
2335
  var chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
@@ -2224,7 +2355,7 @@ var chromeStackLineParser = (line, platform) => {
2224
2355
  }
2225
2356
  };
2226
2357
 
2227
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
2358
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
2228
2359
  var geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
2229
2360
  var geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
2230
2361
  var geckoStackLineParser = (line, platform) => {
@@ -2247,14 +2378,14 @@ var geckoStackLineParser = (line, platform) => {
2247
2378
  }
2248
2379
  };
2249
2380
 
2250
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
2381
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
2251
2382
  var winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
2252
2383
  var winjsStackLineParser = (line, platform) => {
2253
2384
  const parts = winjsRegex.exec(line);
2254
2385
  return parts ? createFrame(platform, parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined) : undefined;
2255
2386
  };
2256
2387
 
2257
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
2388
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
2258
2389
  var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
2259
2390
  var opera10StackLineParser = (line, platform) => {
2260
2391
  const parts = opera10Regex.exec(line);
@@ -2266,7 +2397,7 @@ var opera11StackLineParser = (line, platform) => {
2266
2397
  return parts ? createFrame(platform, parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;
2267
2398
  };
2268
2399
 
2269
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
2400
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
2270
2401
  var FILENAME_MATCH = /^\s*[-]{4,}$/;
2271
2402
  var FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
2272
2403
  var PROMISE_COMBINATOR = /^Promise\.(?:all|any)$/;
@@ -2340,7 +2471,7 @@ function _parseIntOrUndefined(input) {
2340
2471
  return parseInt(input || "", 10) || undefined;
2341
2472
  }
2342
2473
 
2343
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
2474
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
2344
2475
  var WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
2345
2476
  var STACKTRACE_FRAME_LIMIT = 50;
2346
2477
  function reverseAndStripFrames(stack) {
@@ -2385,7 +2516,7 @@ function createStackParser(platform, ...parsers) {
2385
2516
  return reverseAndStripFrames(frames);
2386
2517
  };
2387
2518
  }
2388
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
2519
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
2389
2520
  class DOMExceptionCoercer {
2390
2521
  match(err) {
2391
2522
  return this.isDOMException(err) || this.isDOMError(err);
@@ -2415,7 +2546,7 @@ class DOMExceptionCoercer {
2415
2546
  return isBuiltin(err, "DOMError");
2416
2547
  }
2417
2548
  }
2418
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
2549
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
2419
2550
  class ErrorCoercer {
2420
2551
  match(err) {
2421
2552
  return isError(err);
@@ -2444,7 +2575,7 @@ class ErrorCoercer {
2444
2575
  return err.stacktrace || err.stack || undefined;
2445
2576
  }
2446
2577
  }
2447
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
2578
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
2448
2579
  class ErrorEventCoercer {
2449
2580
  constructor() {}
2450
2581
  match(err) {
@@ -2478,7 +2609,7 @@ class ErrorEventCoercer {
2478
2609
  at ${location.filename}:${lineno}:${colno}`;
2479
2610
  }
2480
2611
  }
2481
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
2612
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
2482
2613
  var ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
2483
2614
 
2484
2615
  class StringCoercer {
@@ -2508,7 +2639,7 @@ class StringCoercer {
2508
2639
  ];
2509
2640
  }
2510
2641
  }
2511
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/types.mjs
2642
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/types.mjs
2512
2643
  var severityLevels = [
2513
2644
  "fatal",
2514
2645
  "error",
@@ -2518,7 +2649,7 @@ var severityLevels = [
2518
2649
  "debug"
2519
2650
  ];
2520
2651
 
2521
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
2652
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
2522
2653
  function extractExceptionKeysForMessage(err, maxLength = 40) {
2523
2654
  const keys = Object.keys(err);
2524
2655
  keys.sort();
@@ -2535,7 +2666,7 @@ function extractExceptionKeysForMessage(err, maxLength = 40) {
2535
2666
  return "";
2536
2667
  }
2537
2668
 
2538
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
2669
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
2539
2670
  class ObjectCoercer {
2540
2671
  match(candidate) {
2541
2672
  return typeof candidate == "object" && candidate !== null;
@@ -2600,7 +2731,7 @@ class ObjectCoercer {
2600
2731
  }
2601
2732
  }
2602
2733
  }
2603
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
2734
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
2604
2735
  class EventCoercer {
2605
2736
  match(err) {
2606
2737
  return isEvent(err);
@@ -2615,7 +2746,7 @@ class EventCoercer {
2615
2746
  };
2616
2747
  }
2617
2748
  }
2618
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
2749
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
2619
2750
  class PrimitiveCoercer {
2620
2751
  match(candidate) {
2621
2752
  return isPrimitive(candidate);
@@ -2629,7 +2760,7 @@ class PrimitiveCoercer {
2629
2760
  };
2630
2761
  }
2631
2762
  }
2632
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
2763
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
2633
2764
  class PromiseRejectionEventCoercer {
2634
2765
  match(err) {
2635
2766
  return isBuiltin(err, "PromiseRejectionEvent") || this.isCustomEventWrappingRejection(err);
@@ -2665,7 +2796,7 @@ class PromiseRejectionEventCoercer {
2665
2796
  return error;
2666
2797
  }
2667
2798
  }
2668
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/utils.mjs
2799
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/utils.mjs
2669
2800
  class ReduceableCache {
2670
2801
  constructor(_maxSize) {
2671
2802
  this._maxSize = _maxSize;
@@ -2690,7 +2821,7 @@ class ReduceableCache {
2690
2821
  }
2691
2822
  }
2692
2823
  }
2693
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/exception-steps.mjs
2824
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/exception-steps.mjs
2694
2825
  var EXCEPTION_STEP_INTERNAL_FIELDS = {
2695
2826
  MESSAGE: "$message",
2696
2827
  TIMESTAMP: "$timestamp"
@@ -2823,12 +2954,12 @@ function getUtf8ByteLength(value) {
2823
2954
  byteLength += 1;
2824
2955
  return byteLength;
2825
2956
  }
2826
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/error-tracking/release.mjs
2957
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/error-tracking/release.mjs
2827
2958
  function getInjectedReleaseId() {
2828
2959
  const injected = globalThis._posthogReleaseId;
2829
2960
  return typeof injected == "string" && injected.length > 0 ? injected : undefined;
2830
2961
  }
2831
- // ../../../../../node_modules/.bun/@posthog+core@1.48.6/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
2962
+ // ../../../../../node_modules/.bun/@posthog+core@1.48.9/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
2832
2963
  class PostHogFetchHttpError extends Error {
2833
2964
  constructor(response, reqByteLength, responseBodyDeadline, abortController) {
2834
2965
  super("HTTP error while fetching PostHog: status=" + response.status + ", reqByteLength=" + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.responseBodyDeadline = responseBodyDeadline, this.abortController = abortController, this.name = "PostHogFetchHttpError", this._bodyReadTimedOut = false;
@@ -3798,10 +3929,12 @@ class PostHogCoreStateless {
3798
3929
  const body = options.body ? options.body : "";
3799
3930
  let reqByteLength = -1;
3800
3931
  try {
3801
- reqByteLength = body instanceof Blob ? body.size : Buffer.byteLength(body, STRING_FORMAT);
3932
+ reqByteLength = body instanceof Blob ? body.size : body instanceof Uint8Array ? body.byteLength : Buffer.byteLength(body, STRING_FORMAT);
3802
3933
  } catch {
3803
3934
  if (body instanceof Blob)
3804
3935
  reqByteLength = body.size;
3936
+ else if (body instanceof Uint8Array)
3937
+ reqByteLength = body.byteLength;
3805
3938
  else {
3806
3939
  const encoded = new TextEncoder().encode(body);
3807
3940
  reqByteLength = encoded.length;
@@ -3939,7 +4072,7 @@ class PostHogCoreStateless {
3939
4072
  return this.shutdownPromise;
3940
4073
  }
3941
4074
  }
3942
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
4075
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
3943
4076
  import { constants as constants2 } from "node:fs";
3944
4077
  import { open as promises_open } from "node:fs/promises";
3945
4078
  import { isAbsolute } from "node:path";
@@ -4226,7 +4359,7 @@ function snipLine(line, colno) {
4226
4359
  return newLine;
4227
4360
  }
4228
4361
 
4229
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs
4362
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs
4230
4363
  import { isAbsolute as isAbsolute2, relative, sep as sep2 } from "path";
4231
4364
  function createRelativePathModifier(basePath = process.cwd()) {
4232
4365
  const isWindows = sep2 === "\\";
@@ -4242,10 +4375,10 @@ function createRelativePathModifier(basePath = process.cwd()) {
4242
4375
  };
4243
4376
  }
4244
4377
 
4245
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/version.mjs
4246
- var version = "5.49.2";
4378
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/version.mjs
4379
+ var version = "5.51.1";
4247
4380
 
4248
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/types.mjs
4381
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/types.mjs
4249
4382
  var FeatureFlagError2 = {
4250
4383
  ERRORS_WHILE_COMPUTING: "errors_while_computing_flags",
4251
4384
  FLAG_MISSING: "flag_missing",
@@ -4253,7 +4386,7 @@ var FeatureFlagError2 = {
4253
4386
  UNKNOWN_ERROR: "unknown_error"
4254
4387
  };
4255
4388
 
4256
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/feature-flag-evaluations.mjs
4389
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/feature-flag-evaluations.mjs
4257
4390
  class FeatureFlagEvaluations {
4258
4391
  constructor(init) {
4259
4392
  this._host = init.host;
@@ -4269,10 +4402,10 @@ class FeatureFlagEvaluations {
4269
4402
  this._accessed = init.accessed ?? new Set;
4270
4403
  this._isSlice = init.isSlice ?? false;
4271
4404
  }
4272
- isEnabled(key) {
4405
+ isEnabled(key, options = {}) {
4273
4406
  const flag = this._flags[key];
4274
4407
  this._recordAccess(key);
4275
- return flag?.enabled ?? false;
4408
+ return flag?.enabled ?? options.defaultValue ?? false;
4276
4409
  }
4277
4410
  getFlag(key) {
4278
4411
  const flag = this._flags[key];
@@ -4386,7 +4519,7 @@ class FeatureFlagEvaluations {
4386
4519
  }
4387
4520
  }
4388
4521
 
4389
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
4522
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
4390
4523
  async function hashSHA1(text) {
4391
4524
  const subtle = globalThis.crypto?.subtle;
4392
4525
  if (!subtle)
@@ -4396,7 +4529,7 @@ async function hashSHA1(text) {
4396
4529
  return hashArray.map((byte) => byte.toString(16).padStart(2, "0")).join("");
4397
4530
  }
4398
4531
 
4399
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
4532
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
4400
4533
  var SIXTY_SECONDS = 60000;
4401
4534
  var LONG_SCALE = 1152921504606847000;
4402
4535
  var NULL_VALUES_ALLOWED_OPERATORS = [
@@ -5348,7 +5481,7 @@ function relativeDateParseForFeatureFlagMatching(value) {
5348
5481
  }
5349
5482
  }
5350
5483
 
5351
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
5484
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
5352
5485
  var UNHANDLED_REJECTION_OPTION_NAMES = [
5353
5486
  "--unhandled-rejections",
5354
5487
  "--unhandled_rejections"
@@ -5446,7 +5579,7 @@ function addUnhandledRejectionListener(captureFn, mode = STARTUP_UNHANDLED_REJEC
5446
5579
  });
5447
5580
  }
5448
5581
 
5449
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
5582
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
5450
5583
  var SHUTDOWN_TIMEOUT = 2000;
5451
5584
 
5452
5585
  class error_tracking_ErrorTracking {
@@ -5517,7 +5650,7 @@ class error_tracking_ErrorTracking {
5517
5650
  }
5518
5651
  }
5519
5652
 
5520
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/storage-memory.mjs
5653
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/storage-memory.mjs
5521
5654
  class PostHogMemoryStorage {
5522
5655
  getProperty(key) {
5523
5656
  return this._memoryStorage[key];
@@ -5530,7 +5663,7 @@ class PostHogMemoryStorage {
5530
5663
  }
5531
5664
  }
5532
5665
 
5533
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/config.mjs
5666
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/config.mjs
5534
5667
  function isCaptureMode(value) {
5535
5668
  return value === "v0" || value === "v1";
5536
5669
  }
@@ -5539,7 +5672,7 @@ function resolveCaptureMode() {
5539
5672
  return isCaptureMode(envMode) ? envMode : "v0";
5540
5673
  }
5541
5674
 
5542
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/routing.mjs
5675
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/routing.mjs
5543
5676
  var AI_EVENT_PREFIX = "$ai_";
5544
5677
  var ANALYTICS_ROUTE = "analytics";
5545
5678
  var AI_ROUTE = "ai";
@@ -5547,7 +5680,7 @@ function isLegacyOnlyEvent(message) {
5547
5680
  return typeof message.event == "string" && message.event.startsWith(AI_EVENT_PREFIX);
5548
5681
  }
5549
5682
 
5550
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/errors.mjs
5683
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/errors.mjs
5551
5684
  class CaptureV1Error extends Error {
5552
5685
  constructor({ requestId, drops, retryExhausted, cause }) {
5553
5686
  super(CaptureV1Error.buildMessage(requestId, drops, retryExhausted, cause)), this.name = "CaptureV1Error";
@@ -5564,7 +5697,7 @@ class CaptureV1Error extends Error {
5564
5697
  }
5565
5698
  }
5566
5699
 
5567
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/transform.mjs
5700
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/transform.mjs
5568
5701
  function coerceBool(value) {
5569
5702
  if (typeof value == "boolean")
5570
5703
  return value;
@@ -5679,7 +5812,7 @@ function buildV1Batch(messages, { createdAt, historicalMigration }) {
5679
5812
  return batch;
5680
5813
  }
5681
5814
 
5682
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/capture-v1/sender.mjs
5815
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/capture-v1/sender.mjs
5683
5816
  var V1_ANALYTICS_PATH = "/i/v1/analytics/events";
5684
5817
  var DEFAULT_MAX_BACKOFF_MS = 30000;
5685
5818
  var RETRYABLE_STATUSES = new Set([
@@ -5932,13 +6065,13 @@ class V1CaptureSender {
5932
6065
  }
5933
6066
  }
5934
6067
 
5935
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/ai-capture/routing.mjs
6068
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/ai-capture/routing.mjs
5936
6069
  var AI_CAPTURE_ROUTE = "ai-capture";
5937
6070
  var AI_CAPTURE_ENDPOINT_PATH = "/i/v0/ai/batch/";
5938
6071
  var AI_MAX_EVENT_BYTES = 8388608;
5939
6072
  var AI_BATCH_TARGET_BYTES = 5242880;
5940
6073
 
5941
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/ai-capture/batching.mjs
6074
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/ai-capture/batching.mjs
5942
6075
  var encoder = new TextEncoder;
5943
6076
  function eventByteSize(message) {
5944
6077
  return encoder.encode(safeJsonStringify(message)).length;
@@ -5975,7 +6108,7 @@ function partitionAiBatch(messages, maxEventBytes = AI_MAX_EVENT_BYTES, targetBa
5975
6108
  };
5976
6109
  }
5977
6110
 
5978
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/client.mjs
6111
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/client.mjs
5979
6112
  var MINIMUM_POLLING_INTERVAL = 100;
5980
6113
  var THIRTY_SECONDS = 30000;
5981
6114
  var MAX_CACHE_SIZE = 50000;
@@ -6525,7 +6658,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
6525
6658
  result = {
6526
6659
  key,
6527
6660
  enabled: flagDetail.enabled,
6528
- variant: flagDetail.variant,
6661
+ variant: flagDetail.variant ?? undefined,
6529
6662
  payload: parsedPayload
6530
6663
  };
6531
6664
  }
@@ -6726,6 +6859,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
6726
6859
  const evaluationContext = this.createFeatureFlagEvaluationContext(resolvedDistinctId, groups, this.personPropertiesForLocalEvaluation(resolvedDistinctId, personProperties), groupProperties);
6727
6860
  if (onlyEvaluateLocally == undefined)
6728
6861
  onlyEvaluateLocally = this.options.strictLocalEvaluation ?? false;
6862
+ const requestedFlagKeys = flagKeys ? new Set(flagKeys) : undefined;
6729
6863
  const records = {};
6730
6864
  let requestId;
6731
6865
  let evaluatedAt;
@@ -6749,7 +6883,8 @@ class PostHogBackendClient extends PostHogCoreStateless {
6749
6883
  };
6750
6884
  locallyEvaluatedKeys.add(key);
6751
6885
  }
6752
- const fallbackToFlags = localResult ? localResult.fallbackToFlags : true;
6886
+ const requestedFlagMissingLocally = requestedFlagKeys !== undefined && Array.from(requestedFlagKeys).some((key) => this.featureFlagsPoller?.featureFlagsByKey[key] === undefined);
6887
+ const fallbackToFlags = localResult ? localResult.fallbackToFlags || requestedFlagMissingLocally : true;
6753
6888
  if (fallbackToFlags && !onlyEvaluateLocally) {
6754
6889
  const details = await super.getFeatureFlagDetailsStateless(evaluationContext.distinctId, evaluationContext.groups, personProperties, groupProperties, disableGeoip, flagKeys);
6755
6890
  if (details) {
@@ -6810,6 +6945,11 @@ class PostHogBackendClient extends PostHogCoreStateless {
6810
6945
  payload
6811
6946
  };
6812
6947
  }
6948
+ if (requestedFlagKeys !== undefined) {
6949
+ for (const key of Object.keys(records))
6950
+ if (!requestedFlagKeys.has(key))
6951
+ delete records[key];
6952
+ }
6813
6953
  return new FeatureFlagEvaluations({
6814
6954
  host: this._getFeatureFlagEvaluationsHost(),
6815
6955
  distinctId: resolvedDistinctId,
@@ -7217,7 +7357,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
7217
7357
  }
7218
7358
  }
7219
7359
 
7220
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/context/context.mjs
7360
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/context/context.mjs
7221
7361
  import { AsyncLocalStorage } from "node:async_hooks";
7222
7362
 
7223
7363
  class PostHogContext {
@@ -7248,16 +7388,14 @@ class PostHogContext {
7248
7388
  }
7249
7389
  }
7250
7390
 
7251
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/gzip.node.mjs
7391
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/gzip.node.mjs
7252
7392
  import { gzip } from "node:zlib";
7253
7393
  import { promisify } from "node:util";
7254
7394
  var gzipAsync = promisify(gzip);
7255
7395
  async function gzipCompress2(input, isDebug = true) {
7256
7396
  try {
7257
7397
  const compressed = await gzipAsync(input);
7258
- return new Blob([
7259
- new Uint8Array(compressed)
7260
- ]);
7398
+ return new Uint8Array(compressed);
7261
7399
  } catch (error) {
7262
7400
  if (isDebug)
7263
7401
  console.error("Failed to gzip compress data", error);
@@ -7265,7 +7403,7 @@ async function gzipCompress2(input, isDebug = true) {
7265
7403
  }
7266
7404
  }
7267
7405
 
7268
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
7406
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
7269
7407
  var NAME = "posthog-node";
7270
7408
  function createEventProcessor(_posthog, { organization, projectId, prefix, severityAllowList = [
7271
7409
  "error"
@@ -7336,7 +7474,7 @@ class PostHogSentryIntegration {
7336
7474
  };
7337
7475
  }
7338
7476
  }
7339
- // ../../../../../node_modules/.bun/posthog-node@5.49.2/node_modules/posthog-node/dist/entrypoints/index.node.mjs
7477
+ // ../../../../../node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/entrypoints/index.node.mjs
7340
7478
  class PostHog extends PostHogBackendClient {
7341
7479
  getLibraryId() {
7342
7480
  return "posthog-node";