@thumbmarkjs/thumbmarkjs 0.20.6 → 1.0.0-rc.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 (35) hide show
  1. package/README.md +43 -45
  2. package/dist/thumbmark.cjs.js +1 -1
  3. package/dist/thumbmark.cjs.js.map +1 -1
  4. package/dist/thumbmark.esm.d.ts +107 -16
  5. package/dist/thumbmark.esm.js +1 -1
  6. package/dist/thumbmark.esm.js.map +1 -1
  7. package/dist/thumbmark.umd.js +1 -1
  8. package/dist/thumbmark.umd.js.map +1 -1
  9. package/package.json +7 -2
  10. package/src/components/audio/{audio.ts → index.ts} +11 -8
  11. package/src/components/canvas/{canvas.ts → index.ts} +12 -8
  12. package/src/components/fonts/{fonts.ts → index.ts} +10 -5
  13. package/src/components/hardware/{hardware.ts → index.ts} +3 -5
  14. package/src/components/locales/{locales.ts → index.ts} +2 -4
  15. package/src/components/math/index.ts +28 -0
  16. package/src/components/permissions/{permissions.ts → index.ts} +29 -37
  17. package/src/components/plugins/{plugins.ts → index.ts} +2 -4
  18. package/src/components/screen/{screen.ts → index.ts} +2 -4
  19. package/src/components/system/{system.ts → index.ts} +2 -5
  20. package/src/components/webgl/{webgl.ts → index.ts} +3 -5
  21. package/src/factory.ts +40 -29
  22. package/src/functions/filterComponents.ts +42 -0
  23. package/src/functions/functions.test.ts +39 -0
  24. package/src/functions/index.ts +262 -0
  25. package/src/functions/legacy_functions.ts +54 -0
  26. package/src/index.ts +13 -4
  27. package/src/{fingerprint/options.ts → options.ts} +20 -12
  28. package/src/thumbmark.ts +41 -0
  29. package/src/{declarations.d.ts → types/global.d.ts} +1 -1
  30. package/src/utils/raceAll.ts +0 -2
  31. package/src/components/index.ts +0 -17
  32. package/src/components/math/math.ts +0 -39
  33. package/src/fingerprint/functions.test.ts +0 -34
  34. package/src/fingerprint/functions.ts +0 -118
  35. /package/src/components/canvas/{canvas.test.ts → index.test.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"thumbmark.umd.js","sources":["../node_modules/tslib/tslib.es6.js","../src/fingerprint/options.ts","../src/factory.ts","../src/utils/hash.ts","../src/utils/raceAll.ts","../src/fingerprint/functions.ts","../src/components/system/browser.ts","../src/components/audio/audio.ts","../src/utils/commonPixels.ts","../src/components/canvas/canvas.ts","../src/components/fonts/fonts.ts","../src/components/permissions/permissions.ts","../src/components/hardware/hardware.ts","../src/utils/getMostFrequent.ts","../src/components/screen/screen.ts","../src/utils/ephemeralIFrame.ts","../src/components/locales/locales.ts","../src/components/plugins/plugins.ts","../src/components/system/system.ts","../src/components/webgl/webgl.ts","../src/components/math/math.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","undefined","SuppressedError","options","exclude","include","logging","timeout","components","timeoutInstance","includeComponent","name","creationFunction","window","getComponentPromises","Object","fromEntries","entries","filter","_a","key","_b","includes","some","_c","startsWith","_d","_e","map","fmix","input","Math","imul","C","Uint32Array","rotl","m","hash","seed","text","TextEncoder","encode","buffer","ArrayBuffer","blocks","byteLength","view32","i","k","subarray","reminder","tail","Uint8Array","finalize","byteArray","Array","from","byte","toString","padStart","join","delay","val","setTimeout","raceAllPerformance","promises","timeoutTime","timeoutVal","all","p","startTime","performance","now","race","elapsed","raceAll","getVersion","getFingerprintData","promiseMap","keys_1","keys","values","resolvedValues","validValues","resolvedComponents_1","forEach","index","filterFingerprintData","obj","excludeList","includeList","path","_loop_1","currentPath","isArray","isExcluded","exclusion","isIncluded","inclusion","filtered","_i","getBrowser","navigator","version","ua","userAgent","browserNameMap","edg","opr","samsung","regexes_1","regex","match","groups","toLowerCase","calculateHash","samples","abs","browser","getCommonPixels","images","width","height","finalData","data","indice","u","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","arr_1","num","mostFrequent","parseInt","audioContext_1","OfflineAudioContext","webkitOfflineAudioContext","audioBuffer_1","createBufferSource","oscillator_1","createOscillator","frequency","samples_1","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","oscillator","type","maxChannels","maxChannelCount","channelCountMode","startRendering","error","console","ver","split","majorVer","document","createElement","getContext","imageDatas","canvas","ctx","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","font","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","getImageData","generateCanvasImageData","commonImageDataHash","permission_keys","availableFonts","baseFonts","measureSingleFont","Error","concat","measureText","getVideoCard","gl","vendor","getParameter","VENDOR","renderer","RENDERER","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","getArchitecture","Float32Array","u8","Infinity","mostFrequentValuesInArrayOfDictionaries","mostFrequentValueForKey","element","String","highestFrequency","mostFrequentValue","matchMedias","results","mediaQueries","pointer","hover","update","scripting","matchMedia","matches","_this","callback","durationMs","resolveWith","iframe","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","contentWindow","removeChild","ephemeralIFrame","defaultWidths","fontWidth","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","permissions_to_check","permissionPromises","retries","permissionStatus","permission_keys_1","feature","permissions","query","status_1","state","getBrowserPermissionsOnce","resolvedPermissions","plugins","plugin","filename","description","is_touchscreen","maxTouchPoints","colorDepth","screen","mediaMatches","platform","productSub","product","useragent","hardwareConcurrency","location","protocol","ApplePaySession","versionCheck","supportsVersion","getApplePayVersion","cookieEnabled","_RUNS","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","PI","angle","cos","sin","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","commonImageHash","webgl","integrate","a","b","h","sum","acos","asin","atan","cosh","E","largeCos","largeSin","largeTan","tan","log","pi","sinh","sqrt","tanh","includeData","fingerprintData","thisHash","JSON","stringify","random","url","payload","thumbmark","sessionStorage","getItem","setItem","fetch","method","headers","logFingerprintData","keys_2","resolvedComponents_2","every","item"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"thumbmark.umd.js","sources":["../src/options.ts","../src/components/system/browser.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/screen/index.ts","../src/components/webgl/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/system/index.ts","../src/functions/filterComponents.ts","../src/functions/index.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["defaultOptions","exclude","include","logging","timeout","cache_api_call","performance","options","getBrowser","navigator","name","version","ua","userAgent","regexes","browserNameMap","edg","opr","samsung","regex","match","groups","toLowerCase","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","finalData","data","indice","u","push","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","key","seed","text","TextEncoder","encode","buffer","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","Uint8Array","finalize","byteArray","Array","from","map","byte","toString","padStart","join","browser","ver","split","majorVer","_WIDTH","wait","durationMs","resolveWith","Promise","resolve","setTimeout","availableFonts","baseFonts","measureSingleFont","ctx","font","Error","measureText","getVideoCard","canvas","document","createElement","gl","_a","getContext","undefined","vendor","getParameter","VENDOR","renderer","RENDERER","result","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","a","b","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","_RUNS","tm_component_promises","audio","async","includes","reject","sampleRate","numSamples","audioContext","window","OfflineAudioContext","webkitOfflineAudioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","console","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","generateCanvasFingerprint","fonts","callback","iframe","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","contentWindow","removeChild","ephemeralIFrame","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","cos","PI","largeCos","largeSin","sin","largeTan","tan","permissions","permission_keys","permissions_to_check","permissionPromises","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","all","then","resolvedPermissions","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","system","platform","productSub","product","useragent","hardwareConcurrency","location","protocol","ApplePaySession","versionCheck","supportsVersion","getApplePayVersion","cookieEnabled","webgl","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","angle","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","customComponents","timeoutInstance","includeComponent","creationFunction","filterThumbmarkData","path","excludeList","includeList","entries","currentPath","isArray","isExcluded","some","exclusion","startsWith","isIncluded","inclusion","filtered","getVersion","packageJson.version","currentApiPromise","apiPromiseResult","getThumbmark","_options","allComponents","elapsed","resolvedComponents","clientComponentsResult","resolveClientComponents","apiPromise","api_key","components","fetchPromise","fetch","method","headers","Authorization","JSON","stringify","clientHash","response","ok","json","catch","timeoutMs","timeoutPromise","thumbmark","info","timed_out","race","getApiPromise","apiResult","maybeElapsed","uniqueness","comps","opts","e","_b","_c","_d","promises","_","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","now","t","raceAllPerformance","resolvedComponentsRaw","index","constructor","this","get","overrideOptions","globalIncludeComponent","includeData","thumbmarkData","every","item"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thumbmarkjs/thumbmarkjs",
3
- "version": "0.20.6",
3
+ "version": "1.0.0-rc.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/thumbmark.cjs.js",
@@ -19,9 +19,14 @@
19
19
  ],
20
20
  "scripts": {
21
21
  "test": "jest",
22
- "build": "rm -rf dist/* && rm -rf types/* && rollup -c"
22
+ "build": "rm -rf dist/* && rm -rf types/* && rollup -c",
23
+ "watch": "rollup -c -w"
23
24
  },
24
25
  "keywords": [
26
+ "thumbmark",
27
+ "browser-thumbmarking",
28
+ "browser-thumbmark",
29
+ "thumbmarking",
25
30
  "fingerprint",
26
31
  "fingerprinting",
27
32
  "browser-fingerprint",
@@ -1,13 +1,21 @@
1
- import { componentInterface, includeComponent } from '../../factory'
1
+ import { componentInterface, componentFunctionInterface, includeComponent } from '../../factory'
2
+ import { optionsInterface } from '../../options';
2
3
  import { getBrowser } from '../system/browser'
3
4
 
5
+ export default async function getAudio(options?: optionsInterface): Promise<componentInterface | null> {
6
+ const browser = getBrowser()
7
+ if (!['SamsungBrowser', 'Safari'].includes(browser.name))
8
+ return createAudioFingerprint()
9
+ return null;
10
+ }
11
+
4
12
  async function createAudioFingerprint(): Promise<componentInterface> {
5
13
  const resultPromise = new Promise<componentInterface>((resolve, reject) => {
6
14
  try {
7
15
  // Set up audio parameters
8
16
  const sampleRate = 44100;
9
17
  const numSamples = 5000;
10
- const audioContext = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, numSamples, sampleRate );
18
+ const audioContext = new ((window.OfflineAudioContext || window.webkitOfflineAudioContext))(1, numSamples, sampleRate );
11
19
  const audioBuffer = audioContext.createBufferSource();
12
20
 
13
21
  const oscillator = audioContext.createOscillator();
@@ -28,7 +36,6 @@ async function createAudioFingerprint(): Promise<componentInterface> {
28
36
  resolve(
29
37
  {
30
38
  'sampleHash': calculateHash(samples),
31
- 'oscillator': oscillator.type,
32
39
  'maxChannels': audioContext.destination.maxChannelCount,
33
40
  'channelCountMode': audioBuffer.channelCountMode,
34
41
 
@@ -57,8 +64,4 @@ function calculateHash(samples: Float32Array) {
57
64
  hash += Math.abs(samples[i]);
58
65
  }
59
66
  return hash;
60
- }
61
-
62
- const browser = getBrowser()
63
- if (!['SamsungBrowser', 'Safari'].includes(browser.name))
64
- includeComponent('audio', createAudioFingerprint);
67
+ }
@@ -2,6 +2,7 @@ import { componentInterface, includeComponent } from '../../factory';
2
2
  import { getCommonPixels } from '../../utils/commonPixels';
3
3
  import { hash } from '../../utils/hash';
4
4
  import { getBrowser } from '../system/browser';
5
+ import { optionsInterface } from '../../options';
5
6
 
6
7
  const browser = getBrowser();
7
8
  const name = browser.name.toLowerCase();
@@ -19,7 +20,15 @@ const _RUNS = 3;
19
20
  const _WIDTH = 280;
20
21
  const _HEIGHT = 20;
21
22
 
22
- export default function generateCanvasFingerprint(): Promise<componentInterface> {
23
+ export default async function getCanvas(options?: optionsInterface): Promise<componentInterface | null> {
24
+ const browser = getBrowser()
25
+ if (name !== 'firefox' && !(name === 'safari' && majorVer >= 17))
26
+ return generateCanvasFingerprint()
27
+ return null;
28
+ }
29
+
30
+
31
+ export function generateCanvasFingerprint(): Promise<componentInterface> {
23
32
  const canvas = document.createElement('canvas');
24
33
  const ctx = canvas.getContext('2d');
25
34
 
@@ -33,7 +42,7 @@ export default function generateCanvasFingerprint(): Promise<componentInterface>
33
42
  const commonImageData = getCommonPixels(imageDatas, _WIDTH, _HEIGHT);
34
43
 
35
44
  resolve({
36
- commonImageDataHash: hash(commonImageData.data.toString()).toString(),
45
+ commonPixelsHash: hash(commonImageData.data.toString()).toString(),
37
46
  });
38
47
  });
39
48
  }
@@ -85,9 +94,4 @@ function generateCanvasImageData(): ImageData {
85
94
  const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
86
95
  // Return data URL of the canvas
87
96
  return imageData;
88
- }
89
-
90
- // In Safari from version 17 in private and normal modes canvas differs
91
- if (name !== 'firefox' && !(name === 'safari' && majorVer === 17)) {
92
- includeComponent('canvas', generateCanvasFingerprint);
93
- }
97
+ }
@@ -1,6 +1,7 @@
1
1
  import { componentInterface, includeComponent } from '../../factory'
2
2
  import { ephemeralIFrame } from '../../utils/ephemeralIFrame'
3
3
  import { getBrowser } from '../system/browser'
4
+ import { optionsInterface } from '../../options'
4
5
 
5
6
  interface FontMetrics {[k: string]: number}
6
7
 
@@ -98,7 +99,14 @@ const availableFonts = [
98
99
 
99
100
  const baseFonts = ['monospace', 'sans-serif', 'serif'];
100
101
 
101
- export default function getFontMetrics(): Promise<componentInterface> {
102
+ export default async function getFonts(options?: optionsInterface): Promise<componentInterface | null> {
103
+ const browser = getBrowser()
104
+ if (!['Firefox'].includes(browser.name))
105
+ return getFontMetrics()
106
+ return null;
107
+ }
108
+
109
+ export function getFontMetrics(): Promise<componentInterface> {
102
110
 
103
111
  return new Promise((resolve, reject) => {
104
112
  try {
@@ -139,7 +147,4 @@ function measureSingleFont(ctx: CanvasRenderingContext2D | null, font: string):
139
147
  const defaultFont = ctx.font; // Store default font
140
148
  ctx.font = `72px ${font}`; // Set a default font size
141
149
  return ctx.measureText(text).width;
142
- }
143
-
144
- if (getBrowser().name != 'Firefox')
145
- includeComponent('fonts', getFontMetrics);
150
+ }
@@ -1,8 +1,8 @@
1
1
  import { componentInterface, includeComponent } from '../../factory'
2
2
 
3
- function getHardwareInfo(): Promise<componentInterface> {
3
+ export default function getHardware(): Promise<componentInterface> {
4
4
  return new Promise((resolve, reject) => {
5
- const deviceMemory = (navigator.deviceMemory !== undefined) ? navigator.deviceMemory : 0
5
+ const deviceMemory = ((navigator as any).deviceMemory !== undefined) ? (navigator as any).deviceMemory : 0
6
6
  const memoryInfo = (window.performance && (window.performance as any).memory ) ? (window.performance as any).memory : 0
7
7
  resolve(
8
8
  {
@@ -64,6 +64,4 @@ function getArchitecture(): number {
64
64
  f[0] = f[0] - f[0];
65
65
 
66
66
  return u8[3];
67
- }
68
-
69
- includeComponent('hardware', getHardwareInfo);
67
+ }
@@ -1,6 +1,6 @@
1
1
  import { componentInterface, includeComponent } from '../../factory'
2
2
 
3
- function getLocales(): Promise<componentInterface> {
3
+ export default function getLocales(): Promise<componentInterface> {
4
4
  return new Promise((resolve) => {
5
5
  resolve(
6
6
  {
@@ -18,6 +18,4 @@ function getUserLanguage(): string {
18
18
 
19
19
  function getUserTimezone(): string {
20
20
  return Intl.DateTimeFormat().resolvedOptions().timeZone;
21
- }
22
-
23
- includeComponent('locales', getLocales);
21
+ }
@@ -0,0 +1,28 @@
1
+ import { componentInterface, includeComponent } from '../../factory'
2
+
3
+ const integrate = (f: (x: number) => number, a: number, b: number, n: number): number => {
4
+ const h = (b - a) / n;
5
+ let sum = 0;
6
+ for (let i = 0; i < n; i++) {
7
+ const x = a + (i + 0.5) * h;
8
+ sum += f(x);
9
+ }
10
+ return sum * h;
11
+ };
12
+
13
+ export default function getMath(): Promise<componentInterface> {
14
+ return new Promise((resolve) => {
15
+ resolve(
16
+ {
17
+ 'acos': Math.acos(0.5),
18
+ 'asin': integrate(Math.asin, -1, 1, 97),
19
+ 'cos': integrate(Math.cos, 0, Math.PI, 97),
20
+ 'largeCos': Math.cos(1e20),
21
+ 'largeSin': Math.sin(1e20),
22
+ 'largeTan': Math.tan(1e20),
23
+ 'sin': integrate(Math.sin, -Math.PI, Math.PI, 97),
24
+ 'tan': integrate(Math.tan, 0, 2 * Math.PI, 97),
25
+ }
26
+ );
27
+ });
28
+ }
@@ -1,63 +1,55 @@
1
1
  import { componentInterface, includeComponent } from '../../factory';
2
2
  import { mostFrequentValuesInArrayOfDictionaries } from '../../utils/getMostFrequent';
3
- import { options } from '../../fingerprint/options';
3
+ import { optionsInterface } from '../../options';
4
4
  import { getBrowser } from '../system/browser';
5
5
 
6
- let permission_keys: PermissionName[];
7
- function initializePermissionKeys() {
8
- permission_keys = options?.permissions_to_check || [
9
- 'accelerometer',
10
- 'accessibility', 'accessibility-events',
11
- 'ambient-light-sensor',
12
- 'background-fetch', 'background-sync', 'bluetooth',
13
- 'camera',
14
- 'clipboard-read',
15
- 'clipboard-write',
16
- 'device-info', 'display-capture',
17
- 'gyroscope', 'geolocation',
18
- 'local-fonts',
19
- 'magnetometer', 'microphone', 'midi',
20
- 'nfc', 'notifications',
21
- 'payment-handler',
22
- 'persistent-storage',
23
- 'push',
24
- 'speaker', 'storage-access',
25
- 'top-level-storage-access',
26
- 'window-management',
27
- 'query',
28
- ] as PermissionName[];
29
- }
30
-
31
- export default async function getBrowserPermissions(): Promise<componentInterface> {
32
- initializePermissionKeys();
6
+ const defaultPermissionKeys: PermissionName[] = [
7
+ 'accelerometer',
8
+ 'accessibility', 'accessibility-events',
9
+ 'ambient-light-sensor',
10
+ 'background-fetch', 'background-sync', 'bluetooth',
11
+ 'camera',
12
+ 'clipboard-read',
13
+ 'clipboard-write',
14
+ 'device-info', 'display-capture',
15
+ 'gyroscope', 'geolocation',
16
+ 'local-fonts',
17
+ 'magnetometer', 'microphone', 'midi',
18
+ 'nfc', 'notifications',
19
+ 'payment-handler',
20
+ 'persistent-storage',
21
+ 'push',
22
+ 'speaker', 'storage-access',
23
+ 'top-level-storage-access',
24
+ 'window-management',
25
+ 'query',
26
+ ] as PermissionName[];
27
+
28
+ export default async function getPermissions(options?: optionsInterface): Promise<componentInterface> {
29
+ let permission_keys = options?.permissions_to_check || defaultPermissionKeys;
33
30
  const browser = getBrowser();
34
31
  if (browser.name.toLowerCase() === 'safari') { // removing from Safari due to iFrame handling
35
32
  permission_keys = permission_keys.filter((key) => !['camera', 'geolocation', 'microphone'].includes(key));
36
33
  }
37
- const permissionPromises: Promise<componentInterface>[] = Array.from({length: options?.retries || 3}, () => getBrowserPermissionsOnce() );
34
+ const retries = 3;
35
+ const permissionPromises: Promise<componentInterface>[] = Array.from({length: retries}, () => getBrowserPermissionsOnce(permission_keys) );
38
36
  return Promise.all(permissionPromises).then((resolvedPermissions) => {
39
37
  const permission = mostFrequentValuesInArrayOfDictionaries(resolvedPermissions, permission_keys);
40
38
  return permission;
41
39
  });
42
40
  }
43
41
 
44
- async function getBrowserPermissionsOnce(): Promise<componentInterface> {
45
-
42
+ async function getBrowserPermissionsOnce(permission_keys: PermissionName[]): Promise<componentInterface> {
46
43
  const permissionStatus: { [key: string]: string } = {};
47
-
48
44
  for (const feature of permission_keys) {
49
45
  try {
50
46
  // Request permission status for each feature
51
47
  const status = await navigator.permissions.query({ name: feature });
52
-
53
48
  // Assign permission status to the object
54
49
  permissionStatus[feature] = status.state.toString();
55
50
  } catch (error) {
56
51
  // In case of errors (unsupported features, etc.), do nothing. Not listing them is the same as not supported
57
52
  }
58
53
  }
59
-
60
54
  return permissionStatus;
61
- }
62
-
63
- includeComponent("permissions", getBrowserPermissions);
55
+ }
@@ -1,6 +1,6 @@
1
1
  import { componentInterface, includeComponent } from '../../factory'
2
2
 
3
- export default function getInstalledPlugins(): Promise<componentInterface> {
3
+ export default function getPlugins(): Promise<componentInterface> {
4
4
  const plugins: string[] = [];
5
5
 
6
6
  if (navigator.plugins) {
@@ -17,6 +17,4 @@ export default function getInstalledPlugins(): Promise<componentInterface> {
17
17
  }
18
18
  );
19
19
  });
20
- }
21
-
22
- includeComponent('plugins', getInstalledPlugins);
20
+ }
@@ -1,6 +1,6 @@
1
1
  import { componentInterface, includeComponent } from '../../factory';
2
2
 
3
- function screenDetails(): Promise<componentInterface> {
3
+ export default function getScreen(): Promise<componentInterface> {
4
4
  return new Promise((resolve) => {
5
5
  resolve(
6
6
  {
@@ -41,6 +41,4 @@ function matchMedias(): string[] {
41
41
  })
42
42
  });
43
43
  return results;
44
- }
45
-
46
- includeComponent('screen', screenDetails);
44
+ }
@@ -1,7 +1,7 @@
1
1
  import { componentInterface, includeComponent } from '../../factory';
2
2
  import { getBrowser } from './browser'
3
3
 
4
- function getSystemDetails(): Promise<componentInterface> {
4
+ export default function getSystem(): Promise<componentInterface> {
5
5
  return new Promise((resolve) => {
6
6
  const browser = getBrowser()
7
7
 
@@ -39,7 +39,4 @@ function getApplePayVersion(): number {
39
39
  }
40
40
  }
41
41
  return 0
42
- }
43
-
44
- includeComponent('system', getSystemDetails);
45
-
42
+ }
@@ -16,7 +16,7 @@ function initializeCanvasAndWebGL() {
16
16
  }
17
17
  }
18
18
 
19
- async function createWebGLFingerprint(): Promise<componentInterface> {
19
+ export default async function getWebGL(): Promise<componentInterface> {
20
20
  initializeCanvasAndWebGL();
21
21
 
22
22
  try {
@@ -32,7 +32,7 @@ async function createWebGLFingerprint(): Promise<componentInterface> {
32
32
  //const imageData = createWebGLImageData()
33
33
 
34
34
  return {
35
- 'commonImageHash': hash(commonImageData.data.toString()).toString(),
35
+ 'commonPixelsHash': hash(commonImageData.data.toString()).toString(),
36
36
  }
37
37
  } catch (error) {
38
38
  return {
@@ -143,6 +143,4 @@ function createWebGLImageData(): ImageData {
143
143
  gl.clearColor(0.0, 0.0, 0.0, 0.0);
144
144
  }
145
145
  }
146
- }
147
-
148
- includeComponent('webgl', createWebGLFingerprint);
146
+ }