@prosopo/cli 2.0.0 → 2.0.2
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/argv.d.ts.map +1 -1
- package/dist/argv.js +2 -1
- package/dist/argv.js.map +1 -1
- package/dist/bundle/provider.cli.bundle.js +54864 -138455
- package/dist/cjs/argv.cjs +2 -1
- package/dist/cjs/cli.cjs +2 -5
- package/dist/cjs/commands/index.cjs +2 -2
- package/dist/cjs/commands/storeCaptchasExternally.cjs +25 -0
- package/dist/cjs/index.cjs +0 -4
- package/dist/cjs/prosopo.config.cjs +1 -3
- package/dist/cjs/reloader.cjs +7 -7
- package/dist/cjs/start.cjs +11 -12
- package/dist/cli.js +3 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/providerDeregister.d.ts.map +1 -1
- package/dist/commands/providerDeregister.js.map +1 -1
- package/dist/commands/providerSetDataset.d.ts.map +1 -1
- package/dist/commands/providerSetDataset.js.map +1 -1
- package/dist/commands/storeCaptchasExternally.d.ts +13 -0
- package/dist/commands/storeCaptchasExternally.d.ts.map +1 -0
- package/dist/commands/storeCaptchasExternally.js +25 -0
- package/dist/commands/storeCaptchasExternally.js.map +1 -0
- package/dist/commands/validators.d.ts +0 -9
- package/dist/commands/validators.d.ts.map +1 -1
- package/dist/commands/validators.js +0 -31
- package/dist/commands/validators.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/prosopo.config.d.ts +2 -2
- package/dist/prosopo.config.d.ts.map +1 -1
- package/dist/prosopo.config.js +2 -6
- package/dist/prosopo.config.js.map +1 -1
- package/dist/reloader.d.ts.map +1 -1
- package/dist/reloader.js +1 -1
- package/dist/reloader.js.map +1 -1
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +3 -3
- package/dist/start.js.map +1 -1
- package/package.json +56 -56
- package/vite.config.ts +26 -26
- package/dist/cjs/commands/providerDeregister.cjs +0 -29
- package/dist/cjs/commands/validators.cjs +0 -85
- package/dist/cjs/env.cjs +0 -32
- package/dist/env.d.ts +0 -4
- package/dist/env.d.ts.map +0 -1
- package/dist/env.js +0 -25
- package/dist/env.js.map +0 -1
package/dist/cjs/argv.cjs
CHANGED
|
@@ -5,6 +5,7 @@ const yargs = require("yargs");
|
|
|
5
5
|
const helpers = require("yargs/helpers");
|
|
6
6
|
require("./commands/index.cjs");
|
|
7
7
|
const providerSetDataset = require("./commands/providerSetDataset.cjs");
|
|
8
|
+
const storeCaptchasExternally = require("./commands/storeCaptchasExternally.cjs");
|
|
8
9
|
const version = require("./commands/version.cjs");
|
|
9
10
|
function processArgs(args, pair, config) {
|
|
10
11
|
const logger = common.getLogger(common.LogLevel.enum.info, "CLI");
|
|
@@ -12,6 +13,6 @@ function processArgs(args, pair, config) {
|
|
|
12
13
|
demand: false,
|
|
13
14
|
default: false,
|
|
14
15
|
type: "boolean"
|
|
15
|
-
}).command(providerSetDataset(pair, config, { logger })).command(version(pair, config, { logger })).parse();
|
|
16
|
+
}).command(providerSetDataset(pair, config, { logger })).command(storeCaptchasExternally(pair, config, { logger })).command(version(pair, config, { logger })).parse();
|
|
16
17
|
}
|
|
17
18
|
exports.processArgs = processArgs;
|
package/dist/cjs/cli.cjs
CHANGED
|
@@ -4,14 +4,13 @@ const common = require("@prosopo/common");
|
|
|
4
4
|
const contract = require("@prosopo/contract");
|
|
5
5
|
const util = require("@prosopo/util");
|
|
6
6
|
const argv = require("./argv.cjs");
|
|
7
|
-
const
|
|
7
|
+
const dotenv = require("@prosopo/dotenv");
|
|
8
8
|
const prosopo_config = require("./prosopo.config.cjs");
|
|
9
9
|
const reloader = require("./reloader.cjs");
|
|
10
10
|
const log = common.getLogger(common.LogLevel.enum.info, "CLI");
|
|
11
11
|
async function main() {
|
|
12
|
-
const envPath =
|
|
12
|
+
const envPath = dotenv.loadEnv();
|
|
13
13
|
const config = prosopo_config(
|
|
14
|
-
void 0,
|
|
15
14
|
void 0,
|
|
16
15
|
void 0,
|
|
17
16
|
{
|
|
@@ -29,12 +28,10 @@ async function main() {
|
|
|
29
28
|
);
|
|
30
29
|
}
|
|
31
30
|
const pair = await contract.getPairAsync(
|
|
32
|
-
config.networks[config.defaultNetwork],
|
|
33
31
|
config.account.secret,
|
|
34
32
|
config.account.address
|
|
35
33
|
);
|
|
36
34
|
log.info(`Pair address: ${pair.address}`);
|
|
37
|
-
log.info(`Contract address: ${process.env.PROSOPO_CONTRACT_ADDRESS}`);
|
|
38
35
|
const processedArgs = await argv.processArgs(process.argv, pair, config);
|
|
39
36
|
log.info(`Processsed args: ${JSON.stringify(processedArgs, null, 4)}`);
|
|
40
37
|
if (processedArgs.api) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const providerDeregister = require("./providerDeregister.cjs");
|
|
4
3
|
const providerSetDataset = require("./providerSetDataset.cjs");
|
|
4
|
+
const storeCaptchasExternally = require("./storeCaptchasExternally.cjs");
|
|
5
5
|
const version = require("./version.cjs");
|
|
6
|
-
exports.commandProviderDeregister = providerDeregister;
|
|
7
6
|
exports.commandProviderSetDataset = providerSetDataset;
|
|
7
|
+
exports.commandStoreCaptchasExternally = storeCaptchasExternally;
|
|
8
8
|
exports.commandVersion = version;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const common = require("@prosopo/common");
|
|
3
|
+
const env = require("@prosopo/env");
|
|
4
|
+
const provider = require("@prosopo/provider");
|
|
5
|
+
const commandStoreCaptchasExternally = (pair, config, cmdArgs) => {
|
|
6
|
+
const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.store_captchas");
|
|
7
|
+
return {
|
|
8
|
+
command: "store_captchas",
|
|
9
|
+
describe: "Store captcha records externally for billing purposes",
|
|
10
|
+
handler: async () => {
|
|
11
|
+
try {
|
|
12
|
+
const env$1 = new env.ProviderEnvironment(config, pair);
|
|
13
|
+
await env$1.isReady();
|
|
14
|
+
const tasks = new provider.Tasks(env$1);
|
|
15
|
+
await tasks.datasetManager.storeCommitmentsExternal().catch((err) => {
|
|
16
|
+
env$1.logger.error(err);
|
|
17
|
+
});
|
|
18
|
+
} catch (err) {
|
|
19
|
+
logger.error(err);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
middlewares: []
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
module.exports = commandStoreCaptchasExternally;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -6,7 +6,6 @@ const start = require("./start.cjs");
|
|
|
6
6
|
const process_env = require("./process.env.cjs");
|
|
7
7
|
const files = require("./files.cjs");
|
|
8
8
|
const prosopo_config = require("./prosopo.config.cjs");
|
|
9
|
-
const env = require("./env.cjs");
|
|
10
9
|
exports.processArgs = argv.processArgs;
|
|
11
10
|
exports.start = start.start;
|
|
12
11
|
exports.getAddress = process_env.getAddress;
|
|
@@ -19,6 +18,3 @@ exports.loadJSONFile = files.loadJSONFile;
|
|
|
19
18
|
exports.readFile = files.readFile;
|
|
20
19
|
exports.writeJSONFile = files.writeJSONFile;
|
|
21
20
|
exports.defaultConfig = prosopo_config;
|
|
22
|
-
exports.getEnv = env.getEnv;
|
|
23
|
-
exports.getEnvFile = env.getEnvFile;
|
|
24
|
-
exports.loadEnv = env.loadEnv;
|
|
@@ -15,11 +15,10 @@ function getMongoURI() {
|
|
|
15
15
|
const mongoURI = `${protocol}://${username}:${password}@${host}${port}/${retries}`;
|
|
16
16
|
return mongoURI;
|
|
17
17
|
}
|
|
18
|
-
function getConfig(
|
|
18
|
+
function getConfig(captchaSolutionsConfig, batchCommitConfig, captchaServeConfig, who = "PROVIDER") {
|
|
19
19
|
return types.ProsopoConfigSchema.parse({
|
|
20
20
|
logLevel: common.getLogLevel(),
|
|
21
21
|
defaultEnvironment: process.env.PROSOPO_DEFAULT_ENVIRONMENT ? types.EnvironmentTypesSchema.parse(process.env.PROSOPO_DEFAULT_ENVIRONMENT) : types.EnvironmentTypesSchema.enum.development,
|
|
22
|
-
defaultNetwork: process.env.PROSOPO_DEFAULT_NETWORK ? types.NetworkNamesSchema.parse(process.env.PROSOPO_DEFAULT_NETWORK) : types.NetworkNamesSchema.enum.development,
|
|
23
22
|
account: {
|
|
24
23
|
address: process_env.getAddress(who),
|
|
25
24
|
password: process_env.getPassword(who),
|
|
@@ -49,7 +48,6 @@ function getConfig(networksConfig, captchaSolutionsConfig, batchCommitConfig, ca
|
|
|
49
48
|
baseURL: process.env.PROSOPO_API_BASE_URL || "http://localhost",
|
|
50
49
|
port: process.env.PROSOPO_API_PORT ? Number.parseInt(process.env.PROSOPO_API_PORT) : 9229
|
|
51
50
|
},
|
|
52
|
-
networks: networksConfig,
|
|
53
51
|
captchaSolutions: captchaSolutionsConfig,
|
|
54
52
|
batchCommit: batchCommitConfig,
|
|
55
53
|
captchas: captchaServeConfig,
|
package/dist/cjs/reloader.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const fs = require("node:fs");
|
|
3
3
|
const common = require("@prosopo/common");
|
|
4
|
-
const env
|
|
5
|
-
const
|
|
4
|
+
const env = require("@prosopo/env");
|
|
5
|
+
const dotenv = require("@prosopo/dotenv");
|
|
6
6
|
const start = require("./start.cjs");
|
|
7
7
|
const log = common.getLogger(common.LogLevel.enum.info, "CLI");
|
|
8
8
|
class ReloadingAPI {
|
|
@@ -16,10 +16,10 @@ class ReloadingAPI {
|
|
|
16
16
|
async start() {
|
|
17
17
|
log.info("Starting API");
|
|
18
18
|
this._envWatcher = await this._watchEnv();
|
|
19
|
-
|
|
20
|
-
const env$
|
|
21
|
-
await env$
|
|
22
|
-
this.api = await start.start(env$
|
|
19
|
+
dotenv.loadEnv();
|
|
20
|
+
const env$1 = new env.ProviderEnvironment(this._config, this._pair);
|
|
21
|
+
await env$1.isReady();
|
|
22
|
+
this.api = await start.start(env$1, !!this._processedArgs.adminApi);
|
|
23
23
|
}
|
|
24
24
|
async stop() {
|
|
25
25
|
log.info("Stopping API");
|
|
@@ -35,7 +35,7 @@ class ReloadingAPI {
|
|
|
35
35
|
if (!this._restarting) {
|
|
36
36
|
this._restarting = true;
|
|
37
37
|
await this.stop();
|
|
38
|
-
|
|
38
|
+
dotenv.loadEnv();
|
|
39
39
|
await this.start();
|
|
40
40
|
this._restarting = false;
|
|
41
41
|
}
|
package/dist/cjs/start.cjs
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const common = require("@prosopo/common");
|
|
4
4
|
const contract = require("@prosopo/contract");
|
|
5
|
-
const env
|
|
5
|
+
const env = require("@prosopo/env");
|
|
6
6
|
const provider = require("@prosopo/provider");
|
|
7
7
|
const cors = require("cors");
|
|
8
8
|
const express = require("express");
|
|
9
9
|
const rateLimit = require("express-rate-limit");
|
|
10
|
-
const
|
|
10
|
+
const dotenv = require("@prosopo/dotenv");
|
|
11
11
|
const process_env = require("./process.env.cjs");
|
|
12
12
|
const prosopo_config = require("./prosopo.config.cjs");
|
|
13
13
|
function startApi(env2, admin = false) {
|
|
@@ -35,28 +35,27 @@ function startApi(env2, admin = false) {
|
|
|
35
35
|
env2.logger.info(`Prosopo app listening at http://localhost:${apiPort}`);
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
async function start(env$
|
|
39
|
-
if (!env$
|
|
40
|
-
|
|
38
|
+
async function start(env$1, admin) {
|
|
39
|
+
if (!env$1) {
|
|
40
|
+
dotenv.loadEnv();
|
|
41
41
|
process_env.getDB();
|
|
42
42
|
const secret = process_env.getSecret();
|
|
43
|
-
const config = prosopo_config(void 0, void 0,
|
|
43
|
+
const config = prosopo_config(void 0, void 0, {
|
|
44
44
|
solved: { count: 2 },
|
|
45
45
|
unsolved: { count: 0 }
|
|
46
46
|
});
|
|
47
47
|
const pair = await contract.getPairAsync(
|
|
48
|
-
config.networks[config.defaultNetwork],
|
|
49
48
|
secret,
|
|
50
49
|
""
|
|
51
50
|
);
|
|
52
|
-
env$
|
|
51
|
+
env$1 = new env.ProviderEnvironment(config, pair);
|
|
53
52
|
}
|
|
54
|
-
await env$
|
|
55
|
-
if (env$
|
|
56
|
-
provider.storeCaptchasExternally(env$
|
|
53
|
+
await env$1.isReady();
|
|
54
|
+
if (env$1.pair) {
|
|
55
|
+
provider.storeCaptchasExternally(env$1.pair, env$1.config).catch((err) => {
|
|
57
56
|
console.error("Failed to start scheduler:", err);
|
|
58
57
|
});
|
|
59
58
|
}
|
|
60
|
-
return startApi(env$
|
|
59
|
+
return startApi(env$1, admin);
|
|
61
60
|
}
|
|
62
61
|
exports.start = start;
|
package/dist/cli.js
CHANGED
|
@@ -3,13 +3,13 @@ import { LogLevel, getLogger } from "@prosopo/common";
|
|
|
3
3
|
import { getPairAsync } from "@prosopo/contract";
|
|
4
4
|
import { isMain } from "@prosopo/util";
|
|
5
5
|
import { processArgs } from "./argv.js";
|
|
6
|
-
import { loadEnv } from "
|
|
6
|
+
import { loadEnv } from "@prosopo/dotenv";
|
|
7
7
|
import getConfig from "./prosopo.config.js";
|
|
8
8
|
import ReloadingAPI from "./reloader.js";
|
|
9
9
|
const log = getLogger(LogLevel.enum.info, "CLI");
|
|
10
10
|
async function main() {
|
|
11
11
|
const envPath = loadEnv();
|
|
12
|
-
const config = getConfig(undefined, undefined,
|
|
12
|
+
const config = getConfig(undefined, undefined, {
|
|
13
13
|
solved: { count: 2 },
|
|
14
14
|
unsolved: { count: 0 },
|
|
15
15
|
});
|
|
@@ -20,9 +20,8 @@ async function main() {
|
|
|
20
20
|
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
|
|
21
21
|
`);
|
|
22
22
|
}
|
|
23
|
-
const pair = await getPairAsync(config.
|
|
23
|
+
const pair = await getPairAsync(config.account.secret, config.account.address);
|
|
24
24
|
log.info(`Pair address: ${pair.address}`);
|
|
25
|
-
log.info(`Contract address: ${process.env.PROSOPO_CONTRACT_ADDRESS}`);
|
|
26
25
|
const processedArgs = await processArgs(process.argv, pair, config);
|
|
27
26
|
log.info(`Processsed args: ${JSON.stringify(processedArgs, null, 4)}`);
|
|
28
27
|
if (processedArgs.api) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAaA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAaA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;IAG3B,MAAM,MAAM,GAAwB,SAAS,CAC5C,SAAS,EACT,SAAS,EACT;QACC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QACpB,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;KACtB,CACD,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,EAAE;QAC7B,GAAG,CAAC,IAAI,CACN;;;;aAIO,CACR,CAAC;KACH;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,EACrB,MAAM,CAAC,OAAO,CAAC,OAAO,CACtB,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAE1C,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpE,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,aAAa,CAAC,GAAG,EAAE;QACrB,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;aACzD,KAAK,EAAE;aACP,IAAI,CAAC,GAAG,EAAE;YACT,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;KACN;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC;AAGD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;IACvC,IAAI,EAAE;SACH,IAAI,CAAC,GAAG,EAAE;QACT,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;CACN"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as commandProviderDeregister } from "./providerDeregister.js";
|
|
2
1
|
export { default as commandProviderSetDataset } from "./providerSetDataset.js";
|
|
2
|
+
export { default as commandStoreCaptchasExternally } from "./storeCaptchasExternally.js";
|
|
3
3
|
export { default as commandVersion } from "./version.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as commandProviderDeregister } from "./providerDeregister.js";
|
|
2
1
|
export { default as commandProviderSetDataset } from "./providerSetDataset.js";
|
|
2
|
+
export { default as commandStoreCaptchasExternally } from "./storeCaptchasExternally.js";
|
|
3
3
|
export { default as commandVersion } from "./version.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerDeregister.d.ts","sourceRoot":"","sources":["../../src/commands/providerDeregister.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providerDeregister.d.ts","sourceRoot":"","sources":["../../src/commands/providerDeregister.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAInE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;+BAI9C,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;qBAQV,IAAI;;;oBAMC,kBAAkB;;;;;AAjB5C,wBAmCE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerDeregister.js","sourceRoot":"","sources":["../../src/commands/providerDeregister.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providerDeregister.js","sourceRoot":"","sources":["../../src/commands/providerDeregister.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,eAAe,CACb,IAAiB,EACjB,MAA2B,EAC3B,OAA6B,EAC7B,EAAE;IACF,MAAM,MAAM,GACV,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;IAE9E,OAAO;QACL,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,uBAAuB;QACjC,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE,CACvB,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;YACtB,IAAI,EAAE,QAAiB;YACvB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,+BAA+B;SAC7B,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAE,EAAE;YAC1C,IAAI;gBACF,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAO7B,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAC;aACtD;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;QACH,CAAC;QACD,WAAW,EAAE,CAAC,eAAe,CAAC;KAC/B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerSetDataset.d.ts","sourceRoot":"","sources":["../../src/commands/providerSetDataset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providerSetDataset.d.ts","sourceRoot":"","sources":["../../src/commands/providerSetDataset.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAGnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;+BAK9C,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;qBASV,IAAI;;;oBAMC,kBAAkB;;;AAlB5C,wBAmCE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerSetDataset.js","sourceRoot":"","sources":["../../src/commands/providerSetDataset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providerSetDataset.js","sourceRoot":"","sources":["../../src/commands/providerSetDataset.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,eAAe,CACb,IAAiB,EACjB,MAA2B,EAC3B,OAA6B,EAC7B,EAAE;IACF,MAAM,MAAM,GACV,OAAO,EAAE,MAAM;QACf,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IAE7D,OAAO;QACL,OAAO,EAAE,uBAAuB;QAChC,QAAQ,EAAE,6BAA6B;QACvC,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE,CACvB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,QAAiB;YACvB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,sCAAsC;SACpC,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAE,EAAE;YAC1C,IAAI;gBACF,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAS,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;gBACxC,MAAM,MAAM,GACV,MAAM,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aAC9C;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;QACH,CAAC;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { KeyringPair } from "@polkadot/keyring/types";
|
|
2
|
+
import { type Logger } from "@prosopo/common";
|
|
3
|
+
import type { ProsopoConfigOutput } from "@prosopo/types";
|
|
4
|
+
declare const _default: (pair: KeyringPair, config: ProsopoConfigOutput, cmdArgs?: {
|
|
5
|
+
logger?: Logger;
|
|
6
|
+
}) => {
|
|
7
|
+
command: string;
|
|
8
|
+
describe: string;
|
|
9
|
+
handler: () => Promise<void>;
|
|
10
|
+
middlewares: never[];
|
|
11
|
+
};
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=storeCaptchasExternally.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeCaptchasExternally.d.ts","sourceRoot":"","sources":["../../src/commands/storeCaptchasExternally.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAGnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;+BAGlD,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;AAH/B,wBAyBE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LogLevel, getLogger } from "@prosopo/common";
|
|
2
|
+
import { ProviderEnvironment } from "@prosopo/env";
|
|
3
|
+
import { Tasks } from "@prosopo/provider";
|
|
4
|
+
export default (pair, config, cmdArgs) => {
|
|
5
|
+
const logger = cmdArgs?.logger || getLogger(LogLevel.enum.info, "cli.store_captchas");
|
|
6
|
+
return {
|
|
7
|
+
command: "store_captchas",
|
|
8
|
+
describe: "Store captcha records externally for billing purposes",
|
|
9
|
+
handler: async () => {
|
|
10
|
+
try {
|
|
11
|
+
const env = new ProviderEnvironment(config, pair);
|
|
12
|
+
await env.isReady();
|
|
13
|
+
const tasks = new Tasks(env);
|
|
14
|
+
await tasks.datasetManager.storeCommitmentsExternal().catch((err) => {
|
|
15
|
+
env.logger.error(err);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
logger.error(err);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
middlewares: [],
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=storeCaptchasExternally.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeCaptchasExternally.js","sourceRoot":"","sources":["../../src/commands/storeCaptchasExternally.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,eAAe,CACb,IAAiB,EACjB,MAA2B,EAC3B,OAA6B,EAC7B,EAAE;IACF,MAAM,MAAM,GACV,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAEzE,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,uDAAuD;QACjE,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI;gBACF,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,KAAK,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAClE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;QACH,CAAC;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -4,18 +4,9 @@ import type { ArgumentsCamelCase } from "yargs";
|
|
|
4
4
|
export declare const validateAddress: (argv: ArgumentsCamelCase) => {
|
|
5
5
|
address: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const validateContract: (argv: ArgumentsCamelCase) => {
|
|
8
|
-
address: string;
|
|
9
|
-
};
|
|
10
|
-
export declare const validatePayee: (argv: ArgumentsCamelCase) => {
|
|
11
|
-
payee: import("@prosopo/types").Payee;
|
|
12
|
-
} | undefined;
|
|
13
7
|
export declare const validateValue: (argv: ArgumentsCamelCase) => {
|
|
14
8
|
value: Compact<u128>;
|
|
15
9
|
};
|
|
16
|
-
export declare const validateFee: (argv: ArgumentsCamelCase) => {
|
|
17
|
-
fee: Compact<u128>;
|
|
18
|
-
};
|
|
19
10
|
export declare const validateScheduleExpression: (argv: ArgumentsCamelCase) => {
|
|
20
11
|
schedule: string;
|
|
21
12
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/commands/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/commands/validators.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAK5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,eAAO,MAAM,eAAe,SACpB,kBAAkB;aACZ,MAAM;CAInB,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,kBAAkB;;CAQrD,CAAC;AAEF,eAAO,MAAM,0BAA0B,SAAU,kBAAkB;;;;CAgBlE,CAAC"}
|
|
@@ -1,32 +1,10 @@
|
|
|
1
1
|
import { ProsopoEnvError } from "@prosopo/common";
|
|
2
2
|
import { encodeStringAddress } from "@prosopo/provider";
|
|
3
|
-
import { PayeeSchema } from "@prosopo/types";
|
|
4
|
-
import { lodash } from "@prosopo/util/lodash";
|
|
5
3
|
import parser from "cron-parser";
|
|
6
|
-
import * as z from "zod";
|
|
7
4
|
export const validateAddress = (argv) => {
|
|
8
5
|
const address = encodeStringAddress(argv.address);
|
|
9
6
|
return { address };
|
|
10
7
|
};
|
|
11
|
-
export const validateContract = (argv) => {
|
|
12
|
-
const address = encodeStringAddress(argv.contract);
|
|
13
|
-
return { address };
|
|
14
|
-
};
|
|
15
|
-
export const validatePayee = (argv) => {
|
|
16
|
-
try {
|
|
17
|
-
if (!argv.payee)
|
|
18
|
-
return;
|
|
19
|
-
const _ = lodash();
|
|
20
|
-
const payeeArg = _.capitalize(z.string().parse(argv.payee));
|
|
21
|
-
const payee = PayeeSchema.parse(payeeArg);
|
|
22
|
-
return { payee };
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
throw new ProsopoEnvError("CLI.PARAMETER_ERROR", {
|
|
26
|
-
context: { payee: [argv.payee], error },
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
8
|
export const validateValue = (argv) => {
|
|
31
9
|
if (typeof argv.value !== "number") {
|
|
32
10
|
throw new ProsopoEnvError("CLI.PARAMETER_ERROR", {
|
|
@@ -36,15 +14,6 @@ export const validateValue = (argv) => {
|
|
|
36
14
|
const value = argv.value;
|
|
37
15
|
return { value };
|
|
38
16
|
};
|
|
39
|
-
export const validateFee = (argv) => {
|
|
40
|
-
if (typeof argv.fee !== "number") {
|
|
41
|
-
throw new ProsopoEnvError("CLI.PARAMETER_ERROR", {
|
|
42
|
-
context: { name: validateValue.name, fee: argv.fee },
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
const fee = argv.fee;
|
|
46
|
-
return { fee };
|
|
47
|
-
};
|
|
48
17
|
export const validateScheduleExpression = (argv) => {
|
|
49
18
|
if (typeof argv.schedule === "string") {
|
|
50
19
|
const result = parser.parseString(argv.schedule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/commands/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/commands/validators.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,MAAM,MAAM,aAAa,CAAC;AAIjC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAwB,EACH,EAAE;IACvB,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC;IAE5D,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAE,EAAE;IACxD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;QAClC,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE;YAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACjC,CAAC,CAAC;KACJ;IACD,MAAM,KAAK,GAAkB,IAAI,CAAC,KAAiC,CAAC;IACpE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAwB,EAAE,EAAE;IACrE,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;YAClC,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE;gBAC/C,OAAO,EAAE;oBACP,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrB,cAAc,EAAE,0BAA0B,CAAC,IAAI;iBAChD;aACF,CAAC,CAAC;SACJ;QAED,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAkB,EAAE,CAAC;KAC9C;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/prosopo.config.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type BatchCommitConfigSchema, type ProsopoCaptchaCountConfigSchemaInput, type ProsopoCaptchaSolutionConfigSchema, type ProsopoConfigOutput
|
|
2
|
-
export default function getConfig(
|
|
1
|
+
import { type BatchCommitConfigSchema, type ProsopoCaptchaCountConfigSchemaInput, type ProsopoCaptchaSolutionConfigSchema, type ProsopoConfigOutput } from "@prosopo/types";
|
|
2
|
+
export default function getConfig(captchaSolutionsConfig?: typeof ProsopoCaptchaSolutionConfigSchema, batchCommitConfig?: typeof BatchCommitConfigSchema, captchaServeConfig?: ProsopoCaptchaCountConfigSchemaInput, who?: string): ProsopoConfigOutput;
|
|
3
3
|
//# sourceMappingURL=prosopo.config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prosopo.config.d.ts","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"prosopo.config.d.ts","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,uBAAuB,EAG5B,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAC;AAkBxB,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,sBAAsB,CAAC,EAAE,OAAO,kCAAkC,EAClE,iBAAiB,CAAC,EAAE,OAAO,uBAAuB,EAClD,kBAAkB,CAAC,EAAE,oCAAoC,EACzD,GAAG,SAAa,GACf,mBAAmB,CAmDrB"}
|
package/dist/prosopo.config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LogLevel, getLogLevel, getLogger } from "@prosopo/common";
|
|
2
|
-
import { DatabaseTypes, EnvironmentTypesSchema,
|
|
2
|
+
import { DatabaseTypes, EnvironmentTypesSchema, ProsopoConfigSchema, } from "@prosopo/types";
|
|
3
3
|
import { getRateLimitConfig } from "./RateLimiter.js";
|
|
4
4
|
import { getAddress, getPassword, getSecret } from "./process.env.js";
|
|
5
5
|
const logger = getLogger(LogLevel.enum.info, "Config");
|
|
@@ -14,15 +14,12 @@ function getMongoURI() {
|
|
|
14
14
|
const mongoURI = `${protocol}://${username}:${password}@${host}${port}/${retries}`;
|
|
15
15
|
return mongoURI;
|
|
16
16
|
}
|
|
17
|
-
export default function getConfig(
|
|
17
|
+
export default function getConfig(captchaSolutionsConfig, batchCommitConfig, captchaServeConfig, who = "PROVIDER") {
|
|
18
18
|
return ProsopoConfigSchema.parse({
|
|
19
19
|
logLevel: getLogLevel(),
|
|
20
20
|
defaultEnvironment: process.env.PROSOPO_DEFAULT_ENVIRONMENT
|
|
21
21
|
? EnvironmentTypesSchema.parse(process.env.PROSOPO_DEFAULT_ENVIRONMENT)
|
|
22
22
|
: EnvironmentTypesSchema.enum.development,
|
|
23
|
-
defaultNetwork: process.env.PROSOPO_DEFAULT_NETWORK
|
|
24
|
-
? NetworkNamesSchema.parse(process.env.PROSOPO_DEFAULT_NETWORK)
|
|
25
|
-
: NetworkNamesSchema.enum.development,
|
|
26
23
|
account: {
|
|
27
24
|
address: getAddress(who),
|
|
28
25
|
password: getPassword(who),
|
|
@@ -54,7 +51,6 @@ export default function getConfig(networksConfig, captchaSolutionsConfig, batchC
|
|
|
54
51
|
? Number.parseInt(process.env.PROSOPO_API_PORT)
|
|
55
52
|
: 9229,
|
|
56
53
|
},
|
|
57
|
-
networks: networksConfig,
|
|
58
54
|
captchaSolutions: captchaSolutionsConfig,
|
|
59
55
|
batchCommit: batchCommitConfig,
|
|
60
56
|
captchas: captchaServeConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAEL,aAAa,EACb,sBAAsB,
|
|
1
|
+
{"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"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"}
|
package/dist/reloader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reloader.d.ts","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reloader.d.ts","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAMtD,MAAM,CAAC,OAAO,OAAO,YAAY;IAE/B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,WAAW,CAAU;gBAG3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,oBAAoB;IASxB,KAAK;IASL,IAAI;YASH,SAAS;CAYxB"}
|
package/dist/reloader.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import { LogLevel, getLogger } from "@prosopo/common";
|
|
3
3
|
import { ProviderEnvironment } from "@prosopo/env";
|
|
4
|
-
import { loadEnv } from "
|
|
4
|
+
import { loadEnv } from "@prosopo/dotenv";
|
|
5
5
|
import { start } from "./start.js";
|
|
6
6
|
const log = getLogger(LogLevel.enum.info, "CLI");
|
|
7
7
|
export default class ReloadingAPI {
|
package/dist/reloader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reloader.js","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reloader.js","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,YAAY;IAU/B,YACE,OAAe,EACf,MAA2B,EAC3B,IAAiB,EACjB,aAAmC;QAEnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5C,GAAG,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA8CnD,wBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,mBA8BrE"}
|
package/dist/start.js
CHANGED
|
@@ -5,7 +5,7 @@ import { prosopoAdminRouter, prosopoRouter, prosopoVerifyRouter, storeCaptchasEx
|
|
|
5
5
|
import cors from "cors";
|
|
6
6
|
import express from "express";
|
|
7
7
|
import rateLimit from "express-rate-limit";
|
|
8
|
-
import { loadEnv } from "
|
|
8
|
+
import { loadEnv } from "@prosopo/dotenv";
|
|
9
9
|
import { getDB, getSecret } from "./process.env.js";
|
|
10
10
|
import getConfig from "./prosopo.config.js";
|
|
11
11
|
function startApi(env, admin = false) {
|
|
@@ -35,11 +35,11 @@ export async function start(env, admin) {
|
|
|
35
35
|
loadEnv();
|
|
36
36
|
getDB();
|
|
37
37
|
const secret = getSecret();
|
|
38
|
-
const config = getConfig(undefined, undefined,
|
|
38
|
+
const config = getConfig(undefined, undefined, {
|
|
39
39
|
solved: { count: 2 },
|
|
40
40
|
unsolved: { count: 0 },
|
|
41
41
|
});
|
|
42
|
-
const pair = await getPairAsync(
|
|
42
|
+
const pair = await getPairAsync(secret, "");
|
|
43
43
|
env = new ProviderEnvironment(config, pair);
|
|
44
44
|
}
|
|
45
45
|
await env.isReady();
|
package/dist/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|