@prosopo/cli 2.1.4 → 2.1.6

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.
Files changed (135) hide show
  1. package/dist/RateLimiter.d.ts +63 -0
  2. package/dist/RateLimiter.d.ts.map +1 -0
  3. package/dist/RateLimiter.js +66 -0
  4. package/dist/RateLimiter.js.map +1 -0
  5. package/dist/argv.d.ts +22 -0
  6. package/dist/argv.d.ts.map +1 -0
  7. package/dist/argv.js +21 -0
  8. package/dist/argv.js.map +1 -0
  9. package/dist/cjs/RateLimiter.cjs +68 -0
  10. package/dist/cjs/argv.cjs +19 -0
  11. package/dist/cjs/cli.cjs +53 -0
  12. package/dist/cjs/commands/index.cjs +10 -0
  13. package/dist/cjs/commands/providerSetDataset.cjs +51 -0
  14. package/dist/cjs/commands/siteKeyRegister.cjs +31 -0
  15. package/dist/cjs/commands/storeCaptchasExternally.cjs +25 -0
  16. package/dist/cjs/commands/validators.cjs +41 -0
  17. package/dist/cjs/commands/version.cjs +14 -0
  18. package/dist/cjs/files.cjs +39 -0
  19. package/dist/cjs/index.cjs +21 -0
  20. package/dist/cjs/process.env.cjs +45 -0
  21. package/dist/cjs/prosopo.config.cjs +68 -0
  22. package/dist/cjs/reloader.cjs +59 -0
  23. package/dist/cjs/start.cjs +69 -0
  24. package/dist/cli.d.ts +2 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +56 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/commands/batchCommit.d.ts +21 -0
  29. package/dist/commands/batchCommit.d.ts.map +1 -0
  30. package/dist/commands/batchCommit.js +37 -0
  31. package/dist/commands/batchCommit.js.map +1 -0
  32. package/dist/commands/dappAccounts.d.ts +15 -0
  33. package/dist/commands/dappAccounts.d.ts.map +1 -0
  34. package/dist/commands/dappAccounts.js +25 -0
  35. package/dist/commands/dappAccounts.js.map +1 -0
  36. package/dist/commands/dappDetails.d.ts +19 -0
  37. package/dist/commands/dappDetails.d.ts.map +1 -0
  38. package/dist/commands/dappDetails.js +32 -0
  39. package/dist/commands/dappDetails.js.map +1 -0
  40. package/dist/commands/dappRegister.d.ts +23 -0
  41. package/dist/commands/dappRegister.d.ts.map +1 -0
  42. package/dist/commands/dappRegister.js +48 -0
  43. package/dist/commands/dappRegister.js.map +1 -0
  44. package/dist/commands/dappUpdate.d.ts +23 -0
  45. package/dist/commands/dappUpdate.d.ts.map +1 -0
  46. package/dist/commands/dappUpdate.js +50 -0
  47. package/dist/commands/dappUpdate.js.map +1 -0
  48. package/dist/commands/index.d.ts +5 -0
  49. package/dist/commands/index.d.ts.map +1 -0
  50. package/dist/commands/index.js +5 -0
  51. package/dist/commands/index.js.map +1 -0
  52. package/dist/commands/providerAccounts.d.ts +9 -0
  53. package/dist/commands/providerAccounts.d.ts.map +1 -0
  54. package/dist/commands/providerAccounts.js +24 -0
  55. package/dist/commands/providerAccounts.js.map +1 -0
  56. package/dist/commands/providerDataset.d.ts +18 -0
  57. package/dist/commands/providerDataset.d.ts.map +1 -0
  58. package/dist/commands/providerDataset.js +46 -0
  59. package/dist/commands/providerDataset.js.map +1 -0
  60. package/dist/commands/providerDeregister.d.ts +19 -0
  61. package/dist/commands/providerDeregister.d.ts.map +1 -0
  62. package/dist/commands/providerDeregister.js +30 -0
  63. package/dist/commands/providerDeregister.js.map +1 -0
  64. package/dist/commands/providerDetails.d.ts +19 -0
  65. package/dist/commands/providerDetails.d.ts.map +1 -0
  66. package/dist/commands/providerDetails.js +33 -0
  67. package/dist/commands/providerDetails.js.map +1 -0
  68. package/dist/commands/providerRegister.d.ts +9 -0
  69. package/dist/commands/providerRegister.d.ts.map +1 -0
  70. package/dist/commands/providerRegister.js +60 -0
  71. package/dist/commands/providerRegister.js.map +1 -0
  72. package/dist/commands/providerSetDataset.d.ts +17 -0
  73. package/dist/commands/providerSetDataset.d.ts.map +1 -0
  74. package/dist/commands/providerSetDataset.js +35 -0
  75. package/dist/commands/providerSetDataset.js.map +1 -0
  76. package/dist/commands/providerUpdate.d.ts +27 -0
  77. package/dist/commands/providerUpdate.d.ts.map +1 -0
  78. package/dist/commands/providerUpdate.js +63 -0
  79. package/dist/commands/providerUpdate.js.map +1 -0
  80. package/dist/commands/siteKeyRegister.d.ts +19 -0
  81. package/dist/commands/siteKeyRegister.d.ts.map +1 -0
  82. package/dist/commands/siteKeyRegister.js +31 -0
  83. package/dist/commands/siteKeyRegister.js.map +1 -0
  84. package/dist/commands/storeCaptchasExternally.d.ts +13 -0
  85. package/dist/commands/storeCaptchasExternally.d.ts.map +1 -0
  86. package/dist/commands/storeCaptchasExternally.js +27 -0
  87. package/dist/commands/storeCaptchasExternally.js.map +1 -0
  88. package/dist/commands/validators.d.ts +18 -0
  89. package/dist/commands/validators.d.ts.map +1 -0
  90. package/dist/commands/validators.js +36 -0
  91. package/dist/commands/validators.js.map +1 -0
  92. package/dist/commands/version.d.ts +12 -0
  93. package/dist/commands/version.d.ts.map +1 -0
  94. package/dist/commands/version.js +13 -0
  95. package/dist/commands/version.js.map +1 -0
  96. package/dist/env.d.ts +4 -0
  97. package/dist/env.d.ts.map +1 -0
  98. package/dist/env.js +25 -0
  99. package/dist/env.js.map +1 -0
  100. package/dist/files.d.ts +4 -0
  101. package/dist/files.d.ts.map +1 -0
  102. package/dist/files.js +37 -0
  103. package/dist/files.js.map +1 -0
  104. package/dist/index.d.ts +7 -0
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/process.env.d.ts +8 -0
  108. package/dist/process.env.d.ts.map +1 -0
  109. package/dist/process.env.js +44 -0
  110. package/dist/process.env.js.map +1 -0
  111. package/dist/prosopo.config.d.ts +3 -0
  112. package/dist/prosopo.config.d.ts.map +1 -0
  113. package/dist/prosopo.config.js +73 -0
  114. package/dist/prosopo.config.js.map +1 -0
  115. package/dist/reloader.d.ts +21 -0
  116. package/dist/reloader.d.ts.map +1 -0
  117. package/dist/reloader.js +58 -0
  118. package/dist/reloader.js.map +1 -0
  119. package/dist/start.d.ts +5 -0
  120. package/dist/start.d.ts.map +1 -0
  121. package/dist/start.js +65 -0
  122. package/dist/start.js.map +1 -0
  123. package/dist/tests/bundle/bundle.test.d.ts +2 -0
  124. package/dist/tests/bundle/bundle.test.d.ts.map +1 -0
  125. package/dist/tests/bundle/bundle.test.js +14 -0
  126. package/dist/tests/bundle/bundle.test.js.map +1 -0
  127. package/dist/tests/bundle/bundle.unit.test.d.ts +2 -0
  128. package/dist/tests/bundle/bundle.unit.test.d.ts.map +1 -0
  129. package/dist/tests/bundle/bundle.unit.test.js +14 -0
  130. package/dist/tests/bundle/bundle.unit.test.js.map +1 -0
  131. package/dist/tests/reloader.test.d.ts +2 -0
  132. package/dist/tests/reloader.test.d.ts.map +1 -0
  133. package/dist/tests/reloader.test.js +73 -0
  134. package/dist/tests/reloader.test.js.map +1 -0
  135. package/package.json +12 -12
@@ -0,0 +1,63 @@
1
+ export declare const getRateLimitConfig: () => {
2
+ "/v1/prosopo/provider/captcha/image": {
3
+ windowMs: string | undefined;
4
+ limit: string | undefined;
5
+ };
6
+ "/v1/prosopo/provider/captcha/pow": {
7
+ windowMs: string | undefined;
8
+ limit: string | undefined;
9
+ };
10
+ "/v1/prosopo/provider/solution": {
11
+ windowMs: string | undefined;
12
+ limit: string | undefined;
13
+ };
14
+ "/v1/prosopo/provider/pow/solution": {
15
+ windowMs: string | undefined;
16
+ limit: string | undefined;
17
+ };
18
+ "/v1/prosopo/provider/pow/verify": {
19
+ windowMs: string | undefined;
20
+ limit: string | undefined;
21
+ };
22
+ "/v1/prosopo/provider/image/dapp/verify": {
23
+ windowMs: string | undefined;
24
+ limit: string | undefined;
25
+ };
26
+ "/v1/prosopo/provider/status": {
27
+ windowMs: string | undefined;
28
+ limit: string | undefined;
29
+ };
30
+ "/v1/prosopo/provider/details": {
31
+ windowMs: string | undefined;
32
+ limit: string | undefined;
33
+ };
34
+ "/v1/prosopo/provider/events": {
35
+ windowMs: string | undefined;
36
+ limit: string | undefined;
37
+ };
38
+ "/v1/prosopo/provider/clients": {
39
+ windowMs: string | undefined;
40
+ limit: string | undefined;
41
+ };
42
+ "/v1/prosopo/provider/admin/dataset": {
43
+ windowMs: string | undefined;
44
+ limit: string | undefined;
45
+ };
46
+ "/v1/prosopo/provider/admin/sitekey/register": {
47
+ windowMs: string | undefined;
48
+ limit: string | undefined;
49
+ };
50
+ "/v1/prosopo/provider/admin/deregister": {
51
+ windowMs: string | undefined;
52
+ limit: string | undefined;
53
+ };
54
+ "/v1/prosopo/provider/admin/update": {
55
+ windowMs: string | undefined;
56
+ limit: string | undefined;
57
+ };
58
+ "/v1/prosopo/provider/captcha/frictionless": {
59
+ windowMs: string | undefined;
60
+ limit: string | undefined;
61
+ };
62
+ };
63
+ //# sourceMappingURL=RateLimiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../src/RateLimiter.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D9B,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { AdminApiPaths, ApiPaths } from "@prosopo/types";
2
+ export const getRateLimitConfig = () => {
3
+ return {
4
+ [ApiPaths.GetImageCaptchaChallenge]: {
5
+ windowMs: process.env.PROSOPO_GET_IMAGE_CAPTCHA_CHALLENGE_WINDOW,
6
+ limit: process.env.PROSOPO_GET_IMAGE_CAPTCHA_CHALLENGE_LIMIT,
7
+ },
8
+ [ApiPaths.GetPowCaptchaChallenge]: {
9
+ windowMs: process.env.PROSOPO_GET_POW_CAPTCHA_CHALLENGE_WINDOW,
10
+ limit: process.env.PROSOPO_GET_POW_CAPTCHA_CHALLENGE_LIMIT,
11
+ },
12
+ [ApiPaths.SubmitImageCaptchaSolution]: {
13
+ windowMs: process.env.PROSOPO_SUBMIT_IMAGE_CAPTCHA_SOLUTION_WINDOW,
14
+ limit: process.env.PROSOPO_SUBMIT_IMAGE_CAPTCHA_SOLUTION_LIMIT,
15
+ },
16
+ [ApiPaths.SubmitPowCaptchaSolution]: {
17
+ windowMs: process.env.PROSOPO_SUBMIT_POW_CAPTCHA_SOLUTION_WINDOW,
18
+ limit: process.env.PROSOPO_SUBMIT_POW_CAPTCHA_SOLUTION_LIMIT,
19
+ },
20
+ [ApiPaths.VerifyPowCaptchaSolution]: {
21
+ windowMs: process.env.PROSOPO_VERIFY_POW_CAPTCHA_SOLUTION_WINDOW,
22
+ limit: process.env.PROSOPO_VERIFY_POW_CAPTCHA_SOLUTION_LIMIT,
23
+ },
24
+ [ApiPaths.VerifyImageCaptchaSolutionDapp]: {
25
+ windowMs: process.env.PROSOPO_VERIFY_IMAGE_CAPTCHA_SOLUTION_DAPP_WINDOW,
26
+ limit: process.env.PROSOPO_VERIFY_IMAGE_CAPTCHA_SOLUTION_DAPP_LIMIT,
27
+ },
28
+ [ApiPaths.GetProviderStatus]: {
29
+ windowMs: process.env.PROSOPO_GET_PROVIDER_STATUS_WINDOW,
30
+ limit: process.env.PROSOPO_GET_PROVIDER_STATUS_LIMIT,
31
+ },
32
+ [ApiPaths.GetProviderDetails]: {
33
+ windowMs: process.env.PROSOPO_GET_PROVIDER_DETAILS_WINDOW,
34
+ limit: process.env.PROSOPO_GET_PROVIDER_DETAILS_LIMIT,
35
+ },
36
+ [ApiPaths.SubmitUserEvents]: {
37
+ windowMs: process.env.PROSOPO_SUBMIT_USER_EVENTS_WINDOW,
38
+ limit: process.env.PROSOPO_SUBMIT_USER_EVENTS_LIMIT,
39
+ },
40
+ [ApiPaths.UpdateProviderClients]: {
41
+ windowMs: process.env.PROSOPO_UPDATE_PROVIDER_CLIENTS_WINDOW,
42
+ limit: process.env.PROSOPO_UPDATE_PROVIDER_CLIENTS_LIMIT,
43
+ },
44
+ [AdminApiPaths.UpdateDataset]: {
45
+ windowMs: process.env.PROSOPO_UPDATE_DATASET_WINDOW,
46
+ limit: process.env.PROSOPO_UPDATE_DATASET_LIMIT,
47
+ },
48
+ [AdminApiPaths.SiteKeyRegister]: {
49
+ windowMs: process.env.PROSOPO_SITE_KEY_REGISTER_WINDOW,
50
+ limit: process.env.PROSOPO_SITE_KEY_REGISTER_LIMIT,
51
+ },
52
+ [AdminApiPaths.ProviderDeregister]: {
53
+ windowMs: process.env.PROSOPO_PROVIDER_DEREGISTER_WINDOW,
54
+ limit: process.env.PROSOPO_PROVIDER_DEREGISTER_LIMIT,
55
+ },
56
+ [AdminApiPaths.ProviderUpdate]: {
57
+ windowMs: process.env.PROSOPO_PROVIDER_UPDATE_WINDOW,
58
+ limit: process.env.PROSOPO_PROVIDER_UPDATE_LIMIT,
59
+ },
60
+ [ApiPaths.GetFrictionlessCaptchaChallenge]: {
61
+ windowMs: process.env.PROSOPO_GET_FR_CAPTCHA_CHALLENGE_WINDOW,
62
+ limit: process.env.PROSOPO_GET_FR_CAPTCHA_CHALLENGE_LIMIT,
63
+ },
64
+ };
65
+ };
66
+ //# sourceMappingURL=RateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../src/RateLimiter.ts"],"names":[],"mappings":"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"}
package/dist/argv.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import type { KeyringPair } from "@polkadot/keyring/types";
2
+ import type { ProsopoConfigOutput } from "@prosopo/types";
3
+ export type AwaitedProcessedArgs = {
4
+ [x: string]: unknown;
5
+ api: boolean;
6
+ _: (string | number)[];
7
+ $0: string;
8
+ };
9
+ export declare function processArgs(args: string[], pair: KeyringPair, config: ProsopoConfigOutput): {
10
+ [x: string]: unknown;
11
+ api: boolean;
12
+ adminApi: boolean;
13
+ _: (string | number)[];
14
+ $0: string;
15
+ } | Promise<{
16
+ [x: string]: unknown;
17
+ api: boolean;
18
+ adminApi: boolean;
19
+ _: (string | number)[];
20
+ $0: string;
21
+ }>;
22
+ //# sourceMappingURL=argv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAU1D,MAAM,MAAM,oBAAoB,GAAG;IAClC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,wBAAgB,WAAW,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,mBAAmB;;;;;;;;;;;;GAgB3B"}
package/dist/argv.js ADDED
@@ -0,0 +1,21 @@
1
+ import { LogLevel, getLogger } from "@prosopo/common";
2
+ import yargs from "yargs";
3
+ import { hideBin } from "yargs/helpers";
4
+ import { commandProviderSetDataset, commandSiteKeyRegister, commandStoreCaptchasExternally, commandVersion, } from "./commands/index.js";
5
+ export function processArgs(args, pair, config) {
6
+ const logger = getLogger(LogLevel.enum.info, "CLI");
7
+ return yargs(hideBin(args))
8
+ .usage("Usage: $0 [global options] <command> [options]")
9
+ .option("api", { demand: false, default: false, type: "boolean" })
10
+ .option("adminApi", {
11
+ demand: false,
12
+ default: false,
13
+ type: "boolean",
14
+ })
15
+ .command(commandProviderSetDataset(pair, config, { logger }))
16
+ .command(commandStoreCaptchasExternally(pair, config, { logger }))
17
+ .command(commandSiteKeyRegister(pair, config, { logger }))
18
+ .command(commandVersion(pair, config, { logger }))
19
+ .parse();
20
+ }
21
+ //# sourceMappingURL=argv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACN,yBAAyB,EACzB,sBAAsB,EACtB,8BAA8B,EAC9B,cAAc,GACd,MAAM,qBAAqB,CAAC;AAS7B,MAAM,UAAU,WAAW,CAC1B,IAAc,EACd,IAAiB,EACjB,MAA2B;IAE3B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACzB,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;QACnB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,SAAS;KACN,CAAC;SACV,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAC5D,OAAO,CAAC,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACjE,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACzD,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACjD,KAAK,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const types = require("@prosopo/types");
4
+ const getRateLimitConfig = () => {
5
+ return {
6
+ [types.ApiPaths.GetImageCaptchaChallenge]: {
7
+ windowMs: process.env.PROSOPO_GET_IMAGE_CAPTCHA_CHALLENGE_WINDOW,
8
+ limit: process.env.PROSOPO_GET_IMAGE_CAPTCHA_CHALLENGE_LIMIT
9
+ },
10
+ [types.ApiPaths.GetPowCaptchaChallenge]: {
11
+ windowMs: process.env.PROSOPO_GET_POW_CAPTCHA_CHALLENGE_WINDOW,
12
+ limit: process.env.PROSOPO_GET_POW_CAPTCHA_CHALLENGE_LIMIT
13
+ },
14
+ [types.ApiPaths.SubmitImageCaptchaSolution]: {
15
+ windowMs: process.env.PROSOPO_SUBMIT_IMAGE_CAPTCHA_SOLUTION_WINDOW,
16
+ limit: process.env.PROSOPO_SUBMIT_IMAGE_CAPTCHA_SOLUTION_LIMIT
17
+ },
18
+ [types.ApiPaths.SubmitPowCaptchaSolution]: {
19
+ windowMs: process.env.PROSOPO_SUBMIT_POW_CAPTCHA_SOLUTION_WINDOW,
20
+ limit: process.env.PROSOPO_SUBMIT_POW_CAPTCHA_SOLUTION_LIMIT
21
+ },
22
+ [types.ApiPaths.VerifyPowCaptchaSolution]: {
23
+ windowMs: process.env.PROSOPO_VERIFY_POW_CAPTCHA_SOLUTION_WINDOW,
24
+ limit: process.env.PROSOPO_VERIFY_POW_CAPTCHA_SOLUTION_LIMIT
25
+ },
26
+ [types.ApiPaths.VerifyImageCaptchaSolutionDapp]: {
27
+ windowMs: process.env.PROSOPO_VERIFY_IMAGE_CAPTCHA_SOLUTION_DAPP_WINDOW,
28
+ limit: process.env.PROSOPO_VERIFY_IMAGE_CAPTCHA_SOLUTION_DAPP_LIMIT
29
+ },
30
+ [types.ApiPaths.GetProviderStatus]: {
31
+ windowMs: process.env.PROSOPO_GET_PROVIDER_STATUS_WINDOW,
32
+ limit: process.env.PROSOPO_GET_PROVIDER_STATUS_LIMIT
33
+ },
34
+ [types.ApiPaths.GetProviderDetails]: {
35
+ windowMs: process.env.PROSOPO_GET_PROVIDER_DETAILS_WINDOW,
36
+ limit: process.env.PROSOPO_GET_PROVIDER_DETAILS_LIMIT
37
+ },
38
+ [types.ApiPaths.SubmitUserEvents]: {
39
+ windowMs: process.env.PROSOPO_SUBMIT_USER_EVENTS_WINDOW,
40
+ limit: process.env.PROSOPO_SUBMIT_USER_EVENTS_LIMIT
41
+ },
42
+ [types.ApiPaths.UpdateProviderClients]: {
43
+ windowMs: process.env.PROSOPO_UPDATE_PROVIDER_CLIENTS_WINDOW,
44
+ limit: process.env.PROSOPO_UPDATE_PROVIDER_CLIENTS_LIMIT
45
+ },
46
+ [types.AdminApiPaths.UpdateDataset]: {
47
+ windowMs: process.env.PROSOPO_UPDATE_DATASET_WINDOW,
48
+ limit: process.env.PROSOPO_UPDATE_DATASET_LIMIT
49
+ },
50
+ [types.AdminApiPaths.SiteKeyRegister]: {
51
+ windowMs: process.env.PROSOPO_SITE_KEY_REGISTER_WINDOW,
52
+ limit: process.env.PROSOPO_SITE_KEY_REGISTER_LIMIT
53
+ },
54
+ [types.AdminApiPaths.ProviderDeregister]: {
55
+ windowMs: process.env.PROSOPO_PROVIDER_DEREGISTER_WINDOW,
56
+ limit: process.env.PROSOPO_PROVIDER_DEREGISTER_LIMIT
57
+ },
58
+ [types.AdminApiPaths.ProviderUpdate]: {
59
+ windowMs: process.env.PROSOPO_PROVIDER_UPDATE_WINDOW,
60
+ limit: process.env.PROSOPO_PROVIDER_UPDATE_LIMIT
61
+ },
62
+ [types.ApiPaths.GetFrictionlessCaptchaChallenge]: {
63
+ windowMs: process.env.PROSOPO_GET_FR_CAPTCHA_CHALLENGE_WINDOW,
64
+ limit: process.env.PROSOPO_GET_FR_CAPTCHA_CHALLENGE_LIMIT
65
+ }
66
+ };
67
+ };
68
+ exports.getRateLimitConfig = getRateLimitConfig;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const common = require("@prosopo/common");
4
+ const yargs = require("yargs");
5
+ const helpers = require("yargs/helpers");
6
+ require("./commands/index.cjs");
7
+ const providerSetDataset = require("./commands/providerSetDataset.cjs");
8
+ const storeCaptchasExternally = require("./commands/storeCaptchasExternally.cjs");
9
+ const siteKeyRegister = require("./commands/siteKeyRegister.cjs");
10
+ const version = require("./commands/version.cjs");
11
+ function processArgs(args, pair, config) {
12
+ const logger = common.getLogger(common.LogLevel.enum.info, "CLI");
13
+ return yargs(helpers.hideBin(args)).usage("Usage: $0 [global options] <command> [options]").option("api", { demand: false, default: false, type: "boolean" }).option("adminApi", {
14
+ demand: false,
15
+ default: false,
16
+ type: "boolean"
17
+ }).command(providerSetDataset(pair, config, { logger })).command(storeCaptchasExternally(pair, config, { logger })).command(siteKeyRegister(pair, config, { logger })).command(version(pair, config, { logger })).parse();
18
+ }
19
+ exports.processArgs = processArgs;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ const process = require("node:process");
3
+ const common = require("@prosopo/common");
4
+ const contract = require("@prosopo/contract");
5
+ const dotenv = require("@prosopo/dotenv");
6
+ const util = require("@prosopo/util");
7
+ const argv = require("./argv.cjs");
8
+ const prosopo_config = require("./prosopo.config.cjs");
9
+ const reloader = require("./reloader.cjs");
10
+ const log = common.getLogger(common.LogLevel.enum.info, "CLI");
11
+ async function main() {
12
+ const envPath = dotenv.loadEnv();
13
+ const config = prosopo_config(void 0, {
14
+ solved: { count: 2 },
15
+ unsolved: { count: 0 }
16
+ });
17
+ if (config.devOnlyWatchEvents) {
18
+ log.warn(
19
+ `
20
+ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
21
+ EVENT TRACKING ON. IF NOT DEVELOPMENT, PLEASE STOP, CHANGE THE ENVIRONMENT, AND RESTART
22
+ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
23
+ `
24
+ );
25
+ }
26
+ const pair = await contract.getPairAsync(
27
+ config.account.secret,
28
+ config.account.address
29
+ );
30
+ log.info(`Pair address: ${pair.address}`);
31
+ const processedArgs = await argv.processArgs(process.argv, pair, config);
32
+ log.info(`Processsed args: ${JSON.stringify(processedArgs, null, 4)}`);
33
+ if (processedArgs.api) {
34
+ if (process.env.NODE_ENV === "development") {
35
+ await new reloader(envPath, config, pair, processedArgs).startDev().then(() => {
36
+ log.info("Reloading API started...");
37
+ });
38
+ } else {
39
+ await new reloader(envPath, config, pair, processedArgs).start().then(() => {
40
+ log.info("Reloading API started...");
41
+ });
42
+ }
43
+ } else {
44
+ process.exit(0);
45
+ }
46
+ }
47
+ if (util.isMain(module, "provider")) {
48
+ main().then(() => {
49
+ log.info("Running main process...");
50
+ }).catch((error) => {
51
+ log.error(error);
52
+ });
53
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const providerSetDataset = require("./providerSetDataset.cjs");
4
+ const storeCaptchasExternally = require("./storeCaptchasExternally.cjs");
5
+ const version = require("./version.cjs");
6
+ const siteKeyRegister = require("./siteKeyRegister.cjs");
7
+ exports.commandProviderSetDataset = providerSetDataset;
8
+ exports.commandStoreCaptchasExternally = storeCaptchasExternally;
9
+ exports.commandVersion = version;
10
+ exports.commandSiteKeyRegister = siteKeyRegister;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ const common = require("@prosopo/common");
3
+ const env = require("@prosopo/env");
4
+ const provider = require("@prosopo/provider");
5
+ const z = require("zod");
6
+ const files = require("../files.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const z__namespace = /* @__PURE__ */ _interopNamespaceDefault(z);
24
+ const commandProviderSetDataset = (pair, config, cmdArgs) => {
25
+ const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.provider_set_data_set");
26
+ return {
27
+ command: "provider_set_data_set",
28
+ describe: "Add a dataset as a Provider",
29
+ builder: (yargs) => yargs.option("file", {
30
+ type: "string",
31
+ demand: true,
32
+ desc: "The file path of a JSON dataset file"
33
+ }),
34
+ handler: async (argv) => {
35
+ try {
36
+ const env$1 = new env.ProviderEnvironment(config, pair);
37
+ await env$1.isReady();
38
+ const tasks = new provider.Tasks(env$1);
39
+ const file = z__namespace.string().parse(argv.file);
40
+ const jsonFile = files.loadJSONFile(file);
41
+ logger.info(`Loaded JSON from ${file}`);
42
+ const result = await tasks.datasetManager.providerSetDatasetFromFile(jsonFile);
43
+ logger.info(JSON.stringify(result, null, 2));
44
+ } catch (err) {
45
+ logger.error(err);
46
+ }
47
+ },
48
+ middlewares: []
49
+ };
50
+ };
51
+ module.exports = commandProviderSetDataset;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ const common = require("@prosopo/common");
3
+ const env = require("@prosopo/env");
4
+ const provider = require("@prosopo/provider");
5
+ const validators = require("./validators.cjs");
6
+ const commandSiteKeyRegister = (pair, config, cmdArgs) => {
7
+ const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.dapp_register");
8
+ return {
9
+ command: "site_key_register <sitekey>",
10
+ describe: "Register a Site Key",
11
+ builder: (yargs) => yargs.positional("sitekey", {
12
+ type: "string",
13
+ demandOption: true,
14
+ desc: "The AccountId of the application to register the Site Key with"
15
+ }),
16
+ handler: async (argv) => {
17
+ try {
18
+ const env$1 = new env.ProviderEnvironment(config, pair);
19
+ await env$1.isReady();
20
+ const siteKey = argv.sitekey;
21
+ const tasks = new provider.Tasks(env$1);
22
+ await tasks.clientTaskManager.registerSiteKey(siteKey, {});
23
+ logger.info(`Site Key ${argv.sitekey} registered`);
24
+ } catch (err) {
25
+ logger.error(err);
26
+ }
27
+ },
28
+ middlewares: [validators.validateSiteKey]
29
+ };
30
+ };
31
+ module.exports = commandSiteKeyRegister;
@@ -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.clientTaskManager.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;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const common = require("@prosopo/common");
4
+ const provider = require("@prosopo/provider");
5
+ const parser = require("cron-parser");
6
+ const validateAddress = (argv) => {
7
+ const address = provider.encodeStringAddress(argv.address);
8
+ return { address };
9
+ };
10
+ const validateSiteKey = (argv) => {
11
+ const sitekey = provider.encodeStringAddress(argv.sitekey);
12
+ return { sitekey };
13
+ };
14
+ const validateValue = (argv) => {
15
+ if (typeof argv.value !== "number") {
16
+ throw new common.ProsopoEnvError("CLI.PARAMETER_ERROR", {
17
+ context: { value: [argv.value] }
18
+ });
19
+ }
20
+ const value = argv.value;
21
+ return { value };
22
+ };
23
+ const validateScheduleExpression = (argv) => {
24
+ if (typeof argv.schedule === "string") {
25
+ const result = parser.parseString(argv.schedule);
26
+ if (argv.schedule in result.errors) {
27
+ throw new common.ProsopoEnvError("CLI.PARAMETER_ERROR", {
28
+ context: {
29
+ payee: [argv.shedule],
30
+ failedFuncName: validateScheduleExpression.name
31
+ }
32
+ });
33
+ }
34
+ return { schedule: argv.schedule };
35
+ }
36
+ return { schedule: null };
37
+ };
38
+ exports.validateAddress = validateAddress;
39
+ exports.validateScheduleExpression = validateScheduleExpression;
40
+ exports.validateSiteKey = validateSiteKey;
41
+ exports.validateValue = validateValue;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ const common = require("@prosopo/common");
3
+ const util = require("@prosopo/util");
4
+ const commandVersion = (pair, config, cmdArgs) => {
5
+ const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.version");
6
+ return {
7
+ command: "version",
8
+ describe: "Return the version of the software",
9
+ handler: async () => {
10
+ logger.info(`Version: ${JSON.stringify(util.version)}`);
11
+ }
12
+ };
13
+ };
14
+ module.exports = commandVersion;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fs = require("node:fs");
4
+ const node_stream = require("node:stream");
5
+ const common = require("@prosopo/common");
6
+ function loadJSONFile(filePath) {
7
+ try {
8
+ return JSON.parse(fs.readFileSync(filePath, "utf8"));
9
+ } catch (error) {
10
+ throw new common.ProsopoCliError("GENERAL.JSON_LOAD_FAILED", {
11
+ context: { error, filePath }
12
+ });
13
+ }
14
+ }
15
+ function writeJSONFile(filePath, jsonData) {
16
+ return new Promise((resolve, reject) => {
17
+ const writeStream = fs.createWriteStream(filePath);
18
+ writeStream.setDefaultEncoding("utf-8");
19
+ writeStream.on("finish", () => {
20
+ resolve(true);
21
+ });
22
+ writeStream.on("error", (err) => {
23
+ reject(err);
24
+ });
25
+ const readable = node_stream.Readable.from(JSON.stringify(jsonData));
26
+ readable.pipe(writeStream);
27
+ });
28
+ }
29
+ async function readFile(filePath) {
30
+ return new Promise((resolve, reject) => {
31
+ fs.readFile(filePath, (err, data) => {
32
+ if (err) reject(err);
33
+ resolve(data);
34
+ });
35
+ });
36
+ }
37
+ exports.loadJSONFile = loadJSONFile;
38
+ exports.readFile = readFile;
39
+ exports.writeJSONFile = writeJSONFile;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const argv = require("./argv.cjs");
4
+ require("./cli.cjs");
5
+ const start = require("./start.cjs");
6
+ const process_env = require("./process.env.cjs");
7
+ const files = require("./files.cjs");
8
+ const prosopo_config = require("./prosopo.config.cjs");
9
+ exports.processArgs = argv.processArgs;
10
+ exports.start = start.start;
11
+ exports.startDev = start.startDev;
12
+ exports.getAddress = process_env.getAddress;
13
+ exports.getDB = process_env.getDB;
14
+ exports.getPairType = process_env.getPairType;
15
+ exports.getPassword = process_env.getPassword;
16
+ exports.getSecret = process_env.getSecret;
17
+ exports.getSs58Format = process_env.getSs58Format;
18
+ exports.loadJSONFile = files.loadJSONFile;
19
+ exports.readFile = files.readFile;
20
+ exports.writeJSONFile = files.writeJSONFile;
21
+ exports.defaultConfig = prosopo_config;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const common = require("@prosopo/common");
4
+ function getSs58Format() {
5
+ return Number.parseInt(process.env.SS58_FORMAT || "") || 42;
6
+ }
7
+ function getPairType() {
8
+ return process.env.PROSOPO_PAIR_TYPE || "sr25519";
9
+ }
10
+ function getAddress(who) {
11
+ if (!who) {
12
+ who = "PROVIDER";
13
+ } else {
14
+ who = who.toUpperCase();
15
+ }
16
+ return process.env[`PROSOPO_${who}_ADDRESS`];
17
+ }
18
+ function getPassword(who) {
19
+ if (!who) {
20
+ who = "PROVIDER";
21
+ } else {
22
+ who = who.toUpperCase();
23
+ }
24
+ return process.env[`PROSOPO_${who}_ACCOUNT_PASSWORD`];
25
+ }
26
+ function getSecret(who) {
27
+ if (!who) {
28
+ who = "PROVIDER";
29
+ } else {
30
+ who = who.toUpperCase();
31
+ }
32
+ return process.env[`PROSOPO_${who}_MNEMONIC`] || process.env[`PROSOPO_${who}_SEED`] || process.env[`PROSOPO_${who}_URI`] || process.env[`PROSOPO_${who}_JSON`];
33
+ }
34
+ function getDB() {
35
+ if (!process.env.PROSOPO_DATABASE_HOST) {
36
+ throw new common.ProsopoEnvError("DATABASE.DATABASE_HOST_UNDEFINED");
37
+ }
38
+ return process.env.PROSOPO_DATABASE_HOST;
39
+ }
40
+ exports.getAddress = getAddress;
41
+ exports.getDB = getDB;
42
+ exports.getPairType = getPairType;
43
+ exports.getPassword = getPassword;
44
+ exports.getSecret = getSecret;
45
+ exports.getSs58Format = getSs58Format;