@prosopo/cli 3.10.2 → 3.10.4
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/.turbo/turbo-build$colon$cjs.log +7 -7
- package/.turbo/turbo-build$colon$esm.log +5 -5
- package/.turbo/turbo-build$colon$tsc.log +33 -33
- package/CHANGELOG.md +57 -0
- package/Dockerfile +3 -2
- package/dist/bundle/decodePayload.js +1 -1
- package/dist/bundle/prosopo-native-bundle-payload.node +0 -0
- package/dist/bundle/provider.cli.bundle.js +10486 -10126
- package/dist/cjs/commands/ensureIndexes.cjs +1 -3
- package/dist/cjs/files.cjs +7 -1
- package/dist/cjs/prosopo.config.cjs +18 -2
- package/dist/cjs/start.cjs +1 -4
- package/dist/esm/commands/ensureIndexes.js +1 -3
- package/dist/esm/files.js +7 -1
- package/dist/esm/prosopo.config.js +18 -3
- package/dist/esm/start.js +1 -4
- package/dist/tsc/commands/ensureIndexes.d.ts.map +1 -1
- package/dist/tsc/commands/ensureIndexes.js +0 -3
- package/dist/tsc/commands/ensureIndexes.js.map +1 -1
- package/dist/tsc/files.d.ts.map +1 -1
- package/dist/tsc/files.js +7 -1
- package/dist/tsc/files.js.map +1 -1
- package/dist/tsc/prosopo.config.d.ts +2 -0
- package/dist/tsc/prosopo.config.d.ts.map +1 -1
- package/dist/tsc/prosopo.config.js +10 -6
- package/dist/tsc/prosopo.config.js.map +1 -1
- package/dist/tsc/start.d.ts.map +1 -1
- package/dist/tsc/start.js +1 -6
- package/dist/tsc/start.js.map +1 -1
- package/dist/tsc/tests/files.unit.test.d.ts +2 -0
- package/dist/tsc/tests/files.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/files.unit.test.js +45 -0
- package/dist/tsc/tests/files.unit.test.js.map +1 -0
- package/dist/tsc/tests/integerFromEnv.unit.test.d.ts +2 -0
- package/dist/tsc/tests/integerFromEnv.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/integerFromEnv.unit.test.js +21 -0
- package/dist/tsc/tests/integerFromEnv.unit.test.js.map +1 -0
- package/dist/types/commands/ensureIndexes.d.ts.map +1 -1
- package/dist/types/files.d.ts.map +1 -1
- package/dist/types/prosopo.config.d.ts +2 -0
- package/dist/types/prosopo.config.d.ts.map +1 -1
- package/dist/types/start.d.ts.map +1 -1
- package/dist/types/tests/files.unit.test.d.ts +2 -0
- package/dist/types/tests/files.unit.test.d.ts.map +1 -0
- package/dist/types/tests/integerFromEnv.unit.test.d.ts +2 -0
- package/dist/types/tests/integerFromEnv.unit.test.d.ts.map +1 -0
- package/package.json +10 -10
- package/vite.config.ts +8 -0
|
@@ -11,9 +11,7 @@ var ensureIndexes_default = (pair, config, cmdArgs) => {
|
|
|
11
11
|
try {
|
|
12
12
|
const env = new _prosopo_env.ProviderEnvironment(config, pair);
|
|
13
13
|
await env.isReady();
|
|
14
|
-
|
|
15
|
-
if (!env.config.mongoCaptchaUri) throw new Error("mongoCaptchaUri not set in config");
|
|
16
|
-
await tasks.db.ensureIndexes();
|
|
14
|
+
await new _prosopo_provider.Tasks(env).db.ensureIndexes();
|
|
17
15
|
} catch (err) {
|
|
18
16
|
logger.error(() => ({ err }));
|
|
19
17
|
}
|
package/dist/cjs/files.cjs
CHANGED
|
@@ -3,6 +3,7 @@ let node_fs = require("node:fs");
|
|
|
3
3
|
node_fs = require_runtime.__toESM(node_fs, 1);
|
|
4
4
|
let node_stream = require("node:stream");
|
|
5
5
|
let _prosopo_common = require("@prosopo/common");
|
|
6
|
+
let _prosopo_util = require("@prosopo/util");
|
|
6
7
|
//#region src/files.ts
|
|
7
8
|
function loadJSONFile(filePath) {
|
|
8
9
|
try {
|
|
@@ -19,6 +20,11 @@ function loadJSONFile(filePath) {
|
|
|
19
20
|
}
|
|
20
21
|
function writeJSONFile(filePath, jsonData) {
|
|
21
22
|
return new Promise((resolve, reject) => {
|
|
23
|
+
const json = (0, _prosopo_util.stringifyJson)(jsonData);
|
|
24
|
+
if (!json.ok) {
|
|
25
|
+
reject(json.error);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
22
28
|
const writeStream = (0, node_fs.createWriteStream)(filePath);
|
|
23
29
|
writeStream.setDefaultEncoding("utf-8");
|
|
24
30
|
writeStream.on("finish", () => {
|
|
@@ -27,7 +33,7 @@ function writeJSONFile(filePath, jsonData) {
|
|
|
27
33
|
writeStream.on("error", (err) => {
|
|
28
34
|
reject(err);
|
|
29
35
|
});
|
|
30
|
-
node_stream.Readable.from(
|
|
36
|
+
node_stream.Readable.from(json.value).pipe(writeStream);
|
|
31
37
|
});
|
|
32
38
|
}
|
|
33
39
|
async function readFile(filePath) {
|
|
@@ -2,6 +2,7 @@ const require_RateLimiter = require("./RateLimiter.cjs");
|
|
|
2
2
|
const require_process_env = require("./process.env.cjs");
|
|
3
3
|
let _prosopo_logger = require("@prosopo/logger");
|
|
4
4
|
let _prosopo_types = require("@prosopo/types");
|
|
5
|
+
let _prosopo_util = require("@prosopo/util");
|
|
5
6
|
//#region src/prosopo.config.ts
|
|
6
7
|
function getMongoURI() {
|
|
7
8
|
const protocol = process.env.PROSOPO_DATABASE_PROTOCOL || "mongodb";
|
|
@@ -38,6 +39,17 @@ var getSpamEmailDomainsUrls = () => {
|
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* An integer setting from the environment, or `fallback` when unset. A set
|
|
44
|
+
* but malformed value throws: parseInt would read "80a" as 80 and "abc" as
|
|
45
|
+
* NaN, and a provider listening on the wrong port or trusting the wrong
|
|
46
|
+
* number of proxies is worse than one that refuses to start.
|
|
47
|
+
*/
|
|
48
|
+
var integerFromEnv = (name, fallback, bounds = {}) => {
|
|
49
|
+
const raw = process.env[name];
|
|
50
|
+
if (raw === void 0 || raw === "") return fallback;
|
|
51
|
+
return (0, _prosopo_util.parseInteger)(raw, bounds).expect(`environment variable ${name}`);
|
|
52
|
+
};
|
|
41
53
|
var getHost = () => {
|
|
42
54
|
return process.env.CADDY_DOMAIN || {}.env?.VITE_CADDY_DOMAIN;
|
|
43
55
|
};
|
|
@@ -73,7 +85,10 @@ function getConfig(captchaSolutionsConfig, captchaServeConfig, who = "PROVIDER",
|
|
|
73
85
|
},
|
|
74
86
|
server: {
|
|
75
87
|
baseURL: process.env.PROSOPO_API_BASE_URL || "http://localhost",
|
|
76
|
-
port:
|
|
88
|
+
port: integerFromEnv("PROSOPO_API_PORT", 9229, {
|
|
89
|
+
min: 0,
|
|
90
|
+
max: 65535
|
|
91
|
+
})
|
|
77
92
|
},
|
|
78
93
|
captchaSolutions: captchaSolutionsConfig,
|
|
79
94
|
captchas: captchaServeConfig,
|
|
@@ -90,7 +105,7 @@ function getConfig(captchaSolutionsConfig, captchaServeConfig, who = "PROVIDER",
|
|
|
90
105
|
password: process.env.REDIS_CONNECTION_PASSWORD || ""
|
|
91
106
|
},
|
|
92
107
|
rateLimits: require_RateLimiter.getRateLimitConfig(),
|
|
93
|
-
proxyCount:
|
|
108
|
+
proxyCount: integerFromEnv("PROSOPO_PROXY_COUNT", 0, { min: 0 }),
|
|
94
109
|
scheduledTasks: {
|
|
95
110
|
captchaScheduler: { schedule: process.env.CAPTCHA_STORAGE_SCHEDULE },
|
|
96
111
|
clientListScheduler: { schedule: process.env.CLIENT_LIST_SCHEDULE },
|
|
@@ -115,3 +130,4 @@ function getConfig(captchaSolutionsConfig, captchaServeConfig, who = "PROVIDER",
|
|
|
115
130
|
}
|
|
116
131
|
//#endregion
|
|
117
132
|
exports.default = getConfig;
|
|
133
|
+
exports.integerFromEnv = integerFromEnv;
|
package/dist/cjs/start.cjs
CHANGED
|
@@ -18,10 +18,7 @@ async function start(env, admin, port) {
|
|
|
18
18
|
let authAccount;
|
|
19
19
|
if (config.authAccount) authAccount = (0, _prosopo_keyring.getPair)(void 0, config.authAccount.address);
|
|
20
20
|
env = new _prosopo_env.ProviderEnvironment(config, pair, authAccount);
|
|
21
|
-
} else env.logger.debug(() => ({
|
|
22
|
-
msg: "Env already defined",
|
|
23
|
-
data: { config: env?.config }
|
|
24
|
-
}));
|
|
21
|
+
} else env.logger.debug(() => ({ msg: "Env already defined" }));
|
|
25
22
|
await env.isReady();
|
|
26
23
|
env.cleanup();
|
|
27
24
|
const maintenanceMode = process.env.MAINTENANCE_MODE?.toLowerCase() === "true";
|
|
@@ -11,9 +11,7 @@ var ensureIndexes_default = (pair, config, cmdArgs) => {
|
|
|
11
11
|
try {
|
|
12
12
|
const env = new ProviderEnvironment(config, pair);
|
|
13
13
|
await env.isReady();
|
|
14
|
-
|
|
15
|
-
if (!env.config.mongoCaptchaUri) throw new Error("mongoCaptchaUri not set in config");
|
|
16
|
-
await tasks.db.ensureIndexes();
|
|
14
|
+
await new Tasks(env).db.ensureIndexes();
|
|
17
15
|
} catch (err) {
|
|
18
16
|
logger.error(() => ({ err }));
|
|
19
17
|
}
|
package/dist/esm/files.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs, { createWriteStream } from "node:fs";
|
|
2
2
|
import { Readable } from "node:stream";
|
|
3
3
|
import { ProsopoError } from "@prosopo/common";
|
|
4
|
+
import { stringifyJson } from "@prosopo/util";
|
|
4
5
|
//#region src/files.ts
|
|
5
6
|
function loadJSONFile(filePath) {
|
|
6
7
|
try {
|
|
@@ -17,6 +18,11 @@ function loadJSONFile(filePath) {
|
|
|
17
18
|
}
|
|
18
19
|
function writeJSONFile(filePath, jsonData) {
|
|
19
20
|
return new Promise((resolve, reject) => {
|
|
21
|
+
const json = stringifyJson(jsonData);
|
|
22
|
+
if (!json.ok) {
|
|
23
|
+
reject(json.error);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
20
26
|
const writeStream = createWriteStream(filePath);
|
|
21
27
|
writeStream.setDefaultEncoding("utf-8");
|
|
22
28
|
writeStream.on("finish", () => {
|
|
@@ -25,7 +31,7 @@ function writeJSONFile(filePath, jsonData) {
|
|
|
25
31
|
writeStream.on("error", (err) => {
|
|
26
32
|
reject(err);
|
|
27
33
|
});
|
|
28
|
-
Readable.from(
|
|
34
|
+
Readable.from(json.value).pipe(writeStream);
|
|
29
35
|
});
|
|
30
36
|
}
|
|
31
37
|
async function readFile(filePath) {
|
|
@@ -2,6 +2,7 @@ import { getRateLimitConfig } from "./RateLimiter.js";
|
|
|
2
2
|
import { getAddress, getPassword, getSecret } from "./process.env.js";
|
|
3
3
|
import { parseLogLevel } from "@prosopo/logger";
|
|
4
4
|
import { DatabaseTypes, EnvironmentTypesSchema, FrictionlessPenalties, ProsopoConfigSchema } from "@prosopo/types";
|
|
5
|
+
import { parseInteger } from "@prosopo/util";
|
|
5
6
|
//#region src/prosopo.config.ts
|
|
6
7
|
function getMongoURI() {
|
|
7
8
|
const protocol = process.env.PROSOPO_DATABASE_PROTOCOL || "mongodb";
|
|
@@ -38,6 +39,17 @@ var getSpamEmailDomainsUrls = () => {
|
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* An integer setting from the environment, or `fallback` when unset. A set
|
|
44
|
+
* but malformed value throws: parseInt would read "80a" as 80 and "abc" as
|
|
45
|
+
* NaN, and a provider listening on the wrong port or trusting the wrong
|
|
46
|
+
* number of proxies is worse than one that refuses to start.
|
|
47
|
+
*/
|
|
48
|
+
var integerFromEnv = (name, fallback, bounds = {}) => {
|
|
49
|
+
const raw = process.env[name];
|
|
50
|
+
if (raw === void 0 || raw === "") return fallback;
|
|
51
|
+
return parseInteger(raw, bounds).expect(`environment variable ${name}`);
|
|
52
|
+
};
|
|
41
53
|
var getHost = () => {
|
|
42
54
|
const importMeta = import.meta;
|
|
43
55
|
return process.env.CADDY_DOMAIN || importMeta.env?.VITE_CADDY_DOMAIN;
|
|
@@ -74,7 +86,10 @@ function getConfig(captchaSolutionsConfig, captchaServeConfig, who = "PROVIDER",
|
|
|
74
86
|
},
|
|
75
87
|
server: {
|
|
76
88
|
baseURL: process.env.PROSOPO_API_BASE_URL || "http://localhost",
|
|
77
|
-
port:
|
|
89
|
+
port: integerFromEnv("PROSOPO_API_PORT", 9229, {
|
|
90
|
+
min: 0,
|
|
91
|
+
max: 65535
|
|
92
|
+
})
|
|
78
93
|
},
|
|
79
94
|
captchaSolutions: captchaSolutionsConfig,
|
|
80
95
|
captchas: captchaServeConfig,
|
|
@@ -91,7 +106,7 @@ function getConfig(captchaSolutionsConfig, captchaServeConfig, who = "PROVIDER",
|
|
|
91
106
|
password: process.env.REDIS_CONNECTION_PASSWORD || ""
|
|
92
107
|
},
|
|
93
108
|
rateLimits: getRateLimitConfig(),
|
|
94
|
-
proxyCount:
|
|
109
|
+
proxyCount: integerFromEnv("PROSOPO_PROXY_COUNT", 0, { min: 0 }),
|
|
95
110
|
scheduledTasks: {
|
|
96
111
|
captchaScheduler: { schedule: process.env.CAPTCHA_STORAGE_SCHEDULE },
|
|
97
112
|
clientListScheduler: { schedule: process.env.CLIENT_LIST_SCHEDULE },
|
|
@@ -115,4 +130,4 @@ function getConfig(captchaSolutionsConfig, captchaServeConfig, who = "PROVIDER",
|
|
|
115
130
|
});
|
|
116
131
|
}
|
|
117
132
|
//#endregion
|
|
118
|
-
export { getConfig as default };
|
|
133
|
+
export { getConfig as default, integerFromEnv };
|
package/dist/esm/start.js
CHANGED
|
@@ -18,10 +18,7 @@ async function start(env, admin, port) {
|
|
|
18
18
|
let authAccount;
|
|
19
19
|
if (config.authAccount) authAccount = getPair(void 0, config.authAccount.address);
|
|
20
20
|
env = new ProviderEnvironment(config, pair, authAccount);
|
|
21
|
-
} else env.logger.debug(() => ({
|
|
22
|
-
msg: "Env already defined",
|
|
23
|
-
data: { config: env?.config }
|
|
24
|
-
}));
|
|
21
|
+
} else env.logger.debug(() => ({ msg: "Env already defined" }));
|
|
25
22
|
await env.isReady();
|
|
26
23
|
env.cleanup();
|
|
27
24
|
const maintenanceMode = process.env.MAINTENANCE_MODE?.toLowerCase() === "true";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureIndexes.d.ts","sourceRoot":"","sources":["../../../src/commands/ensureIndexes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;+BAGnD,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;AAH9B,
|
|
1
|
+
{"version":3,"file":"ensureIndexes.d.ts","sourceRoot":"","sources":["../../../src/commands/ensureIndexes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;+BAGnD,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;AAH9B,wBAuBE"}
|
|
@@ -11,9 +11,6 @@ export default (pair, config, cmdArgs) => {
|
|
|
11
11
|
const env = new ProviderEnvironment(config, pair);
|
|
12
12
|
await env.isReady();
|
|
13
13
|
const tasks = new Tasks(env);
|
|
14
|
-
if (!env.config.mongoCaptchaUri) {
|
|
15
|
-
throw new Error("mongoCaptchaUri not set in config");
|
|
16
|
-
}
|
|
17
14
|
await tasks.db.ensureIndexes();
|
|
18
15
|
}
|
|
19
16
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureIndexes.js","sourceRoot":"","sources":["../../../src/commands/ensureIndexes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,eAAe,CACd,IAAiB,EACjB,MAA2B,EAC3B,OAA6B,EAC5B,EAAE;IACH,MAAM,MAAM,GACX,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAExE,OAAO;QACN,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,sCAAsC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC;gBACJ,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,
|
|
1
|
+
{"version":3,"file":"ensureIndexes.js","sourceRoot":"","sources":["../../../src/commands/ensureIndexes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAe,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,eAAe,CACd,IAAiB,EACjB,MAA2B,EAC3B,OAA6B,EAC5B,EAAE;IACH,MAAM,MAAM,GACX,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAExE,OAAO;QACN,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,sCAAsC;QAChD,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC;gBACJ,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,EAAE,CAAC,aAAa,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;QACD,WAAW,EAAE,EAAE;KACf,CAAC;AACH,CAAC,CAAC"}
|
package/dist/tsc/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AAkBA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,OAY5C;AAED,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBA2BjC;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhE"}
|
package/dist/tsc/files.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs, { createWriteStream } from "node:fs";
|
|
2
2
|
import { Readable } from "node:stream";
|
|
3
3
|
import { ProsopoError } from "@prosopo/common";
|
|
4
|
+
import { stringifyJson } from "@prosopo/util";
|
|
4
5
|
export function loadJSONFile(filePath) {
|
|
5
6
|
try {
|
|
6
7
|
return JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
@@ -17,6 +18,11 @@ export function loadJSONFile(filePath) {
|
|
|
17
18
|
}
|
|
18
19
|
export function writeJSONFile(filePath, jsonData) {
|
|
19
20
|
return new Promise((resolve, reject) => {
|
|
21
|
+
const json = stringifyJson(jsonData);
|
|
22
|
+
if (!json.ok) {
|
|
23
|
+
reject(json.error);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
20
26
|
const writeStream = createWriteStream(filePath);
|
|
21
27
|
writeStream.setDefaultEncoding("utf-8");
|
|
22
28
|
writeStream.on("finish", () => {
|
|
@@ -25,7 +31,7 @@ export function writeJSONFile(filePath, jsonData) {
|
|
|
25
31
|
writeStream.on("error", (err) => {
|
|
26
32
|
reject(err);
|
|
27
33
|
});
|
|
28
|
-
const readable = Readable.from(
|
|
34
|
+
const readable = Readable.from(json.value);
|
|
29
35
|
readable.pipe(writeStream);
|
|
30
36
|
});
|
|
31
37
|
}
|
package/dist/tsc/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAcvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAcvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC5C,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,YAAY,CAAC;YACtB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,0BAA0B;YACnC,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,EAAE,QAAQ,EAAE;SACrB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAC5B,QAAgB,EAChB,QAAiC;IAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAGtC,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO;QACR,CAAC;QACD,MAAM,WAAW,GAAgB,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE7D,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAExC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QAGH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnC,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,IAAc,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { type ProsopoCaptchaCountConfigSchemaInput, type ProsopoCaptchaSolutionConfigSchema, type ProsopoConfigOutput } from "@prosopo/types";
|
|
2
|
+
import { type NumberBounds } from "@prosopo/util";
|
|
3
|
+
export declare const integerFromEnv: (name: string, fallback: number, bounds?: NumberBounds) => number;
|
|
2
4
|
export default function getConfig(captchaSolutionsConfig?: typeof ProsopoCaptchaSolutionConfigSchema, captchaServeConfig?: ProsopoCaptchaCountConfigSchemaInput, who?: string, admin?: string): ProsopoConfigOutput;
|
|
3
5
|
//# 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,EAIN,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAExB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"prosopo.config.d.ts","sourceRoot":"","sources":["../../src/prosopo.config.ts"],"names":[],"mappings":"AAeA,OAAO,EAIN,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,eAAe,CAAC;AAkEhE,eAAO,MAAM,cAAc,SACpB,MAAM,YACF,MAAM,WACR,YAAY,KAClB,MAMF,CAAC;AAOF,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,sBAAsB,CAAC,EAAE,OAAO,kCAAkC,EAClE,kBAAkB,CAAC,EAAE,oCAAoC,EACzD,GAAG,SAAa,EAChB,KAAK,SAAU,GACb,mBAAmB,CAqFrB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { parseLogLevel } from "@prosopo/logger";
|
|
2
2
|
import { DatabaseTypes, EnvironmentTypesSchema, FrictionlessPenalties, ProsopoConfigSchema, } from "@prosopo/types";
|
|
3
|
+
import { parseInteger } from "@prosopo/util";
|
|
3
4
|
import { getRateLimitConfig } from "./RateLimiter.js";
|
|
4
5
|
import { getAddress, getPassword, getSecret } from "./process.env.js";
|
|
5
6
|
function getMongoURI() {
|
|
@@ -55,6 +56,13 @@ const getSpamEmailDomainsUrls = () => {
|
|
|
55
56
|
return undefined;
|
|
56
57
|
}
|
|
57
58
|
};
|
|
59
|
+
export const integerFromEnv = (name, fallback, bounds = {}) => {
|
|
60
|
+
const raw = process.env[name];
|
|
61
|
+
if (raw === undefined || raw === "") {
|
|
62
|
+
return fallback;
|
|
63
|
+
}
|
|
64
|
+
return parseInteger(raw, bounds).expect(`environment variable ${name}`);
|
|
65
|
+
};
|
|
58
66
|
const getHost = () => {
|
|
59
67
|
const importMeta = import.meta;
|
|
60
68
|
return process.env.CADDY_DOMAIN || importMeta.env?.VITE_CADDY_DOMAIN;
|
|
@@ -93,9 +101,7 @@ export default function getConfig(captchaSolutionsConfig, captchaServeConfig, wh
|
|
|
93
101
|
},
|
|
94
102
|
server: {
|
|
95
103
|
baseURL: process.env.PROSOPO_API_BASE_URL || "http://localhost",
|
|
96
|
-
port:
|
|
97
|
-
? Number.parseInt(process.env.PROSOPO_API_PORT)
|
|
98
|
-
: 9229,
|
|
104
|
+
port: integerFromEnv("PROSOPO_API_PORT", 9229, { min: 0, max: 65535 }),
|
|
99
105
|
},
|
|
100
106
|
captchaSolutions: captchaSolutionsConfig,
|
|
101
107
|
captchas: captchaServeConfig,
|
|
@@ -112,9 +118,7 @@ export default function getConfig(captchaSolutionsConfig, captchaServeConfig, wh
|
|
|
112
118
|
password: process.env.REDIS_CONNECTION_PASSWORD || "",
|
|
113
119
|
},
|
|
114
120
|
rateLimits: getRateLimitConfig(),
|
|
115
|
-
proxyCount:
|
|
116
|
-
? Number.parseInt(process.env.PROSOPO_PROXY_COUNT)
|
|
117
|
-
: 0,
|
|
121
|
+
proxyCount: integerFromEnv("PROSOPO_PROXY_COUNT", 0, { min: 0 }),
|
|
118
122
|
scheduledTasks: {
|
|
119
123
|
captchaScheduler: {
|
|
120
124
|
schedule: process.env.CAPTCHA_STORAGE_SCHEDULE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../../src/prosopo.config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../../src/prosopo.config.ts"],"names":[],"mappings":"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"}
|
package/dist/tsc/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAanD,wBAAsB,KAAK,CAC1B,GAAG,CAAC,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAanD,wBAAsB,KAAK,CAC1B,GAAG,CAAC,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,iCAoFb"}
|
package/dist/tsc/start.js
CHANGED
|
@@ -21,12 +21,7 @@ export async function start(env, admin, port) {
|
|
|
21
21
|
env = new ProviderEnvironment(config, pair, authAccount);
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
env.logger.debug(() => ({
|
|
25
|
-
msg: "Env already defined",
|
|
26
|
-
data: {
|
|
27
|
-
config: env?.config,
|
|
28
|
-
},
|
|
29
|
-
}));
|
|
24
|
+
env.logger.debug(() => ({ msg: "Env already defined" }));
|
|
30
25
|
}
|
|
31
26
|
await env.isReady();
|
|
32
27
|
env.cleanup();
|
package/dist/tsc/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACN,aAAa,EACb,8BAA8B,EAC9B,gBAAgB,EAChB,uBAAuB,EACvB,+BAA+B,GAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,KAAK,CAC1B,GAAyB,EACzB,KAAe,EACf,IAAa;IAEb,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QAGV,KAAK,EAAE,CAAC;QAER,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE;YACnC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACpB,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,WAAoC,CAAC;QACzC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.unit.test.d.ts","sourceRoot":"","sources":["../../../src/tests/files.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { loadJSONFile, writeJSONFile } from "../files.js";
|
|
6
|
+
describe("writeJSONFile", () => {
|
|
7
|
+
let dir;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
dir = fs.mkdtempSync(path.join(os.tmpdir(), "cli-files-"));
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
13
|
+
});
|
|
14
|
+
it("round-trips through loadJSONFile", async () => {
|
|
15
|
+
const file = path.join(dir, "out.json");
|
|
16
|
+
await writeJSONFile(file, { a: [1, "b"] });
|
|
17
|
+
expect(loadJSONFile(file)).toEqual({ a: [1, "b"] });
|
|
18
|
+
});
|
|
19
|
+
it("writes bigints as decimal strings instead of throwing", async () => {
|
|
20
|
+
const file = path.join(dir, "big.json");
|
|
21
|
+
await writeJSONFile(file, { n: 12345678901234567890n });
|
|
22
|
+
expect(loadJSONFile(file)).toEqual({ n: "12345678901234567890" });
|
|
23
|
+
});
|
|
24
|
+
it("rejects a cycle without creating the file", async () => {
|
|
25
|
+
const file = path.join(dir, "cyclic.json");
|
|
26
|
+
const cyclic = {};
|
|
27
|
+
cyclic.self = cyclic;
|
|
28
|
+
await expect(writeJSONFile(file, cyclic)).rejects.toThrow(/stringify/);
|
|
29
|
+
expect(fs.existsSync(file)).toBe(false);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe("loadJSONFile", () => {
|
|
33
|
+
it("throws a FILE_ERROR for invalid JSON", () => {
|
|
34
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "cli-files-"));
|
|
35
|
+
try {
|
|
36
|
+
const file = path.join(dir, "bad.json");
|
|
37
|
+
fs.writeFileSync(file, "{not json");
|
|
38
|
+
expect(() => loadJSONFile(file)).toThrow(expect.objectContaining({ code: "FILE_ERROR" }));
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=files.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.unit.test.js","sourceRoot":"","sources":["../../../src/tests/files.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integerFromEnv.unit.test.d.ts","sourceRoot":"","sources":["../../../src/tests/integerFromEnv.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { integerFromEnv } from "../prosopo.config.js";
|
|
3
|
+
const NAME = "PROSOPO_TEST_INTEGER_FROM_ENV";
|
|
4
|
+
describe("integerFromEnv", () => {
|
|
5
|
+
afterEach(() => {
|
|
6
|
+
vi.unstubAllEnvs();
|
|
7
|
+
});
|
|
8
|
+
it.each([undefined, ""])("returns the fallback when the value is %j", (v) => {
|
|
9
|
+
vi.stubEnv(NAME, v);
|
|
10
|
+
expect(integerFromEnv(NAME, 9229)).toBe(9229);
|
|
11
|
+
});
|
|
12
|
+
it("reads a whole integer", () => {
|
|
13
|
+
vi.stubEnv(NAME, "8080");
|
|
14
|
+
expect(integerFromEnv(NAME, 9229, { min: 0, max: 65535 })).toBe(8080);
|
|
15
|
+
});
|
|
16
|
+
it.each(["80a", "abc", "1.5", "70000", "-1"])("throws for %j instead of starting with a partial or NaN value", (v) => {
|
|
17
|
+
vi.stubEnv(NAME, v);
|
|
18
|
+
expect(() => integerFromEnv(NAME, 9229, { min: 0, max: 65535 })).toThrow(NAME);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=integerFromEnv.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integerFromEnv.unit.test.js","sourceRoot":"","sources":["../../../src/tests/integerFromEnv.unit.test.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,IAAI,GAAG,+BAA+B,CAAC;AAE7C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,SAAS,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,2CAA2C,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3E,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAC5C,+DAA+D,EAC/D,CAAC,CAAC,EAAE,EAAE;QACL,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CACvE,IAAI,CACJ,CAAC;IACH,CAAC,CACD,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureIndexes.d.ts","sourceRoot":"","sources":["../../../src/commands/ensureIndexes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;+BAGnD,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;AAH9B,
|
|
1
|
+
{"version":3,"file":"ensureIndexes.d.ts","sourceRoot":"","sources":["../../../src/commands/ensureIndexes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;+BAGnD,WAAW,UACT,mBAAmB,YACjB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;AAH9B,wBAuBE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AAkBA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,OAY5C;AAED,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBA2BjC;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhE"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { type ProsopoCaptchaCountConfigSchemaInput, type ProsopoCaptchaSolutionConfigSchema, type ProsopoConfigOutput } from "@prosopo/types";
|
|
2
|
+
import { type NumberBounds } from "@prosopo/util";
|
|
3
|
+
export declare const integerFromEnv: (name: string, fallback: number, bounds?: NumberBounds) => number;
|
|
2
4
|
export default function getConfig(captchaSolutionsConfig?: typeof ProsopoCaptchaSolutionConfigSchema, captchaServeConfig?: ProsopoCaptchaCountConfigSchemaInput, who?: string, admin?: string): ProsopoConfigOutput;
|
|
3
5
|
//# 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,EAIN,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAExB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"prosopo.config.d.ts","sourceRoot":"","sources":["../../src/prosopo.config.ts"],"names":[],"mappings":"AAeA,OAAO,EAIN,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,eAAe,CAAC;AAkEhE,eAAO,MAAM,cAAc,SACpB,MAAM,YACF,MAAM,WACR,YAAY,KAClB,MAMF,CAAC;AAOF,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,sBAAsB,CAAC,EAAE,OAAO,kCAAkC,EAClE,kBAAkB,CAAC,EAAE,oCAAoC,EACzD,GAAG,SAAa,EAChB,KAAK,SAAU,GACb,mBAAmB,CAqFrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAanD,wBAAsB,KAAK,CAC1B,GAAG,CAAC,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAanD,wBAAsB,KAAK,CAC1B,GAAG,CAAC,EAAE,mBAAmB,EACzB,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,iCAoFb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.unit.test.d.ts","sourceRoot":"","sources":["../../../src/tests/files.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integerFromEnv.unit.test.d.ts","sourceRoot":"","sources":["../../../src/tests/integerFromEnv.unit.test.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/cli",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.4",
|
|
4
4
|
"description": "CLI for Prosopo Provider",
|
|
5
5
|
"main": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@polkadot/types-codec": "17.0.2",
|
|
20
|
-
"@prosopo/api": "4.8.
|
|
20
|
+
"@prosopo/api": "4.8.7",
|
|
21
21
|
"@prosopo/common": "3.3.2",
|
|
22
|
-
"@prosopo/logger": "2.1.
|
|
23
|
-
"@prosopo/dotenv": "3.0.
|
|
24
|
-
"@prosopo/env": "3.6.
|
|
25
|
-
"@prosopo/keyring": "2.10.
|
|
26
|
-
"@prosopo/locale": "3.
|
|
27
|
-
"@prosopo/provider": "5.26.
|
|
28
|
-
"@prosopo/types": "5.
|
|
29
|
-
"@prosopo/util": "3.
|
|
22
|
+
"@prosopo/logger": "2.1.8",
|
|
23
|
+
"@prosopo/dotenv": "3.0.65",
|
|
24
|
+
"@prosopo/env": "3.6.89",
|
|
25
|
+
"@prosopo/keyring": "2.10.20",
|
|
26
|
+
"@prosopo/locale": "3.14.0",
|
|
27
|
+
"@prosopo/provider": "5.26.2",
|
|
28
|
+
"@prosopo/types": "5.24.0",
|
|
29
|
+
"@prosopo/util": "3.5.0",
|
|
30
30
|
"@prosopo/workspace": "3.2.6",
|
|
31
31
|
"cron-parser": "5.10.2",
|
|
32
32
|
"dotenv": "18.0.8",
|
package/vite.config.ts
CHANGED
|
@@ -58,6 +58,14 @@ const nativeBinaryPaths = [
|
|
|
58
58
|
),
|
|
59
59
|
dest: "prosopo-native-puzzle.node",
|
|
60
60
|
},
|
|
61
|
+
// Published from Protect rather than built here. The obfuscated
|
|
62
|
+
// decodePayload.js loads it from beside itself under this name.
|
|
63
|
+
{
|
|
64
|
+
src: nativeRequire.resolve(
|
|
65
|
+
"@prosopo/native-bundle-payload/dist/native/prosopo-native-bundle-payload.linux-x64-gnu.node",
|
|
66
|
+
),
|
|
67
|
+
dest: "prosopo-native-bundle-payload.node",
|
|
68
|
+
},
|
|
61
69
|
];
|
|
62
70
|
// The obfuscated decoders are loaded by URL at runtime, not by import, so a
|
|
63
71
|
// decoder worker can load the same file the main thread would — a bundled
|