posthog-js 1.321.1 → 1.321.2

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/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.321.1",
3
+ "version": "1.321.2",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",
@@ -74,9 +74,9 @@
74
74
  "@jest/globals": "^29.7.0",
75
75
  "@playwright/test": "^1.52.0",
76
76
  "@posthog-tooling/rollup-utils": "workspace:*",
77
- "@posthog/rrweb-plugin-console-record": "^0.0.34",
78
- "@posthog/rrweb-record": "^0.0.34",
79
- "@posthog/rrweb-types": "^0.0.34",
77
+ "@posthog/rrweb-plugin-console-record": "^0.0.35",
78
+ "@posthog/rrweb-record": "^0.0.35",
79
+ "@posthog/rrweb-types": "^0.0.35",
80
80
  "@rollup/plugin-babel": "^6.0.4",
81
81
  "@rollup/plugin-commonjs": "^28.0.6",
82
82
  "@rollup/plugin-json": "^6.1.0",
@@ -127,13 +127,7 @@ var initializeLogs = function (posthog) {
127
127
  }
128
128
  };
129
129
  };
130
- // If session replay is enabled it copies the original console log function to __rrweb_original__
131
- // wrap this one too
132
130
  var originalConsoleLog = globals_1.assignableWindow.console[level];
133
- if ('__rrweb_original__' in globals_1.assignableWindow.console[level]) {
134
- originalConsoleLog = globals_1.assignableWindow.console[level]['__rrweb_original__'];
135
- globals_1.assignableWindow.console[level]['__rrweb_original__'] = logWrapper(originalConsoleLog);
136
- }
137
131
  globals_1.assignableWindow.console[level] = logWrapper(originalConsoleLog);
138
132
  };
139
133
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/entrypoints/logs.ts"],"names":[],"mappings":"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","sourcesContent":["import { logs } from '@opentelemetry/api-logs'\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http'\nimport { LoggerProvider, BatchLogRecordProcessor } from '@opentelemetry/sdk-logs'\nimport { resourceFromAttributes } from '@opentelemetry/resources'\n\nimport { assignableWindow } from '../utils/globals'\nimport { PostHog } from '../posthog-core'\nimport { isObject } from '@posthog/core'\n\nconst setupOpenTelemetry = (posthog: PostHog) => {\n let attributes: Record<string, string> = {\n 'service.name': 'posthog-browser-logs',\n host: assignableWindow.location.host,\n }\n\n if (posthog.sessionManager) {\n const { sessionId, windowId } = posthog.sessionManager.checkAndGetSessionAndWindowId(true)\n attributes = {\n ...attributes,\n 'session.id': sessionId,\n 'window.id': windowId,\n }\n }\n\n logs.setGlobalLoggerProvider(\n new LoggerProvider({\n resource: resourceFromAttributes(attributes),\n processors: [\n new BatchLogRecordProcessor(\n new OTLPLogExporter({\n url: `${posthog.config.api_host}/i/v1/logs?token=${posthog.config.token}`,\n })\n ),\n ],\n })\n )\n}\n\nconst LOG_BODY_SIZE_LIMIT = 10000\nconst LOG_ATTRIBUTES_LIMIT = 50\n\n/**\n * Flattens a nested object into a single level dot-notation object.\n * By default limit to 200kB or 50 keys.\n */\nconst flattenObject = (\n obj: any,\n prefix = '',\n result = {} as Record<string, any>,\n keys_limit = LOG_ATTRIBUTES_LIMIT,\n size_limit = LOG_BODY_SIZE_LIMIT\n) => {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const value = obj[key]\n const newKey = prefix ? `${prefix}.${key}` : key\n\n if (isObject(value)) {\n flattenObject(value, newKey, result, keys_limit, size_limit)\n } else {\n keys_limit -= 1\n size_limit -= value.toString().length\n size_limit -= newKey.length\n if (keys_limit <= 0 || size_limit <= 0) {\n result['attributes_truncated'] = true\n return\n } else {\n result[newKey] = value\n }\n }\n }\n }\n return result\n}\n\nconst SEVERITY_MAP = {\n log: 'INFO',\n warn: 'WARNING',\n error: 'ERROR',\n debug: 'DEBUG',\n info: 'INFO',\n}\n\nconst initializeLogs = (posthog: PostHog) => {\n setupOpenTelemetry(posthog)\n\n const logger = logs.getLogger('console')\n let attributes: Record<string, string> = {}\n if (posthog.sessionManager) {\n const { sessionStartTimestamp, lastActivityTimestamp } =\n posthog.sessionManager.checkAndGetSessionAndWindowId(true)\n attributes = {\n sessionStartTimestamp: sessionStartTimestamp.toString(),\n lastActivityTimestamp: lastActivityTimestamp.toString(),\n }\n }\n\n for (const level of ['debug', 'log', 'warn', 'error', 'info'] as ('debug' | 'log' | 'warn' | 'error' | 'info')[]) {\n const errorReplacer = (_: any, value: any) => {\n if (value instanceof Error) {\n return {\n ...value,\n name: value.name,\n message: value.message,\n stack: value.stack,\n }\n }\n return value\n }\n const logWrapper =\n (originalConsoleLog: any) =>\n (...args: any[]) => {\n if (args.length > 0) {\n let body = args.map((a) => JSON.stringify(a, errorReplacer)).join(' ')\n if (body.length > LOG_BODY_SIZE_LIMIT) {\n body = body.slice(0, LOG_BODY_SIZE_LIMIT) + '...'\n attributes.body_truncated = 'true'\n }\n logger.emit({\n severityText: SEVERITY_MAP[level],\n body: body,\n attributes: {\n 'log.source': `console.${level}`,\n distinct_id: posthog.get_distinct_id(),\n 'location.href': assignableWindow.location.href,\n ...attributes,\n ...(isObject(args[0]) ? flattenObject(args[0]) : {}),\n },\n })\n originalConsoleLog.apply(assignableWindow.console, args)\n }\n }\n\n // If session replay is enabled it copies the original console log function to __rrweb_original__\n // wrap this one too\n let originalConsoleLog = assignableWindow.console[level]\n if ('__rrweb_original__' in assignableWindow.console[level]) {\n originalConsoleLog = assignableWindow.console[level]['__rrweb_original__'] as {\n (...data: any[]): void\n (...data: any[]): void\n (message?: any, ...optionalParams: any[]): void\n }\n assignableWindow.console[level]['__rrweb_original__'] = logWrapper(originalConsoleLog)\n }\n assignableWindow.console[level] = logWrapper(originalConsoleLog)\n }\n}\n\nassignableWindow.__PosthogExtensions__ = assignableWindow.__PosthogExtensions__ || {}\nassignableWindow.__PosthogExtensions__.logs = { initializeLogs }\n"]}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/entrypoints/logs.ts"],"names":[],"mappings":"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","sourcesContent":["import { logs } from '@opentelemetry/api-logs'\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http'\nimport { LoggerProvider, BatchLogRecordProcessor } from '@opentelemetry/sdk-logs'\nimport { resourceFromAttributes } from '@opentelemetry/resources'\n\nimport { assignableWindow } from '../utils/globals'\nimport { PostHog } from '../posthog-core'\nimport { isObject } from '@posthog/core'\n\nconst setupOpenTelemetry = (posthog: PostHog) => {\n let attributes: Record<string, string> = {\n 'service.name': 'posthog-browser-logs',\n host: assignableWindow.location.host,\n }\n\n if (posthog.sessionManager) {\n const { sessionId, windowId } = posthog.sessionManager.checkAndGetSessionAndWindowId(true)\n attributes = {\n ...attributes,\n 'session.id': sessionId,\n 'window.id': windowId,\n }\n }\n\n logs.setGlobalLoggerProvider(\n new LoggerProvider({\n resource: resourceFromAttributes(attributes),\n processors: [\n new BatchLogRecordProcessor(\n new OTLPLogExporter({\n url: `${posthog.config.api_host}/i/v1/logs?token=${posthog.config.token}`,\n })\n ),\n ],\n })\n )\n}\n\nconst LOG_BODY_SIZE_LIMIT = 10000\nconst LOG_ATTRIBUTES_LIMIT = 50\n\n/**\n * Flattens a nested object into a single level dot-notation object.\n * By default limit to 200kB or 50 keys.\n */\nconst flattenObject = (\n obj: any,\n prefix = '',\n result = {} as Record<string, any>,\n keys_limit = LOG_ATTRIBUTES_LIMIT,\n size_limit = LOG_BODY_SIZE_LIMIT\n) => {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const value = obj[key]\n const newKey = prefix ? `${prefix}.${key}` : key\n\n if (isObject(value)) {\n flattenObject(value, newKey, result, keys_limit, size_limit)\n } else {\n keys_limit -= 1\n size_limit -= value.toString().length\n size_limit -= newKey.length\n if (keys_limit <= 0 || size_limit <= 0) {\n result['attributes_truncated'] = true\n return\n } else {\n result[newKey] = value\n }\n }\n }\n }\n return result\n}\n\nconst SEVERITY_MAP = {\n log: 'INFO',\n warn: 'WARNING',\n error: 'ERROR',\n debug: 'DEBUG',\n info: 'INFO',\n}\n\nconst initializeLogs = (posthog: PostHog) => {\n setupOpenTelemetry(posthog)\n\n const logger = logs.getLogger('console')\n let attributes: Record<string, string> = {}\n if (posthog.sessionManager) {\n const { sessionStartTimestamp, lastActivityTimestamp } =\n posthog.sessionManager.checkAndGetSessionAndWindowId(true)\n attributes = {\n sessionStartTimestamp: sessionStartTimestamp.toString(),\n lastActivityTimestamp: lastActivityTimestamp.toString(),\n }\n }\n\n for (const level of ['debug', 'log', 'warn', 'error', 'info'] as ('debug' | 'log' | 'warn' | 'error' | 'info')[]) {\n const errorReplacer = (_: any, value: any) => {\n if (value instanceof Error) {\n return {\n ...value,\n name: value.name,\n message: value.message,\n stack: value.stack,\n }\n }\n return value\n }\n const logWrapper =\n (originalConsoleLog: any) =>\n (...args: any[]) => {\n if (args.length > 0) {\n let body = args.map((a) => JSON.stringify(a, errorReplacer)).join(' ')\n if (body.length > LOG_BODY_SIZE_LIMIT) {\n body = body.slice(0, LOG_BODY_SIZE_LIMIT) + '...'\n attributes.body_truncated = 'true'\n }\n logger.emit({\n severityText: SEVERITY_MAP[level],\n body: body,\n attributes: {\n 'log.source': `console.${level}`,\n distinct_id: posthog.get_distinct_id(),\n 'location.href': assignableWindow.location.href,\n ...attributes,\n ...(isObject(args[0]) ? flattenObject(args[0]) : {}),\n },\n })\n originalConsoleLog.apply(assignableWindow.console, args)\n }\n }\n\n const originalConsoleLog = assignableWindow.console[level]\n assignableWindow.console[level] = logWrapper(originalConsoleLog)\n }\n}\n\nassignableWindow.__PosthogExtensions__ = assignableWindow.__PosthogExtensions__ || {}\nassignableWindow.__PosthogExtensions__.logs = { initializeLogs }\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.321.1",
3
+ "version": "1.321.2",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",
@@ -28,7 +28,7 @@
28
28
  "@opentelemetry/resources": "^2.2.0",
29
29
  "@opentelemetry/sdk-logs": "^0.208.0",
30
30
  "@posthog/core": "1.9.1",
31
- "@posthog/types": "1.321.1"
31
+ "@posthog/types": "1.321.2"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/core": "^7.27.1",
@@ -40,9 +40,9 @@
40
40
  "@babel/preset-typescript": "^7.27.1",
41
41
  "@jest/globals": "^29.7.0",
42
42
  "@playwright/test": "^1.52.0",
43
- "@posthog/rrweb-plugin-console-record": "^0.0.34",
44
- "@posthog/rrweb-record": "^0.0.34",
45
- "@posthog/rrweb-types": "^0.0.34",
43
+ "@posthog/rrweb-plugin-console-record": "^0.0.35",
44
+ "@posthog/rrweb-record": "^0.0.35",
45
+ "@posthog/rrweb-types": "^0.0.35",
46
46
  "@rollup/plugin-babel": "^6.0.4",
47
47
  "@rollup/plugin-commonjs": "^28.0.6",
48
48
  "@rollup/plugin-json": "^6.1.0",