@prosopo/cli 0.3.5 → 0.3.36

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.
@@ -1 +1 @@
1
- {"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAoBpD,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7G,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB;;;;;;;;;;;;GAqBzF"}
1
+ {"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAmBpD,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7G,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB;;;;;;;;;;;;GAoBzF"}
package/dist/argv.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { LogLevel, getLogger } from '@prosopo/common';
2
- import { commandBatchCommit, commandCalculateCaptchaSolutions, commandDappAccounts, commandDappDetails, commandDappRegister, commandDappUpdate, commandProviderAccounts, commandProviderDataset, commandProviderDeregister, commandProviderDetails, commandProviderRegister, commandProviderSetDataset, commandProviderUpdate, commandVersion, } from './commands/index.js';
2
+ import { commandBatchCommit, commandDappAccounts, commandDappDetails, commandDappRegister, commandDappUpdate, commandProviderAccounts, commandProviderDataset, commandProviderDeregister, commandProviderDetails, commandProviderRegister, commandProviderSetDataset, commandProviderUpdate, commandVersion, } from './commands/index.js';
3
3
  import { hideBin } from 'yargs/helpers';
4
4
  import yargs from 'yargs';
5
5
  export function processArgs(args, pair, config) {
@@ -19,7 +19,6 @@ export function processArgs(args, pair, config) {
19
19
  .command(commandProviderDetails(pair, config, { logger }))
20
20
  .command(commandProviderDataset(pair, config, { logger }))
21
21
  .command(commandDappDetails(pair, config, { logger }))
22
- .command(commandCalculateCaptchaSolutions(pair, config, { logger }))
23
22
  .command(commandBatchCommit(pair, config, { logger }))
24
23
  .command(commandVersion(pair, config, { logger }))
25
24
  .parse();
package/dist/argv.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EACH,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,IAAiB,EAAE,MAA2B;IACtF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,KAAK,CAAC,gDAAgD,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;SAC1E,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;SAC/E,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC1D,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACxD,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACtD,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACpD,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC1D,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACtD,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACzD,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACzD,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACrD,OAAO,CAAC,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACnE,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACrD,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACjD,KAAK,EAAE,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,IAAiB,EAAE,MAA2B;IACtF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,KAAK,CAAC,gDAAgD,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;SAC1E,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;SAC/E,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC1D,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACxD,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACtD,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACpD,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC1D,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACtD,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACzD,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACzD,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACrD,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACrD,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACjD,KAAK,EAAE,CAAA;AAChB,CAAC"}
package/dist/cjs/argv.cjs CHANGED
@@ -15,11 +15,10 @@ const dappAccounts = require("./commands/dappAccounts.cjs");
15
15
  const providerDetails = require("./commands/providerDetails.cjs");
16
16
  const providerDataset = require("./commands/providerDataset.cjs");
17
17
  const dappDetails = require("./commands/dappDetails.cjs");
18
- const calculateCaptchaSolutions = require("./commands/calculateCaptchaSolutions.cjs");
19
18
  const batchCommit = require("./commands/batchCommit.cjs");
20
19
  const version = require("./commands/version.cjs");
21
20
  function processArgs(args, pair, config) {
22
21
  const logger = common.getLogger(common.LogLevel.enum.info, "CLI");
23
- return yargs(helpers.hideBin(args)).usage("Usage: $0 [global options] <command> [options]").option("api", { demand: false, default: false, type: "boolean" }).option("adminApi", { demand: false, default: false, type: "boolean" }).command(providerRegister(pair, config, { logger })).command(providerUpdate(pair, config, { logger })).command(providerDeregister(pair, config, { logger })).command(providerSetDataset(pair, config, { logger })).command(dappRegister(pair, config, { logger })).command(dappUpdate(pair, config, { logger })).command(providerAccounts(pair, config, { logger })).command(dappAccounts(pair, config, { logger })).command(providerDetails(pair, config, { logger })).command(providerDataset(pair, config, { logger })).command(dappDetails(pair, config, { logger })).command(calculateCaptchaSolutions(pair, config, { logger })).command(batchCommit(pair, config, { logger })).command(version(pair, config, { logger })).parse();
22
+ return yargs(helpers.hideBin(args)).usage("Usage: $0 [global options] <command> [options]").option("api", { demand: false, default: false, type: "boolean" }).option("adminApi", { demand: false, default: false, type: "boolean" }).command(providerRegister(pair, config, { logger })).command(providerUpdate(pair, config, { logger })).command(providerDeregister(pair, config, { logger })).command(providerSetDataset(pair, config, { logger })).command(dappRegister(pair, config, { logger })).command(dappUpdate(pair, config, { logger })).command(providerAccounts(pair, config, { logger })).command(dappAccounts(pair, config, { logger })).command(providerDetails(pair, config, { logger })).command(providerDataset(pair, config, { logger })).command(dappDetails(pair, config, { logger })).command(batchCommit(pair, config, { logger })).command(version(pair, config, { logger })).parse();
24
23
  }
25
24
  exports.processArgs = processArgs;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const batchCommit = require("./batchCommit.cjs");
4
- const calculateCaptchaSolutions = require("./calculateCaptchaSolutions.cjs");
5
4
  const dappAccounts = require("./dappAccounts.cjs");
6
5
  const dappDetails = require("./dappDetails.cjs");
7
6
  const dappUpdate = require("./dappUpdate.cjs");
@@ -15,7 +14,6 @@ const providerSetDataset = require("./providerSetDataset.cjs");
15
14
  const providerUpdate = require("./providerUpdate.cjs");
16
15
  const version = require("./version.cjs");
17
16
  exports.commandBatchCommit = batchCommit;
18
- exports.commandCalculateCaptchaSolutions = calculateCaptchaSolutions;
19
17
  exports.commandDappAccounts = dappAccounts;
20
18
  exports.commandDappDetails = dappDetails;
21
19
  exports.commandDappUpdate = dappUpdate;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  const common = require("@prosopo/common");
3
+ const util = require("@prosopo/util");
3
4
  const commandVersion = (pair, config, cmdArgs) => {
4
5
  const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.version");
5
6
  return {
6
7
  command: "version",
7
8
  describe: "Return the version of the software",
8
9
  handler: async () => {
9
- const version = JSON.stringify(process.env.PROSOPO_PACKAGE_VERSION) || "dev";
10
- logger.info(`Version: ${version}`);
10
+ logger.info(`Version: ${JSON.stringify(util.version)}`);
11
11
  }
12
12
  };
13
13
  };
@@ -15,7 +15,7 @@ const handleErrors = (err, request, response, next) => {
15
15
  try {
16
16
  message = JSON.parse(err.message);
17
17
  } catch {
18
- console.debug("Invalid JSON error message");
18
+ console.error(err);
19
19
  }
20
20
  return response.status(code).json({
21
21
  message,
@@ -30,10 +30,10 @@ function startApi(env2, admin = false) {
30
30
  apiApp.use(express.json({ limit: "50mb" }));
31
31
  apiApp.use(common.i18nMiddleware({}));
32
32
  apiApp.use(provider.prosopoRouter(env2));
33
+ apiApp.use(handleErrors);
33
34
  if (admin) {
34
35
  apiApp.use(provider.prosopoAdminRouter(env2));
35
36
  }
36
- apiApp.use(handleErrors);
37
37
  return apiApp.listen(apiPort, () => {
38
38
  env2.logger.info(`Prosopo app listening at http://localhost:${apiPort}`);
39
39
  });
@@ -1,5 +1,4 @@
1
1
  export { default as commandBatchCommit } from './batchCommit.js';
2
- export { default as commandCalculateCaptchaSolutions } from './calculateCaptchaSolutions.js';
3
2
  export { default as commandDappAccounts } from './dappAccounts.js';
4
3
  export { default as commandDappDetails } from './dappDetails.js';
5
4
  export { default as commandDappUpdate } from './dappUpdate.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA"}
@@ -1,5 +1,4 @@
1
1
  export { default as commandBatchCommit } from './batchCommit.js';
2
- export { default as commandCalculateCaptchaSolutions } from './calculateCaptchaSolutions.js';
3
2
  export { default as commandDappAccounts } from './dappAccounts.js';
4
3
  export { default as commandDappDetails } from './dappDetails.js';
5
4
  export { default as commandDappUpdate } from './dappUpdate.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAY,MAAM,EAAa,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;+BAE9B,WAAW,UAAU,mBAAmB,YAAY;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;AAA7F,wBAWC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAY,MAAM,EAAa,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;+BAG9B,WAAW,UAAU,mBAAmB,YAAY;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;AAA7F,wBAUC"}
@@ -1,12 +1,12 @@
1
1
  import { LogLevel, getLogger } from '@prosopo/common';
2
+ import { version } from '@prosopo/util';
2
3
  export default (pair, config, cmdArgs) => {
3
4
  const logger = cmdArgs?.logger || getLogger(LogLevel.enum.info, 'cli.version');
4
5
  return {
5
6
  command: 'version',
6
7
  describe: 'Return the version of the software',
7
8
  handler: async () => {
8
- const version = JSON.stringify(process.env.PROSOPO_PACKAGE_VERSION) || 'dev';
9
- logger.info(`Version: ${version}`);
9
+ logger.info(`Version: ${JSON.stringify(version)}`);
10
10
  },
11
11
  };
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAU,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG7D,eAAe,CAAC,IAAiB,EAAE,MAA2B,EAAE,OAA6B,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IAE9E,OAAO;QACH,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,oCAAoC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAA;YAC5E,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QACtC,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAU,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,eAAe,CAAC,IAAiB,EAAE,MAA2B,EAAE,OAA6B,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IAE9E,OAAO;QACH,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,oCAAoC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMjC,OAAO,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlE,eAAO,MAAM,YAAY,QAChB,eAAe,GAAG,WAAW,WACzB,OAAO,YACN,QAAQ,QACZ,YAAY,+CAarB,CAAA;AAqBD,wBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,mBAiBrE"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMjC,OAAO,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlE,eAAO,MAAM,YAAY,QAChB,eAAe,GAAG,WAAW,WACzB,OAAO,YACN,QAAQ,QACZ,YAAY,+CAarB,CAAA;AAsBD,wBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,mBAiBrE"}
package/dist/start.js CHANGED
@@ -14,7 +14,7 @@ export const handleErrors = (err, request, response, next) => {
14
14
  message = JSON.parse(err.message);
15
15
  }
16
16
  catch {
17
- console.debug('Invalid JSON error message');
17
+ console.error(err);
18
18
  }
19
19
  return response.status(code).json({
20
20
  message,
@@ -29,10 +29,10 @@ function startApi(env, admin = false) {
29
29
  apiApp.use(express.json({ limit: '50mb' }));
30
30
  apiApp.use(i18nMiddleware({}));
31
31
  apiApp.use(prosopoRouter(env));
32
+ apiApp.use(handleErrors);
32
33
  if (admin) {
33
34
  apiApp.use(prosopoAdminRouter(env));
34
35
  }
35
- apiApp.use(handleErrors);
36
36
  return apiApp.listen(apiPort, () => {
37
37
  env.logger.info(`Prosopo app listening at http://localhost:${apiPort}`);
38
38
  });
package/dist/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import { assert, describe, test } from 'vitest';
2
2
  import { exec } from 'child_process';
3
- import { getCurrentFileDirectory } from '@prosopo/util';
3
+ import { getCliPkgDir } from '@prosopo/config';
4
4
  import { promisify } from 'util';
5
5
  const execPromise = promisify(exec);
6
6
  describe('provider bundle', () => {
7
7
  test('bundle runs after bundling', async () => {
8
- const dir = getCurrentFileDirectory(import.meta.url);
9
- const rootDir = dir.split('/').slice(0, -3).join('/');
8
+ const rootDir = getCliPkgDir();
10
9
  await execPromise(`cd ${rootDir} && npm run bundle:prod`);
11
10
  const { stdout: runOut, stderr: runErr } = await execPromise(`cd ${rootDir} && node dist/bundle/provider.cli.bundle.js version`);
12
11
  assert(runOut.includes('Version:'));
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.test.js","sourceRoot":"","sources":["../../../src/tests/bundle/bundle.test.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAEnC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAE1C,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAGpD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAGrD,MAAM,WAAW,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAA;QAGzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CACxD,MAAM,OAAO,qDAAqD,CACrE,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACvC,CAAC,EAAE,MAAM,CAAC,CAAA;AACd,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"bundle.test.js","sourceRoot":"","sources":["../../../src/tests/bundle/bundle.test.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAEnC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAE1C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;QAG9B,MAAM,WAAW,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAA;QAGzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CACxD,MAAM,OAAO,qDAAqD,CACrE,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACvC,CAAC,EAAE,MAAM,CAAC,CAAA;AACd,CAAC,CAAC,CAAA"}
@@ -1,27 +1,40 @@
1
1
  import { describe, expect, test } from 'vitest';
2
- import { getCurrentFileDirectory } from '@prosopo/util';
2
+ import { getCliPkgDir, getRootDir } from '@prosopo/config';
3
3
  import { promisify } from 'util';
4
4
  import { spawn } from 'child_process';
5
5
  import fs from 'fs';
6
6
  import path from 'path';
7
7
  describe('reloading api', () => {
8
8
  test('api reloads after changing .env file', () => {
9
- const dir = getCurrentFileDirectory(import.meta.url);
10
- const rootDir = dir.split('/').slice(0, -2).join('/');
9
+ const envFile = `.env.${process.env.NODE_ENV || 'development'}`;
10
+ console.log('env file ', envFile);
11
+ const rootDir = getRootDir();
12
+ const packageDir = getCliPkgDir();
13
+ const rootEnvPath = `${rootDir}/${envFile}`;
14
+ const packageEnvPath = `${packageDir}/${envFile}`;
15
+ let envPath = '';
16
+ if (fs.existsSync(rootEnvPath)) {
17
+ envPath = path.resolve(rootEnvPath);
18
+ }
19
+ else if (fs.existsSync(packageEnvPath)) {
20
+ envPath = path.resolve(packageEnvPath);
21
+ }
22
+ else {
23
+ throw new Error(`No ${envFile} file found`);
24
+ }
11
25
  const restoreEnv = async () => {
12
- const envPath = path.resolve(`${rootDir}/.env.test`);
13
26
  const envContent = await promisify(fs.readFile)(envPath, 'utf8');
14
27
  const newEnvContent = envContent.replace('\nTEST=TEST', '');
15
28
  await promisify(fs.writeFile)(envPath, newEnvContent);
16
29
  };
17
30
  return new Promise((resolve, reject) => {
18
- console.log('rootDir', rootDir);
31
+ console.log('packageDir', packageDir);
19
32
  const child = spawn(`npm`, ['run', 'cli', '--', '--api'], {
20
- cwd: rootDir,
33
+ cwd: packageDir,
21
34
  env: { ...process.env, NODE_ENV: 'test' },
22
35
  });
23
36
  let appended = false;
24
- child.stdout.on('data', (data) => onData(data, rootDir, appended).then((result) => {
37
+ child.stdout.on('data', (data) => onData(data, packageDir, appended).then((result) => {
25
38
  appended = result.appended;
26
39
  const kill = result.kill;
27
40
  if (kill) {
@@ -1 +1 @@
1
- {"version":3,"file":"reloader.test.js","sourceRoot":"","sources":["../../src/tests/reloader.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reloader.test.js","sourceRoot":"","sources":["../../src/tests/reloader.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/cli",
3
- "version": "0.3.5",
3
+ "version": "0.3.36",
4
4
  "description": "CLI for Prosopo Provider",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -20,6 +20,7 @@
20
20
  "build:cjs": "npx vite --config vite.cjs.config.ts build",
21
21
  "bundle:dev": "vite build --config vite.config.ts --mode development",
22
22
  "bundle:prod": "vite build --config vite.config.ts --mode production",
23
+ "test": "npx vitest run --config ./vite.test.config.ts",
23
24
  "cli": "node ./dist/cli.js",
24
25
  "start": "node ./dist/cli.js --api",
25
26
  "eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
@@ -34,13 +35,13 @@
34
35
  "@polkadot/types": "10.11.2",
35
36
  "@polkadot/util": "12.6.2",
36
37
  "@polkadot/util-crypto": "12.6.2",
37
- "@prosopo/captcha-contract": "0.3.5",
38
- "@prosopo/common": "0.3.5",
39
- "@prosopo/contract": "0.3.5",
40
- "@prosopo/env": "0.3.5",
41
- "@prosopo/provider": "0.3.5",
42
- "@prosopo/types": "0.3.5",
43
- "@prosopo/util": "0.3.5",
38
+ "@prosopo/captcha-contract": "0.3.36",
39
+ "@prosopo/common": "0.3.36",
40
+ "@prosopo/contract": "0.3.36",
41
+ "@prosopo/env": "0.3.36",
42
+ "@prosopo/provider": "0.3.36",
43
+ "@prosopo/types": "0.3.36",
44
+ "@prosopo/util": "0.3.36",
44
45
  "cors": "^2.8.5",
45
46
  "cron-parser": "^4.9.0",
46
47
  "dotenv": "^16.0.1",
@@ -50,9 +51,9 @@
50
51
  "devDependencies": {
51
52
  "es-main": "^1.2.0",
52
53
  "express": "^4.18.2",
53
- "vite": "^5.1.4",
54
+ "vite": "^5.1.7",
54
55
  "vitest": "^1.3.1",
55
- "@prosopo/config": "0.3.5",
56
+ "@prosopo/config": "0.3.36",
56
57
  "@types/cors": "^2.8.14",
57
58
  "tslib": "2.6.2",
58
59
  "typescript": "5.1.6"
@@ -0,0 +1,32 @@
1
+ // Copyright 2021-2024 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { ViteTestConfig } from '@prosopo/config'
15
+ import dotenv from 'dotenv'
16
+ import fs from 'fs'
17
+ import path from 'path'
18
+ process.env.NODE_ENV = 'test'
19
+ // if .env.test exists at this level, use it, otherwise use the one at the root
20
+ const envFile = `.env.${process.env.NODE_ENV || 'development'}`
21
+ let envPath = envFile
22
+ if (fs.existsSync(envFile)) {
23
+ envPath = path.resolve(envFile)
24
+ } else if (fs.existsSync(`../../${envFile}`)) {
25
+ envPath = path.resolve(`../../${envFile}`)
26
+ } else {
27
+ throw new Error(`No ${envFile} file found`)
28
+ }
29
+
30
+ dotenv.config({ path: envPath })
31
+
32
+ export default ViteTestConfig
@@ -1,32 +0,0 @@
1
- "use strict";
2
- const provider = require("@prosopo/provider");
3
- const common = require("@prosopo/common");
4
- const env = require("@prosopo/env");
5
- const validators = require("./validators.cjs");
6
- const commandCalculateCaptchaSolutions = (pair, config, cmdArgs) => {
7
- const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.calculate_captcha_solutions");
8
- return {
9
- command: "calculate_captcha_solutions",
10
- describe: "Calculate captcha solutions",
11
- builder: (yargs) => {
12
- return yargs.option("schedule", {
13
- type: "string",
14
- demand: false,
15
- desc: "A Recurring schedule expression"
16
- });
17
- },
18
- handler: async (argv) => {
19
- const env$1 = new env.ProviderEnvironment(config, pair);
20
- await env$1.isReady();
21
- if (argv.schedule) {
22
- throw new common.ProsopoEnvError("GENERAL.NOT_IMPLEMENTED");
23
- } else {
24
- const calculateSolutionsTask = new provider.CalculateSolutionsTask(env$1);
25
- const result = await calculateSolutionsTask.run();
26
- logger.info(`Updated ${result} captcha solutions`);
27
- }
28
- },
29
- middlewares: [validators.validateScheduleExpression]
30
- };
31
- };
32
- module.exports = commandCalculateCaptchaSolutions;
@@ -1,21 +0,0 @@
1
- import { ArgumentsCamelCase, Argv } from 'yargs';
2
- import { KeyringPair } from '@polkadot/keyring/types';
3
- import { Logger } from '@prosopo/common';
4
- import { ProsopoConfigOutput } from '@prosopo/types';
5
- declare const _default: (pair: KeyringPair, config: ProsopoConfigOutput, cmdArgs?: {
6
- logger?: Logger;
7
- }) => {
8
- command: string;
9
- describe: string;
10
- builder: (yargs: Argv) => Argv<{
11
- schedule: string | undefined;
12
- }>;
13
- handler: (argv: ArgumentsCamelCase) => Promise<void>;
14
- middlewares: ((argv: ArgumentsCamelCase) => {
15
- schedule: string;
16
- } | {
17
- schedule: null;
18
- })[];
19
- };
20
- export default _default;
21
- //# sourceMappingURL=calculateCaptchaSolutions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateCaptchaSolutions.d.ts","sourceRoot":"","sources":["../../src/commands/calculateCaptchaSolutions.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAY,MAAM,EAA8B,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;+BAI9B,WAAW,UAAU,mBAAmB,YAAY;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;qBAMpE,IAAI;;;oBAOC,kBAAkB;;;;;;;AAbhD,wBA0BC"}
@@ -1,32 +0,0 @@
1
- import { CalculateSolutionsTask } from '@prosopo/provider';
2
- import { LogLevel, ProsopoEnvError, getLogger } from '@prosopo/common';
3
- import { ProviderEnvironment } from '@prosopo/env';
4
- import { validateScheduleExpression } from './validators.js';
5
- export default (pair, config, cmdArgs) => {
6
- const logger = cmdArgs?.logger || getLogger(LogLevel.enum.info, 'cli.calculate_captcha_solutions');
7
- return {
8
- command: 'calculate_captcha_solutions',
9
- describe: 'Calculate captcha solutions',
10
- builder: (yargs) => {
11
- return yargs.option('schedule', {
12
- type: 'string',
13
- demand: false,
14
- desc: 'A Recurring schedule expression',
15
- });
16
- },
17
- handler: async (argv) => {
18
- const env = new ProviderEnvironment(config, pair);
19
- await env.isReady();
20
- if (argv.schedule) {
21
- throw new ProsopoEnvError('GENERAL.NOT_IMPLEMENTED');
22
- }
23
- else {
24
- const calculateSolutionsTask = new CalculateSolutionsTask(env);
25
- const result = await calculateSolutionsTask.run();
26
- logger.info(`Updated ${result} captcha solutions`);
27
- }
28
- },
29
- middlewares: [validateScheduleExpression],
30
- };
31
- };
32
- //# sourceMappingURL=calculateCaptchaSolutions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateCaptchaSolutions.js","sourceRoot":"","sources":["../../src/commands/calculateCaptchaSolutions.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAAU,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAE5D,eAAe,CAAC,IAAiB,EAAE,MAA2B,EAAE,OAA6B,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAA;IAElG,OAAO;QACH,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,6BAA6B;QACvC,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC5B,IAAI,EAAE,QAAiB;gBACvB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,iCAAiC;aACjC,CAAC,CAAA;QACf,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAE,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACjD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;YACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAA;aACvD;iBAAM;gBACH,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAA;gBAC9D,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,CAAA;gBACjD,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,oBAAoB,CAAC,CAAA;aACrD;QACL,CAAC;QACD,WAAW,EAAE,CAAC,0BAA0B,CAAC;KAC5C,CAAA;AACL,CAAC,CAAA"}