image-hash 5.3.2 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/lib/block-hash.d.ts +1 -0
- package/lib/block-hash.d.ts.map +1 -0
- package/lib/block-hash.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +47 -33
- package/lib/index.js.map +1 -1
- package/package.json +18 -27
package/README.md
CHANGED
|
@@ -22,9 +22,9 @@ imageHash('https://ichef-1.bbci.co.uk/news/660/cpsprodpb/7F76/production/_957036
|
|
|
22
22
|
// 0773063f063f36070e070a070f378e7f1f000fff0fff020103f00ffb0f810ff0
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
-
// remote file with
|
|
25
|
+
// remote file with fetch config object
|
|
26
26
|
const config = {
|
|
27
|
-
|
|
27
|
+
url: 'https://ichef-1.bbci.co.uk/news/660/cpsprodpb/7F76/production/_95703623_mediaitem95703620.jpg'
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
imageHash(config, 16, true, (error, data) => {
|
|
@@ -80,7 +80,7 @@ Image hash will log out warnings if environment variable `VERBOSE` is set to tru
|
|
|
80
80
|
|
|
81
81
|
| Argument | Type | Description | Mandatory | Example |
|
|
82
82
|
| -------- | ---- | ----------- | --------- | ------- |
|
|
83
|
-
| location | `object` or `string` | A
|
|
83
|
+
| location | `object` or `string` | A configuration object with a remote `url` (see below for details), `Buffer` object (See input types below for more details), or `String` with a valid url or file location | Yes | see above |
|
|
84
84
|
| bits | `int` | The number of bits in a row. The more bits, the more unique the hash. | Yes | 8 |
|
|
85
85
|
| precise | `bool` | Whether a precision algorithm is used. `true` Precise but slower, non-overlapping blocks. `false` Quick and crude, non-overlapping blocks. Method 2 is recommended as a good tradeoff between speed and good matches on any image size. The quick ones are only advisable when the image width and height are an even multiple of the number of blocks used. | Yes | `true` |
|
|
86
86
|
| callback | `function` | A function with `error` and `data` arguments - see below |
|
|
@@ -92,6 +92,8 @@ Image hash will log out warnings if environment variable `VERBOSE` is set to tru
|
|
|
92
92
|
interface UrlRequestObject {
|
|
93
93
|
encoding?: string | null,
|
|
94
94
|
url: string | null,
|
|
95
|
+
// Additional fetch RequestInit options may be provided
|
|
96
|
+
[key: string]: unknown,
|
|
95
97
|
};
|
|
96
98
|
|
|
97
99
|
// Buffer Object
|
package/lib/block-hash.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-hash.d.ts","sourceRoot":"","sources":["../src/block-hash.ts"],"names":[],"mappings":"yBA0LgB,YAAO,EAAE,SAAI,EAAE,WAAM;AAArC,wBAYE"}
|
package/lib/block-hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-hash.js","sourceRoot":"","sources":["../src/block-hash.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"block-hash.js","sourceRoot":"","sources":["../src/block-hash.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
2
|
export interface UrlRequestObject {
|
|
3
3
|
encoding?: string | null;
|
|
4
4
|
url: string | null;
|
|
5
|
+
[key: string]: unknown;
|
|
5
6
|
}
|
|
6
7
|
export interface BufferObject {
|
|
7
8
|
ext?: string;
|
|
@@ -9,3 +10,4 @@ export interface BufferObject {
|
|
|
9
10
|
name?: string;
|
|
10
11
|
}
|
|
11
12
|
export declare const imageHash: (oldSrc: string | UrlRequestObject | BufferObject, bits: any, method: any, cb: any) => void;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA4CD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,SAAI,EAAE,WAAM,EAAE,OAAE,SAkI3F,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -15,17 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
6
|
exports.imageHash = void 0;
|
|
16
7
|
const fs_1 = __importDefault(require("fs"));
|
|
17
8
|
const buffer_1 = require("buffer");
|
|
18
|
-
const file_type_1 =
|
|
9
|
+
const file_type_1 = require("file-type");
|
|
19
10
|
const jpeg_js_1 = __importDefault(require("jpeg-js"));
|
|
20
11
|
const pngjs_1 = require("pngjs");
|
|
21
|
-
const request_1 = __importDefault(require("request"));
|
|
22
12
|
const url_1 = require("url");
|
|
23
13
|
const webp_1 = __importDefault(require("@cwasm/webp"));
|
|
24
14
|
const block_hash_1 = __importDefault(require("./block-hash"));
|
|
25
15
|
const processPNG = (data, bits, method, cb) => {
|
|
26
16
|
try {
|
|
27
17
|
const png = pngjs_1.PNG.sync.read(data);
|
|
28
|
-
const res = block_hash_1.default(png, bits, method ? 2 : 1);
|
|
18
|
+
const res = (0, block_hash_1.default)(png, bits, method ? 2 : 1);
|
|
29
19
|
cb(null, res);
|
|
30
20
|
}
|
|
31
21
|
catch (e) {
|
|
@@ -35,7 +25,7 @@ const processPNG = (data, bits, method, cb) => {
|
|
|
35
25
|
const processJPG = (data, bits, method, cb) => {
|
|
36
26
|
try {
|
|
37
27
|
const decoded = jpeg_js_1.default.decode(data);
|
|
38
|
-
const res = block_hash_1.default(decoded, bits, method ? 2 : 1);
|
|
28
|
+
const res = (0, block_hash_1.default)(decoded, bits, method ? 2 : 1);
|
|
39
29
|
cb(null, res);
|
|
40
30
|
}
|
|
41
31
|
catch (e) {
|
|
@@ -45,7 +35,7 @@ const processJPG = (data, bits, method, cb) => {
|
|
|
45
35
|
const processWebp = (data, bits, method, cb) => {
|
|
46
36
|
try {
|
|
47
37
|
const decoded = webp_1.default.decode(data);
|
|
48
|
-
const res = block_hash_1.default(decoded, bits, method ? 2 : 1);
|
|
38
|
+
const res = (0, block_hash_1.default)(decoded, bits, method ? 2 : 1);
|
|
49
39
|
cb(null, res);
|
|
50
40
|
}
|
|
51
41
|
catch (e) {
|
|
@@ -62,22 +52,22 @@ const isBufferObject = (obj) => {
|
|
|
62
52
|
|| (buffer_1.Buffer.isBuffer(casted.data) && (casted.ext && casted.ext.length > 0));
|
|
63
53
|
};
|
|
64
54
|
// eslint-disable-next-line
|
|
65
|
-
|
|
55
|
+
const imageHash = (oldSrc, bits, method, cb) => {
|
|
66
56
|
const src = oldSrc;
|
|
67
|
-
const getFileType = (data) =>
|
|
57
|
+
const getFileType = async (data) => {
|
|
68
58
|
if (typeof src !== 'string' && isBufferObject(src) && src.ext) {
|
|
69
59
|
return {
|
|
70
60
|
mime: src.ext,
|
|
71
61
|
};
|
|
72
62
|
}
|
|
73
63
|
if (buffer_1.Buffer.isBuffer(data)) {
|
|
74
|
-
return file_type_1.
|
|
64
|
+
return (0, file_type_1.fileTypeFromBuffer)(data);
|
|
75
65
|
}
|
|
76
66
|
if (typeof src === 'string') {
|
|
77
|
-
return file_type_1.
|
|
67
|
+
return (0, file_type_1.fileTypeFromFile)(src);
|
|
78
68
|
}
|
|
79
69
|
return '';
|
|
80
|
-
}
|
|
70
|
+
};
|
|
81
71
|
const checkFileType = (name, data) => {
|
|
82
72
|
getFileType(data).then((type) => {
|
|
83
73
|
// what is the image type
|
|
@@ -123,14 +113,42 @@ exports.imageHash = (oldSrc, bits, method, cb) => {
|
|
|
123
113
|
cb(err);
|
|
124
114
|
});
|
|
125
115
|
};
|
|
126
|
-
const
|
|
127
|
-
if (
|
|
128
|
-
cb(new Error(
|
|
116
|
+
const fetchRemoteImage = async (remoteSrc) => {
|
|
117
|
+
if (fetch && typeof fetch !== 'function') {
|
|
118
|
+
cb(new Error('Global fetch API is not available. Node.js 18+ is required.'));
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const requestUrl = typeof remoteSrc === 'string' ? remoteSrc : remoteSrc.url;
|
|
122
|
+
if (!requestUrl) {
|
|
123
|
+
cb(new Error('No URL provided for remote image.'));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
let init;
|
|
127
|
+
if (typeof remoteSrc !== 'string') {
|
|
128
|
+
init = { ...remoteSrc };
|
|
129
|
+
delete init.url;
|
|
130
|
+
delete init.encoding;
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const response = await fetch(requestUrl, init);
|
|
134
|
+
if (!response || !response.ok) {
|
|
135
|
+
const status = response ? `${response.status} ${response.statusText}` : 'Unknown status';
|
|
136
|
+
throw new Error(`Failed to fetch image. HTTP status: ${status}`);
|
|
137
|
+
}
|
|
138
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
139
|
+
const buffer = buffer_1.Buffer.from(arrayBuffer);
|
|
140
|
+
let pathname = '';
|
|
141
|
+
try {
|
|
142
|
+
const url = new url_1.URL(response.url || requestUrl);
|
|
143
|
+
pathname = url.pathname;
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
pathname = '';
|
|
147
|
+
}
|
|
148
|
+
checkFileType(pathname, buffer);
|
|
129
149
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const name = url.pathname;
|
|
133
|
-
checkFileType(name, res.body);
|
|
150
|
+
catch (error) {
|
|
151
|
+
cb(error);
|
|
134
152
|
}
|
|
135
153
|
};
|
|
136
154
|
const handleReadFile = (err, res) => {
|
|
@@ -149,11 +167,7 @@ exports.imageHash = (oldSrc, bits, method, cb) => {
|
|
|
149
167
|
// is src url or file
|
|
150
168
|
if (typeof src === 'string' && (src.indexOf('http') === 0 || src.indexOf('https') === 0)) {
|
|
151
169
|
// url
|
|
152
|
-
|
|
153
|
-
url: src,
|
|
154
|
-
encoding: null,
|
|
155
|
-
};
|
|
156
|
-
request_1.default(req, handleRequest);
|
|
170
|
+
fetchRemoteImage(src);
|
|
157
171
|
}
|
|
158
172
|
else if (typeof src !== 'string' && isBufferObject(src)) {
|
|
159
173
|
// image buffers
|
|
@@ -161,12 +175,12 @@ exports.imageHash = (oldSrc, bits, method, cb) => {
|
|
|
161
175
|
}
|
|
162
176
|
else if (typeof src !== 'string' && isUrlRequestObject(src)) {
|
|
163
177
|
// Request Object
|
|
164
|
-
src
|
|
165
|
-
request_1.default(src, handleRequest);
|
|
178
|
+
fetchRemoteImage(src);
|
|
166
179
|
}
|
|
167
180
|
else {
|
|
168
181
|
// file
|
|
169
182
|
fs_1.default.readFile(src, handleReadFile);
|
|
170
183
|
}
|
|
171
184
|
};
|
|
185
|
+
exports.imageHash = imageHash;
|
|
172
186
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "image-hash",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"description": "Create a hash from an image",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"test": "npx mocha -r ts-node/register __tests__/*.test.ts ",
|
|
9
|
-
"build": "tsc",
|
|
10
|
-
"lint": "eslint src/*.ts",
|
|
11
|
-
"lint:fix": "eslint src/*.ts --fix"
|
|
12
|
-
},
|
|
13
7
|
"files": [
|
|
14
8
|
"lib"
|
|
15
9
|
],
|
|
@@ -31,29 +25,26 @@
|
|
|
31
25
|
"homepage": "https://github.com/danm/image-hash#readme",
|
|
32
26
|
"dependencies": {
|
|
33
27
|
"@cwasm/webp": "^0.1.5",
|
|
34
|
-
"file-type": "^
|
|
28
|
+
"file-type": "^21.0.0",
|
|
35
29
|
"jpeg-js": "^0.4.0",
|
|
36
|
-
"pngjs": "^
|
|
37
|
-
"request": "^2.81.0"
|
|
30
|
+
"pngjs": "^7.0.0"
|
|
38
31
|
},
|
|
39
32
|
"devDependencies": {
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"
|
|
43
|
-
"@
|
|
44
|
-
"
|
|
45
|
-
"@babel/runtime": "^7.3.1",
|
|
46
|
-
"@types/chai": "^4.2.12",
|
|
47
|
-
"@types/mocha": "^9.0.0",
|
|
48
|
-
"@types/node": "^11.13.8",
|
|
49
|
-
"chai": "^4.2.0",
|
|
50
|
-
"eslint": "^8.8.0",
|
|
33
|
+
"@types/node": "^24.5.2",
|
|
34
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
35
|
+
"eslint": "^9.36.0",
|
|
36
|
+
"@types/pngjs": "^6.0.1",
|
|
37
|
+
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
51
38
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
52
|
-
"eslint-config-airbnb-typescript": "^16.1.0",
|
|
53
39
|
"eslint-plugin-import": "^2.25.4",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
40
|
+
"typescript": "^5.9.2",
|
|
41
|
+
"vitest": "^3.2.4"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"test": "vitest run",
|
|
45
|
+
"test:watch": "vitest",
|
|
46
|
+
"build": "tsc",
|
|
47
|
+
"lint": "eslint src/*.ts",
|
|
48
|
+
"lint:fix": "eslint src/*.ts --fix"
|
|
58
49
|
}
|
|
59
|
-
}
|
|
50
|
+
}
|