@thumbmarkjs/thumbmarkjs 0.12.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.
- package/LICENSE +21 -0
- package/README.md +95 -0
- package/dist/components/audio/audio.d.ts +1 -0
- package/dist/components/audio/audio.js +91 -0
- package/dist/components/audio/audio.js.map +1 -0
- package/dist/components/canvas/canvas.d.ts +2 -0
- package/dist/components/canvas/canvas.js +71 -0
- package/dist/components/canvas/canvas.js.map +1 -0
- package/dist/components/canvas/canvas.test.d.ts +1 -0
- package/dist/components/canvas/canvas.test.js +32 -0
- package/dist/components/canvas/canvas.test.js.map +1 -0
- package/dist/components/fonts/fonts.d.ts +2 -0
- package/dist/components/fonts/fonts.js +179 -0
- package/dist/components/fonts/fonts.js.map +1 -0
- package/dist/components/hardware/hardware.d.ts +1 -0
- package/dist/components/hardware/hardware.js +37 -0
- package/dist/components/hardware/hardware.js.map +1 -0
- package/dist/components/index.d.ts +16 -0
- package/dist/components/index.js +19 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/locales/locales.d.ts +1 -0
- package/dist/components/locales/locales.js +20 -0
- package/dist/components/locales/locales.js.map +1 -0
- package/dist/components/math/math.d.ts +1 -0
- package/dist/components/math/math.js +76 -0
- package/dist/components/math/math.js.map +1 -0
- package/dist/components/permissions/permissions.d.ts +2 -0
- package/dist/components/permissions/permissions.js +109 -0
- package/dist/components/permissions/permissions.js.map +1 -0
- package/dist/components/plugins/plugins.d.ts +2 -0
- package/dist/components/plugins/plugins.js +20 -0
- package/dist/components/plugins/plugins.js.map +1 -0
- package/dist/components/screen/screen.d.ts +1 -0
- package/dist/components/screen/screen.js +44 -0
- package/dist/components/screen/screen.js.map +1 -0
- package/dist/components/system/browser.d.ts +6 -0
- package/dist/components/system/browser.js +47 -0
- package/dist/components/system/browser.js.map +1 -0
- package/dist/components/system/system.d.ts +1 -0
- package/dist/components/system/system.js +19 -0
- package/dist/components/system/system.js.map +1 -0
- package/dist/components/webgl/webgl.d.ts +1 -0
- package/dist/components/webgl/webgl.js +160 -0
- package/dist/components/webgl/webgl.js.map +1 -0
- package/dist/factory.d.ts +30 -0
- package/dist/factory.js +38 -0
- package/dist/factory.js.map +1 -0
- package/dist/fingerprint/functions.d.ts +6 -0
- package/dist/fingerprint/functions.js +122 -0
- package/dist/fingerprint/functions.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/storage/getItem.d.ts +2 -0
- package/dist/storage/getItem.js +81 -0
- package/dist/storage/getItem.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.js +8 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/setItem.d.ts +2 -0
- package/dist/storage/setItem.js +91 -0
- package/dist/storage/setItem.js.map +1 -0
- package/dist/utils/commonPixels.d.ts +1 -0
- package/dist/utils/commonPixels.js +37 -0
- package/dist/utils/commonPixels.js.map +1 -0
- package/dist/utils/ephemeralIFrame.d.ts +4 -0
- package/dist/utils/ephemeralIFrame.js +79 -0
- package/dist/utils/ephemeralIFrame.js.map +1 -0
- package/dist/utils/getMostFrequent.d.ts +5 -0
- package/dist/utils/getMostFrequent.js +36 -0
- package/dist/utils/getMostFrequent.js.map +1 -0
- package/dist/utils/hash.d.ts +1 -0
- package/dist/utils/hash.js +67 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/raceAll.d.ts +9 -0
- package/dist/utils/raceAll.js +32 -0
- package/dist/utils/raceAll.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hash = void 0;
|
|
4
|
+
// MurmurHash3 constants
|
|
5
|
+
var C1 = 0xcc9e2d51;
|
|
6
|
+
var C2 = 0x1b873593;
|
|
7
|
+
var C3 = 0xe6546b64;
|
|
8
|
+
var C4 = 0x85ebca6b;
|
|
9
|
+
var C5 = 0xc2b2ae35;
|
|
10
|
+
// Helper functions to perform bitwise operations on 32-bit integers
|
|
11
|
+
function rotl32(x, r) {
|
|
12
|
+
return (x << r) | (x >>> (32 - r));
|
|
13
|
+
}
|
|
14
|
+
function fmix32(h) {
|
|
15
|
+
h ^= h >>> 16;
|
|
16
|
+
h = Math.imul(h, C4);
|
|
17
|
+
h ^= h >>> 13;
|
|
18
|
+
h = Math.imul(h, C5);
|
|
19
|
+
h ^= h >>> 16;
|
|
20
|
+
return h;
|
|
21
|
+
}
|
|
22
|
+
// MurmurHash3 x86 32-bit hash function
|
|
23
|
+
function hash(key, seed) {
|
|
24
|
+
if (seed === void 0) { seed = 0; }
|
|
25
|
+
var h = seed;
|
|
26
|
+
var k = 0;
|
|
27
|
+
var remainder = key.length & 3; // key.length % 4
|
|
28
|
+
var bytes = key.length - remainder;
|
|
29
|
+
var i = 0;
|
|
30
|
+
// Process key in 4-byte chunks
|
|
31
|
+
while (i < bytes) {
|
|
32
|
+
k =
|
|
33
|
+
(key.charCodeAt(i) & 0xff) |
|
|
34
|
+
((key.charCodeAt(++i) & 0xff) << 8) |
|
|
35
|
+
((key.charCodeAt(++i) & 0xff) << 16) |
|
|
36
|
+
((key.charCodeAt(++i) & 0xff) << 24);
|
|
37
|
+
++i;
|
|
38
|
+
// Mix k into h
|
|
39
|
+
k = Math.imul(k, C1);
|
|
40
|
+
k = rotl32(k, 15);
|
|
41
|
+
k = Math.imul(k, C2);
|
|
42
|
+
h ^= k;
|
|
43
|
+
h = rotl32(h, 13);
|
|
44
|
+
h = Math.imul(h, 5) + C3;
|
|
45
|
+
}
|
|
46
|
+
// Process remaining bytes
|
|
47
|
+
k = 0;
|
|
48
|
+
switch (remainder) {
|
|
49
|
+
case 3:
|
|
50
|
+
k ^= (key.charCodeAt(i + 2) & 0xff) << 16;
|
|
51
|
+
case 2:
|
|
52
|
+
k ^= (key.charCodeAt(i + 1) & 0xff) << 8;
|
|
53
|
+
case 1:
|
|
54
|
+
k ^= key.charCodeAt(i) & 0xff;
|
|
55
|
+
k = Math.imul(k, C1);
|
|
56
|
+
k = rotl32(k, 15);
|
|
57
|
+
k = Math.imul(k, C2);
|
|
58
|
+
h ^= k;
|
|
59
|
+
}
|
|
60
|
+
// Finalize and return
|
|
61
|
+
h ^= key.length;
|
|
62
|
+
h = fmix32(h);
|
|
63
|
+
var v = h >>> 0; // Convert to unsigned 32-bit integer
|
|
64
|
+
return v.toString(36); // Conver to base-36 string
|
|
65
|
+
}
|
|
66
|
+
exports.hash = hash;
|
|
67
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type DelayedPromise<T> = Promise<T>;
|
|
2
|
+
export declare function delay<T>(t: number, val: T): DelayedPromise<T>;
|
|
3
|
+
export interface RaceResult<T> {
|
|
4
|
+
value: T;
|
|
5
|
+
elapsed?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function raceAllPerformance<T>(promises: Promise<T>[], timeoutTime: number, timeoutVal: T): Promise<RaceResult<T>[]>;
|
|
8
|
+
export declare function raceAll<T>(promises: Promise<T>[], timeoutTime: number, timeoutVal: T): Promise<(T | undefined)[]>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.raceAll = exports.raceAllPerformance = exports.delay = void 0;
|
|
4
|
+
function delay(t, val) {
|
|
5
|
+
return new Promise(function (resolve) {
|
|
6
|
+
setTimeout(function () { return resolve(val); }, t);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
exports.delay = delay;
|
|
10
|
+
function raceAllPerformance(promises, timeoutTime, timeoutVal) {
|
|
11
|
+
return Promise.all(promises.map(function (p) {
|
|
12
|
+
var startTime = performance.now();
|
|
13
|
+
return Promise.race([
|
|
14
|
+
p.then(function (value) { return ({
|
|
15
|
+
value: value,
|
|
16
|
+
elapsed: performance.now() - startTime,
|
|
17
|
+
}); }),
|
|
18
|
+
delay(timeoutTime, timeoutVal).then(function (value) { return ({
|
|
19
|
+
value: value,
|
|
20
|
+
elapsed: performance.now() - startTime,
|
|
21
|
+
}); }),
|
|
22
|
+
]);
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
exports.raceAllPerformance = raceAllPerformance;
|
|
26
|
+
function raceAll(promises, timeoutTime, timeoutVal) {
|
|
27
|
+
return Promise.all(promises.map(function (p) {
|
|
28
|
+
return Promise.race([p, delay(timeoutTime, timeoutVal)]);
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
exports.raceAll = raceAll;
|
|
32
|
+
//# sourceMappingURL=raceAll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raceAll.js","sourceRoot":"","sources":["../../src/utils/raceAll.ts"],"names":[],"mappings":";;;AAIA,SAAgB,KAAK,CAAI,CAAS,EAAE,GAAM;IACxC,OAAO,IAAI,OAAO,CAAI,UAAC,OAAO;QAC5B,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,sBAIC;AAQD,SAAgB,kBAAkB,CAChC,QAAsB,EACtB,WAAmB,EACnB,UAAa;IAEb,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC;QACb,IAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;gBACjB,KAAK,OAAA;gBACL,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;aACvC,CAAC,EAHgB,CAGhB,CAAC;YACH,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;gBAC9C,KAAK,OAAA;gBACL,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;aACvC,CAAC,EAH6C,CAG7C,CAAC;SACJ,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AApBD,gDAoBC;AAID,SAAgB,OAAO,CAAI,QAAsB,EAAE,WAAmB,EAAE,UAAa;IACnF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC;QAChC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAJD,0BAIC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@thumbmarkjs/thumbmarkjs",
|
|
3
|
+
"version": "0.12.1",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"public": true,
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"test": "jest",
|
|
13
|
+
"build": "npx webpack && npx tsc"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"fingerprint", "fingerprinting", "browser-fingerprint", "browser-fingerprinting"
|
|
17
|
+
],
|
|
18
|
+
"author": "Ilkka Peltola",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@testing-library/jest-dom": "^6.1.6",
|
|
22
|
+
"@types/jest": "^29.5.11",
|
|
23
|
+
"@types/jsdom": "^21.1.6",
|
|
24
|
+
"@types/node": "^20.10.6",
|
|
25
|
+
"@types/ua-parser-js": "^0.7.39",
|
|
26
|
+
"@types/webpack-env": "^1.18.4",
|
|
27
|
+
"@webpack-cli/generators": "^3.0.7",
|
|
28
|
+
"jest": "^29.7.0",
|
|
29
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
30
|
+
"jsdom": "^23.0.1",
|
|
31
|
+
"path": "^0.12.7",
|
|
32
|
+
"ts-jest": "^29.1.1",
|
|
33
|
+
"ts-loader": "^9.5.1",
|
|
34
|
+
"ts-md5": "^1.3.1",
|
|
35
|
+
"typescript": "^5.3.3",
|
|
36
|
+
"webpack": "^5.89.0",
|
|
37
|
+
"webpack-cli": "^5.1.4"
|
|
38
|
+
}
|
|
39
|
+
}
|