@prosopo/datasets 0.2.13 → 0.2.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/captcha/captcha.d.ts.map +1 -1
- package/dist/captcha/captcha.js +12 -7
- package/dist/captcha/captcha.js.map +1 -1
- package/dist/captcha/dataset.d.ts +1 -1
- package/dist/captcha/dataset.d.ts.map +1 -1
- package/dist/captcha/dataset.js +4 -5
- package/dist/captcha/dataset.js.map +1 -1
- package/dist/cjs/captcha/captcha.cjs +8 -5
- package/dist/cjs/captcha/dataset.cjs +4 -5
- package/dist/cjs/index.cjs +3 -0
- package/dist/cjs/tests/mocks/data/captchas.cjs +1043 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tests/mocks/data/captchas.d.ts +28 -0
- package/dist/tests/mocks/data/captchas.d.ts.map +1 -0
- package/dist/tests/mocks/data/captchas.js +1038 -0
- package/dist/tests/mocks/data/captchas.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/captcha/captcha.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,cAAc,EACd,OAAO,EACP,eAAe,EAEf,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,cAAc,EACd,IAAI,EACJ,WAAW,EACd,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/captcha/captcha.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,cAAc,EACd,OAAO,EACP,eAAe,EAEf,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,cAAc,EACd,IAAI,EACJ,WAAW,EACd,MAAM,gBAAgB,CAAA;AAMvB,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAE9C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAsBjE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAU9F;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,CAyBvC;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,CAqBR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,uBAEjF;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,UAAU,EAAE,GAAG,SAAS,GAChC,cAAc,EAAE,CAsBlB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,eAAe,UAElE;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"}
|
package/dist/captcha/captcha.js
CHANGED
|
@@ -15,6 +15,7 @@ import { CaptchaSolutionArraySchema, DatasetWithNumericSolutionSchema, } from '@
|
|
|
15
15
|
import { ProsopoEnvError, hexHash, hexHashArray } from '@prosopo/common';
|
|
16
16
|
import { at } from '@prosopo/util';
|
|
17
17
|
import { downloadImage } from './util.js';
|
|
18
|
+
import { isHex } from '@polkadot/util';
|
|
18
19
|
export const NO_SOLUTION_VALUE = 'NO_SOLUTION';
|
|
19
20
|
/**
|
|
20
21
|
* Parse a dataset
|
|
@@ -165,7 +166,7 @@ export function matchItemsToSolutions(solutions, items) {
|
|
|
165
166
|
return [];
|
|
166
167
|
}
|
|
167
168
|
return solutions.map((solution) => {
|
|
168
|
-
if (typeof solution === 'string') {
|
|
169
|
+
if (typeof solution === 'string' && isHex(solution)) {
|
|
169
170
|
// solution must already be a hash
|
|
170
171
|
// check that solution is in items array
|
|
171
172
|
if (!items?.some((item) => item.hash === solution)) {
|
|
@@ -173,12 +174,16 @@ export function matchItemsToSolutions(solutions, items) {
|
|
|
173
174
|
}
|
|
174
175
|
return solution;
|
|
175
176
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
177
|
+
else if (typeof solution === 'number') {
|
|
178
|
+
// else solution must be a number
|
|
179
|
+
// so lookup the item at that index
|
|
180
|
+
const item = at(items, solution);
|
|
181
|
+
// get the hash of the item
|
|
182
|
+
return item.hash;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
throw new ProsopoEnvError('CAPTCHA.INVALID_SOLUTION_TYPE');
|
|
186
|
+
}
|
|
182
187
|
});
|
|
183
188
|
}
|
|
184
189
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/captcha/captcha.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,OAAO,EAIH,0BAA0B,EAG1B,gCAAgC,GAKnC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/captcha/captcha.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,5 @@ export declare function hashDatasetItems(datasetRaw: Dataset | DatasetRaw): Prom
|
|
|
8
8
|
export declare function validateDatasetContent(datasetOriginal: Dataset): Promise<boolean>;
|
|
9
9
|
export declare function buildDataset(datasetRaw: DatasetRaw): Promise<Dataset>;
|
|
10
10
|
export declare function buildCaptchaTree(dataset: Dataset, includeSolution: boolean, includeSalt: boolean, sortItemHashes: boolean): Promise<CaptchaMerkleTree>;
|
|
11
|
-
export declare function addSolutionHashesToDataset(datasetRaw: DatasetRaw):
|
|
11
|
+
export declare function addSolutionHashesToDataset(datasetRaw: DatasetRaw): Dataset;
|
|
12
12
|
//# sourceMappingURL=dataset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/captcha/dataset.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAoB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAO/C,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAQpG;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBvF;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB3E;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,
|
|
1
|
+
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/captcha/dataset.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAoB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAO/C,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAQpG;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBvF;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB3E;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,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAc1E"}
|
package/dist/captcha/dataset.js
CHANGED
|
@@ -37,9 +37,9 @@ export async function validateDatasetContent(datasetOriginal) {
|
|
|
37
37
|
return hashes.every((hash) => hash);
|
|
38
38
|
}
|
|
39
39
|
export async function buildDataset(datasetRaw) {
|
|
40
|
-
logger.
|
|
40
|
+
logger.debug(`Adding solution hashes to dataset`);
|
|
41
41
|
const dataset = await addSolutionHashesToDataset(datasetRaw);
|
|
42
|
-
logger.
|
|
42
|
+
logger.debug(`Building dataset merkle trees`);
|
|
43
43
|
const contentTree = await buildCaptchaTree(dataset, false, false, true);
|
|
44
44
|
const solutionTree = await buildCaptchaTree(dataset, true, true, false);
|
|
45
45
|
dataset.captchas = dataset.captchas.map((captcha, index) => ({
|
|
@@ -67,8 +67,8 @@ export async function buildCaptchaTree(dataset, includeSolution, includeSalt, so
|
|
|
67
67
|
throw new ProsopoEnvError('DATASET.HASH_ERROR');
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
export
|
|
71
|
-
const
|
|
70
|
+
export function addSolutionHashesToDataset(datasetRaw) {
|
|
71
|
+
const captchas = datasetRaw.captchas.map((captcha) => {
|
|
72
72
|
return {
|
|
73
73
|
...captcha,
|
|
74
74
|
items: captcha.items,
|
|
@@ -76,7 +76,6 @@ export async function addSolutionHashesToDataset(datasetRaw) {
|
|
|
76
76
|
...(captcha.solution !== undefined && { solution: matchItemsToSolutions(captcha.solution, captcha.items) }),
|
|
77
77
|
};
|
|
78
78
|
});
|
|
79
|
-
const captchas = await Promise.all(captchaPromises);
|
|
80
79
|
return {
|
|
81
80
|
...datasetRaw,
|
|
82
81
|
captchas,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/captcha/dataset.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAgC;IACnE,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzF,OAAO;YACH,GAAG,OAAO;YACV,KAAK;SACG,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,eAAwB;IACjE,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG;QACZ,GAAG,eAAe;QAClB,QAAQ;KACX,CAAA;IACD,mHAAmH;IACnH,8BAA8B;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5D,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CACjF,CAAA;QACD,IAAI,UAAU,EAAE;YACZ,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;SAC9F;aAAM;YACH,OAAO,KAAK,CAAA;SACf;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAsB;IACrD,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/captcha/dataset.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const types = require("@prosopo/types");
|
|
|
4
4
|
const common = require("@prosopo/common");
|
|
5
5
|
const util = require("@prosopo/util");
|
|
6
6
|
const util$1 = require("./util.cjs");
|
|
7
|
+
const util$2 = require("@polkadot/util");
|
|
7
8
|
const NO_SOLUTION_VALUE = "NO_SOLUTION";
|
|
8
9
|
function parseCaptchaDataset(datasetJSON) {
|
|
9
10
|
try {
|
|
@@ -113,15 +114,17 @@ function matchItemsToSolutions(solutions, items) {
|
|
|
113
114
|
return [];
|
|
114
115
|
}
|
|
115
116
|
return solutions.map((solution) => {
|
|
116
|
-
if (typeof solution === "string") {
|
|
117
|
-
if (!(items == null ? void 0 : items.some((
|
|
117
|
+
if (typeof solution === "string" && util$2.isHex(solution)) {
|
|
118
|
+
if (!(items == null ? void 0 : items.some((item) => item.hash === solution))) {
|
|
118
119
|
throw new common.ProsopoEnvError("CAPTCHA.INVALID_ITEM_HASH");
|
|
119
120
|
}
|
|
120
121
|
return solution;
|
|
122
|
+
} else if (typeof solution === "number") {
|
|
123
|
+
const item = util.at(items, solution);
|
|
124
|
+
return item.hash;
|
|
125
|
+
} else {
|
|
126
|
+
throw new common.ProsopoEnvError("CAPTCHA.INVALID_SOLUTION_TYPE");
|
|
121
127
|
}
|
|
122
|
-
const item = util.at(items, solution);
|
|
123
|
-
const hash = item.hash;
|
|
124
|
-
return hash;
|
|
125
128
|
});
|
|
126
129
|
}
|
|
127
130
|
function computeCaptchaSolutionHash(captcha) {
|
|
@@ -35,9 +35,9 @@ async function validateDatasetContent(datasetOriginal) {
|
|
|
35
35
|
}
|
|
36
36
|
async function buildDataset(datasetRaw) {
|
|
37
37
|
var _a, _b;
|
|
38
|
-
logger.
|
|
38
|
+
logger.debug(`Adding solution hashes to dataset`);
|
|
39
39
|
const dataset = await addSolutionHashesToDataset(datasetRaw);
|
|
40
|
-
logger.
|
|
40
|
+
logger.debug(`Building dataset merkle trees`);
|
|
41
41
|
const contentTree = await buildCaptchaTree(dataset, false, false, true);
|
|
42
42
|
const solutionTree = await buildCaptchaTree(dataset, true, true, false);
|
|
43
43
|
dataset.captchas = dataset.captchas.map(
|
|
@@ -71,8 +71,8 @@ async function buildCaptchaTree(dataset, includeSolution, includeSalt, sortItemH
|
|
|
71
71
|
throw new common.ProsopoEnvError("DATASET.HASH_ERROR");
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
|
|
75
|
-
const
|
|
74
|
+
function addSolutionHashesToDataset(datasetRaw) {
|
|
75
|
+
const captchas = datasetRaw.captchas.map((captcha$1) => {
|
|
76
76
|
return {
|
|
77
77
|
...captcha$1,
|
|
78
78
|
items: captcha$1.items,
|
|
@@ -80,7 +80,6 @@ async function addSolutionHashesToDataset(datasetRaw) {
|
|
|
80
80
|
...captcha$1.solution !== void 0 && { solution: captcha.matchItemsToSolutions(captcha$1.solution, captcha$1.items) }
|
|
81
81
|
};
|
|
82
82
|
});
|
|
83
|
-
const captchas = await Promise.all(captchaPromises);
|
|
84
83
|
return {
|
|
85
84
|
...datasetRaw,
|
|
86
85
|
captchas
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
require("./captcha/index.cjs");
|
|
4
|
+
const captchas = require("./tests/mocks/data/captchas.cjs");
|
|
4
5
|
const captcha = require("./captcha/captcha.cjs");
|
|
5
6
|
const merkle = require("./captcha/merkle.cjs");
|
|
6
7
|
const util = require("./captcha/util.cjs");
|
|
7
8
|
const dataset = require("./captcha/dataset.cjs");
|
|
9
|
+
exports.datasetWithIndexSolutions = captchas.datasetWithIndexSolutions;
|
|
10
|
+
exports.datasetWithSolutionHashes = captchas.datasetWithSolutionHashes;
|
|
8
11
|
exports.NO_SOLUTION_VALUE = captcha.NO_SOLUTION_VALUE;
|
|
9
12
|
exports.captchaSort = captcha.captchaSort;
|
|
10
13
|
exports.compareCaptchaSolutions = captcha.compareCaptchaSolutions;
|