From 4443b6e430ed3b22510d9b1c794b2d14b753af74 Mon Sep 17 00:00:00 2001 From: ao-anam Date: Wed, 2 Jul 2025 14:31:21 +0100 Subject: [PATCH] fix: remove nanoid package for better compatibility of react native and older browsers --- package-lock.json | 20 +------------------- package.json | 3 +-- src/AnamClient.ts | 6 +++--- src/lib/correlationId.ts | 9 +++++++++ 4 files changed, 14 insertions(+), 24 deletions(-) create mode 100644 src/lib/correlationId.ts diff --git a/package-lock.json b/package-lock.json index b15cbd4..ca86eef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,7 @@ "version": "0.0.0-automated", "license": "MIT", "dependencies": { - "buffer": "^6.0.3", - "nanoid": "^5.1.5" + "buffer": "^6.0.3" }, "devDependencies": { "@commitlint/cli": "^19.3.0", @@ -4262,23 +4261,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/nanoid": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", - "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^18 || >=20" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", diff --git a/package.json b/package.json index 3a9ea81..0966592 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,6 @@ "webpack-cli": "^5.1.4" }, "dependencies": { - "buffer": "^6.0.3", - "nanoid": "^5.1.5" + "buffer": "^6.0.3" } } diff --git a/src/AnamClient.ts b/src/AnamClient.ts index 417993d..50bc50c 100644 --- a/src/AnamClient.ts +++ b/src/AnamClient.ts @@ -1,5 +1,5 @@ -import { nanoid } from 'nanoid'; import { ClientError, ErrorCode } from './lib/ClientError'; +import { generateCorrelationId } from './lib/correlationId'; import { ClientMetricMeasurement, DEFAULT_ANAM_API_VERSION, @@ -276,7 +276,7 @@ export default class AnamClient { throw new Error('Already streaming'); } // generate a new ID here to track the attempt - const attemptCorrelationId = nanoid(); + const attemptCorrelationId = generateCorrelationId(); setMetricsContext({ attemptCorrelationId, sessionId: null, // reset sessionId @@ -342,7 +342,7 @@ export default class AnamClient { userProvidedAudioStream?: MediaStream, ): Promise { // generate a new ID here to track the attempt - const attemptCorrelationId = nanoid(); + const attemptCorrelationId = generateCorrelationId(); setMetricsContext({ attemptCorrelationId, sessionId: null, // reset sessionId diff --git a/src/lib/correlationId.ts b/src/lib/correlationId.ts new file mode 100644 index 0000000..a39a2f2 --- /dev/null +++ b/src/lib/correlationId.ts @@ -0,0 +1,9 @@ +export function generateCorrelationId() { + // Try native crypto.randomUUID() first (supported in modern browsers) + if (typeof crypto !== 'undefined' && crypto.randomUUID) { + return crypto.randomUUID(); + } + + // Fallback for older environments and older react native + return Date.now().toString(36) + Math.random().toString(36).substr(2, 9); +}