posthog-node 4.17.0 → 4.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/edge/{index.cjs.js → index.cjs} +2 -2
  3. package/lib/edge/index.cjs.map +1 -0
  4. package/lib/edge/{index.esm.js → index.mjs} +2 -2
  5. package/lib/edge/index.mjs.map +1 -0
  6. package/lib/node/{index.cjs.js → index.cjs} +2 -2
  7. package/lib/node/index.cjs.map +1 -0
  8. package/lib/node/{index.esm.js → index.mjs} +2 -2
  9. package/lib/node/index.mjs.map +1 -0
  10. package/package.json +17 -17
  11. package/lib/edge/index.cjs.js.map +0 -1
  12. package/lib/edge/index.esm.js.map +0 -1
  13. package/lib/node/index.cjs.js.map +0 -1
  14. package/lib/node/index.esm.js.map +0 -1
  15. package/src/client.ts +0 -650
  16. package/src/entrypoints/index.edge.ts +0 -15
  17. package/src/entrypoints/index.node.ts +0 -17
  18. package/src/exports.ts +0 -3
  19. package/src/extensions/error-tracking/autocapture.ts +0 -65
  20. package/src/extensions/error-tracking/context-lines.node.ts +0 -392
  21. package/src/extensions/error-tracking/error-conversion.ts +0 -279
  22. package/src/extensions/error-tracking/get-module.node.ts +0 -57
  23. package/src/extensions/error-tracking/index.ts +0 -69
  24. package/src/extensions/error-tracking/reduceable-cache.ts +0 -39
  25. package/src/extensions/error-tracking/stack-parser.ts +0 -212
  26. package/src/extensions/error-tracking/type-checking.ts +0 -40
  27. package/src/extensions/error-tracking/types.ts +0 -69
  28. package/src/extensions/express.ts +0 -37
  29. package/src/extensions/feature-flags/crypto-helpers.ts +0 -36
  30. package/src/extensions/feature-flags/crypto.ts +0 -22
  31. package/src/extensions/feature-flags/feature-flags.ts +0 -865
  32. package/src/extensions/feature-flags/lazy.ts +0 -55
  33. package/src/extensions/sentry-integration.ts +0 -204
  34. package/src/fetch.ts +0 -39
  35. package/src/storage-memory.ts +0 -13
  36. package/src/types.ts +0 -275
  37. package/test/crypto.spec.ts +0 -36
  38. package/test/extensions/error-conversion.spec.ts +0 -44
  39. package/test/extensions/sentry-integration.spec.ts +0 -163
  40. package/test/feature-flags.decide.spec.ts +0 -381
  41. package/test/feature-flags.spec.ts +0 -4686
  42. package/test/lazy.spec.ts +0 -71
  43. package/test/posthog-node.spec.ts +0 -1341
  44. package/test/test-utils.ts +0 -111
  45. package/tsconfig.json +0 -8
@@ -1,69 +0,0 @@
1
- // Portions of this file are derived from getsentry/sentry-javascript by Software, Inc. dba Sentry
2
- // Licensed under the MIT License
3
-
4
- // levels originally copied from Sentry to work with the sentry integration
5
- // and to avoid relying on a frequently changing @sentry/types dependency
6
- // but provided as an array of literal types, so we can constrain the level below
7
- export const severityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'] as const
8
- export declare type SeverityLevel = (typeof severityLevels)[number]
9
-
10
- export interface PolymorphicEvent {
11
- [key: string]: unknown
12
- readonly type: string
13
- readonly target?: unknown
14
- readonly currentTarget?: unknown
15
- }
16
-
17
- export interface EventHint {
18
- mechanism?: Partial<Mechanism>
19
- syntheticException?: Error | null
20
- }
21
-
22
- export interface ErrorProperties {
23
- $exception_list: Exception[]
24
- $exception_level?: SeverityLevel
25
- $exception_DOMException_code?: string
26
- $exception_personURL?: string
27
- }
28
-
29
- export interface Exception {
30
- type?: string
31
- value?: string
32
- mechanism?: Mechanism
33
- module?: string
34
- thread_id?: number
35
- stacktrace?: { frames?: StackFrame[]; type: 'raw' }
36
- }
37
-
38
- export interface Mechanism {
39
- handled?: boolean
40
- type?: string
41
- source?: string
42
- synthetic?: boolean
43
- }
44
-
45
- export type GetModuleFn = (filename: string | undefined) => string | undefined
46
-
47
- export type StackParser = (stack: string, skipFirstLines?: number) => StackFrame[]
48
- export type StackLineParserFn = (line: string) => StackFrame | undefined
49
- export type StackLineParser = [number, StackLineParserFn]
50
-
51
- export type StackFrameModifierFn = (frames: StackFrame[]) => Promise<StackFrame[]>
52
-
53
- export interface StackFrame {
54
- platform: string
55
- filename?: string
56
- function?: string
57
- module?: string
58
- lineno?: number
59
- colno?: number
60
- abs_path?: string
61
- context_line?: string
62
- pre_context?: string[]
63
- post_context?: string[]
64
- in_app?: boolean
65
- instruction_addr?: string
66
- addr_mode?: string
67
- vars?: { [key: string]: any }
68
- debug_id?: string
69
- }
@@ -1,37 +0,0 @@
1
- import type * as http from 'node:http'
2
- import { uuidv7 } from 'posthog-core/src/vendor/uuidv7'
3
- import ErrorTracking from './error-tracking'
4
- import { PostHogBackendClient } from '../client'
5
-
6
- type ExpressMiddleware = (req: http.IncomingMessage, res: http.ServerResponse, next: () => void) => void
7
-
8
- type ExpressErrorMiddleware = (
9
- error: MiddlewareError,
10
- req: http.IncomingMessage,
11
- res: http.ServerResponse,
12
- next: (error: MiddlewareError) => void
13
- ) => void
14
-
15
- interface MiddlewareError extends Error {
16
- status?: number | string
17
- statusCode?: number | string
18
- status_code?: number | string
19
- output?: {
20
- statusCode?: number | string
21
- }
22
- }
23
-
24
- export function setupExpressErrorHandler(
25
- _posthog: PostHogBackendClient,
26
- app: {
27
- use: (middleware: ExpressMiddleware | ExpressErrorMiddleware) => unknown
28
- }
29
- ): void {
30
- app.use((error: MiddlewareError, _, __, next: (error: MiddlewareError) => void): void => {
31
- const hint = { mechanism: { type: 'middleware', handled: false } }
32
- // Given stateless nature of Node SDK we capture exceptions using personless processing
33
- // when no user can be determined e.g. in the case of exception autocapture
34
- ErrorTracking.captureException(_posthog, error, hint, uuidv7(), { $process_person_profile: false })
35
- next(error)
36
- })
37
- }
@@ -1,36 +0,0 @@
1
- /// <reference lib="dom" />
2
- import { Lazy } from './lazy'
3
-
4
- const nodeCrypto = new Lazy(async () => {
5
- try {
6
- return await import('crypto')
7
- } catch {
8
- return undefined
9
- }
10
- })
11
-
12
- export async function getNodeCrypto(): Promise<typeof import('crypto') | undefined> {
13
- return await nodeCrypto.getValue()
14
- }
15
-
16
- const webCrypto = new Lazy(async (): Promise<SubtleCrypto | undefined> => {
17
- if (typeof globalThis.crypto?.subtle !== 'undefined') {
18
- return globalThis.crypto.subtle
19
- }
20
-
21
- try {
22
- // Node.js: use built-in webcrypto and assign it if needed
23
- const crypto = await nodeCrypto.getValue()
24
- if (crypto?.webcrypto?.subtle) {
25
- return crypto.webcrypto.subtle as SubtleCrypto
26
- }
27
- } catch {
28
- // Ignore if not available
29
- }
30
-
31
- return undefined
32
- })
33
-
34
- export async function getWebCrypto(): Promise<SubtleCrypto | undefined> {
35
- return await webCrypto.getValue()
36
- }
@@ -1,22 +0,0 @@
1
- /// <reference lib="dom" />
2
-
3
- import { getNodeCrypto, getWebCrypto } from './crypto-helpers'
4
-
5
- export async function hashSHA1(text: string): Promise<string> {
6
- // Try Node.js crypto first
7
- const nodeCrypto = await getNodeCrypto()
8
- if (nodeCrypto) {
9
- return nodeCrypto.createHash('sha1').update(text).digest('hex')
10
- }
11
-
12
- const webCrypto = await getWebCrypto()
13
-
14
- // Fall back to Web Crypto API
15
- if (webCrypto) {
16
- const hashBuffer = await webCrypto.digest('SHA-1', new TextEncoder().encode(text))
17
- const hashArray = Array.from(new Uint8Array(hashBuffer))
18
- return hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('')
19
- }
20
-
21
- throw new Error('No crypto implementation available. Tried Node Crypto API and Web SubtleCrypto API')
22
- }