@prosopo/cli 3.0.10 → 3.1.1
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/CHANGELOG.md +48 -0
- package/dist/RateLimiter.js +59 -57
- package/dist/argv.js +29 -25
- package/dist/bundle/{i18nBackend-DDiD0rVZ.js → i18nBackend-B5QB3n19.js} +48 -45
- package/dist/bundle/provider.cli.bundle.js +65234 -66227
- package/dist/cjs/cli.cjs +4 -13
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/reloader.cjs +6 -16
- package/dist/cjs/start.cjs +0 -4
- package/dist/cli.js +35 -45
- package/dist/commands/index.js +12 -6
- package/dist/commands/providerSetDataset.js +39 -39
- package/dist/commands/siteKeyRegister.js +82 -79
- package/dist/commands/siteKeyRegisterApi.js +90 -81
- package/dist/commands/storeCaptchasExternally.js +23 -24
- package/dist/commands/validators.js +32 -27
- package/dist/commands/version.js +15 -13
- package/dist/files.js +31 -29
- package/dist/index.js +20 -7
- package/dist/process.env.js +38 -37
- package/dist/prosopo.config.js +85 -90
- package/dist/reloader.js +54 -54
- package/dist/start.js +118 -90
- package/package.json +22 -19
- package/vite.cjs.config.ts +4 -1
- package/vite.esm.config.ts +20 -0
- package/dist/RateLimiter.d.ts +0 -55
- package/dist/RateLimiter.d.ts.map +0 -1
- package/dist/RateLimiter.js.map +0 -1
- package/dist/argv.d.ts +0 -22
- package/dist/argv.d.ts.map +0 -1
- package/dist/argv.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/index.d.ts +0 -6
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/providerSetDataset.d.ts +0 -17
- package/dist/commands/providerSetDataset.d.ts.map +0 -1
- package/dist/commands/providerSetDataset.js.map +0 -1
- package/dist/commands/siteKeyRegister.d.ts +0 -57
- package/dist/commands/siteKeyRegister.d.ts.map +0 -1
- package/dist/commands/siteKeyRegister.js.map +0 -1
- package/dist/commands/siteKeyRegisterApi.d.ts +0 -33
- package/dist/commands/siteKeyRegisterApi.d.ts.map +0 -1
- package/dist/commands/siteKeyRegisterApi.js.map +0 -1
- package/dist/commands/storeCaptchasExternally.d.ts +0 -13
- package/dist/commands/storeCaptchasExternally.d.ts.map +0 -1
- package/dist/commands/storeCaptchasExternally.js.map +0 -1
- package/dist/commands/validators.d.ts +0 -18
- package/dist/commands/validators.d.ts.map +0 -1
- package/dist/commands/validators.js.map +0 -1
- package/dist/commands/version.d.ts +0 -12
- package/dist/commands/version.d.ts.map +0 -1
- package/dist/commands/version.js.map +0 -1
- package/dist/files.d.ts +0 -4
- package/dist/files.d.ts.map +0 -1
- package/dist/files.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/process.env.d.ts +0 -8
- package/dist/process.env.d.ts.map +0 -1
- package/dist/process.env.js.map +0 -1
- package/dist/prosopo.config.d.ts +0 -3
- package/dist/prosopo.config.d.ts.map +0 -1
- package/dist/prosopo.config.js.map +0 -1
- package/dist/reloader.d.ts +0 -22
- package/dist/reloader.d.ts.map +0 -1
- package/dist/reloader.js.map +0 -1
- package/dist/start.d.ts +0 -5
- package/dist/start.d.ts.map +0 -1
- package/dist/start.js.map +0 -1
- package/dist/tests/bundle/bundle.unit.test.d.ts +0 -2
- package/dist/tests/bundle/bundle.unit.test.d.ts.map +0 -1
- package/dist/tests/bundle/bundle.unit.test.js +0 -14
- package/dist/tests/bundle/bundle.unit.test.js.map +0 -1
package/dist/cjs/cli.cjs
CHANGED
|
@@ -11,10 +11,7 @@ const reloader = require("./reloader.cjs");
|
|
|
11
11
|
const log = common.getLogger(common.LogLevel.enum.info, "CLI");
|
|
12
12
|
async function main() {
|
|
13
13
|
const envPath = dotenv.loadEnv();
|
|
14
|
-
const config = prosopo_config(
|
|
15
|
-
solved: { count: 2 },
|
|
16
|
-
unsolved: { count: 0 }
|
|
17
|
-
});
|
|
14
|
+
const config = prosopo_config();
|
|
18
15
|
if (config.devOnlyWatchEvents) {
|
|
19
16
|
log.warn(() => ({
|
|
20
17
|
msg: `
|
|
@@ -38,15 +35,9 @@ async function main() {
|
|
|
38
35
|
);
|
|
39
36
|
log.info(() => ({ data: { cliArgs: processedArgs } }));
|
|
40
37
|
if (processedArgs.api) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
});
|
|
45
|
-
} else {
|
|
46
|
-
await new reloader(envPath, config, pair, authAccount, processedArgs).start().then(() => {
|
|
47
|
-
log.info(() => ({ msg: "Reloading API started..." }));
|
|
48
|
-
});
|
|
49
|
-
}
|
|
38
|
+
await new reloader(envPath, config, pair, authAccount, processedArgs).start().then(() => {
|
|
39
|
+
log.info(() => ({ msg: "Reloading API started..." }));
|
|
40
|
+
});
|
|
50
41
|
} else {
|
|
51
42
|
process.exit(0);
|
|
52
43
|
}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -8,7 +8,6 @@ const files = require("./files.cjs");
|
|
|
8
8
|
const prosopo_config = require("./prosopo.config.cjs");
|
|
9
9
|
exports.processArgs = argv.processArgs;
|
|
10
10
|
exports.start = start.start;
|
|
11
|
-
exports.startDev = start.startDev;
|
|
12
11
|
exports.getAddress = process_env.getAddress;
|
|
13
12
|
exports.getDB = process_env.getDB;
|
|
14
13
|
exports.getPairType = process_env.getPairType;
|
package/dist/cjs/reloader.cjs
CHANGED
|
@@ -15,35 +15,25 @@ class ReloadingAPI {
|
|
|
15
15
|
this._restarting = false;
|
|
16
16
|
}
|
|
17
17
|
get env() {
|
|
18
|
+
if (!this._env) {
|
|
19
|
+
throw new Error("Environment not initialized. Call start() first.");
|
|
20
|
+
}
|
|
18
21
|
return this._env;
|
|
19
22
|
}
|
|
20
23
|
async start(reloadEnv = false) {
|
|
21
24
|
log.info(() => ({ msg: "Starting API" }));
|
|
22
25
|
this._envWatcher = await this._watchEnv();
|
|
23
26
|
dotenv.loadEnv();
|
|
24
|
-
if (!this._env
|
|
25
|
-
|
|
27
|
+
if (!this._env || reloadEnv) {
|
|
28
|
+
this._env = new env.ProviderEnvironment(
|
|
26
29
|
this._config,
|
|
27
30
|
this._pair,
|
|
28
31
|
this._authAccount
|
|
29
32
|
);
|
|
30
|
-
await env$1.isReady();
|
|
31
|
-
this._env = env$1;
|
|
32
33
|
}
|
|
34
|
+
await this.env.isReady();
|
|
33
35
|
this.api = await start.start(this.env, !!this._processedArgs.adminApi);
|
|
34
36
|
}
|
|
35
|
-
async startDev() {
|
|
36
|
-
log.info(() => ({ msg: "Starting API" }));
|
|
37
|
-
this._envWatcher = await this._watchEnv();
|
|
38
|
-
dotenv.loadEnv();
|
|
39
|
-
const env$1 = new env.ProviderEnvironment(
|
|
40
|
-
this._config,
|
|
41
|
-
this._pair,
|
|
42
|
-
this._authAccount
|
|
43
|
-
);
|
|
44
|
-
await env$1.isReady();
|
|
45
|
-
this.api = await start.startDev(env$1, !!this._processedArgs.adminApi);
|
|
46
|
-
}
|
|
47
37
|
async stop() {
|
|
48
38
|
log.info(() => ({ msg: "Stopping API" }));
|
|
49
39
|
return new Promise((resolve) => {
|
package/dist/cjs/start.cjs
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
|
-
import {
|
|
2
|
+
import { getLogger, LogLevel } from "@prosopo/common";
|
|
3
3
|
import { loadEnv } from "@prosopo/dotenv";
|
|
4
4
|
import { getPair } from "@prosopo/keyring";
|
|
5
5
|
import { loadI18next } from "@prosopo/locale";
|
|
@@ -9,54 +9,44 @@ import getConfig from "./prosopo.config.js";
|
|
|
9
9
|
import ReloadingAPI from "./reloader.js";
|
|
10
10
|
const log = getLogger(LogLevel.enum.info, "CLI");
|
|
11
11
|
async function main() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (config.devOnlyWatchEvents) {
|
|
18
|
-
log.warn(() => ({
|
|
19
|
-
msg: `
|
|
12
|
+
const envPath = loadEnv();
|
|
13
|
+
const config = getConfig();
|
|
14
|
+
if (config.devOnlyWatchEvents) {
|
|
15
|
+
log.warn(() => ({
|
|
16
|
+
msg: `
|
|
20
17
|
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
|
|
21
18
|
EVENT TRACKING ON. IF NOT DEVELOPMENT, PLEASE STOP, CHANGE THE ENVIRONMENT, AND RESTART
|
|
22
19
|
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
|
|
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
|
-
else {
|
|
48
|
-
process.exit(0);
|
|
49
|
-
}
|
|
20
|
+
`
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
const pair = getPair(config.account.secret, config.account.address);
|
|
24
|
+
const authAccount = getPair(
|
|
25
|
+
config.authAccount.secret,
|
|
26
|
+
config.authAccount.address
|
|
27
|
+
);
|
|
28
|
+
log.info(() => ({ data: { pairAddress: pair.address } }));
|
|
29
|
+
const processedArgs = await processArgs(
|
|
30
|
+
process.argv,
|
|
31
|
+
pair,
|
|
32
|
+
authAccount,
|
|
33
|
+
config
|
|
34
|
+
);
|
|
35
|
+
log.info(() => ({ data: { cliArgs: processedArgs } }));
|
|
36
|
+
if (processedArgs.api) {
|
|
37
|
+
await new ReloadingAPI(envPath, config, pair, authAccount, processedArgs).start().then(() => {
|
|
38
|
+
log.info(() => ({ msg: "Reloading API started..." }));
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
50
43
|
}
|
|
51
44
|
if (isMain(import.meta.url, "provider")) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
.catch((error) => {
|
|
58
|
-
log.error(() => ({ err: error }));
|
|
59
|
-
});
|
|
45
|
+
loadI18next(true).then(() => {
|
|
46
|
+
main().then(() => {
|
|
47
|
+
log.info(() => ({ msg: "Running main process..." }));
|
|
48
|
+
}).catch((error) => {
|
|
49
|
+
log.error(() => ({ err: error }));
|
|
60
50
|
});
|
|
51
|
+
});
|
|
61
52
|
}
|
|
62
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/commands/index.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { default as default2 } from "./providerSetDataset.js";
|
|
2
|
+
import { default as default3 } from "./storeCaptchasExternally.js";
|
|
3
|
+
import { default as default4 } from "./version.js";
|
|
4
|
+
import { default as default5 } from "./siteKeyRegister.js";
|
|
5
|
+
import { default as default6 } from "./siteKeyRegisterApi.js";
|
|
6
|
+
export {
|
|
7
|
+
default2 as commandProviderSetDataset,
|
|
8
|
+
default5 as commandSiteKeyRegister,
|
|
9
|
+
default6 as commandSiteKeyRegisterApi,
|
|
10
|
+
default3 as commandStoreCaptchasExternally,
|
|
11
|
+
default4 as commandVersion
|
|
12
|
+
};
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getLogger, LogLevel } from "@prosopo/common";
|
|
2
2
|
import { ProviderEnvironment } from "@prosopo/env";
|
|
3
3
|
import { Tasks } from "@prosopo/provider";
|
|
4
4
|
import * as z from "zod";
|
|
5
5
|
import { loadJSONFile } from "../files.js";
|
|
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
|
-
|
|
6
|
+
const commandProviderSetDataset = (pair, config, cmdArgs) => {
|
|
7
|
+
const logger = cmdArgs?.logger || getLogger(LogLevel.enum.info, "cli.provider_set_data_set");
|
|
8
|
+
return {
|
|
9
|
+
command: "provider_set_data_set",
|
|
10
|
+
describe: "Add a dataset as a Provider",
|
|
11
|
+
builder: (yargs) => yargs.option("file", {
|
|
12
|
+
type: "string",
|
|
13
|
+
demand: true,
|
|
14
|
+
desc: "The file path of a JSON dataset file"
|
|
15
|
+
}),
|
|
16
|
+
handler: async (argv) => {
|
|
17
|
+
try {
|
|
18
|
+
const env = new ProviderEnvironment(config, pair);
|
|
19
|
+
await env.isReady();
|
|
20
|
+
const tasks = new Tasks(env);
|
|
21
|
+
const file = z.string().parse(argv.file);
|
|
22
|
+
const jsonFile = loadJSONFile(file);
|
|
23
|
+
logger.info(() => ({
|
|
24
|
+
data: { file },
|
|
25
|
+
msg: "Loading JSON"
|
|
26
|
+
}));
|
|
27
|
+
const result = await tasks.datasetManager.providerSetDatasetFromFile(jsonFile);
|
|
28
|
+
logger.info(() => ({
|
|
29
|
+
data: { file },
|
|
30
|
+
msg: "Loaded JSON"
|
|
31
|
+
}));
|
|
32
|
+
} catch (err) {
|
|
33
|
+
logger.error(() => ({
|
|
34
|
+
err,
|
|
35
|
+
msg: "Error loading JSON"
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
middlewares: []
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export {
|
|
43
|
+
commandProviderSetDataset as default
|
|
43
44
|
};
|
|
44
|
-
//# sourceMappingURL=providerSetDataset.js.map
|
|
@@ -1,85 +1,88 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getLogger, LogLevel } from "@prosopo/common";
|
|
2
2
|
import { ProviderEnvironment } from "@prosopo/env";
|
|
3
3
|
import { Tasks } from "@prosopo/provider";
|
|
4
|
-
import { CaptchaTypeSpec, Tier
|
|
4
|
+
import { CaptchaTypeSpec, Tier } from "@prosopo/types";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { validateSiteKey } from "./validators.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
const SiteKeyRegisterCommandArgsSpec = z.object({
|
|
8
|
+
sitekey: z.string(),
|
|
9
|
+
tier: z.nativeEnum(Tier),
|
|
10
|
+
captcha_type: CaptchaTypeSpec,
|
|
11
|
+
frictionless_threshold: z.number().max(1).min(0),
|
|
12
|
+
pow_difficulty: z.number(),
|
|
13
|
+
domains: z.array(z.string()),
|
|
14
|
+
image_threshold: z.number().max(1).min(0)
|
|
15
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
16
|
+
const commandSiteKeyRegister = (pair, config, cmdArgs) => {
|
|
17
|
+
const logger = cmdArgs?.logger || getLogger(LogLevel.enum.info, "cli.dapp_register");
|
|
18
|
+
return {
|
|
19
|
+
command: "site_key_register <sitekey> <tier>",
|
|
20
|
+
describe: "Register a Site Key",
|
|
21
|
+
builder: (yargs) => yargs.positional("sitekey", {
|
|
22
|
+
type: "string",
|
|
23
|
+
demandOption: true,
|
|
24
|
+
desc: "The AccountId of the application to register the Site Key with"
|
|
25
|
+
}).option("tier", {
|
|
26
|
+
type: "string",
|
|
27
|
+
demandOption: false,
|
|
28
|
+
desc: "The AccountId of the application to register the Site Key with"
|
|
29
|
+
}).option("captcha_type", {
|
|
30
|
+
type: "string",
|
|
31
|
+
demandOption: false,
|
|
32
|
+
desc: "Captcha type for settings"
|
|
33
|
+
}).option("domains", {
|
|
34
|
+
type: "array",
|
|
35
|
+
demandOption: false,
|
|
36
|
+
desc: "Domains for settings"
|
|
37
|
+
}).option("frictionless_threshold", {
|
|
38
|
+
type: "number",
|
|
39
|
+
demandOption: false,
|
|
40
|
+
desc: "Frictionless threshold for settings"
|
|
41
|
+
}).option("pow_difficulty", {
|
|
42
|
+
type: "number",
|
|
43
|
+
demandOption: false,
|
|
44
|
+
desc: "POW difficulty for settings"
|
|
45
|
+
}).option("image_threshold", {
|
|
46
|
+
type: "number",
|
|
47
|
+
demandOption: false,
|
|
48
|
+
desc: "Image threshold for settings"
|
|
49
|
+
}),
|
|
50
|
+
handler: async (argv) => {
|
|
51
|
+
try {
|
|
52
|
+
const env = new ProviderEnvironment(config, pair);
|
|
53
|
+
await env.isReady();
|
|
54
|
+
const {
|
|
55
|
+
sitekey,
|
|
56
|
+
tier,
|
|
57
|
+
captcha_type,
|
|
58
|
+
frictionless_threshold,
|
|
59
|
+
pow_difficulty,
|
|
60
|
+
domains,
|
|
61
|
+
image_threshold
|
|
62
|
+
} = SiteKeyRegisterCommandArgsSpec.parse(argv);
|
|
63
|
+
const tasks = new Tasks(env);
|
|
64
|
+
await tasks.clientTaskManager.registerSiteKey(sitekey, tier, {
|
|
65
|
+
captchaType: CaptchaTypeSpec.parse(captcha_type),
|
|
66
|
+
frictionlessThreshold: frictionless_threshold,
|
|
67
|
+
domains: domains || [],
|
|
68
|
+
powDifficulty: pow_difficulty,
|
|
69
|
+
imageThreshold: image_threshold
|
|
70
|
+
});
|
|
71
|
+
logger.info(() => ({
|
|
72
|
+
data: { sitekey },
|
|
73
|
+
msg: "Site Key registered"
|
|
74
|
+
}));
|
|
75
|
+
} catch (err) {
|
|
76
|
+
logger.error(() => ({
|
|
77
|
+
err,
|
|
78
|
+
msg: "Error registering Site Key"
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
middlewares: [validateSiteKey]
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
export {
|
|
86
|
+
SiteKeyRegisterCommandArgsSpec,
|
|
87
|
+
commandSiteKeyRegister as default
|
|
84
88
|
};
|
|
85
|
-
//# sourceMappingURL=siteKeyRegister.js.map
|
|
@@ -1,88 +1,97 @@
|
|
|
1
1
|
import { ProviderApi } from "@prosopo/api";
|
|
2
|
-
import {
|
|
2
|
+
import { getLogger, LogLevel } from "@prosopo/common";
|
|
3
3
|
import { ProviderEnvironment } from "@prosopo/env";
|
|
4
|
-
import { CaptchaTypeSpec, Tier
|
|
4
|
+
import { CaptchaTypeSpec, Tier } from "@prosopo/types";
|
|
5
5
|
import { u8aToHex } from "@prosopo/util";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { SiteKeyRegisterCommandArgsSpec } from "./siteKeyRegister.js";
|
|
8
8
|
import { validateSiteKey } from "./validators.js";
|
|
9
|
-
const SiteKeyRegisterApiCommandArgsSpec = SiteKeyRegisterCommandArgsSpec.extend(
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
9
|
+
const SiteKeyRegisterApiCommandArgsSpec = SiteKeyRegisterCommandArgsSpec.extend(
|
|
10
|
+
{
|
|
11
|
+
url: z.string()
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
const commandSiteKeyRegisterApi = (pair, authAccount, config, cmdArgs) => {
|
|
15
|
+
const logger = cmdArgs?.logger || getLogger(LogLevel.enum.info, "cli.dapp_register");
|
|
16
|
+
return {
|
|
17
|
+
command: "site_key_register_api <sitekey> <url>",
|
|
18
|
+
describe: "Register a Site Key",
|
|
19
|
+
builder: (yargs) => yargs.positional("sitekey", {
|
|
20
|
+
type: "string",
|
|
21
|
+
demandOption: true,
|
|
22
|
+
desc: "The AccountId of the application to register the Site Key with"
|
|
23
|
+
}).positional("tier", {
|
|
24
|
+
choices: Object.values(Tier),
|
|
25
|
+
demandOption: true,
|
|
26
|
+
desc: "The tier of the account"
|
|
27
|
+
}).option("url", {
|
|
28
|
+
type: "string",
|
|
29
|
+
demandOption: true,
|
|
30
|
+
desc: "Provider URL to register the Site Key with"
|
|
31
|
+
}).option("captcha_type", {
|
|
32
|
+
type: "string",
|
|
33
|
+
demandOption: false,
|
|
34
|
+
desc: "Captcha type for settings"
|
|
35
|
+
}).option("frictionless_threshold", {
|
|
36
|
+
type: "number",
|
|
37
|
+
demandOption: false,
|
|
38
|
+
desc: "Frictionless threshold for settings"
|
|
39
|
+
}).option("domains", {
|
|
40
|
+
type: "array",
|
|
41
|
+
demandOption: false,
|
|
42
|
+
desc: "URLs for settings"
|
|
43
|
+
}).option("pow_difficulty", {
|
|
44
|
+
type: "number",
|
|
45
|
+
demandOption: false,
|
|
46
|
+
desc: "POW difficulty for settings"
|
|
47
|
+
}).option("image_threshold", {
|
|
48
|
+
type: "number",
|
|
49
|
+
demandOption: false,
|
|
50
|
+
desc: "Image threshold for settings"
|
|
51
|
+
}),
|
|
52
|
+
handler: async (argv) => {
|
|
53
|
+
try {
|
|
54
|
+
const env = new ProviderEnvironment(config, pair, authAccount);
|
|
55
|
+
await env.isReady();
|
|
56
|
+
const {
|
|
57
|
+
sitekey,
|
|
58
|
+
captcha_type,
|
|
59
|
+
frictionless_threshold,
|
|
60
|
+
url,
|
|
61
|
+
domains,
|
|
62
|
+
pow_difficulty,
|
|
63
|
+
image_threshold
|
|
64
|
+
} = SiteKeyRegisterApiCommandArgsSpec.parse(argv);
|
|
65
|
+
const api = new ProviderApi(url, pair.address);
|
|
66
|
+
const timestamp = (/* @__PURE__ */ new Date()).getTime().toString();
|
|
67
|
+
const signature = u8aToHex(authAccount.sign(timestamp));
|
|
68
|
+
await api.registerSiteKey(
|
|
69
|
+
sitekey,
|
|
70
|
+
argv.tier,
|
|
71
|
+
{
|
|
72
|
+
captchaType: CaptchaTypeSpec.parse(captcha_type),
|
|
73
|
+
frictionlessThreshold: frictionless_threshold,
|
|
74
|
+
domains: domains || [],
|
|
75
|
+
powDifficulty: pow_difficulty,
|
|
76
|
+
imageThreshold: image_threshold
|
|
77
|
+
},
|
|
78
|
+
timestamp,
|
|
79
|
+
signature
|
|
80
|
+
);
|
|
81
|
+
logger.info(() => ({
|
|
82
|
+
data: { sitekey },
|
|
83
|
+
msg: "Site Key registered"
|
|
84
|
+
}));
|
|
85
|
+
} catch (err) {
|
|
86
|
+
logger.error(() => ({
|
|
87
|
+
err,
|
|
88
|
+
msg: "Error registering Site Key"
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
middlewares: [validateSiteKey]
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
export {
|
|
96
|
+
commandSiteKeyRegisterApi as default
|
|
87
97
|
};
|
|
88
|
-
//# sourceMappingURL=siteKeyRegisterApi.js.map
|