@posthog/core 1.26.0 → 1.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,9 +2,11 @@ export { getFeatureFlagValue } from './featureFlagUtils';
2
2
  export { gzipCompress, isNativeAsyncGzipReadError } from './gzip';
3
3
  export * from './utils';
4
4
  export * as ErrorTracking from './error-tracking';
5
+ export { buildOtlpLogRecord, buildOtlpLogsPayload, getOtlpSeverityNumber, getOtlpSeverityText, toOtlpAnyValue, toOtlpKeyValueList, } from './logs/logs-utils';
5
6
  export { uuidv7 } from './vendor/uuidv7';
6
7
  export * from './posthog-core';
7
8
  export * from './posthog-core-stateless';
9
+ export * from './tracing-headers';
8
10
  export * from './types';
9
11
  export { getValidationError, getLengthFromRules, getRequirementsHint } from './surveys/validation';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AACjE,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AACjE,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/index.js CHANGED
@@ -9,6 +9,9 @@ var __webpack_modules__ = {
9
9
  "./gzip": function(module) {
10
10
  module.exports = require("./gzip.js");
11
11
  },
12
+ "./logs/logs-utils": function(module) {
13
+ module.exports = require("./logs/logs-utils.js");
14
+ },
12
15
  "./posthog-core-stateless": function(module) {
13
16
  module.exports = require("./posthog-core-stateless.js");
14
17
  },
@@ -18,6 +21,9 @@ var __webpack_modules__ = {
18
21
  "./surveys/validation": function(module) {
19
22
  module.exports = require("./surveys/validation.js");
20
23
  },
24
+ "./tracing-headers": function(module) {
25
+ module.exports = require("./tracing-headers.js");
26
+ },
21
27
  "./types": function(module) {
22
28
  module.exports = require("./types.js");
23
29
  },
@@ -73,100 +79,165 @@ var __webpack_exports__ = {};
73
79
  __webpack_require__.r(__webpack_exports__);
74
80
  __webpack_require__.d(__webpack_exports__, {
75
81
  ErrorTracking: ()=>_error_tracking__WEBPACK_IMPORTED_MODULE_3__,
82
+ buildOtlpLogRecord: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.buildOtlpLogRecord,
83
+ buildOtlpLogsPayload: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.buildOtlpLogsPayload,
76
84
  getFeatureFlagValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getFeatureFlagValue,
77
- getLengthFromRules: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_8__.getLengthFromRules,
78
- getRequirementsHint: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_8__.getRequirementsHint,
79
- getValidationError: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_8__.getValidationError,
85
+ getLengthFromRules: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_10__.getLengthFromRules,
86
+ getOtlpSeverityNumber: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.getOtlpSeverityNumber,
87
+ getOtlpSeverityText: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.getOtlpSeverityText,
88
+ getRequirementsHint: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_10__.getRequirementsHint,
89
+ getValidationError: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_10__.getValidationError,
80
90
  gzipCompress: ()=>_gzip__WEBPACK_IMPORTED_MODULE_1__.gzipCompress,
81
91
  isNativeAsyncGzipReadError: ()=>_gzip__WEBPACK_IMPORTED_MODULE_1__.isNativeAsyncGzipReadError,
82
- uuidv7: ()=>_vendor_uuidv7__WEBPACK_IMPORTED_MODULE_4__.uuidv7
92
+ toOtlpAnyValue: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.toOtlpAnyValue,
93
+ toOtlpKeyValueList: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.toOtlpKeyValueList,
94
+ uuidv7: ()=>_vendor_uuidv7__WEBPACK_IMPORTED_MODULE_5__.uuidv7
83
95
  });
84
96
  var _featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./featureFlagUtils");
85
97
  var _gzip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./gzip");
86
98
  var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./utils?637c");
87
99
  var __WEBPACK_REEXPORT_OBJECT__ = {};
88
100
  for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_2__)if ([
101
+ "toOtlpKeyValueList",
102
+ "getOtlpSeverityText",
103
+ "isNativeAsyncGzipReadError",
104
+ "getFeatureFlagValue",
105
+ "uuidv7",
106
+ "getValidationError",
89
107
  "ErrorTracking",
90
108
  "gzipCompress",
91
109
  "default",
92
110
  "getRequirementsHint",
93
- "isNativeAsyncGzipReadError",
111
+ "getOtlpSeverityNumber",
94
112
  "getLengthFromRules",
95
- "getFeatureFlagValue",
96
- "uuidv7",
97
- "getValidationError"
113
+ "buildOtlpLogsPayload",
114
+ "buildOtlpLogRecord",
115
+ "toOtlpAnyValue"
98
116
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
99
117
  return _utils__WEBPACK_IMPORTED_MODULE_2__[key];
100
118
  }).bind(0, __WEBPACK_IMPORT_KEY__);
101
119
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
102
120
  var _error_tracking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./error-tracking");
103
- var _vendor_uuidv7__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./vendor/uuidv7");
104
- var _posthog_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./posthog-core");
121
+ var _logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./logs/logs-utils");
122
+ var _vendor_uuidv7__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./vendor/uuidv7");
123
+ var _posthog_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./posthog-core");
105
124
  var __WEBPACK_REEXPORT_OBJECT__ = {};
106
- for(var __WEBPACK_IMPORT_KEY__ in _posthog_core__WEBPACK_IMPORTED_MODULE_5__)if ([
125
+ for(var __WEBPACK_IMPORT_KEY__ in _posthog_core__WEBPACK_IMPORTED_MODULE_6__)if ([
126
+ "toOtlpKeyValueList",
127
+ "getOtlpSeverityText",
128
+ "isNativeAsyncGzipReadError",
129
+ "getFeatureFlagValue",
130
+ "uuidv7",
131
+ "getValidationError",
107
132
  "ErrorTracking",
108
133
  "gzipCompress",
109
134
  "default",
110
135
  "getRequirementsHint",
111
- "isNativeAsyncGzipReadError",
136
+ "getOtlpSeverityNumber",
112
137
  "getLengthFromRules",
113
- "getFeatureFlagValue",
114
- "uuidv7",
115
- "getValidationError"
138
+ "buildOtlpLogsPayload",
139
+ "buildOtlpLogRecord",
140
+ "toOtlpAnyValue"
116
141
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
117
- return _posthog_core__WEBPACK_IMPORTED_MODULE_5__[key];
142
+ return _posthog_core__WEBPACK_IMPORTED_MODULE_6__[key];
118
143
  }).bind(0, __WEBPACK_IMPORT_KEY__);
119
144
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
120
- var _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./posthog-core-stateless");
145
+ var _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./posthog-core-stateless");
121
146
  var __WEBPACK_REEXPORT_OBJECT__ = {};
122
- for(var __WEBPACK_IMPORT_KEY__ in _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_6__)if ([
147
+ for(var __WEBPACK_IMPORT_KEY__ in _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_7__)if ([
148
+ "toOtlpKeyValueList",
149
+ "getOtlpSeverityText",
150
+ "isNativeAsyncGzipReadError",
151
+ "getFeatureFlagValue",
152
+ "uuidv7",
153
+ "getValidationError",
123
154
  "ErrorTracking",
124
155
  "gzipCompress",
125
156
  "default",
126
157
  "getRequirementsHint",
127
- "isNativeAsyncGzipReadError",
158
+ "getOtlpSeverityNumber",
128
159
  "getLengthFromRules",
129
- "getFeatureFlagValue",
130
- "uuidv7",
131
- "getValidationError"
160
+ "buildOtlpLogsPayload",
161
+ "buildOtlpLogRecord",
162
+ "toOtlpAnyValue"
132
163
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
133
- return _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_6__[key];
164
+ return _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_7__[key];
134
165
  }).bind(0, __WEBPACK_IMPORT_KEY__);
135
166
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
136
- var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./types");
167
+ var _tracing_headers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./tracing-headers");
137
168
  var __WEBPACK_REEXPORT_OBJECT__ = {};
138
- for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_7__)if ([
169
+ for(var __WEBPACK_IMPORT_KEY__ in _tracing_headers__WEBPACK_IMPORTED_MODULE_8__)if ([
170
+ "toOtlpKeyValueList",
171
+ "getOtlpSeverityText",
172
+ "isNativeAsyncGzipReadError",
173
+ "getFeatureFlagValue",
174
+ "uuidv7",
175
+ "getValidationError",
139
176
  "ErrorTracking",
140
177
  "gzipCompress",
141
178
  "default",
142
179
  "getRequirementsHint",
143
- "isNativeAsyncGzipReadError",
180
+ "getOtlpSeverityNumber",
144
181
  "getLengthFromRules",
182
+ "buildOtlpLogsPayload",
183
+ "buildOtlpLogRecord",
184
+ "toOtlpAnyValue"
185
+ ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
186
+ return _tracing_headers__WEBPACK_IMPORTED_MODULE_8__[key];
187
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
188
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
189
+ var _types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./types");
190
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
191
+ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_9__)if ([
192
+ "toOtlpKeyValueList",
193
+ "getOtlpSeverityText",
194
+ "isNativeAsyncGzipReadError",
145
195
  "getFeatureFlagValue",
146
196
  "uuidv7",
147
- "getValidationError"
197
+ "getValidationError",
198
+ "ErrorTracking",
199
+ "gzipCompress",
200
+ "default",
201
+ "getRequirementsHint",
202
+ "getOtlpSeverityNumber",
203
+ "getLengthFromRules",
204
+ "buildOtlpLogsPayload",
205
+ "buildOtlpLogRecord",
206
+ "toOtlpAnyValue"
148
207
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
149
- return _types__WEBPACK_IMPORTED_MODULE_7__[key];
208
+ return _types__WEBPACK_IMPORTED_MODULE_9__[key];
150
209
  }).bind(0, __WEBPACK_IMPORT_KEY__);
151
210
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
152
- var _surveys_validation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./surveys/validation");
211
+ var _surveys_validation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./surveys/validation");
153
212
  })();
154
213
  exports.ErrorTracking = __webpack_exports__.ErrorTracking;
214
+ exports.buildOtlpLogRecord = __webpack_exports__.buildOtlpLogRecord;
215
+ exports.buildOtlpLogsPayload = __webpack_exports__.buildOtlpLogsPayload;
155
216
  exports.getFeatureFlagValue = __webpack_exports__.getFeatureFlagValue;
156
217
  exports.getLengthFromRules = __webpack_exports__.getLengthFromRules;
218
+ exports.getOtlpSeverityNumber = __webpack_exports__.getOtlpSeverityNumber;
219
+ exports.getOtlpSeverityText = __webpack_exports__.getOtlpSeverityText;
157
220
  exports.getRequirementsHint = __webpack_exports__.getRequirementsHint;
158
221
  exports.getValidationError = __webpack_exports__.getValidationError;
159
222
  exports.gzipCompress = __webpack_exports__.gzipCompress;
160
223
  exports.isNativeAsyncGzipReadError = __webpack_exports__.isNativeAsyncGzipReadError;
224
+ exports.toOtlpAnyValue = __webpack_exports__.toOtlpAnyValue;
225
+ exports.toOtlpKeyValueList = __webpack_exports__.toOtlpKeyValueList;
161
226
  exports.uuidv7 = __webpack_exports__.uuidv7;
162
227
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
163
228
  "ErrorTracking",
229
+ "buildOtlpLogRecord",
230
+ "buildOtlpLogsPayload",
164
231
  "getFeatureFlagValue",
165
232
  "getLengthFromRules",
233
+ "getOtlpSeverityNumber",
234
+ "getOtlpSeverityText",
166
235
  "getRequirementsHint",
167
236
  "getValidationError",
168
237
  "gzipCompress",
169
238
  "isNativeAsyncGzipReadError",
239
+ "toOtlpAnyValue",
240
+ "toOtlpKeyValueList",
170
241
  "uuidv7"
171
242
  ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
172
243
  Object.defineProperty(exports, '__esModule', {
package/dist/index.mjs CHANGED
@@ -1,10 +1,12 @@
1
1
  import { getFeatureFlagValue } from "./featureFlagUtils.mjs";
2
2
  import { gzipCompress, isNativeAsyncGzipReadError } from "./gzip.mjs";
3
+ import { buildOtlpLogRecord, buildOtlpLogsPayload, getOtlpSeverityNumber, getOtlpSeverityText, toOtlpAnyValue, toOtlpKeyValueList } from "./logs/logs-utils.mjs";
3
4
  import { uuidv7 } from "./vendor/uuidv7.mjs";
4
5
  import { getLengthFromRules, getRequirementsHint, getValidationError } from "./surveys/validation.mjs";
5
6
  export * from "./utils/index.mjs";
6
7
  export * from "./posthog-core.mjs";
7
8
  export * from "./posthog-core-stateless.mjs";
9
+ export * from "./tracing-headers.mjs";
8
10
  export * from "./types.mjs";
9
11
  import * as __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ from "./error-tracking/index.mjs";
10
- export { __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, getFeatureFlagValue, getLengthFromRules, getRequirementsHint, getValidationError, gzipCompress, isNativeAsyncGzipReadError, uuidv7 };
12
+ export { __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, buildOtlpLogRecord, buildOtlpLogsPayload, getFeatureFlagValue, getLengthFromRules, getOtlpSeverityNumber, getOtlpSeverityText, getRequirementsHint, getValidationError, gzipCompress, isNativeAsyncGzipReadError, toOtlpAnyValue, toOtlpKeyValueList, uuidv7 };
@@ -0,0 +1,26 @@
1
+ import type { CaptureLogOptions, LogAttributeValue, LogSdkContext, LogSeverityLevel, OtlpAnyValue, OtlpKeyValue, OtlpLogRecord, OtlpLogsPayload, OtlpSeverityText } from '@posthog/types';
2
+ export declare function getOtlpSeverityText(level: LogSeverityLevel): OtlpSeverityText;
3
+ export declare function getOtlpSeverityNumber(level: LogSeverityLevel): number;
4
+ export declare function toOtlpAnyValue(value: LogAttributeValue): OtlpAnyValue;
5
+ export declare function toOtlpKeyValueList(attrs: Record<string, LogAttributeValue>): OtlpKeyValue[];
6
+ /**
7
+ * Builds a single OTLP log record.
8
+ *
9
+ * Auto-attribute population is shape-driven: any field present on `sdkContext`
10
+ * is emitted as the corresponding attribute. Each SDK populates only the
11
+ * fields that apply to it (browser fills `currentUrl`; mobile fills
12
+ * `screenName` / `appState`), so a missing field never adds a stray attribute.
13
+ *
14
+ * User-provided `options.attributes` always wins on conflicts.
15
+ */
16
+ export declare function buildOtlpLogRecord(options: CaptureLogOptions, sdkContext: LogSdkContext): OtlpLogRecord;
17
+ /**
18
+ * Wraps a list of records in the OTLP `resourceLogs` envelope.
19
+ *
20
+ * `scopeName` is the SDK package name (`posthog-js`, `posthog-react-native`,
21
+ * etc.). `scopeVersion` is the SDK semver. The server combines them into a
22
+ * single `instrumentation_scope` field (`{name}@{version}`) used for
23
+ * SDK-version-level attribution in queries and dashboards.
24
+ */
25
+ export declare function buildOtlpLogsPayload(logRecords: OtlpLogRecord[], resourceAttributes: Record<string, LogAttributeValue>, scopeName: string, scopeVersion: string): OtlpLogsPayload;
26
+ //# sourceMappingURL=logs-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs-utils.d.ts","sourceRoot":"","sources":["../../src/logs/logs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EAEf,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AAkBvB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAE7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAErE;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAiCrE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,YAAY,EAAE,CAU3F;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,GAAG,aAAa,CAmDvG;AAMD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EAAE,EAC3B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACrD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,eAAe,CAcjB"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ toOtlpKeyValueList: ()=>toOtlpKeyValueList,
28
+ getOtlpSeverityNumber: ()=>getOtlpSeverityNumber,
29
+ getOtlpSeverityText: ()=>getOtlpSeverityText,
30
+ buildOtlpLogsPayload: ()=>buildOtlpLogsPayload,
31
+ buildOtlpLogRecord: ()=>buildOtlpLogRecord,
32
+ toOtlpAnyValue: ()=>toOtlpAnyValue
33
+ });
34
+ const index_js_namespaceObject = require("../utils/index.js");
35
+ const OTLP_SEVERITY_MAP = {
36
+ trace: {
37
+ text: 'TRACE',
38
+ number: 1
39
+ },
40
+ debug: {
41
+ text: 'DEBUG',
42
+ number: 5
43
+ },
44
+ info: {
45
+ text: 'INFO',
46
+ number: 9
47
+ },
48
+ warn: {
49
+ text: 'WARN',
50
+ number: 13
51
+ },
52
+ error: {
53
+ text: 'ERROR',
54
+ number: 17
55
+ },
56
+ fatal: {
57
+ text: 'FATAL',
58
+ number: 21
59
+ }
60
+ };
61
+ const DEFAULT_OTLP_SEVERITY = OTLP_SEVERITY_MAP.info;
62
+ function getOtlpSeverityText(level) {
63
+ return (OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY).text;
64
+ }
65
+ function getOtlpSeverityNumber(level) {
66
+ return (OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY).number;
67
+ }
68
+ function toOtlpAnyValue(value) {
69
+ if ((0, index_js_namespaceObject.isBoolean)(value)) return {
70
+ boolValue: value
71
+ };
72
+ if ('number' == typeof value) {
73
+ if (!Number.isFinite(value)) return {
74
+ stringValue: String(value)
75
+ };
76
+ if (Number.isInteger(value)) return {
77
+ intValue: value
78
+ };
79
+ return {
80
+ doubleValue: value
81
+ };
82
+ }
83
+ if ('string' == typeof value) return {
84
+ stringValue: value
85
+ };
86
+ if ((0, index_js_namespaceObject.isArray)(value)) return {
87
+ arrayValue: {
88
+ values: value.map((v)=>toOtlpAnyValue(v))
89
+ }
90
+ };
91
+ try {
92
+ return {
93
+ stringValue: JSON.stringify(value)
94
+ };
95
+ } catch {
96
+ return {
97
+ stringValue: String(value)
98
+ };
99
+ }
100
+ }
101
+ function toOtlpKeyValueList(attrs) {
102
+ const result = [];
103
+ for(const key in attrs){
104
+ const value = attrs[key];
105
+ if (!((0, index_js_namespaceObject.isNull)(value) || (0, index_js_namespaceObject.isUndefined)(value))) result.push({
106
+ key,
107
+ value: toOtlpAnyValue(value)
108
+ });
109
+ }
110
+ return result;
111
+ }
112
+ function timestampToUnixNano() {
113
+ return String(Date.now()) + '000000';
114
+ }
115
+ function buildOtlpLogRecord(options, sdkContext) {
116
+ const level = options.level || 'info';
117
+ const { text: severityText, number: severityNumber } = OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY;
118
+ const now = timestampToUnixNano();
119
+ const autoAttributes = {};
120
+ if (sdkContext.distinctId) autoAttributes.posthogDistinctId = sdkContext.distinctId;
121
+ if (sdkContext.sessionId) autoAttributes.sessionId = sdkContext.sessionId;
122
+ if (sdkContext.currentUrl) autoAttributes['url.full'] = sdkContext.currentUrl;
123
+ if (sdkContext.screenName) autoAttributes['screen.name'] = sdkContext.screenName;
124
+ if (sdkContext.appState) autoAttributes['app.state'] = sdkContext.appState;
125
+ if (sdkContext.activeFeatureFlags && sdkContext.activeFeatureFlags.length > 0) autoAttributes.feature_flags = sdkContext.activeFeatureFlags;
126
+ const mergedAttributes = {
127
+ ...autoAttributes,
128
+ ...options.attributes || {}
129
+ };
130
+ const record = {
131
+ timeUnixNano: now,
132
+ observedTimeUnixNano: now,
133
+ severityNumber,
134
+ severityText,
135
+ body: {
136
+ stringValue: options.body
137
+ },
138
+ attributes: toOtlpKeyValueList(mergedAttributes)
139
+ };
140
+ if (options.trace_id) record.traceId = options.trace_id;
141
+ if (options.span_id) record.spanId = options.span_id;
142
+ if (!(0, index_js_namespaceObject.isUndefined)(options.trace_flags)) record.flags = options.trace_flags;
143
+ return record;
144
+ }
145
+ function buildOtlpLogsPayload(logRecords, resourceAttributes, scopeName, scopeVersion) {
146
+ return {
147
+ resourceLogs: [
148
+ {
149
+ resource: {
150
+ attributes: toOtlpKeyValueList(resourceAttributes)
151
+ },
152
+ scopeLogs: [
153
+ {
154
+ scope: {
155
+ name: scopeName,
156
+ version: scopeVersion
157
+ },
158
+ logRecords
159
+ }
160
+ ]
161
+ }
162
+ ]
163
+ };
164
+ }
165
+ exports.buildOtlpLogRecord = __webpack_exports__.buildOtlpLogRecord;
166
+ exports.buildOtlpLogsPayload = __webpack_exports__.buildOtlpLogsPayload;
167
+ exports.getOtlpSeverityNumber = __webpack_exports__.getOtlpSeverityNumber;
168
+ exports.getOtlpSeverityText = __webpack_exports__.getOtlpSeverityText;
169
+ exports.toOtlpAnyValue = __webpack_exports__.toOtlpAnyValue;
170
+ exports.toOtlpKeyValueList = __webpack_exports__.toOtlpKeyValueList;
171
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
172
+ "buildOtlpLogRecord",
173
+ "buildOtlpLogsPayload",
174
+ "getOtlpSeverityNumber",
175
+ "getOtlpSeverityText",
176
+ "toOtlpAnyValue",
177
+ "toOtlpKeyValueList"
178
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
179
+ Object.defineProperty(exports, '__esModule', {
180
+ value: true
181
+ });
@@ -0,0 +1,132 @@
1
+ import { isArray, isBoolean, isNull, isUndefined } from "../utils/index.mjs";
2
+ const OTLP_SEVERITY_MAP = {
3
+ trace: {
4
+ text: 'TRACE',
5
+ number: 1
6
+ },
7
+ debug: {
8
+ text: 'DEBUG',
9
+ number: 5
10
+ },
11
+ info: {
12
+ text: 'INFO',
13
+ number: 9
14
+ },
15
+ warn: {
16
+ text: 'WARN',
17
+ number: 13
18
+ },
19
+ error: {
20
+ text: 'ERROR',
21
+ number: 17
22
+ },
23
+ fatal: {
24
+ text: 'FATAL',
25
+ number: 21
26
+ }
27
+ };
28
+ const DEFAULT_OTLP_SEVERITY = OTLP_SEVERITY_MAP.info;
29
+ function getOtlpSeverityText(level) {
30
+ return (OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY).text;
31
+ }
32
+ function getOtlpSeverityNumber(level) {
33
+ return (OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY).number;
34
+ }
35
+ function toOtlpAnyValue(value) {
36
+ if (isBoolean(value)) return {
37
+ boolValue: value
38
+ };
39
+ if ('number' == typeof value) {
40
+ if (!Number.isFinite(value)) return {
41
+ stringValue: String(value)
42
+ };
43
+ if (Number.isInteger(value)) return {
44
+ intValue: value
45
+ };
46
+ return {
47
+ doubleValue: value
48
+ };
49
+ }
50
+ if ('string' == typeof value) return {
51
+ stringValue: value
52
+ };
53
+ if (isArray(value)) return {
54
+ arrayValue: {
55
+ values: value.map((v)=>toOtlpAnyValue(v))
56
+ }
57
+ };
58
+ try {
59
+ return {
60
+ stringValue: JSON.stringify(value)
61
+ };
62
+ } catch {
63
+ return {
64
+ stringValue: String(value)
65
+ };
66
+ }
67
+ }
68
+ function toOtlpKeyValueList(attrs) {
69
+ const result = [];
70
+ for(const key in attrs){
71
+ const value = attrs[key];
72
+ if (!(isNull(value) || isUndefined(value))) result.push({
73
+ key,
74
+ value: toOtlpAnyValue(value)
75
+ });
76
+ }
77
+ return result;
78
+ }
79
+ function timestampToUnixNano() {
80
+ return String(Date.now()) + '000000';
81
+ }
82
+ function buildOtlpLogRecord(options, sdkContext) {
83
+ const level = options.level || 'info';
84
+ const { text: severityText, number: severityNumber } = OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY;
85
+ const now = timestampToUnixNano();
86
+ const autoAttributes = {};
87
+ if (sdkContext.distinctId) autoAttributes.posthogDistinctId = sdkContext.distinctId;
88
+ if (sdkContext.sessionId) autoAttributes.sessionId = sdkContext.sessionId;
89
+ if (sdkContext.currentUrl) autoAttributes['url.full'] = sdkContext.currentUrl;
90
+ if (sdkContext.screenName) autoAttributes['screen.name'] = sdkContext.screenName;
91
+ if (sdkContext.appState) autoAttributes['app.state'] = sdkContext.appState;
92
+ if (sdkContext.activeFeatureFlags && sdkContext.activeFeatureFlags.length > 0) autoAttributes.feature_flags = sdkContext.activeFeatureFlags;
93
+ const mergedAttributes = {
94
+ ...autoAttributes,
95
+ ...options.attributes || {}
96
+ };
97
+ const record = {
98
+ timeUnixNano: now,
99
+ observedTimeUnixNano: now,
100
+ severityNumber,
101
+ severityText,
102
+ body: {
103
+ stringValue: options.body
104
+ },
105
+ attributes: toOtlpKeyValueList(mergedAttributes)
106
+ };
107
+ if (options.trace_id) record.traceId = options.trace_id;
108
+ if (options.span_id) record.spanId = options.span_id;
109
+ if (!isUndefined(options.trace_flags)) record.flags = options.trace_flags;
110
+ return record;
111
+ }
112
+ function buildOtlpLogsPayload(logRecords, resourceAttributes, scopeName, scopeVersion) {
113
+ return {
114
+ resourceLogs: [
115
+ {
116
+ resource: {
117
+ attributes: toOtlpKeyValueList(resourceAttributes)
118
+ },
119
+ scopeLogs: [
120
+ {
121
+ scope: {
122
+ name: scopeName,
123
+ version: scopeVersion
124
+ },
125
+ logRecords
126
+ }
127
+ ]
128
+ }
129
+ ]
130
+ };
131
+ }
132
+ export { buildOtlpLogRecord, buildOtlpLogsPayload, getOtlpSeverityNumber, getOtlpSeverityText, toOtlpAnyValue, toOtlpKeyValueList };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Minimal contract the tracing-headers patch needs from a PostHog client:
3
+ * something that can report the current distinct and session ids.
4
+ */
5
+ export interface TracingHeadersClient {
6
+ getDistinctId(): string;
7
+ getSessionId(): string;
8
+ }
9
+ /**
10
+ * Patches `globalThis.fetch` to inject `X-POSTHOG-DISTINCT-ID` and
11
+ * `X-POSTHOG-SESSION-ID` headers on requests whose hostname matches `hostnames`.
12
+ *
13
+ * Used by SDKs that run in environments with a WHATWG `fetch` (posthog-react-native,
14
+ * posthog-web) to link outgoing requests to the PostHog session — e.g. to link LLM
15
+ * traces captured by a backend to a frontend session replay.
16
+ *
17
+ * The wrapped fetch is tagged with a non-enumerable marker so that calling this
18
+ * again (on HMR, tests, or a second PostHog instance) unwraps the previous patch
19
+ * before rewrapping — preventing patches from stacking. Returns a function that
20
+ * restores the original fetch when called.
21
+ */
22
+ export declare const patchFetchForTracingHeaders: (client: TracingHeadersClient, hostnames: string[]) => (() => void);
23
+ //# sourceMappingURL=tracing-headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-headers.d.ts","sourceRoot":"","sources":["../src/tracing-headers.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,IAAI,MAAM,CAAA;IACvB,YAAY,IAAI,MAAM,CAAA;CACvB;AAKD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,GAAI,QAAQ,oBAAoB,EAAE,WAAW,MAAM,EAAE,KAAG,CAAC,MAAM,IAAI,CAyD1G,CAAA"}