@prosopo/datasets 0.2.25 → 0.2.29
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 +13 -8
- package/dist/captcha/captcha.js.map +1 -1
- package/dist/captcha/merkle.d.ts.map +1 -1
- package/dist/captcha/merkle.js +5 -3
- package/dist/captcha/merkle.js.map +1 -1
- package/dist/captcha/util.d.ts.map +1 -1
- package/dist/captcha/util.js +6 -4
- package/dist/captcha/util.js.map +1 -1
- package/dist/cjs/captcha/captcha.cjs +12 -7
- package/dist/cjs/captcha/merkle.cjs +5 -3
- package/dist/cjs/captcha/util.cjs +5 -3
- 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;AAMvB,eAAO,MAAM,iBAAiB,gBAAgB,CAAA;AAO9C,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAsBjE;AAOD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,
|
|
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;AAO9C,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAsBjE;AAOD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAS9F;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;AAQD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAO/F;AAUD,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,eAAe,qBAAQ,EACvB,WAAW,qBAAQ,EACnB,cAAc,EAAE,OAAO,GACxB,MAAM,CAyBR;AAMD,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,uBAEjF;AAMD,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAQrE;AAQD,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,EAC3C,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,GAChC,cAAc,EAAE,CAsBlB;AAOD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,eAAe,UAElE;AASD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzG;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS;;;;;EAExF"}
|
package/dist/captcha/captcha.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CaptchaSolutionArraySchema, DatasetWithNumericSolutionSchema, } from '@prosopo/types';
|
|
2
|
-
import { ProsopoEnvError, hexHash, hexHashArray } from '@prosopo/common';
|
|
2
|
+
import { ProsopoDatasetError, ProsopoEnvError, hexHash, hexHashArray } from '@prosopo/common';
|
|
3
3
|
import { at } from '@prosopo/util';
|
|
4
4
|
import { downloadImage } from './util.js';
|
|
5
5
|
import { isHex } from '@polkadot/util';
|
|
@@ -28,7 +28,7 @@ export function parseCaptchaDataset(datasetJSON) {
|
|
|
28
28
|
return result2;
|
|
29
29
|
}
|
|
30
30
|
catch (err) {
|
|
31
|
-
throw new
|
|
31
|
+
throw new ProsopoDatasetError('DATASET.DATASET_PARSE_ERROR', { context: { error: err } });
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
export function parseAndSortCaptchaSolutions(captchaJSON) {
|
|
@@ -39,7 +39,7 @@ export function parseAndSortCaptchaSolutions(captchaJSON) {
|
|
|
39
39
|
}));
|
|
40
40
|
}
|
|
41
41
|
catch (err) {
|
|
42
|
-
throw new
|
|
42
|
+
throw new ProsopoDatasetError('DATASET.SOLUTION_PARSE_ERROR', { context: { error: err } });
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
export function captchaSort(a, b) {
|
|
@@ -78,7 +78,12 @@ export function computeCaptchaHash(captcha, includeSolution = false, includeSalt
|
|
|
78
78
|
return item.hash;
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
|
-
throw new
|
|
81
|
+
throw new ProsopoDatasetError('CAPTCHA.MISSING_ITEM_HASH', {
|
|
82
|
+
context: {
|
|
83
|
+
computeCaptchaHashName: computeCaptchaHash.name,
|
|
84
|
+
index,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
82
87
|
}
|
|
83
88
|
});
|
|
84
89
|
return hexHashArray([
|
|
@@ -89,7 +94,7 @@ export function computeCaptchaHash(captcha, includeSolution = false, includeSalt
|
|
|
89
94
|
]);
|
|
90
95
|
}
|
|
91
96
|
catch (err) {
|
|
92
|
-
throw new
|
|
97
|
+
throw new ProsopoDatasetError('DATASET.HASH_ERROR', { context: { error: err } });
|
|
93
98
|
}
|
|
94
99
|
}
|
|
95
100
|
export function getSolutionValueToHash(solution) {
|
|
@@ -103,7 +108,7 @@ export async function computeItemHash(item) {
|
|
|
103
108
|
return { ...item, hash: hexHash(await downloadImage(item.data)) };
|
|
104
109
|
}
|
|
105
110
|
else {
|
|
106
|
-
throw new
|
|
111
|
+
throw new ProsopoDatasetError('CAPTCHA.INVALID_ITEM_FORMAT');
|
|
107
112
|
}
|
|
108
113
|
}
|
|
109
114
|
export function matchItemsToSolutions(solutions, items) {
|
|
@@ -113,7 +118,7 @@ export function matchItemsToSolutions(solutions, items) {
|
|
|
113
118
|
return solutions.map((solution) => {
|
|
114
119
|
if (typeof solution === 'string' && isHex(solution)) {
|
|
115
120
|
if (!items?.some((item) => item.hash === solution)) {
|
|
116
|
-
throw new
|
|
121
|
+
throw new ProsopoDatasetError('CAPTCHA.INVALID_ITEM_HASH');
|
|
117
122
|
}
|
|
118
123
|
return solution;
|
|
119
124
|
}
|
|
@@ -122,7 +127,7 @@ export function matchItemsToSolutions(solutions, items) {
|
|
|
122
127
|
return item.hash;
|
|
123
128
|
}
|
|
124
129
|
else {
|
|
125
|
-
throw new
|
|
130
|
+
throw new ProsopoDatasetError('CAPTCHA.INVALID_SOLUTION_TYPE');
|
|
126
131
|
}
|
|
127
132
|
});
|
|
128
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/captcha/captcha.ts"],"names":[],"mappings":"AAaA,OAAO,EAIH,0BAA0B,EAG1B,gCAAgC,GAKnC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/captcha/captcha.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/captcha/merkle.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAA;AAI5G,cAAM,UAAW,YAAW,mBAAmB;IAC3C,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBAET,IAAI,EAAE,MAAM;CAI3B;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,GAAG,UAAU,EAAE;IA4BnD,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;IAOvE,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/captcha/merkle.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAA;AAI5G,cAAM,UAAW,YAAW,mBAAmB;IAC3C,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBAET,IAAI,EAAE,MAAM;CAI3B;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,GAAG,UAAU,EAAE;IA4BnD,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU;IAOvE,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;CAiC3C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAmBzE"}
|
package/dist/captcha/merkle.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { ProsopoError, hexHashArray } from '@prosopo/common';
|
|
1
2
|
import { at } from '@prosopo/util';
|
|
2
|
-
import { hexHashArray } from '@prosopo/common';
|
|
3
3
|
class MerkleNode {
|
|
4
4
|
constructor(hash) {
|
|
5
5
|
this.hash = hash;
|
|
@@ -35,7 +35,7 @@ export class CaptchaMerkleTree {
|
|
|
35
35
|
while (leafIndex < numLeaves) {
|
|
36
36
|
const leftChild = leaves[leafIndex];
|
|
37
37
|
if (leftChild === undefined) {
|
|
38
|
-
throw new
|
|
38
|
+
throw new ProsopoError('DEVELOPER.GENERAL', { context: { error: 'leftChild undefined' } });
|
|
39
39
|
}
|
|
40
40
|
const rightChild = leafIndex + 1 < numLeaves ? at(leaves, leafIndex + 1) : leftChild;
|
|
41
41
|
const parentNode = this.createParent(leftChild, rightChild);
|
|
@@ -58,7 +58,9 @@ export class CaptchaMerkleTree {
|
|
|
58
58
|
while (layerNum < this.layers.length - 1) {
|
|
59
59
|
const layer = this.layers[layerNum];
|
|
60
60
|
if (layer === undefined) {
|
|
61
|
-
throw new
|
|
61
|
+
throw new ProsopoError('DATASET.MERKLE_ERROR', {
|
|
62
|
+
context: { error: 'layer undefined', failedFuncName: this.proof.name, layerNum },
|
|
63
|
+
});
|
|
62
64
|
}
|
|
63
65
|
const leafIndex = layer.indexOf(leafHash);
|
|
64
66
|
let partnerIndex = leafIndex % 2 && leafIndex > 0 ? leafIndex - 1 : leafIndex + 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../src/captcha/merkle.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../src/captcha/merkle.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,MAAM,UAAU;IAKZ,YAAY,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACtB,CAAC;CACJ;AAED,MAAM,OAAO,iBAAiB;IAO1B;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,MAAgB;QAElB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;SACnB;QACD,MAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SAC5B;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,eAAe,CAAC,MAAoB;QAGhC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;QAC/B,IAAI,SAAS,KAAK,CAAC,EAAE;YACjB,OAAO,MAAM,CAAA;SAChB;QAED,MAAM,OAAO,GAAiB,EAAE,CAAA;QAEhC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,OAAO,SAAS,GAAG,SAAS,EAAE;YAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;YACnC,IAAI,SAAS,KAAK,SAAS,EAAE;gBACzB,MAAM,IAAI,YAAY,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAA;aAC7F;YACD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACpF,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAC3D,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxB,SAAS,IAAI,CAAC,CAAA;SACjB;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE1B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,YAAY,CAAC,SAAqB,EAAE,UAAsB;QACtD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9E,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QAC9B,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QAC/B,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,QAAoB;QACtB,MAAM,SAAS,GAAuB,EAAE,CAAA;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACnC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,MAAM,IAAI,YAAY,CAAC,sBAAsB,EAAE;oBAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE;iBACnF,CAAC,CAAA;aACL;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAGzC,IAAI,YAAY,GAAG,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAA;YAEjF,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,YAAY,GAAG,SAAS,CAAA;aAC3B;YACD,MAAM,IAAI,GAAiB,CAAC,QAAQ,CAAC,CAAA;YAErC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;YACvC,IAAI,YAAY,GAAG,SAAS,EAAE;gBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACrB;iBAAM;gBACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;aACxB;YACD,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,QAAQ,IAAI,CAAC,CAAA;YACb,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;SAChC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CACJ;AAED,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,KAAkB;IAC5D,IAAI;QACA,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACnC,OAAO,KAAK,CAAA;SACf;QACD,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;YAC/C,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;YAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChD,OAAO,KAAK,CAAA;aACf;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACxC,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;gBACtB,OAAO,IAAI,CAAA;aACd;SACJ;QACD,OAAO,KAAK,CAAA;KACf;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,KAAK,CAAA;KACf;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/captcha/util.ts"],"names":[],"mappings":"AAeA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/captcha/util.ts"],"names":[],"mappings":"AAeA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAapE"}
|
package/dist/captcha/util.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { ProsopoEnvError } from '@prosopo/common';
|
|
1
|
+
import { ProsopoApiError, ProsopoEnvError } from '@prosopo/common';
|
|
2
2
|
export async function downloadImage(url) {
|
|
3
3
|
try {
|
|
4
4
|
const response = await fetch(url);
|
|
5
5
|
if (!response.ok) {
|
|
6
|
-
throw new
|
|
6
|
+
throw new ProsopoApiError('API.BAD_REQUEST', {
|
|
7
|
+
context: { error: `Network response was not ok, status: ${response.status}`, url },
|
|
8
|
+
});
|
|
7
9
|
}
|
|
8
10
|
const buffer = await response.arrayBuffer();
|
|
9
11
|
return new Uint8Array(buffer);
|
|
10
12
|
}
|
|
11
|
-
catch (
|
|
12
|
-
throw new ProsopoEnvError(error);
|
|
13
|
+
catch (err) {
|
|
14
|
+
throw new ProsopoEnvError('DATABASE.IMAGE_GET_FAILED', { context: { error: err } });
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=util.js.map
|
package/dist/captcha/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/captcha/util.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/captcha/util.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAElE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC3C,IAAI;QACA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACd,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE;gBACzC,OAAO,EAAE,EAAE,KAAK,EAAE,wCAAwC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;aACrF,CAAC,CAAA;SACL;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC3C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;KAChC;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;KACtF;AACL,CAAC"}
|
|
@@ -29,7 +29,7 @@ function parseCaptchaDataset(datasetJSON) {
|
|
|
29
29
|
result2.solutionTree = result.solutionTree;
|
|
30
30
|
return result2;
|
|
31
31
|
} catch (err) {
|
|
32
|
-
throw new common.
|
|
32
|
+
throw new common.ProsopoDatasetError("DATASET.DATASET_PARSE_ERROR", { context: { error: err } });
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
function parseAndSortCaptchaSolutions(captchaJSON) {
|
|
@@ -39,7 +39,7 @@ function parseAndSortCaptchaSolutions(captchaJSON) {
|
|
|
39
39
|
solution: captcha.solution.sort()
|
|
40
40
|
}));
|
|
41
41
|
} catch (err) {
|
|
42
|
-
throw new common.
|
|
42
|
+
throw new common.ProsopoDatasetError("DATASET.SOLUTION_PARSE_ERROR", { context: { error: err } });
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
function captchaSort(a, b) {
|
|
@@ -82,7 +82,12 @@ function computeCaptchaHash(captcha, includeSolution = false, includeSalt = fals
|
|
|
82
82
|
if (item.hash) {
|
|
83
83
|
return item.hash;
|
|
84
84
|
} else {
|
|
85
|
-
throw new common.
|
|
85
|
+
throw new common.ProsopoDatasetError("CAPTCHA.MISSING_ITEM_HASH", {
|
|
86
|
+
context: {
|
|
87
|
+
computeCaptchaHashName: computeCaptchaHash.name,
|
|
88
|
+
index
|
|
89
|
+
}
|
|
90
|
+
});
|
|
86
91
|
}
|
|
87
92
|
});
|
|
88
93
|
return common.hexHashArray([
|
|
@@ -94,7 +99,7 @@ function computeCaptchaHash(captcha, includeSolution = false, includeSalt = fals
|
|
|
94
99
|
sortItemHashes ? itemHashes.sort() : itemHashes
|
|
95
100
|
]);
|
|
96
101
|
} catch (err) {
|
|
97
|
-
throw new common.
|
|
102
|
+
throw new common.ProsopoDatasetError("DATASET.HASH_ERROR", { context: { error: err } });
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
105
|
function getSolutionValueToHash(solution) {
|
|
@@ -106,7 +111,7 @@ async function computeItemHash(item) {
|
|
|
106
111
|
} else if (item.type === "image") {
|
|
107
112
|
return { ...item, hash: common.hexHash(await util$1.downloadImage(item.data)) };
|
|
108
113
|
} else {
|
|
109
|
-
throw new common.
|
|
114
|
+
throw new common.ProsopoDatasetError("CAPTCHA.INVALID_ITEM_FORMAT");
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
117
|
function matchItemsToSolutions(solutions, items) {
|
|
@@ -116,14 +121,14 @@ function matchItemsToSolutions(solutions, items) {
|
|
|
116
121
|
return solutions.map((solution) => {
|
|
117
122
|
if (typeof solution === "string" && util$2.isHex(solution)) {
|
|
118
123
|
if (!(items == null ? void 0 : items.some((item) => item.hash === solution))) {
|
|
119
|
-
throw new common.
|
|
124
|
+
throw new common.ProsopoDatasetError("CAPTCHA.INVALID_ITEM_HASH");
|
|
120
125
|
}
|
|
121
126
|
return solution;
|
|
122
127
|
} else if (typeof solution === "number") {
|
|
123
128
|
const item = util.at(items, solution);
|
|
124
129
|
return item.hash;
|
|
125
130
|
} else {
|
|
126
|
-
throw new common.
|
|
131
|
+
throw new common.ProsopoDatasetError("CAPTCHA.INVALID_SOLUTION_TYPE");
|
|
127
132
|
}
|
|
128
133
|
});
|
|
129
134
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const util = require("@prosopo/util");
|
|
4
3
|
const common = require("@prosopo/common");
|
|
4
|
+
const util = require("@prosopo/util");
|
|
5
5
|
class MerkleNode {
|
|
6
6
|
constructor(hash) {
|
|
7
7
|
this.hash = hash;
|
|
@@ -37,7 +37,7 @@ class CaptchaMerkleTree {
|
|
|
37
37
|
while (leafIndex < numLeaves) {
|
|
38
38
|
const leftChild = leaves[leafIndex];
|
|
39
39
|
if (leftChild === void 0) {
|
|
40
|
-
throw new
|
|
40
|
+
throw new common.ProsopoError("DEVELOPER.GENERAL", { context: { error: "leftChild undefined" } });
|
|
41
41
|
}
|
|
42
42
|
const rightChild = leafIndex + 1 < numLeaves ? util.at(leaves, leafIndex + 1) : leftChild;
|
|
43
43
|
const parentNode = this.createParent(leftChild, rightChild);
|
|
@@ -60,7 +60,9 @@ class CaptchaMerkleTree {
|
|
|
60
60
|
while (layerNum < this.layers.length - 1) {
|
|
61
61
|
const layer = this.layers[layerNum];
|
|
62
62
|
if (layer === void 0) {
|
|
63
|
-
throw new
|
|
63
|
+
throw new common.ProsopoError("DATASET.MERKLE_ERROR", {
|
|
64
|
+
context: { error: "layer undefined", failedFuncName: this.proof.name, layerNum }
|
|
65
|
+
});
|
|
64
66
|
}
|
|
65
67
|
const leafIndex = layer.indexOf(leafHash);
|
|
66
68
|
let partnerIndex = leafIndex % 2 && leafIndex > 0 ? leafIndex - 1 : leafIndex + 1;
|
|
@@ -5,12 +5,14 @@ async function downloadImage(url) {
|
|
|
5
5
|
try {
|
|
6
6
|
const response = await fetch(url);
|
|
7
7
|
if (!response.ok) {
|
|
8
|
-
throw new
|
|
8
|
+
throw new common.ProsopoApiError("API.BAD_REQUEST", {
|
|
9
|
+
context: { error: `Network response was not ok, status: ${response.status}`, url }
|
|
10
|
+
});
|
|
9
11
|
}
|
|
10
12
|
const buffer = await response.arrayBuffer();
|
|
11
13
|
return new Uint8Array(buffer);
|
|
12
|
-
} catch (
|
|
13
|
-
throw new common.ProsopoEnvError(error);
|
|
14
|
+
} catch (err) {
|
|
15
|
+
throw new common.ProsopoEnvError("DATABASE.IMAGE_GET_FAILED", { context: { error: err } });
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
18
|
exports.downloadImage = downloadImage;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/datasets",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.29",
|
|
4
4
|
"author": "PROSOPO LIMITED <info@prosopo.io>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"private": false,
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@polkadot/util": "^12.3.2",
|
|
50
|
-
"@prosopo/common": "0.2.
|
|
51
|
-
"@prosopo/types": "0.2.
|
|
50
|
+
"@prosopo/common": "0.2.29",
|
|
51
|
+
"@prosopo/types": "0.2.29",
|
|
52
52
|
"vitest": "^0.34.6"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@prosopo/config": "0.2.
|
|
55
|
+
"@prosopo/config": "0.2.29",
|
|
56
56
|
"tslib": "2.6.2",
|
|
57
57
|
"typescript": "5.1.6"
|
|
58
58
|
},
|