image-hash 4.0.1 → 5.2.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.
package/README.md CHANGED
@@ -1,14 +1,17 @@
1
1
  # image-hash
2
+
2
3
  A wrapper around [block-hash](https://github.com/commonsmachinery/blockhash-js) to easily hash a local or remote file with Node.
3
4
 
4
- Supports JPG and PNG
5
+ Supports JPG, PNG and WebP
5
6
 
6
7
  ## Install
8
+
7
9
  ```bash
8
10
  npm i -S image-hash
9
11
  ```
10
12
 
11
13
  ## Use
14
+
12
15
  ```javascript
13
16
  const { imageHash }= require('image-hash');
14
17
 
@@ -60,22 +63,23 @@ imageHash({
60
63
  ```
61
64
 
62
65
  ## API
63
- ```
66
+
67
+ ```typescript
64
68
  // name
65
- imageHash(location, bits, precise, callback)
69
+ imageHash(location, bits, precise, callback);
66
70
 
67
71
  // types
68
- imageHash(string|object, int, bool, function)
72
+ imageHash(string|object, int, bool, function);
69
73
  ```
70
74
 
71
75
  ### Image-Hash Arguments
72
76
 
73
- | Argument | Type | Description | Mandatory | Example |
74
- | -------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | --------- |
75
- | location | `object` or `string` | A [RequestJS Object](https://github.com/request/request#requestoptions-callback), `Buffer` object (See input types below for more details), or `String` with a valid url or file location | Yes | see above |
76
- | bits | `int` | The number of bits in a row. The more bits, the more unique the hash. | Yes | 8 |
77
- | 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` |
78
- | callback | `function` | A function with `error` and `data` arguments - see below |
77
+ | Argument | Type | Description | Mandatory | Example |
78
+ | -------- | ---- | ----------- | --------- | ------- |
79
+ | location | `object` or `string` | A [RequestJS Object](https://github.com/request/request#requestoptions-callback), `Buffer` object (See input types below for more details), or `String` with a valid url or file location | Yes | see above |
80
+ | bits | `int` | The number of bits in a row. The more bits, the more unique the hash. | Yes | 8 |
81
+ | 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` |
82
+ | callback | `function` | A function with `error` and `data` arguments - see below |
79
83
 
80
84
  #### Location Object Types
81
85
 
@@ -85,6 +89,7 @@ interface UrlRequestObject {
85
89
  encoding?: string | null,
86
90
  url: string | null,
87
91
  };
92
+
88
93
  // Buffer Object
89
94
  interface BufferObject {
90
95
  ext?: string, // mime type of buffered file
@@ -96,14 +101,16 @@ interface BufferObject {
96
101
  ### Callback Arguments
97
102
 
98
103
  | Argument | Type | Description |
99
- | -------- | ------------------------ | ----------------------------------------------------------------------------------- | | |
104
+ | -------- | ------------------------ | ----------------------------------------------------------------------------------- |
100
105
  | error | `Error Object` or `null` | If a run time error is detected this will be an `Error Object`, otherwise `null` |
101
106
  | data | `string` or `null` | If there is no run time error, this be will be your hashed result, otherwise `null` |
102
107
 
103
108
  ## Development
109
+
104
110
  I have made this with Typescript, ESLint, Jest, Babel and VSCode. All config files and global binaries are included. For developers using VS Code, make sure you have ESLint extension installed.
105
111
 
106
112
  ## Testing
113
+
107
114
  `npm test`
108
115
 
109
116
  ## Credit
@@ -113,4 +120,3 @@ The hard bit of this comes with thanks from [commonsmachinery](https://github.co
113
120
  ## License
114
121
 
115
122
  Distributed under an MIT license
116
-
@@ -1 +1 @@
1
- {"version":3,"file":"block-hash.js","sourceRoot":"","sources":["../src/block-hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-hash.js","sourceRoot":"","sources":["../src/block-hash.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  /// <reference types="node" />
2
- interface UrlRequestObject {
2
+ export interface UrlRequestObject {
3
3
  encoding?: string | null;
4
4
  url: string | null;
5
5
  }
6
- interface BufferObject {
6
+ export interface BufferObject {
7
7
  ext?: string;
8
8
  data: Buffer;
9
9
  name?: string;
10
10
  }
11
11
  export declare const imageHash: (oldSrc: string | UrlRequestObject | BufferObject, bits: any, method: any, cb: any) => void;
12
- export {};
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
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); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
@@ -11,6 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
12
13
  };
13
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.imageHash = void 0;
14
16
  const fs_1 = __importDefault(require("fs"));
15
17
  const buffer_1 = require("buffer");
16
18
  const file_type_1 = __importDefault(require("file-type"));
@@ -18,6 +20,7 @@ const jpeg_js_1 = __importDefault(require("jpeg-js"));
18
20
  const pngjs_1 = require("pngjs");
19
21
  const request_1 = __importDefault(require("request"));
20
22
  const url_1 = require("url");
23
+ const webp_1 = __importDefault(require("@cwasm/webp"));
21
24
  const block_hash_1 = __importDefault(require("./block-hash"));
22
25
  const processPNG = (data, bits, method, cb) => {
23
26
  try {
@@ -39,35 +42,41 @@ const processJPG = (data, bits, method, cb) => {
39
42
  cb(e);
40
43
  }
41
44
  };
45
+ const processWebp = (data, bits, method, cb) => {
46
+ try {
47
+ const decoded = webp_1.default.decode(data);
48
+ const res = block_hash_1.default(decoded, bits, method ? 2 : 1);
49
+ cb(null, res);
50
+ }
51
+ catch (e) {
52
+ cb(e);
53
+ }
54
+ };
42
55
  const isUrlRequestObject = (obj) => {
43
56
  const casted = obj;
44
57
  return casted.url && casted.url.length > 0;
45
58
  };
46
59
  const isBufferObject = (obj) => {
47
60
  const casted = obj;
48
- return buffer_1.Buffer.isBuffer(casted.data) || (buffer_1.Buffer.isBuffer(casted.data) && (casted.ext && casted.ext.length > 0));
61
+ return buffer_1.Buffer.isBuffer(casted.data)
62
+ || (buffer_1.Buffer.isBuffer(casted.data) && (casted.ext && casted.ext.length > 0));
49
63
  };
50
64
  // eslint-disable-next-line
51
65
  exports.imageHash = (oldSrc, bits, method, cb) => {
52
66
  const src = oldSrc;
53
- const getFileType = (data) => __awaiter(this, void 0, void 0, function* () {
67
+ const getFileType = (data) => __awaiter(void 0, void 0, void 0, function* () {
54
68
  if (typeof src !== 'string' && isBufferObject(src) && src.ext) {
55
69
  return {
56
70
  mime: src.ext,
57
71
  };
58
72
  }
59
- try {
60
- if (buffer_1.Buffer.isBuffer(data)) {
61
- return yield file_type_1.default.fromBuffer(data);
62
- }
63
- if (typeof src === 'string') {
64
- return yield file_type_1.default.fromFile(src);
65
- }
66
- return '';
73
+ if (buffer_1.Buffer.isBuffer(data)) {
74
+ return file_type_1.default.fromBuffer(data);
67
75
  }
68
- catch (err) {
69
- throw err;
76
+ if (typeof src === 'string') {
77
+ return file_type_1.default.fromFile(src);
70
78
  }
79
+ return '';
71
80
  });
72
81
  const checkFileType = (name, data) => {
73
82
  getFileType(data).then((type) => {
@@ -87,8 +96,11 @@ exports.imageHash = (oldSrc, bits, method, cb) => {
87
96
  else if ((ext === 'jpg' || ext === 'jpeg') && type.mime === 'image/jpeg') {
88
97
  processJPG(data, bits, method, cb);
89
98
  }
99
+ else if (ext === 'webp' && type.mime === 'image/webp') {
100
+ processWebp(data, bits, method, cb);
101
+ }
90
102
  else {
91
- cb(new Error(`Unrecognized file extension, mime type or mismatch, ext: ${ext} / mime: ${type}`));
103
+ cb(new Error(`Unrecognized file extension, mime type or mismatch, ext: ${ext} / mime: ${type.mime}`));
92
104
  }
93
105
  }
94
106
  else {
@@ -99,8 +111,11 @@ exports.imageHash = (oldSrc, bits, method, cb) => {
99
111
  else if (type.mime === 'image/jpeg') {
100
112
  processJPG(data, bits, method, cb);
101
113
  }
114
+ else if (type.mime === 'image/webp') {
115
+ processWebp(data, bits, method, cb);
116
+ }
102
117
  else {
103
- cb(new Error(`Unrecognized mime type: ${type}`));
118
+ cb(new Error(`Unrecognized mime type: ${type.mime}`));
104
119
  }
105
120
  }
106
121
  }).catch((err) => {
@@ -153,4 +168,4 @@ exports.imageHash = (oldSrc, bits, method, cb) => {
153
168
  fs_1.default.readFile(src, handleReadFile);
154
169
  }
155
170
  };
156
- //# sourceMappingURL=imageHash.js.map
171
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "image-hash",
3
- "version": "4.0.1",
3
+ "version": "5.2.1",
4
4
  "description": "Create a hash from an image",
5
- "main": "lib/imageHash.js",
6
- "types": "lib/imageHash.d.ts",
5
+ "main": "lib/index.js",
6
+ "types": "lib/index.d.ts",
7
7
  "scripts": {
8
8
  "test": "npx mocha -r ts-node/register __tests__/*.test.ts ",
9
- "build": "tsc"
9
+ "build": "tsc",
10
+ "lint": "eslint src/*.ts",
11
+ "lint:fix": "eslint src/*.ts --fix"
10
12
  },
11
13
  "files": [
12
14
  "lib"
@@ -28,29 +30,30 @@
28
30
  },
29
31
  "homepage": "https://github.com/danm/image-hash#readme",
30
32
  "dependencies": {
31
- "file-type": "^14.6.2",
33
+ "@cwasm/webp": "^0.1.5",
34
+ "file-type": "^16.5.3",
32
35
  "jpeg-js": "^0.4.0",
33
- "pngjs": "^3.3.3",
36
+ "pngjs": "^6.0.0",
34
37
  "request": "^2.81.0"
35
38
  },
36
39
  "devDependencies": {
37
- "@types/chai": "^4.2.12",
38
40
  "@babel/cli": "^7.2.3",
39
41
  "@babel/core": "^7.2.2",
40
42
  "@babel/plugin-transform-modules-commonjs": "^7.4.4",
41
43
  "@babel/preset-env": "^7.3.1",
42
44
  "@babel/preset-typescript": "^7.1.0",
43
45
  "@babel/runtime": "^7.3.1",
44
- "@types/mocha": "^8.0.0",
46
+ "@types/chai": "^4.2.12",
47
+ "@types/mocha": "^9.0.0",
45
48
  "@types/node": "^11.13.8",
46
- "@typescript-eslint/eslint-plugin": "^1.7.0",
47
- "@typescript-eslint/parser": "^1.7.0",
48
49
  "chai": "^4.2.0",
49
- "eslint": "^5.16.0",
50
- "eslint-config-airbnb-typescript": "^3.0.0",
51
- "eslint-plugin-import": "^2.17.2",
52
- "mocha": "^8.1.0",
50
+ "eslint": "^8.8.0",
51
+ "eslint-config-airbnb-base": "^15.0.0",
52
+ "eslint-config-airbnb-typescript": "^16.1.0",
53
+ "eslint-plugin-import": "^2.25.4",
54
+ "mocha": "^9.0.0",
53
55
  "ts-node": "^8.10.2",
54
- "typescript": "^3.3.1"
56
+ "typescript": "^3.3.1",
57
+ "@types/pngjs": "^6.0.1"
55
58
  }
56
59
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageHash.js","sourceRoot":"","sources":["../src/imageHash.ts"],"names":[],"mappings":"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"}