From e6b234dca551c146c0f0c86ecce6ba286784ca36 Mon Sep 17 00:00:00 2001 From: goenning Date: Fri, 3 Nov 2023 21:21:28 +0000 Subject: [PATCH] use new session id format --- packages/web/CHANGELOG.md | 4 ++++ packages/web/package.json | 2 +- packages/web/src/session.ts | 21 ++++----------------- packages/web/tsconfig.json | 2 +- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/packages/web/CHANGELOG.md b/packages/web/CHANGELOG.md index 52498bf..4f515f1 100644 --- a/packages/web/CHANGELOG.md +++ b/packages/web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.1 + +- use new session id format + ## 0.3.0 - Added an option to specify `isDebug` at init time diff --git a/packages/web/package.json b/packages/web/package.json index 8a89cf2..0704f1e 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@aptabase/web", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "JavaScript SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps", "main": "./dist/index.cjs", diff --git a/packages/web/src/session.ts b/packages/web/src/session.ts index d26b29e..c12268f 100644 --- a/packages/web/src/session.ts +++ b/packages/web/src/session.ts @@ -1,18 +1,5 @@ -export function newSessionId() { - if (typeof crypto !== 'undefined' && crypto && crypto.randomUUID) { - return crypto.randomUUID(); - } - - return [randomStr(8), randomStr(4), randomStr(4), randomStr(4), randomStr(12)].join('-'); -} - -const characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; -const charactersLength = characters.length; - -function randomStr(len: number) { - let result = ''; - for (let i = 0; i < len; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - return result; +export function newSessionId(): string { + const epochInSeconds = BigInt(Math.floor(Date.now() / 1000)); + const random = BigInt(Math.floor(Math.random() * 100000000)); + return (epochInSeconds * 100000000n + random).toString(); } diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json index 850a3d7..d536197 100644 --- a/packages/web/tsconfig.json +++ b/packages/web/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es6", + "target": "es2020", "strict": true, "moduleResolution": "node", "esModuleInterop": true,