Skip to content

feat(browser): add os.name and os.version to logs, and share one OTLP resource builder - #4710

Merged
turnipdabeets merged 1 commit into
mainfrom
feat/otlp-shared-resource-builder
Sep 1, 2026
Merged

feat(browser): add os.name and os.version to logs, and share one OTLP resource builder#4710
turnipdabeets merged 1 commit into
mainfrom
feat/otlp-shared-resource-builder

Conversation

@turnipdabeets

@turnipdabeets turnipdabeets commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Problem

Logs from the web SDK don't record what OS the visitor was on. You can't answer "show me errors on Windows only" — the OS is simply absent from every logs payload posthog-js produces.

Logs are sent as OTLP, and every batch carries a set of resource attributes: key/value pairs describing where the logs came from (service name, SDK version, and so on). The logs spec lists os.name and os.version among the ones the envelope SHALL carry. posthog-react-native, posthog-ios and posthog-android all send them; posthog-js never has.

Separately, the code that builds those resource attributes existed twice. buildResourceAttributes (logs) and buildMetricsResourceAttributes (metrics) had byte-identical bodies; only the return-type spelling differed.

Changes

One builder. packages/core/src/utils/otlp-resource.ts holds buildOtlpResourceAttributes, generic over each signal's attribute value type. Both existing functions keep their exported names, parameter lists and return types and now delegate to it — buildResourceAttributes is a public @posthog/core export with a shipped call site in packages/browser, so nothing about its surface moves.

The OS attributes on posthog-js logs, from detectOS(navigator.userAgent), merged before user resourceAttributes so a user-supplied value still wins. Either key is omitted rather than emitted empty when it can't be determined, and the path cannot throw out of client construction.

os.name is normalized to one cross-SDK vocabulary. This is the part worth a look. The raw detected spellings disagree across SDKs for the same OS:

OS detectOS posthog-ios posthog-android posthog-rn
macOS Mac OS X macOS macos
iOS iOS iOS ios
Android Android Android android
Windows Windows windows

detectOS already agrees with the native SDKs on iOS, Android and watchOS — macOS was the only real disagreement, so normalizeOsName maps Mac OS XmacOS. OpenTelemetry defines os.name as the human-readable name, which is what iOS and Android already send; the lowercase identifiers belong to os.type, a different attribute.

The table also covers node:os platform() identifiers (darwin, win32, …) so posthog-node can reuse osResourceAttributes without inventing a third spelling. That consumer is #4679feat(node): emit os.name and os.version on spans — which is the PR this one was split out of, and it is why the node:os keys are in the table now rather than bolted on later. Node reaches them through osResourceAttributes alone, which is why that is the only symbol exported. React Native is deliberately untouched — its lowercase values are already shipped, so realigning them is a data-migration conversation and shouldn't block this.

Reviewer notes

  • Behavior preservation was checked by output, not by reading. The pre-refactor bodies were re-implemented from the base commit and diffed against the new builder across 3,888 combinations: 9 user-attribute shapes (empty, collisions on all five SDK-controlled keys, integer-like keys, prototype-inherited keys, and non-string values including null, undefined, booleans and numbers) x 6 values for each of serviceName/environment/serviceVersion x 2 SDK name/version pairs — asserting toEqual, Object.keys order and JSON.stringify equality. Identical every time. Key order matters because toOtlpKeyValueList iterates the object.
  • One new @posthog/core export, tagged @internal. osResourceAttributes is added to core's entry point because packages/browser can only reach core through its published entry points. It appears in dist/index.d.ts and carries @internal Exposed for cross-package use within this SDK; not part of the stable public API. — the same idiom createNamedError already uses. buildOtlpResourceAttributes and normalizeOsName stay module-internal and are absent from dist/index.d.ts. No posthog-js public API changes.
  • Browser metrics deliberately don't get the OS attributes — only logs. No spec covers metrics resource attributes, and widening that is out of scope here.

Verification

packages/core: 56 suites, 1111 pass. packages/browser: posthog-logs 157 pass (was 156 — one added here asserts os.* reaches the emitted payload), logs-defaults 17 pass. eslint clean on all changed files. tsc --noEmit on core reports 37 errors both with and without this change — all pre-existing in unrelated __tests__ files, none naming a file touched here.

Release info Sub-libraries affected

Libraries affected

  • All of them
  • posthog-js (web)
  • posthog-js-lite (web lite)
  • posthog-node
  • posthog-react-native
  • @posthog/react-native-plugin
  • @posthog/react
  • @posthog/ai
  • @posthog/convex
  • @posthog/next
  • @posthog/nextjs-config
  • @posthog/nuxt
  • @posthog/openfeature-node-provider
  • @posthog/openfeature-web-provider
  • @posthog/rollup-plugin
  • @posthog/webpack-plugin
  • @posthog/types
  • @posthog/browser-common

@posthog/core is also bumped (patch); it has no checkbox above.

Checklist

  • Tests for new code
  • Accounted for the impact of any changes across different platforms
  • Accounted for backwards compatibility of any changes (no breaking changes!)
  • Took care not to unnecessarily increase the bundle size

Two new resource attributes appear on logs batches from the web SDK — new behavior on an already-shipped payload, hence the minor bump. os.name is emitted whenever the user agent can be placed; os.version is absent where the user agent does not carry one (Android and desktop Linux). Both keys are overridable and both are omitted when undetectable. Nothing is removed or renamed.

If releasing new changes

  • Ran pnpm changeset to generate a changeset file

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Built with Claude Code, directed by @turnipdabeets.

Split out of #4679 during a pre-PR review pass: that PR sat three deep in a stack behind the traces MVP, but only ~10 of its lines actually needed traces. The os.name vocabulary divergence was found by comparing the emitted values against posthog-ios, posthog-android and posthog-react-native source — the original change would have shipped a fourth spelling for macOS.

A later review pass added the two follow-up commits: normalizeOsName was un-exported after a rebuild showed it reaching the published dist/index.d.ts with no cross-package caller, and the changeset was corrected — it had claimed one os.name filter matches every SDK, which posthog-react-native's already-shipped lowercase ios/android falsifies. That parity gap is left for a separate spec proposal, since realigning it changes a shipped attribute value.

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

posthog-node Compliance Report

Date: 2026-08-31 21:48:42 UTC
Duration: 198255ms

✅ All Tests Passed!

111/111 tests passed


Capture_V1 Tests

94/94 tests passed

View Details
Test Status Duration
Endpoint And Method.Targets V1 Endpoint 93ms
Endpoint And Method.Does Not Use Legacy Endpoints 13ms
Required Headers.Has Authorization Bearer Header 11ms
Required Headers.Has Content Type Json 11ms
Required Headers.Has Posthog Sdk Info Format 11ms
Required Headers.Has Posthog Attempt Header 11ms
Required Headers.Has Posthog Request Id 10ms
Required Headers.Has Posthog Request Timestamp 11ms
Required Headers.Has User Agent 11ms
Body Format.Body Has Created At And Batch 8ms
Body Format.No Api Key In Body 9ms
Body Format.No Sent At In Body 8ms
Event Format.Event Has Required Root Fields 7ms
Event Format.Event Uuid Is Valid 7ms
Event Format.Event Timestamp Is Rfc3339 7ms
Event Format.Distinct Id Is String 7ms
Event Format.Distinct Id At Root Not Properties 8ms
Event Format.Custom Properties Preserved 7ms
Event Format.Set Properties Preserved 8ms
Event Format.Set Once Properties Preserved 7ms
Event Format.Groups Properties Preserved 7ms
Event Format.Sdk Generates Uuid If Not Provided 8ms
Event Format.Event Has Required Root Fields Batch 10ms
Event Format.Event Uuid Is Valid Batch 11ms
Event Format.Event Timestamp Is Rfc3339 Batch 10ms
Event Format.Distinct Id Is String Batch 10ms
Event Format.Distinct Id At Root Not Properties Batch 11ms
Event Format.Custom Properties Preserved Batch 10ms
Event Format.Set Properties Preserved Batch 12ms
Event Format.Set Once Properties Preserved Batch 10ms
Event Format.Groups Properties Preserved Batch 10ms
Event Format.Sdk Generates Uuid If Not Provided Batch 11ms
Batch Behavior.Multiple Events In Single Batch 12ms
Batch Behavior.Batch Envelope Smoke 11ms
Batch Behavior.Flush With No Events Sends Nothing 4ms
Batch Behavior.Flush At Triggers Batch 1008ms
Batch Behavior.Created At Reflects Batch Creation Time 10ms
Deduplication.Generates Unique Uuids 28ms
Deduplication.Different Events Same Content Different Uuids 10ms
Deduplication.Preserves Uuid On Retry 6018ms
Deduplication.Preserves Timestamp On Retry 6019ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry 6023ms
Deduplication.No Duplicate Events In Batch 15ms
Header Behavior On Retry.Attempt Header Starts At One 8ms
Header Behavior On Retry.Attempt Header Increments On Retry 12028ms
Header Behavior On Retry.Request Id Preserved On Retry 6018ms
Header Behavior On Retry.Different Requests Have Different Request Ids 2018ms
Header Behavior On Retry.Request Timestamp Changes On Retry 6018ms
Response Format Validation.Success Response Has Uuid Keyed Results 10ms
Response Format Validation.Success Response Has Ok For Each Event 11ms
Response Format Validation.Success No Retry After When All Ok 10ms
Response Format Validation.Success Retry After Present When Retry Events 1013ms
Response Format Validation.Success No Retry After When Drop Only 13ms
Response Format Validation.Response Echoes Request Id 8ms
Retry Behavior.Retries On 408 6017ms
Retry Behavior.Retries On 500 6019ms
Retry Behavior.Retries On 503 7023ms
Retry Behavior.Retries On 504 6020ms
Retry Behavior.Retryable Errors Have Retry After 3016ms
Retry Behavior.Respects Retry After On Retryable Error 11023ms
Retry Behavior.Does Not Retry On 400 2013ms
Retry Behavior.Does Not Retry On 401 2012ms
Retry Behavior.Does Not Retry On 402 2011ms
Retry Behavior.Does Not Retry On 413 2013ms
Retry Behavior.Does Not Retry On 415 2012ms
Retry Behavior.Non Retryable Errors Have No Retry After 2013ms
Retry Behavior.Implements Backoff 18022ms
Retry Behavior.Max Retries Respected 18029ms
Partial Batch Handling.Handles 200 Full Success 2010ms
Partial Batch Handling.Handles 200 With All Ok 3017ms
Partial Batch Handling.Does Not Retry Dropped Events 3012ms
Partial Batch Handling.Does Not Retry Limited Events 3014ms
Partial Batch Handling.Prunes Ok Events On Partial Retry 6021ms
Partial Batch Handling.Prunes Dropped Events On Partial Retry 6020ms
Partial Batch Handling.Retries Only Retry Events From Partial 6023ms
Partial Batch Handling.Partial Retry Preserves Uuids 6020ms
Partial Batch Handling.Partial Retry Attempt Header Increments 6022ms
Partial Batch Handling.Partial Retry Request Id Preserved 6021ms
Partial Batch Handling.Respects Retry After On Partial 8020ms
Partial Batch Handling.Unknown Result Treated As Terminal 3015ms
Partial Batch Handling.Mixed Ok Drop Limited No Retry 3017ms
Compression.Sends Gzip Content Encoding 9ms
Compression.No Content Encoding When Disabled 8ms
Compression.Compressed Body Is Decompressible 7ms
Error Handling.Does Not Retry On Unknown 4Xx 2010ms
Event Options.Cookieless Mode Override 10ms
Event Options.Disable Skew Correction Override 8ms
Event Options.Process Person Profile Override 9ms
Event Options.Product Tour Id Override 8ms
Event Options.Unset Options Omitted 8ms
Event Options.Options Override In Batch 10ms
Geoip And Historical Migration.Geoip Disable Injected Into Properties 8ms
Geoip And Historical Migration.Historical Migration Set In Body 7ms
Geoip And Historical Migration.Historical Migration Absent By Default 8ms

Feature_Flags Tests

17/17 tests passed

View Details
Test Status Duration
Request Payload.Request With Person Properties Device Id 12ms
Request Payload.Flags Request Uses V2 Query Param 10ms
Request Payload.Flags Request Hits Flags Path Not Decide 9ms
Request Payload.Flags Request Omits Authorization Header 11ms
Request Payload.Token In Flags Body Matches Init 9ms
Request Payload.Groups Round Trip 10ms
Request Payload.Groups Default To Empty Object 9ms
Request Payload.Disable Geoip False Propagates As Geoip Disable False 10ms
Request Payload.Disable Geoip Omitted Defaults To False 10ms
Request Payload.Flag Keys To Evaluate Contains Only Requested Key 9ms
Request Lifecycle.No Flags Request On Init Alone 2ms
Request Lifecycle.No Flags Request On Normal Capture 9ms
Request Lifecycle.Two Flag Calls Produce Two Remote Requests 13ms
Request Lifecycle.Mock Response Value Is Returned To Caller 9ms
Retry Behavior.Retries Flags On 502 264ms
Retry Behavior.Retries Flags On 504 264ms
Side Effect Events.Get Feature Flag Captures Feature Flag Called Event 13ms

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

posthog-js Compliance Report

Date: 2026-08-31 21:45:30 UTC
Duration: 88602ms

✅ All Tests Passed!

26/26 tests passed


Capture Tests

26/26 tests passed

View Details
Test Status Duration
Format Validation.Event Has Required Fields Client 73ms
Format Validation.Event Has Uuid 14ms
Format Validation.Event Has Lib Properties 10ms
Format Validation.Distinct Id Is String Client 13ms
Format Validation.Token Is Present Client 12ms
Format Validation.Custom Properties Preserved 12ms
Format Validation.Event Has Timestamp 11ms
Retry Behavior.Retries On 503 5015ms
Retry Behavior.Does Not Retry On 400 2017ms
Retry Behavior.Does Not Retry On 401 2017ms
Retry Behavior.Respects Retry After Header 5014ms
Retry Behavior.Implements Backoff 15026ms
Retry Behavior.Retries On 500 5031ms
Retry Behavior.Retries On 502 5016ms
Retry Behavior.Retries On 504 5012ms
Retry Behavior.Max Retries Respected 15025ms
Deduplication.Generates Unique Uuids 17ms
Deduplication.Preserves Uuid On Retry 5010ms
Deduplication.Preserves Uuid And Timestamp On Retry 10020ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry 5014ms
Deduplication.No Duplicate Events In Batch 15ms
Deduplication.Different Events Have Different Uuids 9ms
Batch Format.Flush With No Events Sends Nothing 5ms
Error Handling.Does Not Retry On 403 2010ms
Error Handling.Does Not Retry On 413 2012ms
Error Handling.Retries On 408 5012ms

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Size Change: +7.71 kB (+0.04%)

Total Size: 20.8 MB

📦 View Changed
Filename Size Change
packages/browser/dist/array.full.es5.js 483 kB +232 B (+0.05%)
packages/browser/dist/array.full.js 613 kB +229 B (+0.04%)
packages/browser/dist/array.full.no-********.js 667 kB +229 B (+0.03%)
packages/browser/dist/array.js 272 kB +229 B (+0.08%)
packages/browser/dist/array.no-********.js 307 kB +231 B (+0.08%)
packages/browser/dist/default-extensions.js 269 kB +231 B (+0.09%)
packages/browser/dist/extension-bundles.js 154 kB +1.61 kB (+1.06%)
packages/browser/dist/main.js 276 kB +231 B (+0.08%)
packages/browser/dist/module.full.js 616 kB +229 B (+0.04%)
packages/browser/dist/module.full.no-********.js 670 kB +229 B (+0.03%)
packages/browser/dist/module.js 275 kB +229 B (+0.08%)
packages/browser/dist/module.no-********.js 311 kB +231 B (+0.07%)
packages/core/dist/index.js 24.1 kB +624 B (+2.66%)
packages/core/dist/index.mjs 2.6 kB +88 B (+3.5%)
packages/core/dist/logs/logs-utils.js 6.59 kB -225 B (-3.3%)
packages/core/dist/logs/logs-utils.mjs 4.51 kB -268 B (-5.61%)
packages/core/dist/metrics/metrics-utils.js 3.65 kB -225 B (-5.81%)
packages/core/dist/metrics/metrics-utils.mjs 1.71 kB -268 B (-13.56%) 👏
packages/core/dist/utils/otlp-********.js 2.66 kB +2.66 kB (new file) 🆕
packages/core/dist/utils/otlp-********.mjs 1.18 kB +1.18 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
packages/ai/dist/anthropic/index.cjs 41.3 kB 0 B
packages/ai/dist/anthropic/index.mjs 41 kB 0 B
packages/ai/dist/gemini/index.cjs 40.9 kB 0 B
packages/ai/dist/gemini/index.mjs 40.8 kB 0 B
packages/ai/dist/index.cjs 63.4 kB 0 B
packages/ai/dist/index.mjs 63.3 kB 0 B
packages/ai/dist/langchain/index.cjs 42.8 kB 0 B
packages/ai/dist/langchain/index.mjs 42.7 kB 0 B
packages/ai/dist/langchain/middleware/index.cjs 49.5 kB 0 B
packages/ai/dist/langchain/middleware/index.mjs 49.4 kB 0 B
packages/ai/dist/openai-agents/index.cjs 31.8 kB 0 B
packages/ai/dist/openai-agents/index.mjs 31.7 kB 0 B
packages/ai/dist/openai/index.cjs 93.3 kB 0 B
packages/ai/dist/openai/index.mjs 92.9 kB 0 B
packages/ai/dist/otel/index.cjs 18.4 kB 0 B
packages/ai/dist/otel/index.mjs 18.3 kB 0 B
packages/ai/dist/vercel/index.cjs 53.5 kB 0 B
packages/ai/dist/vercel/index.mjs 53.5 kB 0 B
packages/browser-common/dist/client.js 603 B 0 B
packages/browser-common/dist/client.mjs 0 B 0 B 🆕
packages/browser-common/dist/config.js 1.43 kB 0 B
packages/browser-common/dist/config.mjs 223 B 0 B
packages/browser-common/dist/constants.js 1.66 kB 0 B
packages/browser-common/dist/constants.mjs 219 B 0 B
packages/browser-common/dist/disposable.js 1.63 kB 0 B
packages/browser-common/dist/disposable.mjs 386 B 0 B
packages/browser-common/dist/extension-runtime.js 3.07 kB 0 B
packages/browser-common/dist/extension-runtime.mjs 1.83 kB 0 B
packages/browser-common/dist/extension.js 603 B 0 B
packages/browser-common/dist/extension.mjs 0 B 0 B 🆕
packages/browser-common/dist/index.js 3.08 kB 0 B
packages/browser-common/dist/index.mjs 170 B 0 B
packages/browser-common/dist/persistence.js 603 B 0 B
packages/browser-common/dist/persistence.mjs 0 B 0 B 🆕
packages/browser-common/dist/pubsub.js 2.53 kB 0 B
packages/browser-common/dist/pubsub.mjs 1.35 kB 0 B
packages/browser-common/dist/token.js 603 B 0 B
packages/browser-common/dist/token.mjs 0 B 0 B 🆕
packages/browser-common/dist/types/compression.js 1.28 kB 0 B
packages/browser-common/dist/types/compression.mjs 93 B 0 B
packages/browser-common/dist/types/index.js 4.11 kB 0 B
packages/browser-common/dist/types/index.mjs 144 B 0 B
packages/browser-common/dist/types/network-recording.js 603 B 0 B
packages/browser-common/dist/types/network-recording.mjs 0 B 0 B 🆕
packages/browser-common/dist/types/remote-config.js 603 B 0 B
packages/browser-common/dist/types/remote-config.mjs 0 B 0 B 🆕
packages/browser-common/dist/types/surveys.js 4.55 kB 0 B
packages/browser-common/dist/types/surveys.mjs 2.17 kB 0 B
packages/browser-common/dist/utils/array-at-********.js 628 B 0 B
packages/browser-common/dist/utils/array-at-********.mjs 425 B 0 B
packages/browser-common/dist/utils/autocapture-utils.js 24.2 kB 0 B
packages/browser-common/dist/utils/autocapture-utils.mjs 18.6 kB 0 B
packages/browser-common/dist/utils/blocked-uas.js 2.1 kB 0 B
packages/browser-common/dist/utils/blocked-uas.mjs 598 B 0 B
packages/browser-common/dist/utils/cookie-utils.js 1.89 kB 0 B
packages/browser-common/dist/utils/cookie-utils.mjs 673 B 0 B
packages/browser-common/dist/utils/device-model-utils.js 1.98 kB 0 B
packages/browser-common/dist/utils/device-model-utils.mjs 678 B 0 B
packages/browser-common/dist/utils/element-utils.js 2.46 kB 0 B
packages/browser-common/dist/utils/element-utils.mjs 804 B 0 B
packages/browser-common/dist/utils/elements-chain-utils.js 2.77 kB 0 B
packages/browser-common/dist/utils/elements-chain-utils.mjs 1.23 kB 0 B
packages/browser-common/dist/utils/encode-utils.js 1.4 kB 0 B
packages/browser-common/dist/utils/encode-utils.mjs 205 B 0 B
packages/browser-common/dist/utils/event-utils.js 15.7 kB 0 B
packages/browser-common/dist/utils/event-utils.mjs 10 kB 0 B
packages/browser-common/dist/utils/general-utils.js 7.31 kB 0 B
packages/browser-common/dist/utils/general-utils.mjs 4.49 kB 0 B
packages/browser-common/dist/utils/globals.js 2.78 kB 0 B
packages/browser-common/dist/utils/globals.mjs 860 B 0 B
packages/browser-common/dist/utils/logger.js 3.4 kB 0 B
packages/browser-common/dist/utils/logger.mjs 1.61 kB 0 B
packages/browser-common/dist/utils/matcher-utils.js 2.85 kB 0 B
packages/browser-common/dist/utils/matcher-utils.mjs 1.33 kB 0 B
packages/browser-common/dist/utils/promise-utils.js 1.36 kB 0 B
packages/browser-common/dist/utils/promise-utils.mjs 169 B 0 B
packages/browser-common/dist/utils/property-utils.js 3.53 kB 0 B
packages/browser-common/dist/utils/property-utils.mjs 1.6 kB 0 B
packages/browser-common/dist/utils/prototype-utils.js 3.51 kB 0 B
packages/browser-common/dist/utils/prototype-utils.mjs 1.86 kB 0 B
packages/browser-common/dist/utils/regex-utils.js 1.45 kB 0 B
packages/browser-common/dist/utils/regex-utils.mjs 113 B 0 B
packages/browser-common/dist/utils/request-utils.js 6.73 kB 0 B
packages/browser-common/dist/utils/request-utils.mjs 4.19 kB 0 B
packages/browser-common/dist/utils/simple-event-emitter.js 1.76 kB 0 B
packages/browser-common/dist/utils/simple-event-emitter.mjs 553 B 0 B
packages/browser-common/dist/utils/stylesheet-loader.js 2.13 kB 0 B
packages/browser-common/dist/utils/stylesheet-loader.mjs 823 B 0 B
packages/browser-common/dist/utils/type-utils.js 1.59 kB 0 B
packages/browser-common/dist/utils/type-utils.mjs 267 B 0 B
packages/browser-common/dist/utils/url-targeting-utils.js 2.35 kB 0 B
packages/browser-common/dist/utils/url-targeting-utils.mjs 863 B 0 B
packages/browser-common/dist/utils/uuidv7.js 6.66 kB 0 B
packages/browser-common/dist/utils/uuidv7.mjs 5.18 kB 0 B
packages/browser-next/dist/analytics-********.js 1.58 kB 0 B
packages/browser-next/dist/analytics-********.mjs 219 B 0 B
packages/browser-next/dist/analytics-options.js 603 B 0 B
packages/browser-next/dist/analytics-options.mjs 0 B 0 B 🆕
packages/browser-next/dist/analytics.js 6.52 kB 0 B
packages/browser-next/dist/analytics.mjs 5.15 kB 0 B
packages/browser-next/dist/bot-filter.js 2.28 kB 0 B
packages/browser-next/dist/bot-filter.mjs 1.09 kB 0 B
packages/browser-next/dist/capture-v1.js 27.7 kB 0 B
packages/browser-next/dist/capture-v1.mjs 25.3 kB 0 B
packages/browser-next/dist/core.js 1.59 kB 0 B
packages/browser-next/dist/core.mjs 194 B 0 B
packages/browser-next/dist/extensions/registry.js 3.32 kB 0 B
packages/browser-next/dist/extensions/registry.mjs 2.11 kB 0 B
packages/browser-next/dist/id.js 2.15 kB 0 B
packages/browser-next/dist/id.mjs 983 B 0 B
packages/browser-next/dist/index.js 3.38 kB 0 B
packages/browser-next/dist/index.mjs 1.19 kB 0 B
packages/browser-next/dist/lane.js 18 kB 0 B
packages/browser-next/dist/lane.mjs 16.9 kB 0 B
packages/browser-next/dist/logger.js 1.77 kB 0 B
packages/browser-next/dist/logger.mjs 581 B 0 B
packages/browser-next/dist/posthog.js 33.1 kB 0 B
packages/browser-next/dist/posthog.mjs 30.9 kB 0 B
packages/browser-next/dist/rate-limiter.js 2.79 kB 0 B
packages/browser-next/dist/rate-limiter.mjs 1.58 kB 0 B
packages/browser-next/dist/request.js 4.52 kB 0 B
packages/browser-next/dist/request.mjs 3.21 kB 0 B
packages/browser-next/dist/state.js 24.8 kB 0 B
packages/browser-next/dist/state.mjs 23.2 kB 0 B
packages/browser-next/dist/types.js 603 B 0 B
packages/browser-next/dist/types.mjs 0 B 0 B 🆕
packages/browser-next/dist/version.js 1.21 kB 0 B
packages/browser-next/dist/version.mjs 45 B 0 B
packages/browser/dist/all-external-dependencies.js 379 kB 0 B
packages/browser/dist/conversations.js 68.2 kB 0 B
packages/browser/dist/crisp-chat-integration.js 2.03 kB 0 B
packages/browser/dist/customizations.full.js 16.1 kB 0 B
packages/browser/dist/customizations.js 16 kB 0 B
packages/browser/dist/dead-clicks-autocapture.js 18.3 kB 0 B
packages/browser/dist/element-inference.js 5.62 kB 0 B
packages/browser/dist/exception-autocapture.js 13.6 kB 0 B
packages/browser/dist/external-scripts-loader.js 3.6 kB 0 B
packages/browser/dist/intercom-integration.js 2.08 kB 0 B
packages/browser/dist/lazy-********.js 202 kB 0 B
packages/browser/dist/logs.js 5.83 kB 0 B
packages/browser/dist/module.slim.js 135 kB 0 B
packages/browser/dist/module.slim.no-********.js 146 kB 0 B
packages/browser/dist/posthog-********.js 202 kB 0 B
packages/browser/dist/product-tours-preview.js 82.4 kB 0 B
packages/browser/dist/product-tours.js 124 kB 0 B
packages/browser/dist/recorder-v2.js 126 kB 0 B
packages/browser/dist/recorder.js 126 kB 0 B
packages/browser/dist/rrweb-plugin-console-record.js 7.05 kB 0 B
packages/browser/dist/rrweb-types.js 2.33 kB 0 B
packages/browser/dist/rrweb.js 318 kB 0 B
packages/browser/dist/surveys-preview.js 81.5 kB 0 B
packages/browser/dist/surveys.js 103 kB 0 B
packages/browser/dist/tracing-headers.js 3.76 kB 0 B
packages/browser/dist/web-vitals-soft-navs.js 9.9 kB 0 B
packages/browser/dist/web-vitals-with-attribution-soft-navs.js 25.1 kB 0 B
packages/browser/dist/web-vitals-with-attribution.js 18.4 kB 0 B
packages/browser/dist/web-vitals.js 6.91 kB 0 B
packages/browser/react/dist/esm/index.js 22.5 kB 0 B
packages/browser/react/dist/esm/slim/index.js 18.9 kB 0 B
packages/browser/react/dist/esm/surveys/index.js 4.75 kB 0 B
packages/browser/react/dist/umd/index.js 25.9 kB 0 B
packages/browser/react/dist/umd/slim/index.js 21.8 kB 0 B
packages/browser/react/dist/umd/surveys/index.js 5.52 kB 0 B
packages/convex/dist/client/feature-flags/crypto.js 76 B 0 B
packages/convex/dist/client/feature-flags/evaluator.js 14.9 kB 0 B
packages/convex/dist/client/feature-flags/index.js 196 B 0 B
packages/convex/dist/client/feature-flags/match-********.js 5.08 kB 0 B
packages/convex/dist/client/feature-flags/types.js 44 B 0 B
packages/convex/dist/client/index.js 14.8 kB 0 B
packages/convex/dist/component/_generated/api.js 712 B 0 B
packages/convex/dist/component/_generated/component.js 212 B 0 B
packages/convex/dist/component/_generated/dataModel.js 230 B 0 B
packages/convex/dist/component/_generated/server.js 3.74 kB 0 B
packages/convex/dist/component/convex.config.js 1.66 kB 0 B
packages/convex/dist/component/crons.js 969 B 0 B
packages/convex/dist/component/lib.js 24.8 kB 0 B
packages/convex/dist/component/schema.js 1.17 kB 0 B
packages/convex/dist/component/version.js 67 B 0 B
packages/core/dist/cookie.js 5.34 kB 0 B
packages/core/dist/cookie.mjs 3.12 kB 0 B
packages/core/dist/error-tracking/chunk-ids.js 2.54 kB 0 B
packages/core/dist/error-tracking/chunk-ids.mjs 1.31 kB 0 B
packages/core/dist/error-tracking/coercers/dom-exception-coercer.js 2.3 kB 0 B
packages/core/dist/error-tracking/coercers/dom-exception-coercer.mjs 993 B 0 B
packages/core/dist/error-tracking/coercers/error-coercer.js 2.13 kB 0 B
packages/core/dist/error-tracking/coercers/error-coercer.mjs 888 B 0 B
packages/core/dist/error-tracking/coercers/error-event-coercer.js 2.37 kB 0 B
packages/core/dist/error-tracking/coercers/error-event-coercer.mjs 1.07 kB 0 B
packages/core/dist/error-tracking/coercers/event-coercer.js 1.82 kB 0 B
packages/core/dist/error-tracking/coercers/event-coercer.mjs 548 B 0 B
packages/core/dist/error-tracking/coercers/index.js 6.79 kB 0 B
packages/core/dist/error-tracking/coercers/index.mjs 326 B 0 B
packages/core/dist/error-tracking/coercers/object-coercer.js 4.04 kB 0 B
packages/core/dist/error-tracking/coercers/object-coercer.mjs 2.53 kB 0 B
packages/core/dist/error-tracking/coercers/primitive-coercer.js 1.67 kB 0 B
packages/core/dist/error-tracking/coercers/primitive-coercer.mjs 419 B 0 B
packages/core/dist/error-tracking/coercers/promise-rejection-event.js 2.59 kB 0 B
packages/core/dist/error-tracking/coercers/promise-rejection-event.mjs 1.25 kB 0 B
packages/core/dist/error-tracking/coercers/string-coercer.js 2.01 kB 0 B
packages/core/dist/error-tracking/coercers/string-coercer.mjs 820 B 0 B
packages/core/dist/error-tracking/coercers/utils.js 2.06 kB 0 B
packages/core/dist/error-tracking/coercers/utils.mjs 716 B 0 B
packages/core/dist/error-tracking/error-properties-builder.js 5.56 kB 0 B
packages/core/dist/error-tracking/error-properties-builder.mjs 4.23 kB 0 B
packages/core/dist/error-tracking/exception-steps.js 6.01 kB 0 B
packages/core/dist/error-tracking/exception-steps.mjs 3.84 kB 0 B
packages/core/dist/error-tracking/index.js 5.32 kB 0 B
packages/core/dist/error-tracking/index.mjs 222 B 0 B
packages/core/dist/error-tracking/parsers/base.js 2 kB 0 B
packages/core/dist/error-tracking/parsers/base.mjs 627 B 0 B
packages/core/dist/error-tracking/parsers/chrome.js 2.73 kB 0 B
packages/core/dist/error-tracking/parsers/chrome.mjs 1.32 kB 0 B
packages/core/dist/error-tracking/parsers/gecko.js 2.47 kB 0 B
packages/core/dist/error-tracking/parsers/gecko.mjs 1.13 kB 0 B
packages/core/dist/error-tracking/parsers/index.js 4.75 kB 0 B
packages/core/dist/error-tracking/parsers/index.mjs 2.1 kB 0 B
packages/core/dist/error-tracking/parsers/node.js 4.21 kB 0 B
packages/core/dist/error-tracking/parsers/node.mjs 2.95 kB 0 B
packages/core/dist/error-tracking/parsers/opera.js 2.26 kB 0 B
packages/core/dist/error-tracking/parsers/opera.mjs 746 B 0 B
packages/core/dist/error-tracking/parsers/safari.js 1.88 kB 0 B
packages/core/dist/error-tracking/parsers/safari.mjs 574 B 0 B
packages/core/dist/error-tracking/parsers/winjs.js 1.72 kB 0 B
packages/core/dist/error-tracking/parsers/winjs.mjs 426 B 0 B
packages/core/dist/error-tracking/release.js 1.42 kB 0 B
packages/core/dist/error-tracking/release.mjs 203 B 0 B
packages/core/dist/error-tracking/types.js 1.33 kB 0 B
packages/core/dist/error-tracking/types.mjs 131 B 0 B
packages/core/dist/error-tracking/utils.js 1.8 kB 0 B
packages/core/dist/error-tracking/utils.mjs 604 B 0 B
packages/core/dist/eventemitter.js 1.78 kB 0 B
packages/core/dist/eventemitter.mjs 571 B 0 B
packages/core/dist/featureFlagLocalEvaluation.js 22.1 kB 0 B
packages/core/dist/featureFlagLocalEvaluation.mjs 19.6 kB 0 B
packages/core/dist/featureFlagUtils.js 8.52 kB 0 B
packages/core/dist/featureFlagUtils.mjs 5.48 kB 0 B
packages/core/dist/gzip.js 5.79 kB 0 B
packages/core/dist/gzip.mjs 3.87 kB 0 B
packages/core/dist/logs/index.js 10.8 kB 0 B
packages/core/dist/logs/index.mjs 9.17 kB 0 B
packages/core/dist/logs/types.js 603 B 0 B
packages/core/dist/logs/types.mjs 0 B 0 B 🆕
packages/core/dist/metrics/config.js 1.95 kB 0 B
packages/core/dist/metrics/config.mjs 735 B 0 B
packages/core/dist/metrics/index.js 14.4 kB 0 B
packages/core/dist/metrics/index.mjs 12 kB 0 B
packages/core/dist/metrics/types.js 603 B 0 B
packages/core/dist/metrics/types.mjs 0 B 0 B 🆕
packages/core/dist/posthog-core-stateless.js 46.9 kB 0 B
packages/core/dist/posthog-core-stateless.mjs 43.6 kB 0 B
packages/core/dist/posthog-core.js 49.5 kB 0 B
packages/core/dist/posthog-core.mjs 43.9 kB 0 B
packages/core/dist/surveys/activation.js 2.2 kB 0 B
packages/core/dist/surveys/activation.mjs 572 B 0 B
packages/core/dist/surveys/events.js 4.27 kB 0 B
packages/core/dist/surveys/events.mjs 2.05 kB 0 B
packages/core/dist/surveys/index.js 6.54 kB 0 B
packages/core/dist/surveys/index.mjs 1.4 kB 0 B
packages/core/dist/surveys/keys.js 1.7 kB 0 B
packages/core/dist/surveys/keys.mjs 350 B 0 B
packages/core/dist/surveys/property-********.js 3.69 kB 0 B
packages/core/dist/surveys/property-********.mjs 2.14 kB 0 B
packages/core/dist/surveys/translations.js 9.09 kB 0 B
packages/core/dist/surveys/translations.mjs 6.83 kB 0 B
packages/core/dist/surveys/validation.js 3.06 kB 0 B
packages/core/dist/surveys/validation.mjs 1.51 kB 0 B
packages/core/dist/testing/index.js 2.93 kB 0 B
packages/core/dist/testing/index.mjs 79 B 0 B
packages/core/dist/testing/PostHogCoreTestClient.js 3.24 kB 0 B
packages/core/dist/testing/PostHogCoreTestClient.mjs 1.83 kB 0 B
packages/core/dist/testing/test-utils.js 2.83 kB 0 B
packages/core/dist/testing/test-utils.mjs 1.15 kB 0 B
packages/core/dist/tracing-headers.js 3.38 kB 0 B
packages/core/dist/tracing-headers.mjs 2.08 kB 0 B
packages/core/dist/types.js 8.35 kB 0 B
packages/core/dist/types.mjs 5.23 kB 0 B
packages/core/dist/utils/bot-detection.js 3.28 kB 0 B
packages/core/dist/utils/bot-detection.mjs 1.96 kB 0 B
packages/core/dist/utils/browser-utils.js 1.48 kB 0 B
packages/core/dist/utils/browser-utils.mjs 182 B 0 B
packages/core/dist/utils/bucketed-rate-limiter.js 4.23 kB 0 B
packages/core/dist/utils/bucketed-rate-limiter.mjs 2.22 kB 0 B
packages/core/dist/utils/index.js 16.6 kB 0 B
packages/core/dist/utils/index.mjs 3.36 kB 0 B
packages/core/dist/utils/json-utils.js 6.67 kB 0 B
packages/core/dist/utils/json-utils.mjs 4.45 kB 0 B
packages/core/dist/utils/logger.js 2.58 kB 0 B
packages/core/dist/utils/logger.mjs 1.29 kB 0 B
packages/core/dist/utils/number-utils.js 3.32 kB 0 B
packages/core/dist/utils/number-utils.mjs 1.68 kB 0 B
packages/core/dist/utils/otlp-any-value.js 7.75 kB 0 B
packages/core/dist/utils/otlp-any-value.mjs 5.66 kB 0 B
packages/core/dist/utils/promise-queue.js 2.48 kB 0 B
packages/core/dist/utils/promise-queue.mjs 1.25 kB 0 B
packages/core/dist/utils/string-utils.js 3.73 kB 0 B
packages/core/dist/utils/string-utils.mjs 1.97 kB 0 B
packages/core/dist/utils/type-utils.js 7.43 kB 0 B
packages/core/dist/utils/type-utils.mjs 3.28 kB 0 B
packages/core/dist/utils/user-agent-utils.js 18.4 kB 0 B
packages/core/dist/utils/user-agent-utils.mjs 14.7 kB 0 B
packages/core/dist/vendor/uuidv7.js 8.3 kB 0 B
packages/core/dist/vendor/uuidv7.mjs 6.72 kB 0 B
packages/mcp/dist/extensions/analytics-parameters.js 6.53 kB 0 B
packages/mcp/dist/extensions/analytics-parameters.mjs 4.27 kB 0 B
packages/mcp/dist/extensions/capture.js 3.94 kB 0 B
packages/mcp/dist/extensions/capture.mjs 2.58 kB 0 B
packages/mcp/dist/extensions/client-********.js 6.23 kB 0 B
packages/mcp/dist/extensions/client-********.mjs 3.71 kB 0 B
packages/mcp/dist/extensions/compatibility.js 5.36 kB 0 B
packages/mcp/dist/extensions/compatibility.mjs 3.4 kB 0 B
packages/mcp/dist/extensions/constants.js 5.39 kB 0 B
packages/mcp/dist/extensions/constants.mjs 2.95 kB 0 B
packages/mcp/dist/extensions/context-parameters.js 2.75 kB 0 B
packages/mcp/dist/extensions/context-parameters.mjs 893 B 0 B
packages/mcp/dist/extensions/conversation-id.js 6.31 kB 0 B
packages/mcp/dist/extensions/conversation-id.mjs 3.58 kB 0 B
packages/mcp/dist/extensions/detect.js 3.77 kB 0 B
packages/mcp/dist/extensions/detect.mjs 1.49 kB 0 B
packages/mcp/dist/extensions/event-types.js 1.68 kB 0 B
packages/mcp/dist/extensions/event-types.mjs 459 B 0 B
packages/mcp/dist/extensions/exceptions.js 2.57 kB 0 B
packages/mcp/dist/extensions/exceptions.mjs 1.19 kB 0 B
packages/mcp/dist/extensions/headers.js 1.98 kB 0 B
packages/mcp/dist/extensions/headers.mjs 643 B 0 B
packages/mcp/dist/extensions/ids.js 2.01 kB 0 B
packages/mcp/dist/extensions/ids.mjs 637 B 0 B
packages/mcp/dist/extensions/instrument-********.js 4.92 kB 0 B
packages/mcp/dist/extensions/instrument-********.mjs 3.18 kB 0 B
packages/mcp/dist/extensions/instrument-highlevel.js 12.7 kB 0 B
packages/mcp/dist/extensions/instrument-highlevel.mjs 10.2 kB 0 B
packages/mcp/dist/extensions/instrumentation.js 27.8 kB 0 B
packages/mcp/dist/extensions/instrumentation.mjs 21.9 kB 0 B
packages/mcp/dist/extensions/intent.js 3.2 kB 0 B
packages/mcp/dist/extensions/intent.mjs 1.64 kB 0 B
packages/mcp/dist/extensions/internal.js 7.54 kB 0 B
packages/mcp/dist/extensions/internal.mjs 5.23 kB 0 B
packages/mcp/dist/extensions/lib-********.js 1.6 kB 0 B
packages/mcp/dist/extensions/lib-********.mjs 267 B 0 B
packages/mcp/dist/extensions/logger.js 1.72 kB 0 B
packages/mcp/dist/extensions/logger.mjs 380 B 0 B
packages/mcp/dist/extensions/mcp-********.js 4.68 kB 0 B
packages/mcp/dist/extensions/mcp-********.mjs 3.3 kB 0 B
packages/mcp/dist/extensions/mcp-sdk-compat.js 5.04 kB 0 B
packages/mcp/dist/extensions/mcp-sdk-compat.mjs 2.9 kB 0 B
packages/mcp/dist/extensions/model-parameters.js 3.49 kB 0 B
packages/mcp/dist/extensions/model-parameters.mjs 1.41 kB 0 B
packages/mcp/dist/extensions/output-instructions.js 6.11 kB 0 B
packages/mcp/dist/extensions/output-instructions.mjs 3.91 kB 0 B
packages/mcp/dist/extensions/posthog-events.js 11.7 kB 0 B
packages/mcp/dist/extensions/posthog-events.mjs 7.98 kB 0 B
packages/mcp/dist/extensions/posthog-mcp.js 6.94 kB 0 B
packages/mcp/dist/extensions/posthog-mcp.mjs 4.93 kB 0 B
packages/mcp/dist/extensions/request-headers.js 2.17 kB 0 B
packages/mcp/dist/extensions/request-headers.mjs 963 B 0 B
packages/mcp/dist/extensions/sanitization.js 4.49 kB 0 B
packages/mcp/dist/extensions/sanitization.mjs 2.86 kB 0 B
packages/mcp/dist/extensions/session-token.js 5.39 kB 0 B
packages/mcp/dist/extensions/session-token.mjs 3.62 kB 0 B
packages/mcp/dist/extensions/session.js 6.64 kB 0 B
packages/mcp/dist/extensions/session.mjs 4.12 kB 0 B
packages/mcp/dist/extensions/sink.js 4.37 kB 0 B
packages/mcp/dist/extensions/sink.mjs 2.67 kB 0 B
packages/mcp/dist/extensions/tools.js 3.51 kB 0 B
packages/mcp/dist/extensions/tools.mjs 1.63 kB 0 B
packages/mcp/dist/extensions/tracing-helpers.js 2.41 kB 0 B
packages/mcp/dist/extensions/tracing-helpers.mjs 772 B 0 B
packages/mcp/dist/extensions/transport-********.js 2.91 kB 0 B
packages/mcp/dist/extensions/transport-********.mjs 1.09 kB 0 B
packages/mcp/dist/extensions/truncation.js 11.5 kB 0 B
packages/mcp/dist/extensions/truncation.mjs 9.79 kB 0 B
packages/mcp/dist/index.js 8.78 kB 0 B
packages/mcp/dist/index.mjs 4.96 kB 0 B
packages/mcp/dist/types.js 603 B 0 B
packages/mcp/dist/types.mjs 0 B 0 B 🆕
packages/mcp/dist/version.js 1.21 kB 0 B
packages/mcp/dist/version.mjs 46 B 0 B
packages/next/dist/app/PostHogProvider.js 5.37 kB 0 B
packages/next/dist/client/ClientPostHogProvider.js 2.28 kB 0 B
packages/next/dist/client/hooks.js 172 B 0 B
packages/next/dist/client/PostHogPageView.js 4.23 kB 0 B
packages/next/dist/index.client.js 401 B 0 B
packages/next/dist/index.edge.js 570 B 0 B
packages/next/dist/index.js 554 B 0 B
packages/next/dist/index.react-server.js 420 B 0 B
packages/next/dist/middleware/postHogMiddleware.js 4.08 kB 0 B
packages/next/dist/pages.client.js 225 B 0 B
packages/next/dist/pages.edge.js 294 B 0 B
packages/next/dist/pages.js 347 B 0 B
packages/next/dist/pages/createPostHog.js 1.48 kB 0 B
packages/next/dist/pages/getServerSidePostHog.js 1.48 kB 0 B
packages/next/dist/pages/PostHogPageView.js 1.77 kB 0 B
packages/next/dist/pages/PostHogProvider.js 1.58 kB 0 B
packages/next/dist/server.edge.js 795 B 0 B
packages/next/dist/server/captureRequestError.js 5.26 kB 0 B
packages/next/dist/server/clientCache.edge.js 305 B 0 B
packages/next/dist/server/clientCache.js 1.54 kB 0 B
packages/next/dist/server/clientCache.node.js 305 B 0 B
packages/next/dist/server/createPostHog.js 1.44 kB 0 B
packages/next/dist/server/getPostHog.js 3.45 kB 0 B
packages/next/dist/server/onRequestError.js 1.39 kB 0 B
packages/next/dist/server/onRequestError.types.js 59 B 0 B
packages/next/dist/shared/browser.js 195 B 0 B
packages/next/dist/shared/config.js 2.23 kB 0 B
packages/next/dist/shared/constants.js 201 B 0 B
packages/next/dist/shared/cookie.js 540 B 0 B
packages/next/dist/shared/identity.js 2.56 kB 0 B
packages/next/dist/shared/tracing-headers.js 2.18 kB 0 B
packages/nextjs-config/dist/config.js 6.1 kB 0 B
packages/nextjs-config/dist/config.mjs 4.53 kB 0 B
packages/nextjs-config/dist/index.js 2.24 kB 0 B
packages/nextjs-config/dist/index.mjs 30 B 0 B
packages/nextjs-config/dist/strip-sourcemap-********.js 3.63 kB 0 B
packages/nextjs-config/dist/strip-sourcemap-********.mjs 1.77 kB 0 B
packages/nextjs-config/dist/utils.js 2.94 kB 0 B
packages/nextjs-config/dist/utils.mjs 826 B 0 B
packages/node/dist/ai-capture/batching.js 2.61 kB 0 B
packages/node/dist/ai-capture/batching.mjs 1.21 kB 0 B
packages/node/dist/ai-capture/routing.js 1.87 kB 0 B
packages/node/dist/ai-capture/routing.mjs 264 B 0 B
packages/node/dist/capture-v1/config.js 1.5 kB 0 B
packages/node/dist/capture-v1/config.mjs 292 B 0 B
packages/node/dist/capture-v1/errors.js 1.89 kB 0 B
packages/node/dist/capture-v1/errors.mjs 694 B 0 B
packages/node/dist/capture-v1/routing.js 1.68 kB 0 B
packages/node/dist/capture-v1/routing.mjs 279 B 0 B
packages/node/dist/capture-v1/sender.js 11.4 kB 0 B
packages/node/dist/capture-v1/sender.mjs 9.94 kB 0 B
packages/node/dist/capture-v1/transform.js 5.13 kB 0 B
packages/node/dist/capture-v1/transform.mjs 3.65 kB 0 B
packages/node/dist/capture-v1/types.js 603 B 0 B
packages/node/dist/capture-v1/types.mjs 0 B 0 B 🆕
packages/node/dist/client.js 59.5 kB 0 B
packages/node/dist/client.mjs 56.2 kB 0 B
packages/node/dist/entrypoints/index.edge.js 3.85 kB 0 B
packages/node/dist/entrypoints/index.edge.mjs 720 B 0 B
packages/node/dist/entrypoints/index.node.js 6.05 kB 0 B
packages/node/dist/entrypoints/index.node.mjs 1.43 kB 0 B
packages/node/dist/entrypoints/nestjs.js 2.31 kB 0 B
packages/node/dist/entrypoints/nestjs.mjs 42 B 0 B
packages/node/dist/experimental.js 870 B 0 B
packages/node/dist/experimental.mjs 267 B 0 B
packages/node/dist/exports.js 6.75 kB 0 B
packages/node/dist/exports.mjs 582 B 0 B
packages/node/dist/extensions/context/context.js 2.13 kB 0 B
packages/node/dist/extensions/context/context.mjs 863 B 0 B
packages/node/dist/extensions/context/types.js 603 B 0 B
packages/node/dist/extensions/context/types.mjs 0 B 0 B 🆕
packages/node/dist/extensions/error-tracking/autocapture.js 5.19 kB 0 B
packages/node/dist/extensions/error-tracking/autocapture.mjs 3.62 kB 0 B
packages/node/dist/extensions/error-tracking/index.js 4.38 kB 0 B
packages/node/dist/extensions/error-tracking/index.mjs 3.17 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/context-lines.node.js 11.6 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs 9.64 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/module.node.js 2.78 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/module.node.mjs 1.45 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/relative-path.node.js 1.97 kB 0 B
packages/node/dist/extensions/error-tracking/modifiers/relative-path.node.mjs 624 B 0 B
packages/node/dist/extensions/express.js 4.97 kB 0 B
packages/node/dist/extensions/express.mjs 2.78 kB 0 B
packages/node/dist/extensions/feature-flags/cache.js 603 B 0 B
packages/node/dist/extensions/feature-flags/cache.mjs 0 B 0 B 🆕
packages/node/dist/extensions/feature-flags/crypto.js 1.27 kB 0 B
packages/node/dist/extensions/feature-flags/crypto.mjs 63 B 0 B
packages/node/dist/extensions/feature-flags/feature-flags.js 32.2 kB 0 B
packages/node/dist/extensions/feature-flags/feature-flags.mjs 29.8 kB 0 B
packages/node/dist/extensions/nestjs.js 5.62 kB 0 B
packages/node/dist/extensions/nestjs.mjs 3.42 kB 0 B
packages/node/dist/extensions/sentry-integration.js 4.88 kB 0 B
packages/node/dist/extensions/sentry-integration.mjs 3.36 kB 0 B
packages/node/dist/extensions/tracing-headers.js 3.31 kB 0 B
packages/node/dist/extensions/tracing-headers.mjs 1.53 kB 0 B
packages/node/dist/extensions/url-utils.js 2.22 kB 0 B
packages/node/dist/extensions/url-utils.mjs 785 B 0 B
packages/node/dist/feature-flag-evaluations.js 6.12 kB 0 B
packages/node/dist/feature-flag-evaluations.mjs 4.77 kB 0 B
packages/node/dist/gzip.node.js 1.74 kB 0 B
packages/node/dist/gzip.node.mjs 416 B 0 B
packages/node/dist/storage-memory.js 1.52 kB 0 B
packages/node/dist/storage-memory.mjs 297 B 0 B
packages/node/dist/types.js 1.43 kB 0 B
packages/node/dist/types.mjs 224 B 0 B
packages/node/dist/version.js 1.21 kB 0 B
packages/node/dist/version.mjs 46 B 0 B
packages/nuxt/dist/module.mjs 5.92 kB 0 B
packages/nuxt/dist/runtime/composables/useFeatureFlagEnabled.js 566 B 0 B
packages/nuxt/dist/runtime/composables/useFeatureFlagPayload.js 690 B 0 B
packages/nuxt/dist/runtime/composables/useFeatureFlagVariantKey.js 591 B 0 B
packages/nuxt/dist/runtime/composables/usePostHog.js 128 B 0 B
packages/nuxt/dist/runtime/nitro-plugin-v2.js 480 B 0 B
packages/nuxt/dist/runtime/nitro-plugin-v3.js 574 B 0 B
packages/nuxt/dist/runtime/nitro-plugin.js 1.03 kB 0 B
packages/nuxt/dist/runtime/vue-plugin.js 1.13 kB 0 B
packages/openfeature-node-provider/dist/index.js 1.76 kB 0 B
packages/openfeature-node-provider/dist/index.mjs 190 B 0 B
packages/openfeature-node-provider/dist/mapping.js 5.32 kB 0 B
packages/openfeature-node-provider/dist/mapping.mjs 3.21 kB 0 B
packages/openfeature-node-provider/dist/provider.js 3.99 kB 0 B
packages/openfeature-node-provider/dist/provider.mjs 2.6 kB 0 B
packages/openfeature-web-provider/dist/index.js 1.75 kB 0 B
packages/openfeature-web-provider/dist/index.mjs 184 B 0 B
packages/openfeature-web-provider/dist/mapping.js 5.29 kB 0 B
packages/openfeature-web-provider/dist/mapping.mjs 3.18 kB 0 B
packages/openfeature-web-provider/dist/provider.js 4.41 kB 0 B
packages/openfeature-web-provider/dist/provider.mjs 3.06 kB 0 B
packages/plugin-utils/dist/chunk-ids.js 3.86 kB 0 B
packages/plugin-utils/dist/chunk-ids.mjs 2.05 kB 0 B
packages/plugin-utils/dist/cli.js 4.37 kB 0 B
packages/plugin-utils/dist/cli.mjs 2.72 kB 0 B
packages/plugin-utils/dist/config.js 3.5 kB 0 B
packages/plugin-utils/dist/config.mjs 2.26 kB 0 B
packages/plugin-utils/dist/index.js 4.98 kB 0 B
packages/plugin-utils/dist/index.mjs 250 B 0 B
packages/plugin-utils/dist/spawn-local.js 3.08 kB 0 B
packages/plugin-utils/dist/spawn-local.mjs 1.66 kB 0 B
packages/plugin-utils/dist/utils.js 3.27 kB 0 B
packages/plugin-utils/dist/utils.mjs 1.3 kB 0 B
packages/react-native/dist/autocapture.js 8.31 kB 0 B
packages/react-native/dist/error-tracking/index.js 9.97 kB 0 B
packages/react-native/dist/error-tracking/utils.js 2.58 kB 0 B
packages/react-native/dist/frameworks/wix-navigation.js 1.3 kB 0 B
packages/react-native/dist/hooks/useFeatureFlag.js 1.86 kB 0 B
packages/react-native/dist/hooks/useFeatureFlagResult.js 983 B 0 B
packages/react-native/dist/hooks/useFeatureFlags.js 941 B 0 B
packages/react-native/dist/hooks/useNavigationTracker.js 2.45 kB 0 B
packages/react-native/dist/hooks/usePostHog.js 544 B 0 B
packages/react-native/dist/hooks/utils.js 988 B 0 B
packages/react-native/dist/index.js 4.33 kB 0 B
packages/react-native/dist/logs-********.js 3.66 kB 0 B
packages/react-native/dist/native-deps.js 8.73 kB 0 B
packages/react-native/dist/optional/OptionalAsyncStorage.js 299 B 0 B
packages/react-native/dist/optional/OptionalExpoApplication.js 377 B 0 B
packages/react-native/dist/optional/OptionalExpoDevice.js 347 B 0 B
packages/react-native/dist/optional/OptionalExpoFileSystem.js 386 B 0 B
packages/react-native/dist/optional/OptionalExpoFileSystemLegacy.js 423 B 0 B
packages/react-native/dist/optional/OptionalExpoLocalization.js 383 B 0 B
packages/react-native/dist/optional/OptionalPlugin.js 891 B 0 B
packages/react-native/dist/optional/OptionalReactNativeDeviceInfo.js 415 B 0 B
packages/react-native/dist/optional/OptionalReactNativeLocalize.js 303 B 0 B
packages/react-native/dist/optional/OptionalReactNativeNavigation.js 415 B 0 B
packages/react-native/dist/optional/OptionalReactNativeNavigationWix.js 443 B 0 B
packages/react-native/dist/optional/OptionalReactNativeSafeArea.js 644 B 0 B
packages/react-native/dist/optional/OptionalReactNativeSvg.js 872 B 0 B
packages/react-native/dist/posthog-rn.js 67.4 kB 0 B
packages/react-native/dist/PostHogContext.js 329 B 0 B
packages/react-native/dist/PostHogErrorBoundary.js 3.19 kB 0 B
packages/react-native/dist/PostHogMaskView.js 1.68 kB 0 B
packages/react-native/dist/PostHogProvider.js 6 kB 0 B
packages/react-native/dist/storage.js 5.76 kB 0 B
packages/react-native/dist/surveys/components/BottomSection.js 1.51 kB 0 B
packages/react-native/dist/surveys/components/Cancel.js 1.1 kB 0 B
packages/react-native/dist/surveys/components/ConfirmationMessage.js 1.76 kB 0 B
packages/react-native/dist/surveys/components/IntroMessage.js 1.65 kB 0 B
packages/react-native/dist/surveys/components/QuestionHeader.js 1.47 kB 0 B
packages/react-native/dist/surveys/components/QuestionTypes.js 14 kB 0 B
packages/react-native/dist/surveys/components/SurveyModal.js 7.24 kB 0 B
packages/react-native/dist/surveys/components/Surveys.js 6.58 kB 0 B
packages/react-native/dist/surveys/getActiveMatchingSurveys.js 2.69 kB 0 B
packages/react-native/dist/surveys/icons.js 10 kB 0 B
packages/react-native/dist/surveys/index.js 600 B 0 B
packages/react-native/dist/surveys/PostHogSurveyProvider.js 6.73 kB 0 B
packages/react-native/dist/surveys/safeStyleSheet.js 448 B 0 B
packages/react-native/dist/surveys/survey-translations.js 1.11 kB 0 B
packages/react-native/dist/surveys/surveys-utils.js 11.5 kB 0 B
packages/react-native/dist/surveys/useActivatedSurveys.js 3.68 kB 0 B
packages/react-native/dist/surveys/useSurveyStorage.js 2.48 kB 0 B
packages/react-native/dist/tooling/expoconfig.js 23.6 kB 0 B
packages/react-native/dist/tooling/metroconfig.js 2.32 kB 0 B
packages/react-native/dist/tooling/posthogMetroSerializer.js 7.74 kB 0 B
packages/react-native/dist/tooling/utils.js 4.2 kB 0 B
packages/react-native/dist/tooling/vendor/expo/expoconfig.js 70 B 0 B
packages/react-native/dist/tooling/vendor/metro/countLines.js 237 B 0 B
packages/react-native/dist/tooling/vendor/metro/utils.js 3.51 kB 0 B
packages/react-native/dist/types.js 70 B 0 B
packages/react-native/dist/utils.js 1.3 kB 0 B
packages/react-native/dist/version.js 130 B 0 B
packages/react/dist/esm/index.js 22.5 kB 0 B
packages/react/dist/esm/slim/index.js 18.9 kB 0 B
packages/react/dist/esm/surveys/index.js 4.75 kB 0 B
packages/react/dist/umd/index.js 25.9 kB 0 B
packages/react/dist/umd/slim/index.js 21.8 kB 0 B
packages/react/dist/umd/surveys/index.js 5.52 kB 0 B
packages/rollup-plugin/dist/index.js 7.6 kB 0 B
packages/rrweb/all/dist/rrweb-all.cjs 705 kB 0 B
packages/rrweb/all/dist/rrweb-all.js 705 kB 0 B
packages/rrweb/all/dist/rrweb-all.umd.cjs 708 kB 0 B
packages/rrweb/all/dist/rrweb-all.umd.min.cjs 328 kB 0 B
packages/rrweb/packer/dist/base-********.cjs 18.3 kB 0 B
packages/rrweb/packer/dist/base-********.js 18.2 kB 0 B
packages/rrweb/packer/dist/base-********.umd.cjs 18.7 kB 0 B
packages/rrweb/packer/dist/base-********.umd.min.cjs 9.5 kB 0 B
packages/rrweb/packer/dist/pack.cjs 347 B 0 B
packages/rrweb/packer/dist/pack.js 285 B 0 B
packages/rrweb/packer/dist/pack.umd.cjs 1.63 kB 0 B
packages/rrweb/packer/dist/pack.umd.min.cjs 1.11 kB 0 B
packages/rrweb/packer/dist/packer.cjs 257 B 0 B
packages/rrweb/packer/dist/packer.js 136 B 0 B
packages/rrweb/packer/dist/packer.umd.cjs 662 B 0 B
packages/rrweb/packer/dist/packer.umd.min.cjs 626 B 0 B
packages/rrweb/packer/dist/unpack.cjs 769 B 0 B
packages/rrweb/packer/dist/unpack.js 702 B 0 B
packages/rrweb/packer/dist/unpack.umd.cjs 1.17 kB 0 B
packages/rrweb/packer/dist/unpack.umd.min.cjs 955 B 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.cjs 37.6 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.js 37.5 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.cjs 38 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-record/dist/rrweb-plugin-canvas-webrtc-record.umd.min.cjs 22.2 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.cjs 34.3 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.js 34.2 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.cjs 34.7 kB 0 B
packages/rrweb/plugins/rrweb-plugin-canvas-webrtc-replay/dist/rrweb-plugin-canvas-webrtc-replay.umd.min.cjs 20.5 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.cjs 15.8 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.js 15.7 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.cjs 16.3 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-record/dist/rrweb-plugin-console-record.umd.min.cjs 7.66 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.cjs 5.01 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.js 4.9 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.cjs 5.44 kB 0 B
packages/rrweb/plugins/rrweb-plugin-console-replay/dist/rrweb-plugin-console-replay.umd.min.cjs 2.64 kB 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.cjs 681 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.js 548 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.cjs 1.12 kB 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-record/dist/rrweb-plugin-sequential-id-record.umd.min.cjs 829 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.cjs 933 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.js 820 B 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.cjs 1.37 kB 0 B
packages/rrweb/plugins/rrweb-plugin-sequential-id-replay/dist/rrweb-plugin-sequential-id-replay.umd.min.cjs 968 B 0 B
packages/rrweb/record/dist/rrweb-record.cjs 234 kB 0 B
packages/rrweb/record/dist/rrweb-record.js 233 kB 0 B
packages/rrweb/record/dist/rrweb-record.umd.cjs 234 kB 0 B
packages/rrweb/record/dist/rrweb-record.umd.min.cjs 107 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.cjs 476 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.js 476 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.umd.cjs 479 kB 0 B
packages/rrweb/replay/dist/rrweb-replay.umd.min.cjs 225 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.cjs 160 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.js 160 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.cjs 162 kB 0 B
packages/rrweb/rrdom-nodejs/dist/rrdom-nodejs.umd.min.cjs 74.9 kB 0 B
packages/rrweb/rrdom/dist/rrdom.cjs 186 kB 0 B
packages/rrweb/rrdom/dist/rrdom.js 185 kB 0 B
packages/rrweb/rrdom/dist/rrdom.umd.cjs 187 kB 0 B
packages/rrweb/rrdom/dist/rrdom.umd.min.cjs 85.5 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.cjs 39 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.js 37.3 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.umd.cjs 83.2 kB 0 B
packages/rrweb/rrweb-snapshot/dist/record.umd.min.cjs 37.4 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.cjs 149 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.js 149 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.umd.cjs 194 kB 0 B
packages/rrweb/rrweb-snapshot/dist/replay.umd.min.cjs 86.2 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.cjs 3.95 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.js 2.32 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.umd.cjs 261 kB 0 B
packages/rrweb/rrweb-snapshot/dist/rrweb-********.umd.min.cjs 109 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.cjs 37.6 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.js 36.5 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.umd.cjs 39 kB 0 B
packages/rrweb/rrweb-snapshot/dist/types-********.umd.min.cjs 17.3 kB 0 B
packages/rrweb/rrweb/dist/rrweb.cjs 689 kB 0 B
packages/rrweb/rrweb/dist/rrweb.js 689 kB 0 B
packages/rrweb/rrweb/dist/rrweb.umd.cjs 689 kB 0 B
packages/rrweb/rrweb/dist/rrweb.umd.min.cjs 318 kB 0 B
packages/rrweb/types/dist/rrweb-types.cjs 5.75 kB 0 B
packages/rrweb/types/dist/rrweb-types.js 5.46 kB 0 B
packages/rrweb/types/dist/rrweb-types.umd.cjs 6.16 kB 0 B
packages/rrweb/types/dist/rrweb-types.umd.min.cjs 2.86 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.cjs 7.76 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.js 7.3 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.umd.cjs 8.24 kB 0 B
packages/rrweb/utils/dist/rrweb-utils.umd.min.cjs 4.09 kB 0 B
packages/types/dist/capture-log.js 603 B 0 B
packages/types/dist/capture-log.mjs 0 B 0 B 🆕
packages/types/dist/capture-metric.js 1.37 kB 0 B
packages/types/dist/capture-metric.mjs 93 B 0 B
packages/types/dist/capture.js 603 B 0 B
packages/types/dist/capture.mjs 0 B 0 B 🆕
packages/types/dist/common.js 603 B 0 B
packages/types/dist/common.mjs 0 B 0 B 🆕
packages/types/dist/feature-flags.js 603 B 0 B
packages/types/dist/feature-flags.mjs 0 B 0 B 🆕
packages/types/dist/index.js 1.45 kB 0 B
packages/types/dist/index.mjs 122 B 0 B
packages/types/dist/posthog-config.js 603 B 0 B
packages/types/dist/posthog-config.mjs 0 B 0 B 🆕
packages/types/dist/posthog.js 603 B 0 B
packages/types/dist/posthog.mjs 0 B 0 B 🆕
packages/types/dist/request.js 603 B 0 B
packages/types/dist/request.mjs 0 B 0 B 🆕
packages/types/dist/segment.js 603 B 0 B
packages/types/dist/segment.mjs 0 B 0 B 🆕
packages/types/dist/session-recording.js 603 B 0 B
packages/types/dist/session-recording.mjs 0 B 0 B 🆕
packages/types/dist/survey.js 603 B 0 B
packages/types/dist/survey.mjs 0 B 0 B 🆕
packages/types/dist/toolbar.js 603 B 0 B
packages/types/dist/toolbar.mjs 0 B 0 B 🆕
packages/types/dist/tree-shakeable.js 603 B 0 B
packages/types/dist/tree-shakeable.mjs 0 B 0 B 🆕
packages/web/dist/index.cjs 11.2 kB 0 B
packages/web/dist/index.mjs 11.1 kB 0 B
packages/webpack-plugin/dist/config.js 1.47 kB 0 B
packages/webpack-plugin/dist/config.mjs 480 B 0 B
packages/webpack-plugin/dist/index.js 7.39 kB 0 B
packages/webpack-plugin/dist/index.mjs 3.58 kB 0 B
tooling/changelog/dist/index.js 3.31 kB 0 B
tooling/rollup-utils/dist/index.js 1.17 kB 0 B

compressed-size-action

@turnipdabeets turnipdabeets changed the title feat(core): share the OTLP resource builder and emit os.name/os.version on posthog-js logs feat(browser): add os.name and os.version to logs, and share one OTLP resource builder Aug 31, 2026
@turnipdabeets
turnipdabeets marked this pull request as ready for review August 31, 2026 21:33
@turnipdabeets
turnipdabeets requested a review from a team as a code owner August 31, 2026 21:33
@greptile-apps

greptile-apps Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor
Prompt To Fix All With AI
### Issue 1
packages/core/src/utils/otlp-resource.ts:65
**Inconsistent absence sentinel**

`normalizeOsName` and `osResourceAttributes` use `undefined` to represent an intentionally unavailable OS value, contrary to the repository convention requiring `null`; this establishes an inconsistent API contract and forces callers and tests to handle the wrong sentinel.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "fix(core): guard normalizeOsName against..." | Re-trigger Greptile

Comment thread packages/core/src/utils/otlp-resource.ts
… resource builder

Logs from posthog-js now carry the visitor's OS, normalized to the names the
native SDKs send. buildResourceAttributes and buildMetricsResourceAttributes
delegate to one shared builder.
@turnipdabeets
turnipdabeets force-pushed the feat/otlp-shared-resource-builder branch from 22de641 to 4519225 Compare August 31, 2026 21:41
@turnipdabeets
turnipdabeets merged commit e87820a into main Sep 1, 2026
64 checks passed
@turnipdabeets
turnipdabeets deleted the feat/otlp-shared-resource-builder branch September 1, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants