thumbmarkjs
Advanced tools
Comparing version 0.11.5 to 0.12.1
@@ -16,1 +16,2 @@ /** | ||
import './webgl/webgl'; | ||
import './math/math'; |
@@ -18,2 +18,3 @@ "use strict"; | ||
require("./webgl/webgl"); | ||
require("./math/math"); | ||
//# sourceMappingURL=index.js.map |
@@ -56,2 +56,3 @@ "use strict"; | ||
commonImageData = (0, commonPixels_1.getCommonPixels)(imageDatas, canvas.width, canvas.height); | ||
//const imageData = createWebGLImageData() | ||
return [2 /*return*/, { | ||
@@ -75,2 +76,3 @@ 'commonImageHash': (0, hash_1.hash)(commonImageData.data.toString()).toString(), | ||
function createWebGLImageData() { | ||
var gl = null; | ||
try { | ||
@@ -80,3 +82,3 @@ var canvas = document.createElement('canvas'); | ||
canvas.height = 100; | ||
var gl = canvas.getContext('webgl'); | ||
gl = canvas.getContext('webgl'); | ||
if (!gl) { | ||
@@ -95,3 +97,9 @@ throw new Error('WebGL not supported'); | ||
gl.compileShader(vertexShader); | ||
if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) { | ||
throw new Error('Vertex shader compilation failed: ' + gl.getShaderInfoLog(vertexShader)); | ||
} | ||
gl.compileShader(fragmentShader); | ||
if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) { | ||
throw new Error('Fragment shader compilation failed: ' + gl.getShaderInfoLog(fragmentShader)); | ||
} | ||
var shaderProgram = gl.createProgram(); | ||
@@ -104,2 +112,5 @@ if (!shaderProgram) { | ||
gl.linkProgram(shaderProgram); | ||
if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) { | ||
throw new Error('Shader program linking failed: ' + gl.getProgramInfoLog(shaderProgram)); | ||
} | ||
gl.useProgram(shaderProgram); | ||
@@ -132,16 +143,24 @@ // Set up vertices to form lines | ||
var imageData = new ImageData(pixelData, canvas.width, canvas.height); | ||
// Close WebGL context | ||
// WebGL cleanup | ||
gl.disableVertexAttribArray(positionAttribute); | ||
gl.deleteBuffer(vertexBuffer); | ||
gl.deleteProgram(shaderProgram); | ||
gl.deleteShader(vertexShader); | ||
gl.deleteShader(fragmentShader); | ||
gl.bindFramebuffer(gl.FRAMEBUFFER, null); | ||
gl.bindTexture(gl.TEXTURE_2D, null); | ||
canvas.remove(); | ||
return imageData; | ||
} | ||
catch (error) { | ||
console.error(error); | ||
return new ImageData(1, 1); | ||
} | ||
finally { | ||
if (gl) { | ||
var loseContextExtension = gl.getExtension('WEBGL_lose_context'); | ||
if (loseContextExtension) { | ||
loseContextExtension.loseContext(); | ||
} | ||
} | ||
} | ||
} | ||
(0, factory_1.includeComponent)('webgl', createWebGLFingerprint); | ||
//# sourceMappingURL=webgl.js.map |
import { componentInterface } from '../factory'; | ||
export declare function getFingerprintData(): Promise<componentInterface>; | ||
export declare function getFingerprint(): Promise<string>; | ||
export declare function getFingerprintPerformance(): Promise<{ | ||
[key: string]: any; | ||
}>; |
@@ -39,9 +39,10 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getFingerprint = exports.getFingerprintData = void 0; | ||
exports.getFingerprintPerformance = exports.getFingerprint = exports.getFingerprintData = void 0; | ||
var factory_1 = require("../factory"); | ||
var hash_1 = require("../utils/hash"); | ||
var raceAll_1 = require("../utils/raceAll"); | ||
var _TIMEOUT = 1000; | ||
function getFingerprintData() { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var timeout, promiseMap, keys_1, promises, resolvedValues, resolvedComponents_1, error_1; | ||
var promiseMap, keys_1, promises, resolvedValues, resolvedComponents_1, error_1; | ||
return __generator(this, function (_a) { | ||
@@ -51,7 +52,6 @@ switch (_a.label) { | ||
_a.trys.push([0, 2, , 3]); | ||
timeout = 1000; | ||
promiseMap = (0, factory_1.getComponentPromises)(); | ||
keys_1 = Object.keys(promiseMap); | ||
promises = Object.values(promiseMap); | ||
return [4 /*yield*/, (0, raceAll_1.raceAll)(promises, timeout, factory_1.timeoutInstance)]; | ||
return [4 /*yield*/, (0, raceAll_1.raceAll)(promises, _TIMEOUT, factory_1.timeoutInstance)]; | ||
case 1: | ||
@@ -94,2 +94,32 @@ resolvedValues = _a.sent(); | ||
exports.getFingerprint = getFingerprint; | ||
function getFingerprintPerformance() { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var promiseMap, keys_2, promises, resolvedValues, resolvedComponents_2, error_3; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
promiseMap = (0, factory_1.getComponentPromises)(); | ||
keys_2 = Object.keys(promiseMap); | ||
promises = Object.values(promiseMap); | ||
return [4 /*yield*/, (0, raceAll_1.raceAllPerformance)(promises, _TIMEOUT, factory_1.timeoutInstance)]; | ||
case 1: | ||
resolvedValues = _a.sent(); | ||
resolvedComponents_2 = { | ||
elapsed: {} | ||
}; | ||
resolvedValues.forEach(function (value, index) { | ||
resolvedComponents_2[keys_2[index]] = value.value; | ||
resolvedComponents_2["elapsed"][keys_2[index]] = value.elapsed; | ||
}); | ||
return [2 /*return*/, resolvedComponents_2]; | ||
case 2: | ||
error_3 = _a.sent(); | ||
throw error_3; | ||
case 3: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
} | ||
exports.getFingerprintPerformance = getFingerprintPerformance; | ||
//# sourceMappingURL=functions.js.map |
@@ -1,2 +0,2 @@ | ||
import { getFingerprint, getFingerprintData } from './fingerprint/functions'; | ||
import { getFingerprint, getFingerprintData, getFingerprintPerformance } from './fingerprint/functions'; | ||
import './components'; | ||
@@ -8,2 +8,2 @@ interface fingerprintOptionsInterface { | ||
declare function getVersion(): string; | ||
export { getVersion, getFingerprint, getFingerprintData, options }; | ||
export { getVersion, getFingerprint, getFingerprintData, getFingerprintPerformance, options }; |
@@ -26,6 +26,7 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.options = exports.getFingerprintData = exports.getFingerprint = exports.getVersion = void 0; | ||
exports.options = exports.getFingerprintPerformance = exports.getFingerprintData = exports.getFingerprint = exports.getVersion = void 0; | ||
var functions_1 = require("./fingerprint/functions"); | ||
Object.defineProperty(exports, "getFingerprint", { enumerable: true, get: function () { return functions_1.getFingerprint; } }); | ||
Object.defineProperty(exports, "getFingerprintData", { enumerable: true, get: function () { return functions_1.getFingerprintData; } }); | ||
Object.defineProperty(exports, "getFingerprintPerformance", { enumerable: true, get: function () { return functions_1.getFingerprintPerformance; } }); | ||
var packageJson = __importStar(require("../package.json")); | ||
@@ -32,0 +33,0 @@ require("./components"); |
{ | ||
"name": "thumbmarkjs", | ||
"version": "0.11.5", | ||
"version": "0.12.1", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
99415
66
1424