@leanbase.com/js 0.1.3 → 0.2.0-alpha.0
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/LICENSE +37 -0
- package/dist/autocapture-utils.d.ts +17 -0
- package/dist/autocapture.d.ts +35 -0
- package/dist/config.d.ts +5 -0
- package/dist/constants.d.ts +54 -0
- package/dist/entrypoints/main.cjs.d.ts +4 -0
- package/dist/entrypoints/module.es.d.ts +4 -0
- package/dist/extensions/rageclick.d.ts +9 -0
- package/dist/iife.d.ts +19 -0
- package/dist/index.d.ts +2 -779
- package/dist/leanbase-logger.d.ts +6 -0
- package/dist/leanbase-persistence.d.ts +64 -0
- package/dist/leanbase.d.ts +49 -0
- package/dist/leanbase.iife.js +1 -4747
- package/dist/leanbase.iife.js.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -0
- package/dist/module.d.ts +780 -0
- package/dist/module.js +2 -0
- package/dist/module.js.map +1 -0
- package/dist/page-view.d.ts +29 -0
- package/dist/scroll-manager.d.ts +21 -0
- package/dist/session-props.d.ts +32 -0
- package/dist/sessionid.d.ts +50 -0
- package/dist/storage.d.ts +24 -0
- package/{src/types.ts → dist/types.d.ts} +145 -235
- package/dist/utils/blocked-uas.d.ts +17 -0
- package/dist/utils/element-utils.d.ts +5 -0
- package/dist/utils/event-utils.d.ts +22 -0
- package/dist/utils/index.d.ts +44 -0
- package/dist/utils/request-utils.d.ts +12 -0
- package/dist/utils/simple-event-emitter.d.ts +6 -0
- package/dist/utils/user-agent-utils.d.ts +18 -0
- package/dist/uuidv7.d.ts +43 -0
- package/dist/version.d.ts +1 -0
- package/lib/autocapture-utils.d.ts +17 -0
- package/{src/autocapture-utils.ts → lib/autocapture-utils.js} +196 -280
- package/lib/autocapture-utils.js.map +1 -0
- package/lib/autocapture.d.ts +35 -0
- package/lib/autocapture.js +311 -0
- package/lib/autocapture.js.map +1 -0
- package/lib/config.d.ts +5 -0
- package/lib/config.js +7 -0
- package/lib/config.js.map +1 -0
- package/lib/constants.d.ts +54 -0
- package/{src/constants.ts → lib/constants.js} +50 -57
- package/lib/constants.js.map +1 -0
- package/lib/entrypoints/main.cjs.d.ts +4 -0
- package/lib/entrypoints/main.cjs.js +3 -0
- package/lib/entrypoints/main.cjs.js.map +1 -0
- package/lib/entrypoints/module.es.d.ts +4 -0
- package/lib/entrypoints/module.es.js +3 -0
- package/lib/entrypoints/module.es.js.map +1 -0
- package/lib/extensions/rageclick.d.ts +9 -0
- package/lib/extensions/rageclick.js +27 -0
- package/lib/extensions/rageclick.js.map +1 -0
- package/lib/iife.d.ts +19 -0
- package/lib/iife.js +67 -0
- package/lib/iife.js.map +1 -0
- package/{src/index.ts → lib/index.d.ts} +2 -2
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/leanbase-logger.d.ts +6 -0
- package/lib/leanbase-logger.js +25 -0
- package/lib/leanbase-logger.js.map +1 -0
- package/lib/leanbase-persistence.d.ts +64 -0
- package/lib/leanbase-persistence.js +287 -0
- package/lib/leanbase-persistence.js.map +1 -0
- package/lib/leanbase.d.ts +49 -0
- package/lib/leanbase.js +294 -0
- package/lib/leanbase.js.map +1 -0
- package/lib/page-view.d.ts +29 -0
- package/lib/page-view.js +81 -0
- package/lib/page-view.js.map +1 -0
- package/lib/scroll-manager.d.ts +21 -0
- package/lib/scroll-manager.js +79 -0
- package/lib/scroll-manager.js.map +1 -0
- package/lib/session-props.d.ts +32 -0
- package/lib/session-props.js +73 -0
- package/lib/session-props.js.map +1 -0
- package/lib/sessionid.d.ts +50 -0
- package/{src/sessionid.ts → lib/sessionid.js} +128 -204
- package/lib/sessionid.js.map +1 -0
- package/lib/storage.d.ts +24 -0
- package/{src/storage.ts → lib/storage.js} +182 -225
- package/lib/storage.js.map +1 -0
- package/lib/types.d.ts +544 -0
- package/lib/types.js +7 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/blocked-uas.d.ts +17 -0
- package/{src/utils/blocked-uas.ts → lib/utils/blocked-uas.js} +19 -48
- package/lib/utils/blocked-uas.js.map +1 -0
- package/lib/utils/element-utils.d.ts +5 -0
- package/{src/utils/element-utils.ts → lib/utils/element-utils.js} +13 -17
- package/lib/utils/element-utils.js.map +1 -0
- package/lib/utils/event-utils.d.ts +22 -0
- package/lib/utils/event-utils.js +258 -0
- package/lib/utils/event-utils.js.map +1 -0
- package/lib/utils/index.d.ts +44 -0
- package/lib/utils/index.js +183 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/request-utils.d.ts +12 -0
- package/lib/utils/request-utils.js +107 -0
- package/lib/utils/request-utils.js.map +1 -0
- package/lib/utils/simple-event-emitter.d.ts +6 -0
- package/lib/utils/simple-event-emitter.js +24 -0
- package/lib/utils/simple-event-emitter.js.map +1 -0
- package/lib/utils/user-agent-utils.d.ts +18 -0
- package/lib/utils/user-agent-utils.js +369 -0
- package/lib/utils/user-agent-utils.js.map +1 -0
- package/lib/uuidv7.d.ts +43 -0
- package/{src/uuidv7.ts → lib/uuidv7.js} +103 -131
- package/lib/uuidv7.js.map +1 -0
- package/lib/version.d.ts +1 -0
- package/lib/version.js +2 -0
- package/lib/version.js.map +1 -0
- package/package.json +56 -45
- package/dist/index.cjs +0 -3034
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs +0 -3032
- package/dist/index.mjs.map +0 -1
- package/src/autocapture.ts +0 -415
- package/src/config.ts +0 -8
- package/src/extensions/rageclick.ts +0 -34
- package/src/iife.ts +0 -87
- package/src/leanbase-logger.ts +0 -26
- package/src/leanbase-persistence.ts +0 -374
- package/src/leanbase.ts +0 -424
- package/src/page-view.ts +0 -124
- package/src/scroll-manager.ts +0 -103
- package/src/session-props.ts +0 -114
- package/src/utils/event-utils.ts +0 -304
- package/src/utils/index.ts +0 -222
- package/src/utils/request-utils.ts +0 -128
- package/src/utils/simple-event-emitter.ts +0 -27
- package/src/utils/user-agent-utils.ts +0 -357
- package/src/version.ts +0 -1
|
@@ -7,36 +7,30 @@
|
|
|
7
7
|
*
|
|
8
8
|
* from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
10
|
// polyfill for IE11
|
|
12
|
-
import { window } from './utils'
|
|
13
|
-
|
|
14
|
-
import { isNumber, isUndefined } from '@posthog/core'
|
|
15
|
-
|
|
11
|
+
import { window } from './utils';
|
|
12
|
+
import { isNumber, isUndefined } from '@posthog/core';
|
|
16
13
|
if (!Math.trunc) {
|
|
17
14
|
Math.trunc = function (v) {
|
|
18
|
-
return v < 0 ? Math.ceil(v) : Math.floor(v)
|
|
19
|
-
}
|
|
15
|
+
return v < 0 ? Math.ceil(v) : Math.floor(v);
|
|
16
|
+
};
|
|
20
17
|
}
|
|
21
|
-
|
|
22
18
|
// polyfill for IE11
|
|
23
19
|
if (!Number.isInteger) {
|
|
24
20
|
Number.isInteger = function (value) {
|
|
25
|
-
return isNumber(value) && isFinite(value) && Math.floor(value) === value
|
|
26
|
-
}
|
|
21
|
+
return isNumber(value) && isFinite(value) && Math.floor(value) === value;
|
|
22
|
+
};
|
|
27
23
|
}
|
|
28
|
-
|
|
29
|
-
const DIGITS = '0123456789abcdef'
|
|
30
|
-
|
|
24
|
+
const DIGITS = '0123456789abcdef';
|
|
31
25
|
/** Represents a UUID as a 16-byte byte array. */
|
|
32
26
|
export class UUID {
|
|
33
27
|
/** @param bytes - The 16-byte byte array representation. */
|
|
34
|
-
constructor(
|
|
28
|
+
constructor(bytes) {
|
|
29
|
+
this.bytes = bytes;
|
|
35
30
|
if (bytes.length !== 16) {
|
|
36
|
-
throw new TypeError('not 128-bit length')
|
|
31
|
+
throw new TypeError('not 128-bit length');
|
|
37
32
|
}
|
|
38
33
|
}
|
|
39
|
-
|
|
40
34
|
/**
|
|
41
35
|
* Builds a byte array from UUIDv7 field values.
|
|
42
36
|
*
|
|
@@ -45,9 +39,8 @@ export class UUID {
|
|
|
45
39
|
* @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.
|
|
46
40
|
* @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.
|
|
47
41
|
*/
|
|
48
|
-
static fromFieldsV7(unixTsMs
|
|
49
|
-
if (
|
|
50
|
-
!Number.isInteger(unixTsMs) ||
|
|
42
|
+
static fromFieldsV7(unixTsMs, randA, randBHi, randBLo) {
|
|
43
|
+
if (!Number.isInteger(unixTsMs) ||
|
|
51
44
|
!Number.isInteger(randA) ||
|
|
52
45
|
!Number.isInteger(randBHi) ||
|
|
53
46
|
!Number.isInteger(randBLo) ||
|
|
@@ -55,83 +48,76 @@ export class UUID {
|
|
|
55
48
|
randA < 0 ||
|
|
56
49
|
randBHi < 0 ||
|
|
57
50
|
randBLo < 0 ||
|
|
58
|
-
unixTsMs >
|
|
51
|
+
unixTsMs > 281474976710655 ||
|
|
59
52
|
randA > 0xfff ||
|
|
60
|
-
randBHi >
|
|
61
|
-
randBLo >
|
|
62
|
-
|
|
63
|
-
throw new RangeError('invalid field value')
|
|
53
|
+
randBHi > 1073741823 ||
|
|
54
|
+
randBLo > 4294967295) {
|
|
55
|
+
throw new RangeError('invalid field value');
|
|
64
56
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
bytes[
|
|
68
|
-
bytes[
|
|
69
|
-
bytes[
|
|
70
|
-
bytes[
|
|
71
|
-
bytes[
|
|
72
|
-
bytes[
|
|
73
|
-
bytes[
|
|
74
|
-
bytes[
|
|
75
|
-
bytes[
|
|
76
|
-
bytes[
|
|
77
|
-
bytes[
|
|
78
|
-
bytes[
|
|
79
|
-
bytes[
|
|
80
|
-
bytes[
|
|
81
|
-
bytes[
|
|
82
|
-
|
|
83
|
-
return new UUID(bytes)
|
|
57
|
+
const bytes = new Uint8Array(16);
|
|
58
|
+
bytes[0] = unixTsMs / 2 ** 40;
|
|
59
|
+
bytes[1] = unixTsMs / 2 ** 32;
|
|
60
|
+
bytes[2] = unixTsMs / 2 ** 24;
|
|
61
|
+
bytes[3] = unixTsMs / 2 ** 16;
|
|
62
|
+
bytes[4] = unixTsMs / 2 ** 8;
|
|
63
|
+
bytes[5] = unixTsMs;
|
|
64
|
+
bytes[6] = 0x70 | (randA >>> 8);
|
|
65
|
+
bytes[7] = randA;
|
|
66
|
+
bytes[8] = 0x80 | (randBHi >>> 24);
|
|
67
|
+
bytes[9] = randBHi >>> 16;
|
|
68
|
+
bytes[10] = randBHi >>> 8;
|
|
69
|
+
bytes[11] = randBHi;
|
|
70
|
+
bytes[12] = randBLo >>> 24;
|
|
71
|
+
bytes[13] = randBLo >>> 16;
|
|
72
|
+
bytes[14] = randBLo >>> 8;
|
|
73
|
+
bytes[15] = randBLo;
|
|
74
|
+
return new UUID(bytes);
|
|
84
75
|
}
|
|
85
|
-
|
|
86
76
|
/** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */
|
|
87
|
-
toString()
|
|
88
|
-
let text = ''
|
|
77
|
+
toString() {
|
|
78
|
+
let text = '';
|
|
89
79
|
for (let i = 0; i < this.bytes.length; i++) {
|
|
90
|
-
text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf)
|
|
80
|
+
text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf);
|
|
91
81
|
if (i === 3 || i === 5 || i === 7 || i === 9) {
|
|
92
|
-
text += '-'
|
|
82
|
+
text += '-';
|
|
93
83
|
}
|
|
94
84
|
}
|
|
95
|
-
|
|
96
85
|
if (text.length !== 36) {
|
|
97
86
|
// We saw one customer whose bundling code was mangling the UUID generation
|
|
98
87
|
// rather than accept a bad UUID, we throw an error here.
|
|
99
|
-
throw new Error('Invalid UUIDv7 was generated')
|
|
88
|
+
throw new Error('Invalid UUIDv7 was generated');
|
|
100
89
|
}
|
|
101
|
-
return text
|
|
90
|
+
return text;
|
|
102
91
|
}
|
|
103
|
-
|
|
104
92
|
/** Creates an object from `this`. */
|
|
105
|
-
clone()
|
|
106
|
-
return new UUID(this.bytes.slice(0))
|
|
93
|
+
clone() {
|
|
94
|
+
return new UUID(this.bytes.slice(0));
|
|
107
95
|
}
|
|
108
|
-
|
|
109
96
|
/** Returns true if `this` is equivalent to `other`. */
|
|
110
|
-
equals(other
|
|
111
|
-
return this.compareTo(other) === 0
|
|
97
|
+
equals(other) {
|
|
98
|
+
return this.compareTo(other) === 0;
|
|
112
99
|
}
|
|
113
|
-
|
|
114
100
|
/**
|
|
115
101
|
* Returns a negative integer, zero, or positive integer if `this` is less
|
|
116
102
|
* than, equal to, or greater than `other`, respectively.
|
|
117
103
|
*/
|
|
118
|
-
compareTo(other
|
|
104
|
+
compareTo(other) {
|
|
119
105
|
for (let i = 0; i < 16; i++) {
|
|
120
|
-
const diff = this.bytes[i] - other.bytes[i]
|
|
106
|
+
const diff = this.bytes[i] - other.bytes[i];
|
|
121
107
|
if (diff !== 0) {
|
|
122
|
-
return Math.sign(diff)
|
|
108
|
+
return Math.sign(diff);
|
|
123
109
|
}
|
|
124
110
|
}
|
|
125
|
-
return 0
|
|
111
|
+
return 0;
|
|
126
112
|
}
|
|
127
113
|
}
|
|
128
|
-
|
|
129
114
|
/** Encapsulates the monotonic counter state. */
|
|
130
115
|
class V7Generator {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
116
|
+
constructor() {
|
|
117
|
+
this._timestamp = 0;
|
|
118
|
+
this._counter = 0;
|
|
119
|
+
this._random = new DefaultRandom();
|
|
120
|
+
}
|
|
135
121
|
/**
|
|
136
122
|
* Generates a new UUIDv7 object from the current timestamp, or resets the
|
|
137
123
|
* generator upon significant timestamp rollback.
|
|
@@ -142,21 +128,21 @@ class V7Generator {
|
|
|
142
128
|
* rollback is detected, this method resets the generator and returns a new
|
|
143
129
|
* UUID based on the current timestamp.
|
|
144
130
|
*/
|
|
145
|
-
generate()
|
|
146
|
-
const value = this.generateOrAbort()
|
|
131
|
+
generate() {
|
|
132
|
+
const value = this.generateOrAbort();
|
|
147
133
|
if (!isUndefined(value)) {
|
|
148
|
-
return value
|
|
149
|
-
}
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
150
137
|
// reset state and resume
|
|
151
|
-
this._timestamp = 0
|
|
152
|
-
const valueAfterReset = this.generateOrAbort()
|
|
138
|
+
this._timestamp = 0;
|
|
139
|
+
const valueAfterReset = this.generateOrAbort();
|
|
153
140
|
if (isUndefined(valueAfterReset)) {
|
|
154
|
-
throw new Error('Could not generate UUID after timestamp reset')
|
|
141
|
+
throw new Error('Could not generate UUID after timestamp reset');
|
|
155
142
|
}
|
|
156
|
-
return valueAfterReset
|
|
143
|
+
return valueAfterReset;
|
|
157
144
|
}
|
|
158
145
|
}
|
|
159
|
-
|
|
160
146
|
/**
|
|
161
147
|
* Generates a new UUIDv7 object from the current timestamp, or returns
|
|
162
148
|
* `undefined` upon significant timestamp rollback.
|
|
@@ -166,103 +152,89 @@ class V7Generator {
|
|
|
166
152
|
* embedded in the immediately preceding UUID. If such a significant clock
|
|
167
153
|
* rollback is detected, this method aborts and returns `undefined`.
|
|
168
154
|
*/
|
|
169
|
-
generateOrAbort()
|
|
170
|
-
const MAX_COUNTER =
|
|
171
|
-
const ROLLBACK_ALLOWANCE =
|
|
172
|
-
|
|
173
|
-
const ts = Date.now()
|
|
155
|
+
generateOrAbort() {
|
|
156
|
+
const MAX_COUNTER = 4398046511103;
|
|
157
|
+
const ROLLBACK_ALLOWANCE = 10000; // 10 seconds
|
|
158
|
+
const ts = Date.now();
|
|
174
159
|
if (ts > this._timestamp) {
|
|
175
|
-
this._timestamp = ts
|
|
176
|
-
this._resetCounter()
|
|
177
|
-
}
|
|
160
|
+
this._timestamp = ts;
|
|
161
|
+
this._resetCounter();
|
|
162
|
+
}
|
|
163
|
+
else if (ts + ROLLBACK_ALLOWANCE > this._timestamp) {
|
|
178
164
|
// go on with previous timestamp if new one is not much smaller
|
|
179
|
-
this._counter
|
|
165
|
+
this._counter++;
|
|
180
166
|
if (this._counter > MAX_COUNTER) {
|
|
181
167
|
// increment timestamp at counter overflow
|
|
182
|
-
this._timestamp
|
|
183
|
-
this._resetCounter()
|
|
168
|
+
this._timestamp++;
|
|
169
|
+
this._resetCounter();
|
|
184
170
|
}
|
|
185
|
-
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
186
173
|
// abort if clock went backwards to unbearable extent
|
|
187
|
-
return undefined
|
|
174
|
+
return undefined;
|
|
188
175
|
}
|
|
189
|
-
|
|
190
|
-
return UUID.fromFieldsV7(
|
|
191
|
-
this._timestamp,
|
|
192
|
-
Math.trunc(this._counter / 2 ** 30),
|
|
193
|
-
this._counter & (2 ** 30 - 1),
|
|
194
|
-
this._random.nextUint32()
|
|
195
|
-
)
|
|
176
|
+
return UUID.fromFieldsV7(this._timestamp, Math.trunc(this._counter / 2 ** 30), this._counter & (2 ** 30 - 1), this._random.nextUint32());
|
|
196
177
|
}
|
|
197
|
-
|
|
198
178
|
/** Initializes the counter at a 42-bit random integer. */
|
|
199
|
-
|
|
200
|
-
this._counter = this._random.nextUint32() * 0x400 + (this._random.nextUint32() & 0x3ff)
|
|
179
|
+
_resetCounter() {
|
|
180
|
+
this._counter = this._random.nextUint32() * 0x400 + (this._random.nextUint32() & 0x3ff);
|
|
201
181
|
}
|
|
202
182
|
}
|
|
203
|
-
|
|
204
|
-
/** A global flag to force use of cryptographically strong RNG. */
|
|
205
|
-
declare const UUIDV7_DENY_WEAK_RNG: boolean
|
|
206
|
-
|
|
207
183
|
/** Stores `crypto.getRandomValues()` available in the environment. */
|
|
208
|
-
let getRandomValues
|
|
184
|
+
let getRandomValues = (buffer) => {
|
|
209
185
|
// fall back on Math.random() unless the flag is set to true
|
|
210
186
|
// TRICKY: don't use the isUndefined method here as can't pass the reference
|
|
211
187
|
if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {
|
|
212
|
-
throw new Error('no cryptographically strong RNG available')
|
|
188
|
+
throw new Error('no cryptographically strong RNG available');
|
|
213
189
|
}
|
|
214
|
-
|
|
215
190
|
for (let i = 0; i < buffer.length; i++) {
|
|
216
|
-
buffer[i] = Math.trunc(Math.random() *
|
|
191
|
+
buffer[i] = Math.trunc(Math.random() * 65536) * 65536 + Math.trunc(Math.random() * 65536);
|
|
217
192
|
}
|
|
218
|
-
return buffer
|
|
219
|
-
}
|
|
220
|
-
|
|
193
|
+
return buffer;
|
|
194
|
+
};
|
|
221
195
|
// detect Web Crypto API
|
|
222
196
|
if (window && !isUndefined(window.crypto) && crypto.getRandomValues) {
|
|
223
|
-
getRandomValues = (buffer) => crypto.getRandomValues(buffer)
|
|
197
|
+
getRandomValues = (buffer) => crypto.getRandomValues(buffer);
|
|
224
198
|
}
|
|
225
|
-
|
|
226
199
|
/**
|
|
227
200
|
* Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this
|
|
228
201
|
* uses a small buffer by default to avoid unbearable throughput decline in some
|
|
229
202
|
* environments as well as the waste of time and space for unused values.
|
|
230
203
|
*/
|
|
231
204
|
class DefaultRandom {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
205
|
+
constructor() {
|
|
206
|
+
this._buffer = new Uint32Array(8);
|
|
207
|
+
this._cursor = Infinity;
|
|
208
|
+
}
|
|
209
|
+
nextUint32() {
|
|
235
210
|
if (this._cursor >= this._buffer.length) {
|
|
236
|
-
getRandomValues(this._buffer)
|
|
237
|
-
this._cursor = 0
|
|
211
|
+
getRandomValues(this._buffer);
|
|
212
|
+
this._cursor = 0;
|
|
238
213
|
}
|
|
239
|
-
return this._buffer[this._cursor++]
|
|
214
|
+
return this._buffer[this._cursor++];
|
|
240
215
|
}
|
|
241
216
|
}
|
|
242
|
-
|
|
243
|
-
let defaultGenerator: V7Generator | undefined
|
|
244
|
-
|
|
217
|
+
let defaultGenerator;
|
|
245
218
|
/**
|
|
246
219
|
* Generates a UUIDv7 string.
|
|
247
220
|
*
|
|
248
221
|
* @returns The 8-4-4-4-12 canonical hexadecimal string representation
|
|
249
222
|
* ("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx").
|
|
250
223
|
*/
|
|
251
|
-
export const uuidv7 = ()
|
|
252
|
-
|
|
224
|
+
export const uuidv7 = () => uuidv7obj().toString();
|
|
253
225
|
/** Generates a UUIDv7 object. */
|
|
254
|
-
const uuidv7obj = ()
|
|
255
|
-
|
|
256
|
-
export const uuid7ToTimestampMs = (uuid: string): number => {
|
|
226
|
+
const uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generate();
|
|
227
|
+
export const uuid7ToTimestampMs = (uuid) => {
|
|
257
228
|
// remove hyphens
|
|
258
|
-
const hex = uuid.replace(/-/g, '')
|
|
229
|
+
const hex = uuid.replace(/-/g, '');
|
|
259
230
|
// ensure that it's a version 7 UUID
|
|
260
231
|
if (hex.length !== 32) {
|
|
261
|
-
throw new Error('Not a valid UUID')
|
|
232
|
+
throw new Error('Not a valid UUID');
|
|
262
233
|
}
|
|
263
234
|
if (hex[12] !== '7') {
|
|
264
|
-
throw new Error('Not a UUIDv7')
|
|
235
|
+
throw new Error('Not a UUIDv7');
|
|
265
236
|
}
|
|
266
237
|
// the first 6 bytes are the timestamp, which means that we can read only the first 12 hex characters
|
|
267
|
-
return parseInt(hex.substring(0, 12), 16)
|
|
268
|
-
}
|
|
238
|
+
return parseInt(hex.substring(0, 12), 16);
|
|
239
|
+
};
|
|
240
|
+
//# sourceMappingURL=uuidv7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../src/uuidv7.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const version = "0.2.0-alpha.0";
|
package/lib/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,46 +1,57 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
2
|
+
"name": "@leanbase.com/js",
|
|
3
|
+
"version": "0.2.0-alpha.0",
|
|
4
|
+
"description": "Leanbase browser SDK - event tracking, autocapture, and session replay",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"directory": "packages/leanbase"
|
|
8
|
+
},
|
|
9
|
+
"author": "leanbase",
|
|
10
|
+
"license": "Copyrighted by Leanflag Limited",
|
|
11
|
+
"main": "dist/main.js",
|
|
12
|
+
"module": "dist/module.js",
|
|
13
|
+
"types": "dist/module.d.ts",
|
|
14
|
+
"unpkg": "dist/leanbase.iife.js",
|
|
15
|
+
"jsdelivr": "dist/leanbase.iife.js",
|
|
16
|
+
"files": [
|
|
17
|
+
"lib/*",
|
|
18
|
+
"dist/*",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@posthog/core": "1.3.1"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@babel/core": "^7.27.1",
|
|
29
|
+
"@babel/plugin-transform-exponentiation-operator": "^7.27.1",
|
|
30
|
+
"@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
|
|
31
|
+
"@babel/preset-env": "^7.27.2",
|
|
32
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
33
|
+
"@rollup/plugin-commonjs": "^28.0.6",
|
|
34
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
35
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
36
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
37
|
+
"@rollup/plugin-typescript": "^12.1.4",
|
|
38
|
+
"rollup-plugin-dts": "^6.2.3",
|
|
39
|
+
"jest": "^29.7.0",
|
|
40
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
41
|
+
"rollup": "^4.44.1",
|
|
42
|
+
"rimraf": "^6.0.1",
|
|
43
|
+
"typescript": "5.8.2",
|
|
44
|
+
"@posthog-tooling/rollup-utils": "1.0.0",
|
|
45
|
+
"@posthog-tooling/tsconfig-base": "1.0.0"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"clean": "rimraf dist lib coverage",
|
|
49
|
+
"test:unit": "jest -c jest.config.js",
|
|
50
|
+
"lint": "eslint src test",
|
|
51
|
+
"lint:fix": "eslint src test --fix",
|
|
52
|
+
"prebuild": "node -p \"'export const version = \\'' + require('./package.json').version + '\\''\" > src/version.ts && tsc -b",
|
|
53
|
+
"build": "rollup -c",
|
|
54
|
+
"dev": "tsc -b && rollup -c -w",
|
|
55
|
+
"package": "mkdir -p ../../target && pnpm pack --pack-destination ../../target"
|
|
56
|
+
}
|
|
57
|
+
}
|