@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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -0
  3. package/dist/components/audio/audio.d.ts +1 -0
  4. package/dist/components/audio/audio.js +91 -0
  5. package/dist/components/audio/audio.js.map +1 -0
  6. package/dist/components/canvas/canvas.d.ts +2 -0
  7. package/dist/components/canvas/canvas.js +71 -0
  8. package/dist/components/canvas/canvas.js.map +1 -0
  9. package/dist/components/canvas/canvas.test.d.ts +1 -0
  10. package/dist/components/canvas/canvas.test.js +32 -0
  11. package/dist/components/canvas/canvas.test.js.map +1 -0
  12. package/dist/components/fonts/fonts.d.ts +2 -0
  13. package/dist/components/fonts/fonts.js +179 -0
  14. package/dist/components/fonts/fonts.js.map +1 -0
  15. package/dist/components/hardware/hardware.d.ts +1 -0
  16. package/dist/components/hardware/hardware.js +37 -0
  17. package/dist/components/hardware/hardware.js.map +1 -0
  18. package/dist/components/index.d.ts +16 -0
  19. package/dist/components/index.js +19 -0
  20. package/dist/components/index.js.map +1 -0
  21. package/dist/components/locales/locales.d.ts +1 -0
  22. package/dist/components/locales/locales.js +20 -0
  23. package/dist/components/locales/locales.js.map +1 -0
  24. package/dist/components/math/math.d.ts +1 -0
  25. package/dist/components/math/math.js +76 -0
  26. package/dist/components/math/math.js.map +1 -0
  27. package/dist/components/permissions/permissions.d.ts +2 -0
  28. package/dist/components/permissions/permissions.js +109 -0
  29. package/dist/components/permissions/permissions.js.map +1 -0
  30. package/dist/components/plugins/plugins.d.ts +2 -0
  31. package/dist/components/plugins/plugins.js +20 -0
  32. package/dist/components/plugins/plugins.js.map +1 -0
  33. package/dist/components/screen/screen.d.ts +1 -0
  34. package/dist/components/screen/screen.js +44 -0
  35. package/dist/components/screen/screen.js.map +1 -0
  36. package/dist/components/system/browser.d.ts +6 -0
  37. package/dist/components/system/browser.js +47 -0
  38. package/dist/components/system/browser.js.map +1 -0
  39. package/dist/components/system/system.d.ts +1 -0
  40. package/dist/components/system/system.js +19 -0
  41. package/dist/components/system/system.js.map +1 -0
  42. package/dist/components/webgl/webgl.d.ts +1 -0
  43. package/dist/components/webgl/webgl.js +160 -0
  44. package/dist/components/webgl/webgl.js.map +1 -0
  45. package/dist/factory.d.ts +30 -0
  46. package/dist/factory.js +38 -0
  47. package/dist/factory.js.map +1 -0
  48. package/dist/fingerprint/functions.d.ts +6 -0
  49. package/dist/fingerprint/functions.js +122 -0
  50. package/dist/fingerprint/functions.js.map +1 -0
  51. package/dist/index.d.ts +8 -0
  52. package/dist/index.js +41 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/storage/getItem.d.ts +2 -0
  55. package/dist/storage/getItem.js +81 -0
  56. package/dist/storage/getItem.js.map +1 -0
  57. package/dist/storage/index.d.ts +3 -0
  58. package/dist/storage/index.js +8 -0
  59. package/dist/storage/index.js.map +1 -0
  60. package/dist/storage/setItem.d.ts +2 -0
  61. package/dist/storage/setItem.js +91 -0
  62. package/dist/storage/setItem.js.map +1 -0
  63. package/dist/utils/commonPixels.d.ts +1 -0
  64. package/dist/utils/commonPixels.js +37 -0
  65. package/dist/utils/commonPixels.js.map +1 -0
  66. package/dist/utils/ephemeralIFrame.d.ts +4 -0
  67. package/dist/utils/ephemeralIFrame.js +79 -0
  68. package/dist/utils/ephemeralIFrame.js.map +1 -0
  69. package/dist/utils/getMostFrequent.d.ts +5 -0
  70. package/dist/utils/getMostFrequent.js +36 -0
  71. package/dist/utils/getMostFrequent.js.map +1 -0
  72. package/dist/utils/hash.d.ts +1 -0
  73. package/dist/utils/hash.js +67 -0
  74. package/dist/utils/hash.js.map +1 -0
  75. package/dist/utils/raceAll.d.ts +9 -0
  76. package/dist/utils/raceAll.js +32 -0
  77. package/dist/utils/raceAll.js.map +1 -0
  78. 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
+ }