@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,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var factory_1 = require("../../factory");
40
+ var getMathInfo = function () { return __awaiter(void 0, void 0, void 0, function () {
41
+ return __generator(this, function (_a) {
42
+ return [2 /*return*/, {
43
+ acos: Math.acos(0.5),
44
+ asin: integrate(Math.asin, -1, 1, 97),
45
+ atan: integrate(Math.atan, -1, 1, 97),
46
+ cos: integrate(Math.cos, 0, Math.PI, 97),
47
+ cosh: Math.cosh(9 / 7),
48
+ e: Math.E,
49
+ largeCos: Math.cos(1e20),
50
+ largeSin: Math.sin(1e20),
51
+ largeTan: Math.tan(1e20),
52
+ log: Math.log(1000),
53
+ pi: Math.PI,
54
+ sin: integrate(Math.sin, -Math.PI, Math.PI, 97),
55
+ sinh: integrate(Math.sinh, -9 / 7, 7 / 9, 97),
56
+ sqrt: Math.sqrt(2),
57
+ tan: integrate(Math.tan, 0, 2 * Math.PI, 97),
58
+ tanh: integrate(Math.tanh, -9 / 7, 7 / 9, 97),
59
+ }];
60
+ });
61
+ }); };
62
+ /** This might be a little excessive, but I wasn't sure what number to pick for some of the
63
+ * trigonometric functions. Using an integral here, so a few numbers are calculated. However,
64
+ * I do this mainly for those integrals that sum up to a small value, otherwise there's no point.
65
+ */
66
+ var integrate = function (f, a, b, n) {
67
+ var h = (b - a) / n;
68
+ var sum = 0;
69
+ for (var i = 0; i < n; i++) {
70
+ var x = a + (i + 0.5) * h;
71
+ sum += f(x);
72
+ }
73
+ return sum * h;
74
+ };
75
+ (0, factory_1.includeComponent)('math', getMathInfo);
76
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../src/components/math/math.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoE;AAEpE,IAAM,WAAW,GAAG;;QAChB,sBAAO;gBACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACxC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC;gBACpB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC/C,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC5C,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,EAAE,CAAC;aAC5C,EAAA;;KACJ,CAAA;AAED;;;EAGE;AAEF,IAAM,SAAS,GAAG,UAAC,CAAwB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IACxE,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,IAAA,0BAAgB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { componentInterface } from '../../factory';
2
+ export default function getBrowserPermissions(): Promise<componentInterface>;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var factory_1 = require("../../factory");
40
+ var getMostFrequent_1 = require("../../utils/getMostFrequent");
41
+ var _RETRIES = 3;
42
+ var permission_keys = [
43
+ 'accelerometer',
44
+ 'accessibility', 'accessibility-events',
45
+ 'ambient-light-sensor',
46
+ 'background-fetch', 'background-sync', 'bluetooth',
47
+ 'camera',
48
+ 'clipboard-read',
49
+ 'clipboard-write',
50
+ 'device-info', 'display-capture',
51
+ 'gyroscope', 'geolocation',
52
+ 'local-fonts',
53
+ 'magnetometer', 'microphone', 'midi',
54
+ 'nfc', 'notifications',
55
+ 'payment-handler',
56
+ 'persistent-storage',
57
+ 'push',
58
+ 'speaker', 'storage-access',
59
+ 'top-level-storage-access',
60
+ 'window-management',
61
+ 'query',
62
+ ];
63
+ function getBrowserPermissions() {
64
+ return __awaiter(this, void 0, void 0, function () {
65
+ var permissionPromises;
66
+ return __generator(this, function (_a) {
67
+ permissionPromises = Array.from({ length: _RETRIES }, function () { return getBrowserPermissionsOnce(); });
68
+ return [2 /*return*/, Promise.all(permissionPromises).then(function (resolvedPermissions) {
69
+ var permission = (0, getMostFrequent_1.mostFrequentValuesInArrayOfDictionaries)(resolvedPermissions, permission_keys);
70
+ return permission;
71
+ })];
72
+ });
73
+ });
74
+ }
75
+ exports.default = getBrowserPermissions;
76
+ function getBrowserPermissionsOnce() {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ var permissionStatus, _i, permission_keys_1, feature, status_1, error_1;
79
+ return __generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0:
82
+ permissionStatus = {};
83
+ _i = 0, permission_keys_1 = permission_keys;
84
+ _a.label = 1;
85
+ case 1:
86
+ if (!(_i < permission_keys_1.length)) return [3 /*break*/, 6];
87
+ feature = permission_keys_1[_i];
88
+ _a.label = 2;
89
+ case 2:
90
+ _a.trys.push([2, 4, , 5]);
91
+ return [4 /*yield*/, navigator.permissions.query({ name: feature })];
92
+ case 3:
93
+ status_1 = _a.sent();
94
+ // Assign permission status to the object
95
+ permissionStatus[feature] = status_1.state.toString();
96
+ return [3 /*break*/, 5];
97
+ case 4:
98
+ error_1 = _a.sent();
99
+ return [3 /*break*/, 5];
100
+ case 5:
101
+ _i++;
102
+ return [3 /*break*/, 1];
103
+ case 6: return [2 /*return*/, permissionStatus];
104
+ }
105
+ });
106
+ });
107
+ }
108
+ (0, factory_1.includeComponent)("permissions", getBrowserPermissions);
109
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/components/permissions/permissions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAqE;AACrE,+DAAsF;AAEtF,IAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,IAAM,eAAe,GAAG;IACpB,eAAe;IACf,eAAe,EAAE,sBAAsB;IACvC,sBAAsB;IACtB,kBAAkB,EAAE,iBAAiB,EAAE,WAAW;IAClD,QAAQ;IACR,gBAAgB;IAChB,iBAAiB;IACjB,aAAa,EAAE,iBAAiB;IAChC,WAAW,EAAE,aAAa;IAC1B,aAAa;IACb,cAAc,EAAE,YAAY,EAAE,MAAM;IACpC,KAAK,EAAE,eAAe;IACtB,iBAAiB;IACjB,oBAAoB;IACpB,MAAM;IACN,SAAS,EAAE,gBAAgB;IAC3B,0BAA0B;IAC1B,mBAAmB;IACnB,OAAO;CACU,CAAC;AAEtB,SAA8B,qBAAqB;;;;YACzC,kBAAkB,GAAkC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE,cAAM,OAAA,yBAAyB,EAAE,EAA3B,CAA2B,CAAE,CAAC;YAC7H,sBAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAC,mBAAmB;oBAC5D,IAAM,UAAU,GAAG,IAAA,yDAAuC,EAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;oBACjG,OAAO,UAAU,CAAC;gBACtB,CAAC,CAAC,EAAC;;;CACN;AAND,wCAMC;AAED,SAAe,yBAAyB;;;;;;oBAC9B,gBAAgB,GAA8B,EAAE,CAAC;0BAElB,EAAf,mCAAe;;;yBAAf,CAAA,6BAAe,CAAA;oBAA1B,OAAO;;;;oBAGK,qBAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAA;;oBAA7D,WAAS,SAAoD;oBAEnE,yCAAyC;oBACzC,gBAAgB,CAAC,OAAO,CAAC,GAAG,QAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;;;;;;oBANtC,IAAe,CAAA;;wBAYrC,sBAAO,gBAAgB,EAAC;;;;CAC3B;AAED,IAAA,0BAAgB,EAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { componentInterface } from '../../factory';
2
+ export default function getInstalledPlugins(): Promise<componentInterface>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var factory_1 = require("../../factory");
4
+ function getInstalledPlugins() {
5
+ var plugins = [];
6
+ if (navigator.plugins) {
7
+ for (var i = 0; i < navigator.plugins.length; i++) {
8
+ var plugin = navigator.plugins[i];
9
+ plugins.push([plugin.name, plugin.filename, plugin.description].join("|"));
10
+ }
11
+ }
12
+ return new Promise(function (resolve) {
13
+ resolve({
14
+ 'plugins': plugins
15
+ });
16
+ });
17
+ }
18
+ exports.default = getInstalledPlugins;
19
+ (0, factory_1.includeComponent)('plugins', getInstalledPlugins);
20
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/components/plugins/plugins.ts"],"names":[],"mappings":";;AAAA,yCAAoE;AAEpE,SAAwB,mBAAmB;IACvC,IAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,OAAO,CACL;YACE,SAAS,EAAE,OAAO;SACnB,CACF,CAAC;IACN,CAAC,CAAC,CAAC;AACH,CAAC;AAjBH,sCAiBG;AAED,IAAA,0BAAgB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var factory_1 = require("../../factory");
4
+ function screenDetails() {
5
+ return new Promise(function (resolve) {
6
+ resolve({
7
+ 'is_touchscreen': navigator.maxTouchPoints > 0,
8
+ 'maxTouchPoints': navigator.maxTouchPoints,
9
+ 'colorDepth': screen.colorDepth,
10
+ 'mediaMatches': matchMedias(),
11
+ });
12
+ });
13
+ }
14
+ function matchMedias() {
15
+ var results = [];
16
+ /**
17
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_media_queries/Using_media_queries
18
+ */
19
+ var mediaQueries = {
20
+ 'prefers-contrast': ['high', 'more', 'low', 'less', 'forced', 'no-preference'],
21
+ 'any-hover': ['hover', 'none'],
22
+ 'any-pointer': ['none', 'coarse', 'fine'],
23
+ 'pointer': ['none', 'coarse', 'fine'],
24
+ 'hover': ['hover', 'none'],
25
+ 'update': ['fast', 'slow'],
26
+ 'color': ['8', '16', '256'],
27
+ 'inverted-colors': ['inverted', 'none'],
28
+ 'prefers-reduced-motion': ['reduce', 'no-preference'],
29
+ 'prefers-reduced-transparency': ['reduce', 'no-preference'],
30
+ 'scripting': ['none', 'initial-only', 'enabled'],
31
+ 'forced-colors': ['active', 'none'],
32
+ 'display-mode': ['fullscreen', 'standalone', 'minimal-ui', 'browser'],
33
+ 'prefers-color-scheme': ['dark', 'light', 'no-preference'],
34
+ };
35
+ Object.keys(mediaQueries).forEach(function (key) {
36
+ mediaQueries[key].forEach(function (value) {
37
+ if (matchMedia("(".concat(key, ": ").concat(value, ")")).matches)
38
+ results.push("".concat(key, ": ").concat(value));
39
+ });
40
+ });
41
+ return results;
42
+ }
43
+ (0, factory_1.includeComponent)('screen', screenDetails);
44
+ //# sourceMappingURL=screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/components/screen/screen.ts"],"names":[],"mappings":";;AAAA,yCAAqE;AAErE,SAAS,aAAa;IAClB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACvB,OAAO,CACH;YACI,gBAAgB,EAAE,SAAS,CAAC,cAAc,GAAG,CAAC;YAC9C,gBAAgB,EAAE,SAAS,CAAC,cAAc;YAC1C,YAAY,EAAE,MAAM,CAAC,UAAU;YAC/B,cAAc,EAAE,WAAW,EAAE;SAChC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,WAAW;IAChB,IAAI,OAAO,GAAa,EAAE,CAAC;IAE3B;;OAEG;IAEH,IAAM,YAAY,GAA8B;QAC5C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC;QAC9E,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;QAC9B,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;QACzC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;QAC3B,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;QACvC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;QACrD,8BAA8B,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;QAC3D,WAAW,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC;QAChD,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnC,cAAc,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC;QACrE,sBAAsB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC;KAC3D,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;QAClC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK;YAC5B,IAAI,UAAU,CAAC,WAAI,GAAG,eAAK,KAAK,MAAG,CAAC,CAAC,OAAO;gBACxC,OAAO,CAAC,IAAI,CAAC,UAAG,GAAG,eAAK,KAAK,CAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,IAAA,0BAAgB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface BrowserResult {
2
+ name: string;
3
+ version: string;
4
+ }
5
+ export declare function getBrowser(): BrowserResult;
6
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBrowser = void 0;
4
+ // Define a function to parse the user agent string and return the browser name and version
5
+ function getBrowser() {
6
+ if (typeof navigator === 'undefined') {
7
+ return {
8
+ name: "unknown",
9
+ version: "unknown"
10
+ };
11
+ }
12
+ var ua = navigator.userAgent;
13
+ // Define some regular expressions to match different browsers and their versions
14
+ var regexes = [
15
+ // Chrome, Chromium, Edge, Opera, Vivaldi, Brave, etc.
16
+ /(?<name>(?:Chrome|Chromium|Edg|Edge|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/,
17
+ // Firefox, Waterfox, etc.
18
+ /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/,
19
+ // Safari, Mobile Safari, etc.
20
+ /(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/,
21
+ // Internet Explorer, IE Mobile, etc.
22
+ /(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/,
23
+ // Other browsers that use the format "BrowserName/version"
24
+ /(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/,
25
+ // Samsung internet browser
26
+ /(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/
27
+ ];
28
+ // Loop through the regexes and try to find a match
29
+ for (var _i = 0, regexes_1 = regexes; _i < regexes_1.length; _i++) {
30
+ var regex = regexes_1[_i];
31
+ var match = ua.match(regex);
32
+ if (match && match.groups) {
33
+ // Return the browser name and version
34
+ return {
35
+ name: match.groups.name,
36
+ version: match.groups.version
37
+ };
38
+ }
39
+ }
40
+ // If no match is found, return unknown
41
+ return {
42
+ name: "unknown",
43
+ version: "unknown"
44
+ };
45
+ }
46
+ exports.getBrowser = getBrowser;
47
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/components/system/browser.ts"],"names":[],"mappings":";;;AAME,2FAA2F;AAC7F,SAAgB,UAAU;IACxB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;SACnB,CAAA;IACH,CAAC;IACC,IAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;IAC9B,iFAAiF;IACjF,IAAM,OAAO,GAAG;QACd,sDAAsD;QACtD,0FAA0F;QAC1F,0BAA0B;QAC1B,2EAA2E;QAC3E,8BAA8B;QAC9B,4CAA4C;QAC5C,qCAAqC;QACrC,4DAA4D;QAC5D,2DAA2D;QAC3D,+CAA+C;QAC/C,2BAA2B;QAC3B,oDAAoD;KACrD,CAAC;IAEF,mDAAmD;IACnD,KAAoB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE,CAAC;QAAzB,IAAM,KAAK,gBAAA;QACd,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,sCAAsC;YACtC,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAzCH,gCAyCG"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var factory_1 = require("../../factory");
4
+ var browser_1 = require("./browser");
5
+ function getSystemDetails() {
6
+ return new Promise(function (resolve) {
7
+ var browser = (0, browser_1.getBrowser)();
8
+ resolve({
9
+ 'platform': window.navigator.platform,
10
+ 'cookieEnabled': window.navigator.cookieEnabled,
11
+ 'productSub': navigator.productSub,
12
+ 'product': navigator.product,
13
+ 'useragent': navigator.userAgent,
14
+ 'browser': { 'name': browser.name, 'version': browser.version }
15
+ });
16
+ });
17
+ }
18
+ (0, factory_1.includeComponent)('system', getSystemDetails);
19
+ //# sourceMappingURL=system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/components/system/system.ts"],"names":[],"mappings":";;AAAA,yCAAqE;AACrE,qCAAsC;AAEtC,SAAS,gBAAgB;IACrB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACvB,IAAM,OAAO,GAAG,IAAA,oBAAU,GAAE,CAAA;QAC5B,OAAO,CAAE;YACT,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;YACrC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;YAC/C,YAAY,EAAE,SAAS,CAAC,UAAU;YAClC,SAAS,EAAE,SAAS,CAAC,OAAO;YAC5B,WAAW,EAAE,SAAS,CAAC,SAAS;YAChC,SAAS,EAAE,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE;SACjE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACH,CAAC;AAED,IAAA,0BAAgB,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var factory_1 = require("../../factory");
40
+ var hash_1 = require("../../utils/hash");
41
+ var commonPixels_1 = require("../../utils/commonPixels");
42
+ function createWebGLFingerprint() {
43
+ return __awaiter(this, void 0, void 0, function () {
44
+ var canvas, gl, imageDatas, commonImageData;
45
+ return __generator(this, function (_a) {
46
+ try {
47
+ canvas = document.createElement('canvas');
48
+ canvas.width = 200;
49
+ canvas.height = 100;
50
+ gl = canvas.getContext('webgl');
51
+ if (!gl) {
52
+ throw new Error('WebGL not supported');
53
+ }
54
+ imageDatas = Array.from({ length: 3 }, function () { return createWebGLImageData(); });
55
+ commonImageData = (0, commonPixels_1.getCommonPixels)(imageDatas, canvas.width, canvas.height);
56
+ //const imageData = createWebGLImageData()
57
+ return [2 /*return*/, {
58
+ 'commonImageHash': (0, hash_1.hash)(commonImageData.data.toString()).toString(),
59
+ 'renderer': gl.getParameter(gl.RENDERER),
60
+ 'vendor': gl.getParameter(gl.VENDOR),
61
+ 'version': gl.getParameter(gl.VERSION),
62
+ 'shadingLanguageVersion': gl.getParameter(gl.SHADING_LANGUAGE_VERSION)
63
+ }];
64
+ }
65
+ catch (error) {
66
+ return [2 /*return*/, {
67
+ 'webgl': 'unsupported'
68
+ }];
69
+ }
70
+ return [2 /*return*/];
71
+ });
72
+ });
73
+ }
74
+ function createWebGLImageData() {
75
+ var gl = null;
76
+ try {
77
+ var canvas = document.createElement('canvas');
78
+ canvas.width = 200;
79
+ canvas.height = 100;
80
+ gl = canvas.getContext('webgl');
81
+ if (!gl) {
82
+ throw new Error('WebGL not supported');
83
+ }
84
+ var vertexShaderSource = "\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ";
85
+ var fragmentShaderSource = "\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ";
86
+ var vertexShader = gl.createShader(gl.VERTEX_SHADER);
87
+ var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
88
+ if (!vertexShader || !fragmentShader) {
89
+ throw new Error('Failed to create shaders');
90
+ }
91
+ gl.shaderSource(vertexShader, vertexShaderSource);
92
+ gl.shaderSource(fragmentShader, fragmentShaderSource);
93
+ gl.compileShader(vertexShader);
94
+ if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
95
+ throw new Error('Vertex shader compilation failed: ' + gl.getShaderInfoLog(vertexShader));
96
+ }
97
+ gl.compileShader(fragmentShader);
98
+ if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
99
+ throw new Error('Fragment shader compilation failed: ' + gl.getShaderInfoLog(fragmentShader));
100
+ }
101
+ var shaderProgram = gl.createProgram();
102
+ if (!shaderProgram) {
103
+ throw new Error('Failed to create shader program');
104
+ }
105
+ gl.attachShader(shaderProgram, vertexShader);
106
+ gl.attachShader(shaderProgram, fragmentShader);
107
+ gl.linkProgram(shaderProgram);
108
+ if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
109
+ throw new Error('Shader program linking failed: ' + gl.getProgramInfoLog(shaderProgram));
110
+ }
111
+ gl.useProgram(shaderProgram);
112
+ // Set up vertices to form lines
113
+ var numSpokes = 137;
114
+ var vertices = new Float32Array(numSpokes * 4);
115
+ var angleIncrement = (2 * Math.PI) / numSpokes;
116
+ for (var i = 0; i < numSpokes; i++) {
117
+ var angle = i * angleIncrement;
118
+ // Define two points for each line (spoke)
119
+ vertices[i * 4] = 0; // Center X
120
+ vertices[i * 4 + 1] = 0; // Center Y
121
+ vertices[i * 4 + 2] = Math.cos(angle) * (canvas.width / 2); // Endpoint X
122
+ vertices[i * 4 + 3] = Math.sin(angle) * (canvas.height / 2); // Endpoint Y
123
+ }
124
+ var vertexBuffer = gl.createBuffer();
125
+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
126
+ gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
127
+ var positionAttribute = gl.getAttribLocation(shaderProgram, 'position');
128
+ gl.enableVertexAttribArray(positionAttribute);
129
+ gl.vertexAttribPointer(positionAttribute, 2, gl.FLOAT, false, 0, 0);
130
+ // Render
131
+ gl.viewport(0, 0, canvas.width, canvas.height);
132
+ gl.clearColor(0.0, 0.0, 0.0, 1.0);
133
+ gl.clear(gl.COLOR_BUFFER_BIT);
134
+ gl.drawArrays(gl.LINES, 0, numSpokes * 2);
135
+ var pixelData = new Uint8ClampedArray(canvas.width * canvas.height * 4);
136
+ gl.readPixels(0, 0, canvas.width, canvas.height, gl.RGBA, gl.UNSIGNED_BYTE, pixelData);
137
+ var imageData = new ImageData(pixelData, canvas.width, canvas.height);
138
+ // WebGL cleanup
139
+ gl.disableVertexAttribArray(positionAttribute);
140
+ gl.deleteBuffer(vertexBuffer);
141
+ gl.deleteProgram(shaderProgram);
142
+ gl.deleteShader(vertexShader);
143
+ gl.deleteShader(fragmentShader);
144
+ return imageData;
145
+ }
146
+ catch (error) {
147
+ console.error(error);
148
+ return new ImageData(1, 1);
149
+ }
150
+ finally {
151
+ if (gl) {
152
+ var loseContextExtension = gl.getExtension('WEBGL_lose_context');
153
+ if (loseContextExtension) {
154
+ loseContextExtension.loseContext();
155
+ }
156
+ }
157
+ }
158
+ }
159
+ (0, factory_1.includeComponent)('webgl', createWebGLFingerprint);
160
+ //# sourceMappingURL=webgl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../../src/components/webgl/webgl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * This file is used to create the includeComponent function as well as the interfaces each of the
3
+ * fingerprint components must implement.
4
+ *
5
+ */
6
+ export interface componentInterface {
7
+ [key: string]: string | string[] | number | boolean | componentInterface;
8
+ }
9
+ export interface componentFunctionInterface {
10
+ (): Promise<componentInterface>;
11
+ }
12
+ export declare const components: {
13
+ [name: string]: componentFunctionInterface;
14
+ };
15
+ export declare const timeoutInstance: componentInterface;
16
+ /**
17
+ * includeComponent is the function each component function needs to call in order for the component to be included
18
+ * in the fingerprint.
19
+ * @param {string} name - the name identifier of the component
20
+ * @param {componentFunctionInterface} creationFunction - the function that implements the component
21
+ * @returns
22
+ */
23
+ export declare const includeComponent: (name: string, creationFunction: componentFunctionInterface) => void;
24
+ /**
25
+ * The function turns the map of component functions to a map of Promises when called
26
+ * @returns {[name: string]: <Promise>componentInterface}
27
+ */
28
+ export declare const getComponentPromises: () => {
29
+ [k: string]: Promise<componentInterface>;
30
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * This file is used to create the includeComponent function as well as the interfaces each of the
4
+ * fingerprint components must implement.
5
+ *
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getComponentPromises = exports.includeComponent = exports.timeoutInstance = exports.components = void 0;
9
+ // components include a dictionary of name: function.
10
+ exports.components = {};
11
+ //In case a promise time-outs, this is what we use as the value in place
12
+ exports.timeoutInstance = {
13
+ 'timeout': "true"
14
+ };
15
+ /**
16
+ * includeComponent is the function each component function needs to call in order for the component to be included
17
+ * in the fingerprint.
18
+ * @param {string} name - the name identifier of the component
19
+ * @param {componentFunctionInterface} creationFunction - the function that implements the component
20
+ * @returns
21
+ */
22
+ var includeComponent = function (name, creationFunction) {
23
+ if (typeof window !== 'undefined')
24
+ exports.components[name] = creationFunction;
25
+ };
26
+ exports.includeComponent = includeComponent;
27
+ /**
28
+ * The function turns the map of component functions to a map of Promises when called
29
+ * @returns {[name: string]: <Promise>componentInterface}
30
+ */
31
+ var getComponentPromises = function () {
32
+ return Object.fromEntries(Object.entries(exports.components).map(function (_a) {
33
+ var key = _a[0], value = _a[1];
34
+ return [key, value()];
35
+ }));
36
+ };
37
+ exports.getComponentPromises = getComponentPromises;
38
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAcH,qDAAqD;AACvC,QAAA,UAAU,GAAiD,EAAE,CAAC;AAE5E,wEAAwE;AAC3D,QAAA,eAAe,GAAuB;IAC/C,SAAS,EAAE,MAAM;CACpB,CAAA;AAED;;;;;;GAMG;AACI,IAAM,gBAAgB,GAAG,UAAC,IAAW,EAAE,gBAA4C;IACtF,IAAI,OAAO,MAAM,KAAK,WAAW;QAC7B,kBAAU,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAC5C,CAAC,CAAA;AAHY,QAAA,gBAAgB,oBAG5B;AAED;;;GAGG;AACI,IAAM,oBAAoB,GAAG;IAChC,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,kBAAU,CAAC,CAAC,GAAG,CAAC,UAAC,EAAY;YAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QAAM,OAAA,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;IAAd,CAAc,CAAC,CACnE,CAAC;AACN,CAAC,CAAA;AAJY,QAAA,oBAAoB,wBAIhC"}
@@ -0,0 +1,6 @@
1
+ import { componentInterface } from '../factory';
2
+ export declare function getFingerprintData(): Promise<componentInterface>;
3
+ export declare function getFingerprint(): Promise<string>;
4
+ export declare function getFingerprintPerformance(): Promise<{
5
+ [key: string]: any;
6
+ }>;