@prosopo/provider 1.0.1 → 2.0.0
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 +0 -258
- package/dist/api/admin.d.ts +2 -2
- package/dist/api/admin.d.ts.map +1 -1
- package/dist/api/admin.js +5 -64
- package/dist/api/admin.js.map +1 -1
- package/dist/api/authMiddleware.d.ts +4 -4
- package/dist/api/authMiddleware.d.ts.map +1 -1
- package/dist/api/authMiddleware.js +15 -29
- package/dist/api/authMiddleware.js.map +1 -1
- package/dist/api/captcha.d.ts +2 -2
- package/dist/api/captcha.d.ts.map +1 -1
- package/dist/api/captcha.js +64 -55
- package/dist/api/captcha.js.map +1 -1
- package/dist/api/captchaScheduler.d.ts +4 -0
- package/dist/api/captchaScheduler.d.ts.map +1 -0
- package/dist/api/captchaScheduler.js +22 -0
- package/dist/api/captchaScheduler.js.map +1 -0
- package/dist/api/errorHandler.d.ts +3 -3
- package/dist/api/errorHandler.d.ts.map +1 -1
- package/dist/api/errorHandler.js +7 -3
- package/dist/api/errorHandler.js.map +1 -1
- package/dist/api/verify.d.ts +2 -2
- package/dist/api/verify.d.ts.map +1 -1
- package/dist/api/verify.js +37 -29
- package/dist/api/verify.js.map +1 -1
- package/dist/cjs/api/admin.cjs +2 -89
- package/dist/cjs/api/authMiddleware.cjs +1 -15
- package/dist/cjs/api/captcha.cjs +89 -52
- package/dist/cjs/api/captchaScheduler.cjs +20 -0
- package/dist/cjs/api/errorHandler.cjs +3 -1
- package/dist/cjs/api/verify.cjs +54 -28
- package/dist/cjs/index.cjs +2 -3
- package/dist/cjs/tasks/dataset/datasetTasks.cjs +68 -0
- package/dist/cjs/tasks/dataset/datasetTasksUtils.cjs +34 -0
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +277 -0
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +25 -0
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +107 -0
- package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +55 -0
- package/dist/cjs/tasks/tasks.cjs +21 -512
- package/dist/cjs/util.cjs +32 -19
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/tasks/dataset/datasetTasks.d.ts +15 -0
- package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
- package/dist/tasks/dataset/datasetTasks.js +40 -0
- package/dist/tasks/dataset/datasetTasks.js.map +1 -0
- package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
- package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
- package/dist/tasks/dataset/datasetTasksUtils.js +34 -0
- package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +28 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +212 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +18 -0
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
- package/dist/tasks/index.d.ts +1 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -1
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts +13 -0
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
- package/dist/tasks/powCaptcha/powTasks.js +66 -0
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
- package/dist/tasks/powCaptcha/powTasksUtils.d.ts +5 -0
- package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
- package/dist/tasks/powCaptcha/powTasksUtils.js +49 -0
- package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
- package/dist/tasks/tasks.d.ts +12 -42
- package/dist/tasks/tasks.d.ts.map +1 -1
- package/dist/tasks/tasks.js +13 -419
- package/dist/tasks/tasks.js.map +1 -1
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.d.ts.map +1 -0
- package/dist/tests/index.js +2 -0
- package/dist/tests/index.js.map +1 -0
- package/dist/tests/integration/imgCaptcha.test.d.ts +2 -0
- package/dist/tests/integration/imgCaptcha.test.d.ts.map +1 -0
- package/dist/tests/integration/imgCaptcha.test.js +111 -0
- package/dist/tests/integration/imgCaptcha.test.js.map +1 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.js +1042 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
- package/dist/tests/integration/powCaptcha.test.d.ts +2 -0
- package/dist/tests/integration/powCaptcha.test.d.ts.map +1 -0
- package/dist/tests/integration/powCaptcha.test.js +171 -0
- package/dist/tests/integration/powCaptcha.test.js.map +1 -0
- package/dist/tests/unit/api/authMiddleware.test.d.ts +2 -0
- package/dist/tests/unit/api/authMiddleware.test.d.ts.map +1 -0
- package/dist/tests/unit/api/authMiddleware.test.js +87 -0
- package/dist/tests/unit/api/authMiddleware.test.js.map +1 -0
- package/dist/tests/unit/api/captchaScheduler.test.d.ts +2 -0
- package/dist/tests/unit/api/captchaScheduler.test.d.ts.map +1 -0
- package/dist/tests/unit/api/captchaScheduler.test.js +47 -0
- package/dist/tests/unit/api/captchaScheduler.test.js.map +1 -0
- package/dist/tests/unit/api/errorHandler.test.d.ts +2 -0
- package/dist/tests/unit/api/errorHandler.test.d.ts.map +1 -0
- package/dist/tests/unit/api/errorHandler.test.js +65 -0
- package/dist/tests/unit/api/errorHandler.test.js.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts +2 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.js +88 -0
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.js.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts +2 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js +75 -0
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts +2 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js +260 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts +2 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js +46 -0
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts +2 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js +133 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts +2 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js +94 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js.map +1 -0
- package/dist/util.d.ts +2 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +10 -8
- package/dist/util.js.map +1 -1
- package/package.json +74 -86
- package/vite.cjs.config.ts +3 -3
- package/vite.test.config.ts +12 -12
- package/dist/batch/commitments.d.ts +0 -24
- package/dist/batch/commitments.d.ts.map +0 -1
- package/dist/batch/commitments.js +0 -130
- package/dist/batch/commitments.js.map +0 -1
- package/dist/batch/index.d.ts +0 -2
- package/dist/batch/index.d.ts.map +0 -1
- package/dist/batch/index.js +0 -2
- package/dist/batch/index.js.map +0 -1
- package/dist/cjs/batch/commitments.cjs +0 -158
- package/dist/cjs/batch/index.cjs +0 -4
- package/dist/scheduler.d.ts +0 -4
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js +0 -21
- package/dist/scheduler.js.map +0 -1
- package/dist/tests/accounts.d.ts +0 -12
- package/dist/tests/accounts.d.ts.map +0 -1
- package/dist/tests/accounts.js +0 -35
- package/dist/tests/accounts.js.map +0 -1
- package/dist/tests/contract/helpers.test.d.ts +0 -6
- package/dist/tests/contract/helpers.test.d.ts.map +0 -1
- package/dist/tests/contract/helpers.test.js +0 -54
- package/dist/tests/contract/helpers.test.js.map +0 -1
- package/dist/tests/dataUtils/DatabaseAccounts.d.ts +0 -35
- package/dist/tests/dataUtils/DatabaseAccounts.d.ts.map +0 -1
- package/dist/tests/dataUtils/DatabaseAccounts.js +0 -84
- package/dist/tests/dataUtils/DatabaseAccounts.js.map +0 -1
- package/dist/tests/dataUtils/DatabasePopulator.d.ts +0 -73
- package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +0 -1
- package/dist/tests/dataUtils/DatabasePopulator.js +0 -326
- package/dist/tests/dataUtils/DatabasePopulator.js.map +0 -1
- package/dist/tests/dataUtils/dapp-example-contract/dapp.json +0 -648
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts +0 -4
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +0 -1
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js +0 -27
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +0 -1
- package/dist/tests/dataUtils/funds.d.ts +0 -9
- package/dist/tests/dataUtils/funds.d.ts.map +0 -1
- package/dist/tests/dataUtils/funds.js +0 -105
- package/dist/tests/dataUtils/funds.js.map +0 -1
- package/dist/tests/dataUtils/populateDatabase.d.ts +0 -16
- package/dist/tests/dataUtils/populateDatabase.d.ts.map +0 -1
- package/dist/tests/dataUtils/populateDatabase.js +0 -72
- package/dist/tests/dataUtils/populateDatabase.js.map +0 -1
- package/dist/tests/getUser.d.ts +0 -4
- package/dist/tests/getUser.d.ts.map +0 -1
- package/dist/tests/getUser.js +0 -18
- package/dist/tests/getUser.js.map +0 -1
- package/dist/tests/tasks/tasks.test.d.ts +0 -6
- package/dist/tests/tasks/tasks.test.d.ts.map +0 -1
- package/dist/tests/tasks/tasks.test.js +0 -635
- package/dist/tests/tasks/tasks.test.js.map +0 -1
- package/dist/tests/util.test.d.ts +0 -2
- package/dist/tests/util.test.d.ts.map +0 -1
- package/dist/tests/util.test.js +0 -23
- package/dist/tests/util.test.js.map +0 -1
- package/typedoc.config.js +0 -19
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { signatureVerify } from "@polkadot/util-crypto";
|
|
2
|
+
import { ProsopoContractError } from "@prosopo/common";
|
|
3
|
+
import { verifyRecency } from "@prosopo/contract";
|
|
4
|
+
import { describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { checkPowSignature, checkPowSolution, checkRecentPowSolution, validateSolution, } from "../../../../tasks/powCaptcha/powTasksUtils.js";
|
|
6
|
+
vi.mock("@polkadot/util-crypto", () => ({
|
|
7
|
+
signatureVerify: vi.fn(),
|
|
8
|
+
}));
|
|
9
|
+
vi.mock("@prosopo/contract", () => ({
|
|
10
|
+
verifyRecency: vi.fn(),
|
|
11
|
+
}));
|
|
12
|
+
describe("Validation Functions", () => {
|
|
13
|
+
describe("validateSolution", () => {
|
|
14
|
+
it("should return true for a valid solution", () => {
|
|
15
|
+
const nonce = 377;
|
|
16
|
+
const challenge = "6678154___aZZW9CeVFStJw3si91CXBqaEsGR1sk6h1bBEecJ4EBaSgsx___5C7bfXYwachNuvmasEFtWi9BMS41uBvo6KpYHVSQmad4nWzw";
|
|
17
|
+
const difficulty = 4;
|
|
18
|
+
const validSolution = validateSolution(nonce, challenge, difficulty);
|
|
19
|
+
expect(validSolution).toBe(true);
|
|
20
|
+
});
|
|
21
|
+
it("should return false for an invalid solution", () => {
|
|
22
|
+
const nonce = 0;
|
|
23
|
+
const challenge = "testChallenge";
|
|
24
|
+
const difficulty = 10;
|
|
25
|
+
const validSolution = validateSolution(nonce, challenge, difficulty);
|
|
26
|
+
expect(validSolution).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe("checkPowSolution", () => {
|
|
30
|
+
it("should not throw an error for a valid solution", () => {
|
|
31
|
+
const nonce = 377;
|
|
32
|
+
const challenge = "6678154___aZZW9CeVFStJw3si91CXBqaEsGR1sk6h1bBEecJ4EBaSgsx___5C7bfXYwachNuvmasEFtWi9BMS41uBvo6KpYHVSQmad4nWzw";
|
|
33
|
+
const difficulty = 4;
|
|
34
|
+
expect(() => checkPowSolution(nonce, challenge, difficulty)).not.toThrow();
|
|
35
|
+
});
|
|
36
|
+
it("should throw an error for an invalid solution", () => {
|
|
37
|
+
const nonce = 0;
|
|
38
|
+
const challenge = "testChallenge";
|
|
39
|
+
const difficulty = 10;
|
|
40
|
+
expect(() => checkPowSolution(nonce, challenge, difficulty)).toThrow(new ProsopoContractError("API.CAPTCHA_FAILED", {
|
|
41
|
+
context: {
|
|
42
|
+
ERROR: "Captcha solution is invalid",
|
|
43
|
+
failedFuncName: "checkPowSolution",
|
|
44
|
+
nonce,
|
|
45
|
+
challenge,
|
|
46
|
+
difficulty,
|
|
47
|
+
},
|
|
48
|
+
}));
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe("checkPowSignature", () => {
|
|
52
|
+
it("should not throw an error for a valid signature", () => {
|
|
53
|
+
const challenge = "testChallenge";
|
|
54
|
+
const signature = "testSignature";
|
|
55
|
+
const providerAddress = "testAddress";
|
|
56
|
+
signatureVerify.mockReturnValueOnce({ isValid: true });
|
|
57
|
+
expect(() => checkPowSignature(challenge, signature, providerAddress)).not.toThrow();
|
|
58
|
+
});
|
|
59
|
+
it("should throw an error for an invalid signature", () => {
|
|
60
|
+
const challenge = "testChallenge";
|
|
61
|
+
const signature = "testSignature";
|
|
62
|
+
const providerAddress = "testAddress";
|
|
63
|
+
signatureVerify.mockReturnValueOnce({ isValid: false });
|
|
64
|
+
expect(() => checkPowSignature(challenge, signature, providerAddress)).toThrow(new ProsopoContractError("GENERAL.INVALID_SIGNATURE", {
|
|
65
|
+
context: {
|
|
66
|
+
ERROR: "Provider signature is invalid for this message",
|
|
67
|
+
failedFuncName: "checkPowSignature",
|
|
68
|
+
signature,
|
|
69
|
+
},
|
|
70
|
+
}));
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe("checkRecentPowSolution", () => {
|
|
74
|
+
it("should not throw an error for a recent solution", () => {
|
|
75
|
+
const challenge = "testChallenge";
|
|
76
|
+
const timeout = 1000;
|
|
77
|
+
verifyRecency.mockReturnValueOnce(true);
|
|
78
|
+
expect(() => checkRecentPowSolution(challenge, timeout)).not.toThrow();
|
|
79
|
+
});
|
|
80
|
+
it("should throw an error for a non-recent solution", () => {
|
|
81
|
+
const challenge = "testChallenge";
|
|
82
|
+
const timeout = 1000;
|
|
83
|
+
verifyRecency.mockReturnValueOnce(false);
|
|
84
|
+
expect(() => checkRecentPowSolution(challenge, timeout)).toThrow(new ProsopoContractError("CONTRACT.INVALID_BLOCKHASH", {
|
|
85
|
+
context: {
|
|
86
|
+
ERROR: `Block in which the Provider was selected must be within the last ${timeout / 1000} seconds`,
|
|
87
|
+
failedFuncName: "checkRecentPowSolution",
|
|
88
|
+
challenge,
|
|
89
|
+
},
|
|
90
|
+
}));
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=powTasksUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powTasksUtils.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/powCaptcha/powTasksUtils.test.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type ScheduledTaskNames } from "@prosopo/types";
|
|
2
|
+
import type { Database } from "@prosopo/types-database";
|
|
3
3
|
export declare function encodeStringAddress(address: string): string;
|
|
4
4
|
export declare function shuffleArray<T>(array: T[]): T[];
|
|
5
5
|
type PromiseQueueRes<T> = {
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AAc9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,UAUlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQ/C;AAED,KAAK,eAAe,CAAC,CAAC,IAAI;IACzB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;CACd,EAAE,CAAC;AAOJ,wBAAsB,YAAY,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAuB7B;AAED,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,UAEzD;AAQD,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,kBAAkB,EAC5B,EAAE,EAAE,QAAQ,GACV,OAAO,CAAC,OAAO,CAAC,CAalB"}
|
package/dist/util.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { decodeAddress, encodeAddress } from "@polkadot/util-crypto/address";
|
|
2
|
+
import { hexToU8a } from "@polkadot/util/hex";
|
|
3
|
+
import { isHex } from "@polkadot/util/is";
|
|
4
|
+
import { ProsopoContractError } from "@prosopo/common";
|
|
5
|
+
import { ScheduledTaskStatus } from "@prosopo/types";
|
|
6
|
+
import { at } from "@prosopo/util";
|
|
7
7
|
export function encodeStringAddress(address) {
|
|
8
8
|
try {
|
|
9
9
|
return encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address));
|
|
10
10
|
}
|
|
11
11
|
catch (err) {
|
|
12
|
-
throw new ProsopoContractError(
|
|
12
|
+
throw new ProsopoContractError("CONTRACT.INVALID_ADDRESS", {
|
|
13
|
+
context: { address },
|
|
14
|
+
});
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
export function shuffleArray(array) {
|
|
@@ -39,7 +41,7 @@ export async function promiseQueue(array) {
|
|
|
39
41
|
return ret;
|
|
40
42
|
}
|
|
41
43
|
export function parseBlockNumber(blockNumberString) {
|
|
42
|
-
return parseInt(blockNumberString.replace(/,/g,
|
|
44
|
+
return Number.parseInt(blockNumberString.replace(/,/g, ""));
|
|
43
45
|
}
|
|
44
46
|
export async function checkIfTaskIsRunning(taskName, db) {
|
|
45
47
|
const runningTask = await db.getLastScheduledTaskStatus(taskName, ScheduledTaskStatus.Running);
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,88 +1,76 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"vitest": "^1.3.1"
|
|
77
|
-
},
|
|
78
|
-
"repository": {
|
|
79
|
-
"type": "git",
|
|
80
|
-
"url": "git+ssh://git@github.com/prosopo/provider.git"
|
|
81
|
-
},
|
|
82
|
-
"description": "The easiest way to deploy the Prosopo contract and run the Provider node is via the [captcha repository](https://github.com/prosopo/captcha/).",
|
|
83
|
-
"bugs": {
|
|
84
|
-
"url": "https://github.com/prosopo/captcha/issues"
|
|
85
|
-
},
|
|
86
|
-
"homepage": "https://github.com/prosopo/captcha#readme",
|
|
87
|
-
"sideEffects": false
|
|
2
|
+
"name": "@prosopo/provider",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"author": "PROSOPO LIMITED <info@prosopo.io>",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=20",
|
|
10
|
+
"npm": ">=9"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/cjs/index.cjs"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"clean": "tsc --build --clean",
|
|
20
|
+
"build": "tsc --build --verbose",
|
|
21
|
+
"build:cjs": "npx vite --config vite.cjs.config.ts build",
|
|
22
|
+
"test": "NODE_ENV=${NODE_ENV:-test}; npx vitest run --config ./vite.test.config.ts",
|
|
23
|
+
"mnemonic": "tsx ./scripts/generateMnemonic.ts",
|
|
24
|
+
"coverage": "npx c8 npm run test"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@noble/hashes": "^1.3.3",
|
|
28
|
+
"@polkadot/api": "10.13.1",
|
|
29
|
+
"@polkadot/api-contract": "10.13.1",
|
|
30
|
+
"@polkadot/keyring": "12.6.2",
|
|
31
|
+
"@polkadot/types": "10.13.1",
|
|
32
|
+
"@polkadot/types-codec": "10.13.1",
|
|
33
|
+
"@polkadot/types-create": "10.13.1",
|
|
34
|
+
"@polkadot/util": "12.6.2",
|
|
35
|
+
"@polkadot/util-crypto": "12.6.2",
|
|
36
|
+
|
|
37
|
+
"@prosopo/common": "2.0.0",
|
|
38
|
+
"@prosopo/config": "2.0.0",
|
|
39
|
+
"@prosopo/contract": "2.0.0",
|
|
40
|
+
"@prosopo/database": "2.0.0",
|
|
41
|
+
"@prosopo/datasets": "2.0.0",
|
|
42
|
+
"@prosopo/env": "2.0.0",
|
|
43
|
+
"@prosopo/tx": "2.0.0",
|
|
44
|
+
"@prosopo/typechain-types": "1.1.15",
|
|
45
|
+
"@prosopo/types": "2.0.0",
|
|
46
|
+
"@prosopo/types-database": "2.0.0",
|
|
47
|
+
"@prosopo/types-env": "2.0.0",
|
|
48
|
+
"@prosopo/util": "2.0.0",
|
|
49
|
+
"cron": "^2.1.0",
|
|
50
|
+
"express": "^4.18.1",
|
|
51
|
+
"zod": "^3.22.3"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/fs-extra": "^9.0.13",
|
|
55
|
+
"@types/node": "^18.0.6",
|
|
56
|
+
"@types/supertest": "^6.0.2",
|
|
57
|
+
"c8": "^9.1.0",
|
|
58
|
+
"dotenv": "^16.0.1",
|
|
59
|
+
"fs-extra": "^10.1.0",
|
|
60
|
+
"supertest": "^7.0.0",
|
|
61
|
+
"tslib": "2.6.2",
|
|
62
|
+
"typescript": "5.1.6",
|
|
63
|
+
"vite": "^5.1.7",
|
|
64
|
+
"vitest": "^1.3.1"
|
|
65
|
+
},
|
|
66
|
+
"repository": {
|
|
67
|
+
"type": "git",
|
|
68
|
+
"url": "git+ssh://git@github.com/prosopo/provider.git"
|
|
69
|
+
},
|
|
70
|
+
"description": "The easiest way to deploy the Prosopo contract and run the Provider node is via the [captcha repository](https://github.com/prosopo/captcha/).",
|
|
71
|
+
"bugs": {
|
|
72
|
+
"url": "https://github.com/prosopo/captcha/issues"
|
|
73
|
+
},
|
|
74
|
+
"homepage": "https://github.com/prosopo/captcha#readme",
|
|
75
|
+
"sideEffects": false
|
|
88
76
|
}
|
package/vite.cjs.config.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
// Copyright 2021-2024 Prosopo (UK) Ltd.
|
|
2
3
|
//
|
|
3
4
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -11,9 +12,8 @@
|
|
|
11
12
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
13
|
// See the License for the specific language governing permissions and
|
|
13
14
|
// limitations under the License.
|
|
14
|
-
import { ViteCommonJSConfig } from
|
|
15
|
-
import path from 'path'
|
|
15
|
+
import { ViteCommonJSConfig } from "@prosopo/config";
|
|
16
16
|
|
|
17
17
|
export default function () {
|
|
18
|
-
|
|
18
|
+
return ViteCommonJSConfig("provider", path.resolve("./tsconfig.cjs.json"));
|
|
19
19
|
}
|
package/vite.test.config.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
1
3
|
// Copyright 2021-2024 Prosopo (UK) Ltd.
|
|
2
4
|
//
|
|
3
5
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -11,22 +13,20 @@
|
|
|
11
13
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
14
|
// See the License for the specific language governing permissions and
|
|
13
15
|
// limitations under the License.
|
|
14
|
-
import { ViteTestConfig } from
|
|
15
|
-
import dotenv from
|
|
16
|
-
|
|
17
|
-
import path from 'path'
|
|
18
|
-
process.env.NODE_ENV = 'test'
|
|
16
|
+
import { ViteTestConfig } from "@prosopo/config";
|
|
17
|
+
import dotenv from "dotenv";
|
|
18
|
+
process.env.NODE_ENV = "test";
|
|
19
19
|
// if .env.test exists at this level, use it, otherwise use the one at the root
|
|
20
|
-
const envFile = `.env.${process.env.NODE_ENV ||
|
|
21
|
-
let envPath = envFile
|
|
20
|
+
const envFile = `.env.${process.env.NODE_ENV || "development"}`;
|
|
21
|
+
let envPath = envFile;
|
|
22
22
|
if (fs.existsSync(envFile)) {
|
|
23
|
-
|
|
23
|
+
envPath = path.resolve(envFile);
|
|
24
24
|
} else if (fs.existsSync(`../../${envFile}`)) {
|
|
25
|
-
|
|
25
|
+
envPath = path.resolve(`../../${envFile}`);
|
|
26
26
|
} else {
|
|
27
|
-
|
|
27
|
+
throw new Error(`No ${envFile} file found`);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
dotenv.config({ path: envPath })
|
|
30
|
+
dotenv.config({ path: envPath });
|
|
31
31
|
|
|
32
|
-
export default ViteTestConfig
|
|
32
|
+
export default ViteTestConfig;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/// <reference types="bn.js" />
|
|
2
|
-
import { BN } from '@polkadot/util/bn';
|
|
3
|
-
import { BatchCommitConfigOutput, ExtrinsicBatch } from '@prosopo/types';
|
|
4
|
-
import { Commit, Hash } from '@prosopo/captcha-contract/types-returns';
|
|
5
|
-
import { Database, UserCommitmentRecord } from '@prosopo/types-database';
|
|
6
|
-
import { Logger } from '@prosopo/common';
|
|
7
|
-
import { ProsopoCaptchaContract } from '@prosopo/contract';
|
|
8
|
-
import { WeightV2 } from '@polkadot/types/interfaces';
|
|
9
|
-
export declare class BatchCommitmentsTask {
|
|
10
|
-
contract: ProsopoCaptchaContract;
|
|
11
|
-
db: Database;
|
|
12
|
-
batchCommitConfig: BatchCommitConfigOutput;
|
|
13
|
-
logger: Logger;
|
|
14
|
-
private nonce;
|
|
15
|
-
constructor(batchCommitConfig: BatchCommitConfigOutput, contractApi: ProsopoCaptchaContract, db: Database, startNonce: bigint, logger: Logger);
|
|
16
|
-
run(): Promise<any>;
|
|
17
|
-
createExtrinsics(commitments: UserCommitmentRecord[]): Promise<ExtrinsicBatch>;
|
|
18
|
-
extrinsicTooHigh(totalRefTime: BN, totalProofSize: BN, maxBlockWeight: WeightV2): boolean;
|
|
19
|
-
batchIntervalExceeded(): Promise<boolean>;
|
|
20
|
-
getCommitments(): Promise<UserCommitmentRecord[]>;
|
|
21
|
-
flagBatchedCommitments(commitmentIds: Hash[]): Promise<void>;
|
|
22
|
-
convertCommit(commitment: UserCommitmentRecord): Commit;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=commitments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,EAAE,EAAW,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAwB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAA2B,MAAM,mBAAmB,CAAA;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAQrD,qBAAa,oBAAoB;IAC7B,QAAQ,EAAE,sBAAsB,CAAA;IAChC,EAAE,EAAE,QAAQ,CAAA;IACZ,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,KAAK,CAAQ;gBAEjB,iBAAiB,EAAE,uBAAuB,EAC1C,WAAW,EAAE,sBAAsB,EACnC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;IAQZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAyDnB,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFpF,gBAAgB,CAAC,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,GAAG,OAAO;IAOnF,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMzC,cAAc,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAKjD,sBAAsB,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM;CAW1D"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { BN, BN_ZERO } from '@polkadot/util/bn';
|
|
2
|
-
import { ScheduledTaskNames, ScheduledTaskStatus } from '@prosopo/types';
|
|
3
|
-
import { ProsopoContractError } from '@prosopo/common';
|
|
4
|
-
import { batch, encodeStringArgs } from '@prosopo/contract';
|
|
5
|
-
import { checkIfTaskIsRunning } from '../util.js';
|
|
6
|
-
import { oneUnit } from '@prosopo/tx';
|
|
7
|
-
import { randomAsHex } from '@polkadot/util-crypto/random';
|
|
8
|
-
const BN_TEN_THOUSAND = new BN(10000);
|
|
9
|
-
const CONTRACT_METHOD_NAME = 'providerCommitMany';
|
|
10
|
-
export class BatchCommitmentsTask {
|
|
11
|
-
constructor(batchCommitConfig, contractApi, db, startNonce, logger) {
|
|
12
|
-
this.contract = contractApi;
|
|
13
|
-
this.db = db;
|
|
14
|
-
this.batchCommitConfig = batchCommitConfig;
|
|
15
|
-
this.logger = logger;
|
|
16
|
-
this.nonce = startNonce;
|
|
17
|
-
}
|
|
18
|
-
async run() {
|
|
19
|
-
const taskId = randomAsHex(32);
|
|
20
|
-
const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.BatchCommitment, this.db);
|
|
21
|
-
if (!taskRunning) {
|
|
22
|
-
const intervalExceeded = await this.batchIntervalExceeded();
|
|
23
|
-
if (intervalExceeded) {
|
|
24
|
-
try {
|
|
25
|
-
await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Running);
|
|
26
|
-
const commitments = await this.getCommitments();
|
|
27
|
-
if (commitments.length > 0) {
|
|
28
|
-
this.logger.info(`Found ${commitments.length} commitments to commit`);
|
|
29
|
-
const { extrinsics, ids: commitmentIds } = await this.createExtrinsics(commitments);
|
|
30
|
-
await batch(this.contract.contract, this.contract.pair, extrinsics, this.logger);
|
|
31
|
-
await this.flagBatchedCommitments(commitmentIds);
|
|
32
|
-
await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Completed, {
|
|
33
|
-
data: {
|
|
34
|
-
commitmentIds: commitments
|
|
35
|
-
.filter((commitment) => commitmentIds.indexOf(commitment.id) > -1)
|
|
36
|
-
.map((c) => c.id),
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return commitments;
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
const err = e;
|
|
44
|
-
this.logger.error(e);
|
|
45
|
-
await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Failed, {
|
|
46
|
-
error: JSON.stringify(e && err.message ? err.message : e),
|
|
47
|
-
});
|
|
48
|
-
return err.message;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async createExtrinsics(commitments) {
|
|
54
|
-
const txs = [];
|
|
55
|
-
const fragment = this.contract.abi.findMessage(CONTRACT_METHOD_NAME);
|
|
56
|
-
const batchedCommitmentIds = [];
|
|
57
|
-
let totalRefTime = BN_ZERO;
|
|
58
|
-
let totalProofSize = BN_ZERO;
|
|
59
|
-
let totalFee = BN_ZERO;
|
|
60
|
-
const maxBlockWeight = this.contract.api.consts.system.blockWeights.maxBlock;
|
|
61
|
-
const commitmentArray = [];
|
|
62
|
-
let extrinsic;
|
|
63
|
-
for (const commitment of commitments) {
|
|
64
|
-
const commit = this.convertCommit(commitment);
|
|
65
|
-
commitmentArray.push(commit);
|
|
66
|
-
const encodedArgs = encodeStringArgs(this.contract.abi, fragment, [commitmentArray]);
|
|
67
|
-
const buildExtrinsicResult = await this.contract.getExtrinsicAndGasEstimates('providerCommitMany', encodedArgs);
|
|
68
|
-
extrinsic = buildExtrinsicResult.extrinsic;
|
|
69
|
-
const { options, storageDeposit } = buildExtrinsicResult;
|
|
70
|
-
let paymentInfo;
|
|
71
|
-
try {
|
|
72
|
-
paymentInfo = (await extrinsic.paymentInfo(this.contract.pair)).partialFee.toBn();
|
|
73
|
-
this.logger.debug(`${CONTRACT_METHOD_NAME} paymentInfo:`, paymentInfo.toNumber());
|
|
74
|
-
}
|
|
75
|
-
catch (e) {
|
|
76
|
-
paymentInfo = BN_ZERO;
|
|
77
|
-
}
|
|
78
|
-
totalRefTime = totalRefTime.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).refTime.toBn());
|
|
79
|
-
totalProofSize = totalProofSize.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).proofSize.toBn());
|
|
80
|
-
totalFee = totalFee.add(paymentInfo.add(storageDeposit.asCharge.toBn()));
|
|
81
|
-
const extrinsicTooHigh = this.extrinsicTooHigh(totalRefTime, totalProofSize, maxBlockWeight);
|
|
82
|
-
this.logger.debug('Free balance', '`', (await this.contract.api.query.system.account(this.contract.pair.address)).data.free
|
|
83
|
-
.toBn()
|
|
84
|
-
.div(oneUnit(this.contract.api))
|
|
85
|
-
.toString(), '`', 'UNIT');
|
|
86
|
-
this.logger.debug('Total Fee `', totalFee.div(oneUnit(this.contract.api)).toString(), '`', 'UNIT');
|
|
87
|
-
const feeTooHigh = totalFee.gt((await this.contract.api.query.system.account(this.contract.pair.address)).data.free.toBn());
|
|
88
|
-
if (extrinsicTooHigh || feeTooHigh) {
|
|
89
|
-
const msg = extrinsicTooHigh ? 'Max batch extrinsic percentage reached' : 'Fee too high';
|
|
90
|
-
this.logger.warn(msg);
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
batchedCommitmentIds.push(commitment.id);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (!extrinsic) {
|
|
98
|
-
throw new ProsopoContractError('CONTRACT.TX_ERROR', { context: { error: 'No extrinsics created' } });
|
|
99
|
-
}
|
|
100
|
-
txs.push(extrinsic);
|
|
101
|
-
this.logger.info(`${txs.length} transactions will be batched`);
|
|
102
|
-
this.logger.debug('totalRefTime:', totalRefTime.toString());
|
|
103
|
-
this.logger.debug('totalProofSize:', totalProofSize.toString());
|
|
104
|
-
return { extrinsics: txs, ids: batchedCommitmentIds, totalFee, totalRefTime, totalProofSize };
|
|
105
|
-
}
|
|
106
|
-
extrinsicTooHigh(totalRefTime, totalProofSize, maxBlockWeight) {
|
|
107
|
-
return (totalRefTime.mul(BN_TEN_THOUSAND).div(maxBlockWeight.refTime.toBn()).toNumber() / 100 >
|
|
108
|
-
this.batchCommitConfig.maxBatchExtrinsicPercentage);
|
|
109
|
-
}
|
|
110
|
-
async batchIntervalExceeded() {
|
|
111
|
-
const lastTime = await this.db.getLastBatchCommitTime();
|
|
112
|
-
return Date.now() - lastTime.getSeconds() > this.batchCommitConfig.interval;
|
|
113
|
-
}
|
|
114
|
-
async getCommitments() {
|
|
115
|
-
return await this.db.getUnbatchedDappUserCommitments();
|
|
116
|
-
}
|
|
117
|
-
async flagBatchedCommitments(commitmentIds) {
|
|
118
|
-
await this.db.flagBatchedDappUserCommitments(commitmentIds);
|
|
119
|
-
}
|
|
120
|
-
convertCommit(commitment) {
|
|
121
|
-
const { batched, processed, userSignature, requestedAt, completedAt, ...commit } = commitment;
|
|
122
|
-
return {
|
|
123
|
-
...commit,
|
|
124
|
-
userSignature,
|
|
125
|
-
requestedAt: new BN(requestedAt).toNumber(),
|
|
126
|
-
completedAt: new BN(completedAt).toNumber(),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=commitments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"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"}
|
package/dist/batch/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}
|
package/dist/batch/index.js
DELETED
package/dist/batch/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}
|