@prosopo/datasets 0.1.10 → 0.1.14
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/dist/js/captcha/captcha.d.ts +8 -4
- package/dist/js/captcha/captcha.d.ts.map +1 -1
- package/dist/js/captcha/captcha.js +22 -17
- package/dist/js/captcha/captcha.js.map +1 -1
- package/dist/js/captcha/dataset.d.ts +1 -1
- package/dist/js/captcha/dataset.d.ts.map +1 -1
- package/dist/js/captcha/dataset.js +7 -11
- package/dist/js/captcha/dataset.js.map +1 -1
- package/dist/js/captcha/merkle.d.ts +1 -1
- package/dist/js/captcha/merkle.d.ts.map +1 -1
- package/dist/js/captcha/merkle.js +4 -19
- package/dist/js/captcha/merkle.js.map +1 -1
- package/dist/js/captcha/util.d.ts +0 -5
- package/dist/js/captcha/util.d.ts.map +1 -1
- package/dist/js/captcha/util.js +3 -19
- package/dist/js/captcha/util.js.map +1 -1
- package/dist/js/index.d.ts +0 -1
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js +0 -1
- package/dist/js/index.js.map +1 -1
- package/package.json +12 -21
- package/.eslintignore +0 -3
- package/.eslintrc.js +0 -36
- package/.prettierrc.js +0 -7
- package/LICENSE +0 -201
- package/dist/js/types/assets.d.ts +0 -8
- package/dist/js/types/assets.d.ts.map +0 -1
- package/dist/js/types/assets.js +0 -18
- package/dist/js/types/assets.js.map +0 -1
- package/dist/js/types/captcha.d.ts +0 -285
- package/dist/js/types/captcha.d.ts.map +0 -1
- package/dist/js/types/captcha.js +0 -67
- package/dist/js/types/captcha.js.map +0 -1
- package/dist/js/types/dataset.d.ts +0 -311
- package/dist/js/types/dataset.d.ts.map +0 -1
- package/dist/js/types/dataset.js +0 -28
- package/dist/js/types/dataset.js.map +0 -1
- package/dist/js/types/error.d.ts +0 -14
- package/dist/js/types/error.d.ts.map +0 -1
- package/dist/js/types/error.js +0 -51
- package/dist/js/types/error.js.map +0 -1
- package/dist/js/types/index.d.ts +0 -6
- package/dist/js/types/index.d.ts.map +0 -1
- package/dist/js/types/index.js +0 -9
- package/dist/js/types/index.js.map +0 -1
- package/dist/js/types/merkle.d.ts +0 -10
- package/dist/js/types/merkle.d.ts.map +0 -1
- package/dist/js/types/merkle.js +0 -18
- package/dist/js/types/merkle.js.map +0 -1
- package/tsconfig.json +0 -17
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssetsResolver, Captcha, CaptchaSolution, CaptchaWithoutId, DatasetRaw, HashedItem, HashedSolution, Item, RawSolution } from '
|
|
1
|
+
import { AssetsResolver, Captcha, CaptchaSolution, CaptchaWithoutId, DatasetRaw, HashedItem, HashedSolution, Item, RawSolution } from '@prosopo/types';
|
|
2
2
|
/**
|
|
3
3
|
* Parse a dataset
|
|
4
4
|
* @return {JSON} captcha dataset, stored in JSON
|
|
@@ -10,7 +10,7 @@ export declare function parseCaptchaDataset(datasetJSON: JSON): DatasetRaw;
|
|
|
10
10
|
* @param {JSON} captchaJSON captcha solutions received from the api
|
|
11
11
|
* @return {CaptchaSolution[]} an array of parsed and sorted captcha solutions
|
|
12
12
|
*/
|
|
13
|
-
export declare function parseAndSortCaptchaSolutions(captchaJSON:
|
|
13
|
+
export declare function parseAndSortCaptchaSolutions(captchaJSON: CaptchaSolution[]): CaptchaSolution[];
|
|
14
14
|
export declare function captchaSort<T extends {
|
|
15
15
|
captchaId: string;
|
|
16
16
|
}>(a: T, b: T): number;
|
|
@@ -34,6 +34,10 @@ export declare function compareCaptchaSolutions(received: CaptchaSolution[], sto
|
|
|
34
34
|
* @return {string} the hex string hash
|
|
35
35
|
*/
|
|
36
36
|
export declare function computeCaptchaHash(captcha: CaptchaWithoutId, includeSolution: boolean | undefined, includeSalt: boolean | undefined, sortItemHashes: boolean): string;
|
|
37
|
+
/** Compute the hash of a captcha item, downloading the image if necessary
|
|
38
|
+
* @param {Item} item
|
|
39
|
+
* @return {Promise<HashedItem>} the hex string hash of the item
|
|
40
|
+
*/
|
|
37
41
|
export declare function computeItemHash(item: Item): Promise<HashedItem>;
|
|
38
42
|
/**
|
|
39
43
|
* Converts an indexed captcha solution to a hashed captcha solution or simply returns the hash if it is already hashed
|
|
@@ -61,8 +65,8 @@ export declare function computePendingRequestHash(captchaIds: string[], userAcco
|
|
|
61
65
|
*/
|
|
62
66
|
export declare function parseCaptchaAssets(item: Item, assetsResolver: AssetsResolver | undefined): {
|
|
63
67
|
path: string;
|
|
64
|
-
|
|
68
|
+
type: import("@prosopo/types").CaptchaItemTypes;
|
|
65
69
|
data: string;
|
|
66
|
-
|
|
70
|
+
hash?: string | undefined;
|
|
67
71
|
};
|
|
68
72
|
//# sourceMappingURL=captcha.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EACH,cAAc,EACd,OAAO,EACP,eAAe,EAEf,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,cAAc,EACd,IAAI,EACJ,WAAW,EACd,MAAM,gBAAgB,CAAA;AAOvB;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EACH,cAAc,EACd,OAAO,EACP,eAAe,EAEf,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,cAAc,EACd,IAAI,EACJ,WAAW,EACd,MAAM,gBAAgB,CAAA;AAOvB;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAQ9F;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAEtE;AAED,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,OAAO,EAAE,GAClB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAwBvC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAO/F;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,eAAe,qBAAQ,EACvB,WAAW,qBAAQ,EACnB,cAAc,EAAE,OAAO,GACxB,MAAM,CAkBR;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAQrE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,EAC3C,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,GAC1B,cAAc,EAAE,CAgBlB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,eAAe,UAGlE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS;;;;;EAExF"}
|
|
@@ -17,9 +17,9 @@ const tslib_1 = require("tslib");
|
|
|
17
17
|
//
|
|
18
18
|
// You should have received a copy of the GNU General Public License
|
|
19
19
|
// along with provider. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
const
|
|
20
|
+
const types_1 = require("@prosopo/types");
|
|
21
|
+
const common_1 = require("@prosopo/common");
|
|
21
22
|
const util_1 = require("./util");
|
|
22
|
-
const error_1 = require("../types/error");
|
|
23
23
|
const util_2 = require("@polkadot/util");
|
|
24
24
|
// import {encodeAddress} from "@polkadot/util-crypto";
|
|
25
25
|
/**
|
|
@@ -29,10 +29,10 @@ const util_2 = require("@polkadot/util");
|
|
|
29
29
|
*/
|
|
30
30
|
function parseCaptchaDataset(datasetJSON) {
|
|
31
31
|
try {
|
|
32
|
-
return
|
|
32
|
+
return types_1.DatasetSchema.parse(datasetJSON);
|
|
33
33
|
}
|
|
34
34
|
catch (err) {
|
|
35
|
-
throw new
|
|
35
|
+
throw new common_1.ProsopoEnvError(err, 'ERRORS.DATASET.PARSE_ERROR');
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
exports.parseCaptchaDataset = parseCaptchaDataset;
|
|
@@ -43,12 +43,12 @@ exports.parseCaptchaDataset = parseCaptchaDataset;
|
|
|
43
43
|
*/
|
|
44
44
|
function parseAndSortCaptchaSolutions(captchaJSON) {
|
|
45
45
|
try {
|
|
46
|
-
const parsed =
|
|
46
|
+
const parsed = types_1.CaptchaSolutionArraySchema.parse(captchaJSON);
|
|
47
47
|
parsed.map((captcha) => (Object.assign(Object.assign({}, captcha), { solution: captcha.solution.sort() })));
|
|
48
48
|
return parsed;
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
-
throw new
|
|
51
|
+
throw new common_1.ProsopoEnvError(err, 'ERRORS.CAPTCHA.PARSE_ERROR');
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
exports.parseAndSortCaptchaSolutions = parseAndSortCaptchaSolutions;
|
|
@@ -61,7 +61,7 @@ function sortAndComputeHashes(received, stored) {
|
|
|
61
61
|
stored.sort(captchaSort);
|
|
62
62
|
return stored.map(({ salt, items = [], target = '', captchaId, solved }, index) => {
|
|
63
63
|
if (captchaId != received[index].captchaId) {
|
|
64
|
-
throw new
|
|
64
|
+
throw new common_1.ProsopoEnvError('CAPTCHA.ID_MISMATCH');
|
|
65
65
|
}
|
|
66
66
|
return {
|
|
67
67
|
hash: computeCaptchaHash({
|
|
@@ -104,10 +104,10 @@ function computeCaptchaHash(captcha, includeSolution = false, includeSalt = fals
|
|
|
104
104
|
return item.hash;
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
|
-
throw new
|
|
107
|
+
throw new common_1.ProsopoEnvError('CAPTCHA.MISSING_ITEM_HASH', computeCaptchaHash.name, undefined, index);
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
|
-
return (0,
|
|
110
|
+
return (0, common_1.hexHashArray)([
|
|
111
111
|
captcha.target,
|
|
112
112
|
...(includeSolution && captcha.solution ? captcha.solution.sort() : []),
|
|
113
113
|
includeSalt ? captcha.salt : '',
|
|
@@ -115,20 +115,24 @@ function computeCaptchaHash(captcha, includeSolution = false, includeSalt = fals
|
|
|
115
115
|
]);
|
|
116
116
|
}
|
|
117
117
|
catch (err) {
|
|
118
|
-
throw new
|
|
118
|
+
throw new common_1.ProsopoEnvError(err);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
exports.computeCaptchaHash = computeCaptchaHash;
|
|
122
|
+
/** Compute the hash of a captcha item, downloading the image if necessary
|
|
123
|
+
* @param {Item} item
|
|
124
|
+
* @return {Promise<HashedItem>} the hex string hash of the item
|
|
125
|
+
*/
|
|
122
126
|
function computeItemHash(item) {
|
|
123
127
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
124
128
|
if (item.type === 'text') {
|
|
125
|
-
return Object.assign(Object.assign({}, item), { hash: (0,
|
|
129
|
+
return Object.assign(Object.assign({}, item), { hash: (0, common_1.hexHash)(item.data) });
|
|
126
130
|
}
|
|
127
131
|
else if (item.type === 'image') {
|
|
128
|
-
return Object.assign(Object.assign({}, item), { hash: (0,
|
|
132
|
+
return Object.assign(Object.assign({}, item), { hash: (0, common_1.hexHash)(yield (0, util_1.downloadImage)(item.data)) });
|
|
129
133
|
}
|
|
130
134
|
else {
|
|
131
|
-
throw new
|
|
135
|
+
throw new common_1.ProsopoEnvError('CAPTCHA.INVALID_ITEM_FORMAT');
|
|
132
136
|
}
|
|
133
137
|
});
|
|
134
138
|
}
|
|
@@ -143,10 +147,10 @@ function matchItemsToSolutions(solutions, items) {
|
|
|
143
147
|
return ((solutions === null || solutions === void 0 ? void 0 : solutions.map((solution) => {
|
|
144
148
|
const hash = items && items[solution] && items[solution].hash ? items[solution].hash : solution;
|
|
145
149
|
if (!hash) {
|
|
146
|
-
throw new
|
|
150
|
+
throw new common_1.ProsopoEnvError('CAPTCHA.MISSING_ITEM_HASH');
|
|
147
151
|
}
|
|
148
152
|
if (!(0, util_2.isHex)(hash)) {
|
|
149
|
-
throw new
|
|
153
|
+
throw new common_1.ProsopoEnvError('CAPTCHA.INVALID_ITEM_HASH');
|
|
150
154
|
}
|
|
151
155
|
return hash;
|
|
152
156
|
})) || []);
|
|
@@ -158,7 +162,8 @@ exports.matchItemsToSolutions = matchItemsToSolutions;
|
|
|
158
162
|
* @return {string} the hex string hash
|
|
159
163
|
*/
|
|
160
164
|
function computeCaptchaSolutionHash(captcha) {
|
|
161
|
-
|
|
165
|
+
// TODO: should the captchaContentId be validated?
|
|
166
|
+
return (0, common_1.hexHashArray)([captcha.captchaId, captcha.captchaContentId, [...captcha.solution].sort(), captcha.salt]);
|
|
162
167
|
}
|
|
163
168
|
exports.computeCaptchaSolutionHash = computeCaptchaSolutionHash;
|
|
164
169
|
/**
|
|
@@ -169,7 +174,7 @@ exports.computeCaptchaSolutionHash = computeCaptchaSolutionHash;
|
|
|
169
174
|
* @return {string}
|
|
170
175
|
*/
|
|
171
176
|
function computePendingRequestHash(captchaIds, userAccount, salt) {
|
|
172
|
-
return (0,
|
|
177
|
+
return (0, common_1.hexHashArray)([...captchaIds.sort(), userAccount, salt]);
|
|
173
178
|
}
|
|
174
179
|
exports.computePendingRequestHash = computePendingRequestHash;
|
|
175
180
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../../src/js/captcha/captcha.ts"],"names":[],"mappings":";;;;AAAA,4CAA4C;AAC5C,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,0CAYuB;AACvB,
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../../src/js/captcha/captcha.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Dataset, DatasetRaw } from '../types/dataset';
|
|
2
1
|
import { CaptchaMerkleTree } from './merkle';
|
|
2
|
+
import { Dataset, DatasetRaw } from '@prosopo/types';
|
|
3
3
|
export declare function buildDataset(datasetRaw: DatasetRaw): Promise<Dataset>;
|
|
4
4
|
export declare function buildCaptchaTree(dataset: Dataset, includeSolution: boolean, includeSalt: boolean, sortItemHashes: boolean): Promise<CaptchaMerkleTree>;
|
|
5
5
|
export declare function addItemHashesAndSolutionHashesToDataset(datasetRaw: DatasetRaw): Promise<Dataset>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/dataset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/dataset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIpD,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB3E;AAED,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE,OAAO,EACpB,cAAc,EAAE,OAAO,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAY5B;AAED,wBAAsB,uCAAuC,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBtG"}
|
|
@@ -2,23 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addItemHashesAndSolutionHashesToDataset = exports.buildCaptchaTree = exports.buildDataset = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const captcha_1 = require("./captcha");
|
|
6
5
|
const merkle_1 = require("./merkle");
|
|
7
|
-
const
|
|
6
|
+
const common_1 = require("@prosopo/common");
|
|
7
|
+
const captcha_1 = require("./captcha");
|
|
8
8
|
function buildDataset(datasetRaw) {
|
|
9
9
|
var _a, _b;
|
|
10
10
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
11
|
const dataset = yield addItemHashesAndSolutionHashesToDataset(datasetRaw);
|
|
12
|
-
// console.log(dataset.captchas[0])
|
|
13
|
-
// dataset.captchas.map((captcha: CaptchaWithoutId) => {
|
|
14
|
-
// if (captcha.target === 'car') {
|
|
15
|
-
// console.log(captcha)
|
|
16
|
-
// }
|
|
17
|
-
// })
|
|
18
|
-
// process.exit(0)
|
|
19
12
|
const contentTree = yield buildCaptchaTree(dataset, false, false, true);
|
|
20
13
|
const solutionTree = yield buildCaptchaTree(dataset, true, true, false);
|
|
21
|
-
dataset.captchas = dataset.captchas.map((captcha, index) =>
|
|
14
|
+
dataset.captchas = dataset.captchas.map((captcha, index) => {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
return (Object.assign(Object.assign({}, captcha), { captchaId: solutionTree.leaves[index].hash, captchaContentId: contentTree.leaves[index].hash, datasetId: (_a = solutionTree.root) === null || _a === void 0 ? void 0 : _a.hash, datasetContentId: (_b = contentTree.root) === null || _b === void 0 ? void 0 : _b.hash }));
|
|
17
|
+
});
|
|
22
18
|
dataset.solutionTree = solutionTree.layers;
|
|
23
19
|
dataset.contentTree = contentTree.layers;
|
|
24
20
|
dataset.datasetId = (_a = solutionTree.root) === null || _a === void 0 ? void 0 : _a.hash;
|
|
@@ -37,7 +33,7 @@ function buildCaptchaTree(dataset, includeSolution, includeSalt, sortItemHashes)
|
|
|
37
33
|
return tree;
|
|
38
34
|
}
|
|
39
35
|
catch (err) {
|
|
40
|
-
throw new
|
|
36
|
+
throw new common_1.ProsopoEnvError('DATASET.HASH_ERROR');
|
|
41
37
|
}
|
|
42
38
|
});
|
|
43
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../../src/js/captcha/dataset.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../../src/js/captcha/dataset.ts"],"names":[],"mappings":";;;;AACA,qCAA4C;AAE5C,4CAAiD;AACjD,uCAAsF;AAEtF,SAAsB,YAAY,CAAC,UAAsB;;;QACrD,MAAM,OAAO,GAAG,MAAM,uCAAuC,CAAC,UAAU,CAAC,CAAA;QACzE,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACvE,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACvE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,OAAyB,EAAE,KAAa,EAAE,EAAE;;YACzC,OAAA,CAAC,gCACM,OAAO,KACV,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAC1C,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAChD,SAAS,EAAE,MAAA,YAAY,CAAC,IAAI,0CAAE,IAAI,EAClC,gBAAgB,EAAE,MAAA,WAAW,CAAC,IAAI,0CAAE,IAAI,GAC/B,CAAA,CAAA;SAAA,CACpB,CAAA;QACD,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAA;QAC1C,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAA;QACxC,OAAO,CAAC,SAAS,GAAG,MAAA,YAAY,CAAC,IAAI,0CAAE,IAAI,CAAA;QAC3C,OAAO,CAAC,gBAAgB,GAAG,MAAA,WAAW,CAAC,IAAI,0CAAE,IAAI,CAAA;QACjD,OAAO,OAAO,CAAA;;CACjB;AAnBD,oCAmBC;AAED,SAAsB,gBAAgB,CAClC,OAAgB,EAChB,eAAwB,EACxB,WAAoB,EACpB,cAAuB;;QAEvB,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,0BAAiB,EAAE,CAAA;YACpC,MAAM,qBAAqB,qBAAQ,OAAO,CAAE,CAAA;YAC5C,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACjE,IAAA,4BAAkB,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,CAAC,CAC5E,CAAA;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;SACd;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,wBAAe,CAAC,oBAAoB,CAAC,CAAA;SAClD;IACL,CAAC;CAAA;AAjBD,4CAiBC;AAED,SAAsB,uCAAuC,CAAC,UAAsB;;QAChF,OAAO,gCACA,UAAU,KACb,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CACvB,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAO,IAAI,EAAE,EAAE,wDAAC,OAAA,MAAM,IAAA,yBAAe,EAAC,IAAI,CAAC,CAAA,GAAA,CAAC,CAAC,CAAA;gBAE/F,qDACO,OAAO,KACV,KAAK,KAEF,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAA,+BAAqB,EAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,EACtG;YACL,CAAC,CAAA,CAAC,CACL,GACO,CAAA;IAChB,CAAC;CAAA;AAhBD,0FAgBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MerkleLayer, MerkleLeaf, MerkleNodeInterface, MerkleProof } from '
|
|
1
|
+
import { MerkleLayer, MerkleLeaf, MerkleNodeInterface, MerkleProof } from '@prosopo/types';
|
|
2
2
|
declare class MerkleNode implements MerkleNodeInterface {
|
|
3
3
|
hash: string;
|
|
4
4
|
parent: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/merkle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/merkle.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAA;AAG5G,cAAM,UAAW,YAAW,mBAAmB;IAC3C,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBAET,IAAI,KAAA;CAInB;AAED,qBAAa,iBAAiB;IAC1B,MAAM,EAAE,UAAU,EAAE,CAAA;IAEpB,MAAM,EAAE,WAAW,EAAE,CAAA;IAErB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;;IAO5B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;IAetB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE;IAyBpC,YAAY,CAAC,SAAS,KAAA,EAAE,UAAU,KAAA,GAAG,UAAU;IAO/C,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;CA0B3C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAkBzE"}
|
|
@@ -1,22 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.verifyProof = exports.CaptchaMerkleTree = void 0;
|
|
4
|
-
|
|
5
|
-
// This file is part of provider <https://github.com/prosopo/provider>.
|
|
6
|
-
//
|
|
7
|
-
// provider is free software: you can redistribute it and/or modify
|
|
8
|
-
// it under the terms of the GNU General Public License as published by
|
|
9
|
-
// the Free Software Foundation, either version 3 of the License, or
|
|
10
|
-
// (at your option) any later version.
|
|
11
|
-
//
|
|
12
|
-
// provider is distributed in the hope that it will be useful,
|
|
13
|
-
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
-
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
-
// GNU General Public License for more details.
|
|
16
|
-
//
|
|
17
|
-
// You should have received a copy of the GNU General Public License
|
|
18
|
-
// along with provider. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
-
const util_1 = require("./util");
|
|
4
|
+
const common_1 = require("@prosopo/common");
|
|
20
5
|
class MerkleNode {
|
|
21
6
|
constructor(hash) {
|
|
22
7
|
this.hash = hash;
|
|
@@ -63,7 +48,7 @@ class CaptchaMerkleTree {
|
|
|
63
48
|
return this.buildMerkleTree(parents);
|
|
64
49
|
}
|
|
65
50
|
createParent(leftChild, rightChild) {
|
|
66
|
-
const parent = new MerkleNode((0,
|
|
51
|
+
const parent = new MerkleNode((0, common_1.hexHashArray)([leftChild.hash, rightChild.hash]));
|
|
67
52
|
leftChild.parent = parent;
|
|
68
53
|
rightChild.parent = parent;
|
|
69
54
|
return parent;
|
|
@@ -91,7 +76,7 @@ class CaptchaMerkleTree {
|
|
|
91
76
|
}
|
|
92
77
|
proofTree.push([pair[0], pair[1]]);
|
|
93
78
|
layerNum += 1;
|
|
94
|
-
leafHash = (0,
|
|
79
|
+
leafHash = (0, common_1.hexHashArray)(pair);
|
|
95
80
|
}
|
|
96
81
|
return [...proofTree, [this.layers[this.layers.length - 1][0]]];
|
|
97
82
|
}
|
|
@@ -103,7 +88,7 @@ function verifyProof(leaf, proof) {
|
|
|
103
88
|
return false;
|
|
104
89
|
}
|
|
105
90
|
for (const [layerIndex, layer] of proof.entries()) {
|
|
106
|
-
leaf = (0,
|
|
91
|
+
leaf = (0, common_1.hexHashArray)(layer);
|
|
107
92
|
if (proof[layerIndex + 1].indexOf(leaf) === -1) {
|
|
108
93
|
return false;
|
|
109
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../../src/js/captcha/merkle.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../../src/js/captcha/merkle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
export declare const HEX_HASH_BIT_LENGTH = 256;
|
|
2
|
-
export declare const ARRAY_JOINER = "";
|
|
3
|
-
export declare function hexHash(data: string | Uint8Array, bitLength?: 256 | 512 | 64 | 128 | 384 | undefined): string;
|
|
4
|
-
export declare function hexHashArray<T>(arr: T[]): string;
|
|
5
|
-
export declare function arrayJoin<T>(arr: T[], joiner?: string): string;
|
|
6
1
|
export declare function downloadImage(url: string): Promise<Uint8Array>;
|
|
7
2
|
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/js/captcha/util.ts"],"names":[],"mappings":"AAkBA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAQpE"}
|
package/dist/js/captcha/util.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.downloadImage =
|
|
3
|
+
exports.downloadImage = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
// Copyright (C) 2021-2022 Prosopo (UK) Ltd.
|
|
6
6
|
// This file is part of provider <https://github.com/prosopo/provider>.
|
|
@@ -17,31 +17,15 @@ const tslib_1 = require("tslib");
|
|
|
17
17
|
//
|
|
18
18
|
// You should have received a copy of the GNU General Public License
|
|
19
19
|
// along with provider. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
const
|
|
20
|
+
const common_1 = require("@prosopo/common");
|
|
21
21
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
22
|
-
const index_1 = require("../types/index");
|
|
23
|
-
exports.HEX_HASH_BIT_LENGTH = 256;
|
|
24
|
-
exports.ARRAY_JOINER = '';
|
|
25
|
-
function hexHash(data, bitLength) {
|
|
26
|
-
// default bit length is 256
|
|
27
|
-
return (0, util_crypto_1.blake2AsHex)(data, bitLength);
|
|
28
|
-
}
|
|
29
|
-
exports.hexHash = hexHash;
|
|
30
|
-
function hexHashArray(arr) {
|
|
31
|
-
return hexHash(arrayJoin(arr));
|
|
32
|
-
}
|
|
33
|
-
exports.hexHashArray = hexHashArray;
|
|
34
|
-
function arrayJoin(arr, joiner) {
|
|
35
|
-
return arr.join(joiner ? joiner : exports.ARRAY_JOINER);
|
|
36
|
-
}
|
|
37
|
-
exports.arrayJoin = arrayJoin;
|
|
38
22
|
function downloadImage(url) {
|
|
39
23
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
40
24
|
try {
|
|
41
25
|
return new Uint8Array((yield axios_1.default.get(url, { url, method: 'GET', responseType: 'arraybuffer' })).data);
|
|
42
26
|
}
|
|
43
27
|
catch (error) {
|
|
44
|
-
throw new
|
|
28
|
+
throw new common_1.ProsopoEnvError(error, downloadImage.name);
|
|
45
29
|
}
|
|
46
30
|
});
|
|
47
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/js/captcha/util.ts"],"names":[],"mappings":";;;;AAAA,4CAA4C;AAC5C,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/js/captcha/util.ts"],"names":[],"mappings":";;;;AAAA,4CAA4C;AAC5C,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,4CAAiD;AACjD,0DAA0B;AAE1B,SAAsB,aAAa,CAAC,GAAW;;QAC3C,IAAI;YACA,OAAO,IAAI,UAAU,CACjB,CAAC,MAAM,eAAM,CAAC,GAAG,CAAc,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CACjG,CAAA;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,wBAAe,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;SACvD;IACL,CAAC;CAAA;AARD,sCAQC"}
|
package/dist/js/index.d.ts
CHANGED
package/dist/js/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/js/index.ts"],"names":[],"mappings":"AAeA,cAAc,iBAAiB,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/js/index.ts"],"names":[],"mappings":"AAeA,cAAc,iBAAiB,CAAA"}
|
package/dist/js/index.js
CHANGED
|
@@ -17,5 +17,4 @@ const tslib_1 = require("tslib");
|
|
|
17
17
|
// You should have received a copy of the GNU General Public License
|
|
18
18
|
// along with provider. If not, see <http://www.gnu.org/licenses/>.
|
|
19
19
|
tslib_1.__exportStar(require("./captcha/index"), exports);
|
|
20
|
-
tslib_1.__exportStar(require("./types/index"), exports);
|
|
21
20
|
//# sourceMappingURL=index.js.map
|
package/dist/js/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/js/index.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,0DAA+B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/js/index.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,0DAA+B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/datasets",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"author": "PROSOPO LIMITED <info@prosopo.io>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"private": false,
|
|
@@ -29,39 +29,30 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@polkadot/
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"
|
|
37
|
-
"@polkadot/types-create": "^8.13.1",
|
|
38
|
-
"@polkadot/util": "^10.0.2",
|
|
39
|
-
"@polkadot/util-crypto": "^10.0.2",
|
|
40
|
-
"@prosopo/i18n": "^0.1.10",
|
|
41
|
-
"bn.js": "^5.2.1",
|
|
42
|
-
"consola": "^2.15.3",
|
|
43
|
-
"zod": "^3.17.9"
|
|
32
|
+
"@polkadot/util": "12.3.2",
|
|
33
|
+
"@prosopo/common": "^0.1.14",
|
|
34
|
+
"@prosopo/contract": "^0.1.14",
|
|
35
|
+
"@prosopo/types": "^0.1.14",
|
|
36
|
+
"axios": "^0.27.2"
|
|
44
37
|
},
|
|
45
38
|
"devDependencies": {
|
|
46
39
|
"@types/mocha": "^10.0.0",
|
|
47
|
-
"
|
|
48
|
-
"@typescript-eslint/parser": "^5.30.7",
|
|
49
|
-
"eslint": "^8.20.0",
|
|
50
|
-
"typescript": "^4.7.4"
|
|
40
|
+
"typescript": "^4.9.4"
|
|
51
41
|
},
|
|
52
42
|
"repository": {
|
|
53
43
|
"type": "git",
|
|
54
|
-
"url": "git+https://github.com/prosopo/
|
|
44
|
+
"url": "git+https://github.com/prosopo/captcha.git"
|
|
55
45
|
},
|
|
56
46
|
"bugs": {
|
|
57
|
-
"url": "https://github.com/prosopo/
|
|
47
|
+
"url": "https://github.com/prosopo/captcha/issues"
|
|
58
48
|
},
|
|
59
|
-
"homepage": "https://github.com/prosopo/
|
|
49
|
+
"homepage": "https://github.com/prosopo/captcha#readme",
|
|
60
50
|
"publishConfig": {
|
|
61
51
|
"registry": "https://registry.npmjs.org"
|
|
62
52
|
},
|
|
63
53
|
"description": "Datasets for use with providers",
|
|
64
54
|
"directories": {
|
|
65
55
|
"test": "tests"
|
|
66
|
-
}
|
|
56
|
+
},
|
|
57
|
+
"sideEffects": false
|
|
67
58
|
}
|
package/.eslintignore
DELETED
package/.eslintrc.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
env: {
|
|
3
|
-
browser: true,
|
|
4
|
-
es2021: true,
|
|
5
|
-
},
|
|
6
|
-
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier', 'plugin:prettier/recommended'],
|
|
7
|
-
parser: '@typescript-eslint/parser',
|
|
8
|
-
parserOptions: {
|
|
9
|
-
ecmaVersion: 'latest',
|
|
10
|
-
sourceType: 'module',
|
|
11
|
-
},
|
|
12
|
-
plugins: ['unused-imports', '@typescript-eslint', 'prettier'],
|
|
13
|
-
rules: {
|
|
14
|
-
'no-unused-vars': 'off',
|
|
15
|
-
'unused-imports/no-unused-imports': 'error',
|
|
16
|
-
'unused-imports/no-unused-vars': [
|
|
17
|
-
'warn',
|
|
18
|
-
{
|
|
19
|
-
vars: 'all',
|
|
20
|
-
varsIgnorePattern: '^_',
|
|
21
|
-
args: 'after-used',
|
|
22
|
-
argsIgnorePattern: '^_',
|
|
23
|
-
},
|
|
24
|
-
],
|
|
25
|
-
//"indent": ["error", 4],
|
|
26
|
-
//"indent": "off",
|
|
27
|
-
'sort-imports': [
|
|
28
|
-
'error',
|
|
29
|
-
{
|
|
30
|
-
ignoreDeclarationSort: true,
|
|
31
|
-
allowSeparatedGroups: false,
|
|
32
|
-
},
|
|
33
|
-
],
|
|
34
|
-
'prettier/prettier': ['error'],
|
|
35
|
-
},
|
|
36
|
-
}
|