@prosopo/cli 1.0.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +49 -49
  2. package/dist/RateLimiter.d.ts +59 -0
  3. package/dist/RateLimiter.d.ts.map +1 -0
  4. package/dist/RateLimiter.js +62 -0
  5. package/dist/RateLimiter.js.map +1 -0
  6. package/dist/argv.d.ts +2 -2
  7. package/dist/argv.d.ts.map +1 -1
  8. package/dist/argv.js +12 -19
  9. package/dist/argv.js.map +1 -1
  10. package/dist/bundle/provider.cli.bundle.js +299250 -0
  11. package/dist/cjs/RateLimiter.cjs +64 -0
  12. package/dist/cjs/argv.cjs +7 -14
  13. package/dist/cjs/cli.cjs +15 -10
  14. package/dist/cjs/commands/index.cjs +0 -20
  15. package/dist/cjs/commands/providerDeregister.cjs +2 -2
  16. package/dist/cjs/commands/providerSetDataset.cjs +2 -2
  17. package/dist/cjs/commands/validators.cjs +14 -9
  18. package/dist/cjs/env.cjs +7 -4
  19. package/dist/cjs/files.cjs +7 -6
  20. package/dist/cjs/process.env.cjs +1 -1
  21. package/dist/cjs/prosopo.config.cjs +23 -9
  22. package/dist/cjs/reloader.cjs +9 -7
  23. package/dist/cjs/start.cjs +20 -6
  24. package/dist/cli.js +17 -15
  25. package/dist/cli.js.map +1 -1
  26. package/dist/commands/index.d.ts +3 -13
  27. package/dist/commands/index.d.ts.map +1 -1
  28. package/dist/commands/index.js +3 -13
  29. package/dist/commands/index.js.map +1 -1
  30. package/dist/commands/providerDeregister.d.ts +4 -4
  31. package/dist/commands/providerDeregister.d.ts.map +1 -1
  32. package/dist/commands/providerDeregister.js +12 -12
  33. package/dist/commands/providerDeregister.js.map +1 -1
  34. package/dist/commands/providerSetDataset.d.ts +4 -4
  35. package/dist/commands/providerSetDataset.d.ts.map +1 -1
  36. package/dist/commands/providerSetDataset.js +13 -12
  37. package/dist/commands/providerSetDataset.js.map +1 -1
  38. package/dist/commands/validators.d.ts +4 -4
  39. package/dist/commands/validators.d.ts.map +1 -1
  40. package/dist/commands/validators.js +22 -17
  41. package/dist/commands/validators.js.map +1 -1
  42. package/dist/commands/version.d.ts +3 -3
  43. package/dist/commands/version.d.ts.map +1 -1
  44. package/dist/commands/version.js +5 -5
  45. package/dist/commands/version.js.map +1 -1
  46. package/dist/env.d.ts.map +1 -1
  47. package/dist/env.js +9 -9
  48. package/dist/env.js.map +1 -1
  49. package/dist/files.d.ts.map +1 -1
  50. package/dist/files.js +10 -8
  51. package/dist/files.js.map +1 -1
  52. package/dist/index.d.ts +7 -7
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +7 -7
  55. package/dist/index.js.map +1 -1
  56. package/dist/process.env.d.ts +1 -1
  57. package/dist/process.env.d.ts.map +1 -1
  58. package/dist/process.env.js +7 -7
  59. package/dist/process.env.js.map +1 -1
  60. package/dist/prosopo.config.d.ts +1 -1
  61. package/dist/prosopo.config.d.ts.map +1 -1
  62. package/dist/prosopo.config.js +39 -21
  63. package/dist/prosopo.config.js.map +1 -1
  64. package/dist/reloader.d.ts +3 -3
  65. package/dist/reloader.d.ts.map +1 -1
  66. package/dist/reloader.js +10 -8
  67. package/dist/reloader.js.map +1 -1
  68. package/dist/start.d.ts +2 -2
  69. package/dist/start.d.ts.map +1 -1
  70. package/dist/start.js +20 -13
  71. package/dist/start.js.map +1 -1
  72. package/dist/tests/bundle/bundle.test.js +8 -8
  73. package/dist/tests/bundle/bundle.test.js.map +1 -1
  74. package/package.json +55 -62
  75. package/vite.cjs.config.ts +3 -3
  76. package/vite.config.ts +38 -26
  77. package/vite.test.config.ts +12 -12
  78. package/dist/cjs/commands/batchCommit.cjs +0 -42
  79. package/dist/cjs/commands/dappAccounts.cjs +0 -25
  80. package/dist/cjs/commands/dappDetails.cjs +0 -30
  81. package/dist/cjs/commands/dappRegister.cjs +0 -63
  82. package/dist/cjs/commands/dappUpdate.cjs +0 -65
  83. package/dist/cjs/commands/providerAccounts.cjs +0 -24
  84. package/dist/cjs/commands/providerDataset.cjs +0 -61
  85. package/dist/cjs/commands/providerDetails.cjs +0 -48
  86. package/dist/cjs/commands/providerRegister.cjs +0 -74
  87. package/dist/cjs/commands/providerUpdate.cjs +0 -84
  88. package/dist/commands/batchCommit.d.ts +0 -21
  89. package/dist/commands/batchCommit.d.ts.map +0 -1
  90. package/dist/commands/batchCommit.js +0 -37
  91. package/dist/commands/batchCommit.js.map +0 -1
  92. package/dist/commands/dappAccounts.d.ts +0 -15
  93. package/dist/commands/dappAccounts.d.ts.map +0 -1
  94. package/dist/commands/dappAccounts.js +0 -25
  95. package/dist/commands/dappAccounts.js.map +0 -1
  96. package/dist/commands/dappDetails.d.ts +0 -19
  97. package/dist/commands/dappDetails.d.ts.map +0 -1
  98. package/dist/commands/dappDetails.js +0 -32
  99. package/dist/commands/dappDetails.js.map +0 -1
  100. package/dist/commands/dappRegister.d.ts +0 -23
  101. package/dist/commands/dappRegister.d.ts.map +0 -1
  102. package/dist/commands/dappRegister.js +0 -48
  103. package/dist/commands/dappRegister.js.map +0 -1
  104. package/dist/commands/dappUpdate.d.ts +0 -23
  105. package/dist/commands/dappUpdate.d.ts.map +0 -1
  106. package/dist/commands/dappUpdate.js +0 -50
  107. package/dist/commands/dappUpdate.js.map +0 -1
  108. package/dist/commands/providerAccounts.d.ts +0 -9
  109. package/dist/commands/providerAccounts.d.ts.map +0 -1
  110. package/dist/commands/providerAccounts.js +0 -24
  111. package/dist/commands/providerAccounts.js.map +0 -1
  112. package/dist/commands/providerDataset.d.ts +0 -18
  113. package/dist/commands/providerDataset.d.ts.map +0 -1
  114. package/dist/commands/providerDataset.js +0 -46
  115. package/dist/commands/providerDataset.js.map +0 -1
  116. package/dist/commands/providerDetails.d.ts +0 -19
  117. package/dist/commands/providerDetails.d.ts.map +0 -1
  118. package/dist/commands/providerDetails.js +0 -33
  119. package/dist/commands/providerDetails.js.map +0 -1
  120. package/dist/commands/providerRegister.d.ts +0 -9
  121. package/dist/commands/providerRegister.d.ts.map +0 -1
  122. package/dist/commands/providerRegister.js +0 -60
  123. package/dist/commands/providerRegister.js.map +0 -1
  124. package/dist/commands/providerUpdate.d.ts +0 -27
  125. package/dist/commands/providerUpdate.d.ts.map +0 -1
  126. package/dist/commands/providerUpdate.js +0 -63
  127. package/dist/commands/providerUpdate.js.map +0 -1
@@ -1,17 +1,20 @@
1
- import { DatabaseTypes, EnvironmentTypesSchema, NetworkNamesSchema, ProsopoConfigSchema, } from '@prosopo/types';
2
- import { getAddress, getPassword, getSecret } from './process.env.js';
3
- import { getLogLevel } from '@prosopo/common';
1
+ import { LogLevel, getLogLevel, getLogger } from "@prosopo/common";
2
+ import { DatabaseTypes, EnvironmentTypesSchema, NetworkNamesSchema, ProsopoConfigSchema, } from "@prosopo/types";
3
+ import { getRateLimitConfig } from "./RateLimiter.js";
4
+ import { getAddress, getPassword, getSecret } from "./process.env.js";
5
+ const logger = getLogger(LogLevel.enum.info, "Config");
4
6
  function getMongoURI() {
5
- const protocol = process.env.PROSOPO_DATABASE_PROTOCOL || 'mongodb';
6
- const mongoSrv = protocol === 'mongodb+srv';
7
- const password = process.env.PROSOPO_DATABASE_PASSWORD || '';
8
- const username = process.env.PROSOPO_DATABASE_USERNAME || '';
9
- const host = process.env.PROSOPO_DATABASE_HOST || 'localhost';
10
- const port = mongoSrv ? '' : `:${process.env.PROSOPO_DATABASE_PORT ? process.env.PROSOPO_DATABASE_PORT : 27017}`;
11
- const retries = mongoSrv ? '?retryWrites=true&w=majority' : '';
12
- return `${protocol}://${username}:${password}@${host}${port}/${retries}`;
7
+ const protocol = process.env.PROSOPO_DATABASE_PROTOCOL || "mongodb";
8
+ const mongoSrv = protocol === "mongodb+srv";
9
+ const password = process.env.PROSOPO_DATABASE_PASSWORD || "root";
10
+ const username = process.env.PROSOPO_DATABASE_USERNAME || "root";
11
+ const host = process.env.PROSOPO_DATABASE_HOST || "localhost";
12
+ const port = mongoSrv ? "" : `:${process.env.PROSOPO_DATABASE_PORT || 27017}`;
13
+ const retries = mongoSrv ? "?retryWrites=true&w=majority" : "";
14
+ const mongoURI = `${protocol}://${username}:${password}@${host}${port}/${retries}`;
15
+ return mongoURI;
13
16
  }
14
- export default function getConfig(networksConfig, captchaSolutionsConfig, batchCommitConfig, captchaServeConfig, who = 'PROVIDER') {
17
+ export default function getConfig(networksConfig, captchaSolutionsConfig, batchCommitConfig, captchaServeConfig, who = "PROVIDER") {
15
18
  return ProsopoConfigSchema.parse({
16
19
  logLevel: getLogLevel(),
17
20
  defaultEnvironment: process.env.PROSOPO_DEFAULT_ENVIRONMENT
@@ -29,27 +32,42 @@ export default function getConfig(networksConfig, captchaSolutionsConfig, batchC
29
32
  development: {
30
33
  type: DatabaseTypes.enum.mongo,
31
34
  endpoint: getMongoURI(),
32
- dbname: process.env.PROSOPO_DATABASE_NAME || '',
33
- authSource: 'admin',
35
+ dbname: process.env.PROSOPO_DATABASE_NAME || "prosopo",
36
+ authSource: "admin",
37
+ },
38
+ staging: {
39
+ type: DatabaseTypes.enum.mongo,
40
+ endpoint: getMongoURI(),
41
+ dbname: process.env.PROSOPO_DATABASE_NAME || "prosopo",
42
+ authSource: "admin",
34
43
  },
35
44
  production: {
36
45
  type: DatabaseTypes.enum.mongo,
37
46
  endpoint: getMongoURI(),
38
- dbname: process.env.PROSOPO_DATABASE_NAME || '',
39
- authSource: 'admin',
47
+ dbname: process.env.PROSOPO_DATABASE_NAME || "prosopo",
48
+ authSource: "admin",
40
49
  },
41
50
  },
42
51
  server: {
43
- baseURL: process.env.PROSOPO_API_BASE_URL || 'http://localhost',
44
- port: process.env.PROSOPO_API_PORT ? parseInt(process.env.PROSOPO_API_PORT) : 9229,
52
+ baseURL: process.env.PROSOPO_API_BASE_URL || "http://localhost",
53
+ port: process.env.PROSOPO_API_PORT
54
+ ? Number.parseInt(process.env.PROSOPO_API_PORT)
55
+ : 9229,
45
56
  },
46
57
  networks: networksConfig,
47
58
  captchaSolutions: captchaSolutionsConfig,
48
59
  batchCommit: batchCommitConfig,
49
60
  captchas: captchaServeConfig,
50
- devOnlyWatchEvents: process.env._DEV_ONLY_WATCH_EVENTS === 'true',
51
- mongoEventsUri: process.env.PROSOPO_MONGO_EVENTS_URI || '',
52
- mongoCaptchaUri: process.env.PROSOPO_MONGO_CAPTCHA_URI || '',
61
+ devOnlyWatchEvents: process.env._DEV_ONLY_WATCH_EVENTS === "true",
62
+ mongoEventsUri: process.env.PROSOPO_MONGO_EVENTS_URI || "",
63
+ mongoCaptchaUri: process.env.PROSOPO_MONGO_CAPTCHA_URI || "",
64
+ rateLimits: getRateLimitConfig(),
65
+ proxyCount: process.env.PROSOPO_PROXY_COUNT
66
+ ? Number.parseInt(process.env.PROSOPO_PROXY_COUNT)
67
+ : 0,
68
+ captchaScheduler: {
69
+ schedule: process.env.CAPTCHA_STORAGE_SCHEDULE,
70
+ },
53
71
  });
54
72
  }
55
73
  //# sourceMappingURL=prosopo.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAEH,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAKlB,mBAAmB,GAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,SAAS,WAAW;IAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,SAAS,CAAA;IACnE,MAAM,QAAQ,GAAG,QAAQ,KAAK,aAAa,CAAA;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAA;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAA;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAA;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;IAChH,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9D,OAAO,GAAG,QAAQ,MAAM,QAAQ,IAAI,QAAQ,IAAI,IAAI,GAAG,IAAI,IAAI,OAAO,EAAE,CAAA;AAC5E,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAC7B,cAA2C,EAC3C,sBAAkE,EAClE,iBAAkD,EAClD,kBAAyD,EACzD,GAAG,GAAG,UAAU;IAEhB,OAAO,mBAAmB,CAAC,KAAK,CAAC;QAC7B,QAAQ,EAAE,WAAW,EAAE;QACvB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACvD,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACvE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW;QAC7C,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;YAC/C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAC/D,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW;QACzC,OAAO,EAAE;YACL,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;YACxB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;YAC1B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;SACzB;QACD,QAAQ,EAAE;YACN,WAAW,EAAE;gBACT,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;gBAC9B,QAAQ,EAAE,WAAW,EAAE;gBACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;gBAC/C,UAAU,EAAE,OAAO;aACtB;YACD,UAAU,EAAE;gBACR,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;gBAC9B,QAAQ,EAAE,WAAW,EAAE;gBACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;gBAC/C,UAAU,EAAE,OAAO;aACtB;SACJ;QACD,MAAM,EAAE;YACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,kBAAkB;YAC/D,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;SACrF;QACD,QAAQ,EAAE,cAAc;QACxB,gBAAgB,EAAE,sBAAsB;QACxC,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM;QACjE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QAC1D,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;KACzC,CAAC,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAEL,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAKlB,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEvD,SAAS,WAAW;IAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,SAAS,CAAC;IACpE,MAAM,QAAQ,GAAG,QAAQ,KAAK,aAAa,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,MAAM,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,MAAM,CAAC;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,QAAQ,IAAI,QAAQ,IAAI,IAAI,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,cAA2C,EAC3C,sBAAkE,EAClE,iBAAkD,EAClD,kBAAyD,EACzD,GAAG,GAAG,UAAU;IAEhB,OAAO,mBAAmB,CAAC,KAAK,CAAC;QAC/B,QAAQ,EAAE,WAAW,EAAE;QACvB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACzD,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACvE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW;QAC3C,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;YACjD,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAC/D,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW;QACvC,OAAO,EAAE;YACP,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;YACxB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC;YAC1B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB;QACD,QAAQ,EAAE;YACR,WAAW,EAAE;gBACX,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;gBAC9B,QAAQ,EAAE,WAAW,EAAE;gBACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;gBACtD,UAAU,EAAE,OAAO;aACpB;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;gBAC9B,QAAQ,EAAE,WAAW,EAAE;gBACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;gBACtD,UAAU,EAAE,OAAO;aACpB;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;gBAC9B,QAAQ,EAAE,WAAW,EAAE;gBACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;gBACtD,UAAU,EAAE,OAAO;aACpB;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,kBAAkB;YAC/D,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBAChC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAC/C,CAAC,CAAC,IAAI;SACT;QACD,QAAQ,EAAE,cAAc;QACxB,gBAAgB,EAAE,sBAAsB;QACxC,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM;QACjE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QAC1D,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;QAC5D,UAAU,EAAE,kBAAkB,EAAE;QAChC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YACzC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;SAC/C;KACoB,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,6 +1,6 @@
1
- import { AwaitedProcessedArgs } from './argv.js';
2
- import { KeyringPair } from '@polkadot/keyring/types';
3
- import { ProsopoConfigOutput } from '@prosopo/types';
1
+ import type { KeyringPair } from "@polkadot/keyring/types";
2
+ import type { ProsopoConfigOutput } from "@prosopo/types";
3
+ import type { AwaitedProcessedArgs } from "./argv.js";
4
4
  export default class ReloadingAPI {
5
5
  private _envWatcher;
6
6
  private _envPath;
@@ -1 +1 @@
1
- {"version":3,"file":"reloader.d.ts","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AASpD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB;IAQnG,KAAK;IAQL,IAAI;YASH,SAAS;CAY1B"}
1
+ {"version":3,"file":"reloader.d.ts","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAMtD,MAAM,CAAC,OAAO,OAAO,YAAY;IAEhC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,WAAW,CAAU;gBAG5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,oBAAoB;IASvB,KAAK;IASL,IAAI;YASH,SAAS;CAYvB"}
package/dist/reloader.js CHANGED
@@ -1,9 +1,9 @@
1
- import { LogLevel, getLogger } from '@prosopo/common';
2
- import { ProviderEnvironment } from '@prosopo/env';
3
- import { loadEnv } from './env.js';
4
- import { start } from './start.js';
5
- import fs from 'fs';
6
- const log = getLogger(LogLevel.enum.info, 'CLI');
1
+ import fs from "node:fs";
2
+ import { LogLevel, getLogger } from "@prosopo/common";
3
+ import { ProviderEnvironment } from "@prosopo/env";
4
+ import { loadEnv } from "./env.js";
5
+ import { start } from "./start.js";
6
+ const log = getLogger(LogLevel.enum.info, "CLI");
7
7
  export default class ReloadingAPI {
8
8
  constructor(envPath, config, pair, processedArgs) {
9
9
  this._envPath = envPath;
@@ -13,14 +13,15 @@ export default class ReloadingAPI {
13
13
  this._restarting = false;
14
14
  }
15
15
  async start() {
16
- log.info('Starting API');
16
+ log.info("Starting API");
17
17
  this._envWatcher = await this._watchEnv();
18
+ loadEnv();
18
19
  const env = new ProviderEnvironment(this._config, this._pair);
19
20
  await env.isReady();
20
21
  this.api = await start(env, !!this._processedArgs.adminApi);
21
22
  }
22
23
  async stop() {
23
- log.info('Stopping API');
24
+ log.info("Stopping API");
24
25
  return new Promise((resolve) => {
25
26
  if (this.api) {
26
27
  this.api.close(resolve);
@@ -29,6 +30,7 @@ export default class ReloadingAPI {
29
30
  }
30
31
  async _watchEnv() {
31
32
  return fs.watchFile(this._envPath, async () => {
33
+ log.info(`env file change detected. Restarting: ${this._restarting}`);
32
34
  if (!this._restarting) {
33
35
  this._restarting = true;
34
36
  await this.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"reloader.js","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAEhD,MAAM,CAAC,OAAO,OAAO,YAAY;IAS7B,YAAY,OAAe,EAAE,MAA2B,EAAE,IAAiB,EAAE,aAAmC;QAC5G,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACzC,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7D,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;QACnB,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;aAC1B;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,SAAS;QACnB,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;gBACvB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;gBACjB,OAAO,EAAE,CAAA;gBAET,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;gBAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;aAC3B;QACL,CAAC,CAAC,CAAA;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"reloader.js","sourceRoot":"","sources":["../src/reloader.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,YAAY;IAUhC,YACC,OAAe,EACf,MAA2B,EAC3B,IAAiB,EACjB,aAAmC;QAEnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACxB;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,SAAS;QACtB,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC7C,GAAG,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aACzB;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
package/dist/start.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { ProviderEnvironment } from '@prosopo/env';
3
- import { Server } from 'node:net';
2
+ import type { Server } from "node:net";
3
+ import { ProviderEnvironment } from "@prosopo/env";
4
4
  export declare function start(env?: ProviderEnvironment, admin?: boolean): Promise<Server>;
5
5
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AA8BjC,wBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,mBA0BrE"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA2DnD,wBAAsB,KAAK,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,mBA+BrE"}
package/dist/start.js CHANGED
@@ -1,24 +1,31 @@
1
- import { ProviderEnvironment } from '@prosopo/env';
2
- import { getDB, getSecret } from './process.env.js';
3
- import { getPairAsync } from '@prosopo/contract';
4
- import { i18nMiddleware } from '@prosopo/common';
5
- import { loadEnv } from './env.js';
6
- import { prosopoAdminRouter, prosopoRouter, prosopoVerifyRouter, storeCaptchasExternally } from '@prosopo/provider';
7
- import cors from 'cors';
8
- import express from 'express';
9
- import getConfig from './prosopo.config.js';
1
+ import { i18nMiddleware } from "@prosopo/common";
2
+ import { getPairAsync } from "@prosopo/contract";
3
+ import { ProviderEnvironment } from "@prosopo/env";
4
+ import { prosopoAdminRouter, prosopoRouter, prosopoVerifyRouter, storeCaptchasExternally, } from "@prosopo/provider";
5
+ import cors from "cors";
6
+ import express from "express";
7
+ import rateLimit from "express-rate-limit";
8
+ import { loadEnv } from "./env.js";
9
+ import { getDB, getSecret } from "./process.env.js";
10
+ import getConfig from "./prosopo.config.js";
10
11
  function startApi(env, admin = false) {
11
- env.logger.info(`Starting Prosopo API`);
12
+ env.logger.info("Starting Prosopo API");
12
13
  const apiApp = express();
13
14
  const apiPort = env.config.server.port;
15
+ apiApp.set("trust proxy", env.config.proxyCount);
14
16
  apiApp.use(cors());
15
- apiApp.use(express.json({ limit: '50mb' }));
17
+ apiApp.use(express.json({ limit: "50mb" }));
16
18
  apiApp.use(i18nMiddleware({}));
17
19
  apiApp.use(prosopoRouter(env));
18
20
  apiApp.use(prosopoVerifyRouter(env));
19
21
  if (admin) {
20
22
  apiApp.use(prosopoAdminRouter(env));
21
23
  }
24
+ const rateLimits = env.config.rateLimits;
25
+ for (const [path, limit] of Object.entries(rateLimits)) {
26
+ const enumPath = path;
27
+ apiApp.use(enumPath, rateLimit(limit));
28
+ }
22
29
  return apiApp.listen(apiPort, () => {
23
30
  env.logger.info(`Prosopo app listening at http://localhost:${apiPort}`);
24
31
  });
@@ -32,13 +39,13 @@ export async function start(env, admin) {
32
39
  solved: { count: 2 },
33
40
  unsolved: { count: 0 },
34
41
  });
35
- const pair = await getPairAsync(config.networks[config.defaultNetwork], secret, '');
42
+ const pair = await getPairAsync(config.networks[config.defaultNetwork], secret, "");
36
43
  env = new ProviderEnvironment(config, pair);
37
44
  }
38
45
  await env.isReady();
39
46
  if (env.pair) {
40
47
  storeCaptchasExternally(env.pair, env.config).catch((err) => {
41
- console.error('Failed to start scheduler:', err);
48
+ console.error("Failed to start scheduler:", err);
42
49
  });
43
50
  }
44
51
  return startApi(env, admin);
package/dist/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACnH,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,SAAS,MAAM,qBAAqB,CAAA;AAE3C,SAAS,QAAQ,CAAC,GAAwB,EAAE,KAAK,GAAG,KAAK;IACrD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAA;IAEtC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAClB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9B,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9B,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEpC,IAAI,KAAK,EAAE;QACP,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;KACtC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE;QAC/B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAyB,EAAE,KAAe;IAClE,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,EAAE,CAAA;QAGT,KAAK,EAAE,CAAA;QAEP,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;YACtD,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACpB,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;SACzB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QACnF,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAC9C;IACD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;IAGnB,IAAI,GAAG,CAAC,IAAI,EAAE;QACV,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;KACL;IAED,OAAO,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { assert, describe, test } from 'vitest';
2
- import { exec } from 'child_process';
3
- import { getCliPkgDir } from '@prosopo/config';
4
- import { promisify } from 'util';
1
+ import { exec } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { getCliPkgDir } from "@prosopo/config";
4
+ import { assert, describe, test } from "vitest";
5
5
  const execPromise = promisify(exec);
6
- describe('provider bundle', () => {
7
- test('bundle runs after bundling', async () => {
6
+ describe("provider bundle", () => {
7
+ test("bundle runs after bundling", async () => {
8
8
  const rootDir = getCliPkgDir();
9
- await execPromise(`cd ${rootDir} && npm run bundle:prod`);
9
+ await execPromise(`cd ${rootDir} && NODE_ENV=production npm run bundle`);
10
10
  const { stdout: runOut, stderr: runErr } = await execPromise(`cd ${rootDir} && node dist/bundle/provider.cli.bundle.js version`);
11
- assert(runOut.includes('Version:'));
11
+ assert(runOut.includes("Version:"));
12
12
  }, 120000);
13
13
  });
14
14
  //# sourceMappingURL=bundle.test.js.map
@@ -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,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
+ {"version":3,"file":"bundle.test.js","sourceRoot":"","sources":["../../../src/tests/bundle/bundle.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAc/C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAE7C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAG/B,MAAM,WAAW,CAAC,MAAM,OAAO,wCAAwC,CAAC,CAAC;QAGzE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAC3D,MAAM,OAAO,qDAAqD,CAClE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,MAAM,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,64 +1,57 @@
1
1
  {
2
- "name": "@prosopo/cli",
3
- "version": "1.0.2",
4
- "description": "CLI for Prosopo Provider",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "engines": {
8
- "node": ">=20",
9
- "npm": ">=9"
10
- },
11
- "exports": {
12
- ".": {
13
- "import": "./dist/index.js",
14
- "require": "./dist/cjs/index.cjs"
15
- }
16
- },
17
- "scripts": {
18
- "clean": "tsc --build --clean",
19
- "build": "tsc --build --verbose",
20
- "build:cjs": "npx vite --config vite.cjs.config.ts build",
21
- "bundle:dev": "vite build --config vite.config.ts --mode development",
22
- "bundle:prod": "vite build --config vite.config.ts --mode production",
23
- "test": "npx vitest run --config ./vite.test.config.ts",
24
- "cli": "node ./dist/cli.js",
25
- "start": "node ./dist/cli.js --api",
26
- "eslint": "npx eslint . --cache --cache-location ../../node_modules/.cache/eslint/.eslintcache --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore --quiet",
27
- "eslint:fix": "npm run eslint -- --fix",
28
- "prettier": "npx prettier . --cache --cache-location ../../node_modules/.cache/prettier/.prettiercache --check --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
29
- "prettier:fix": "npm run prettier -- --write",
30
- "lint": "npm run eslint && npm run prettier",
31
- "lint:fix": "npm run eslint:fix && npm run prettier:fix"
32
- },
33
- "dependencies": {
34
- "@polkadot/keyring": "12.6.2",
35
- "@polkadot/types": "10.13.1",
36
- "@polkadot/util": "12.6.2",
37
- "@polkadot/util-crypto": "12.6.2",
38
- "@prosopo/captcha-contract": "1.0.2",
39
- "@prosopo/common": "1.0.2",
40
- "@prosopo/contract": "1.0.2",
41
- "@prosopo/env": "1.0.2",
42
- "@prosopo/provider": "1.0.2",
43
- "@prosopo/types": "1.0.2",
44
- "@prosopo/util": "1.0.2",
45
- "cors": "^2.8.5",
46
- "cron-parser": "^4.9.0",
47
- "dotenv": "^16.0.1",
48
- "yargs": "^17.7.2",
49
- "zod": "^3.22.4"
50
- },
51
- "devDependencies": {
52
- "es-main": "^1.2.0",
53
- "express": "^4.18.2",
54
- "vite": "^5.1.7",
55
- "vitest": "^1.3.1",
56
- "@prosopo/config": "1.0.2",
57
- "@types/cors": "^2.8.14",
58
- "tslib": "2.6.2",
59
- "typescript": "5.1.6"
60
- },
61
- "author": "Prosopo",
62
- "license": "Apache-2.0",
63
- "sideEffects": false
2
+ "name": "@prosopo/cli",
3
+ "version": "2.0.1",
4
+ "description": "CLI for Prosopo Provider",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=20",
9
+ "npm": ">=9"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "require": "./dist/cjs/index.cjs"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "clean": "tsc --build --clean",
19
+ "build": "tsc --build --verbose",
20
+ "build:cjs": "npx vite --config vite.cjs.config.ts build",
21
+ "bundle": "NODE_ENV=${NODE_ENV:-production}; vite build --config vite.config.ts --mode $NODE_ENV",
22
+ "test": "NODE_ENV=${NODE_ENV:-test}; npx vitest run --config ./vite.test.config.ts",
23
+ "cli": "node ./dist/cli.js",
24
+ "start": "node ./dist/cli.js --api"
25
+ },
26
+ "dependencies": {
27
+ "@polkadot/keyring": "12.6.2",
28
+ "@polkadot/util": "12.6.2",
29
+ "@polkadot/util-crypto": "12.6.2",
30
+ "@prosopo/common": "2.0.1",
31
+ "@prosopo/contract": "2.0.1",
32
+ "@prosopo/env": "2.0.1",
33
+ "@prosopo/provider": "2.0.1",
34
+ "@prosopo/types": "2.0.1",
35
+ "@prosopo/util": "2.0.1",
36
+ "cors": "^2.8.5",
37
+ "cron-parser": "^4.9.0",
38
+ "dotenv": "^16.0.1",
39
+ "express-rate-limit": "^7.3.1",
40
+ "yargs": "^17.7.2",
41
+ "zod": "^3.22.4"
42
+ },
43
+ "devDependencies": {
44
+ "@prosopo/config": "2.0.1",
45
+ "@types/cors": "^2.8.14",
46
+ "@types/yargs": "^17.0.32",
47
+ "es-main": "^1.2.0",
48
+ "express": "^4.18.2",
49
+ "tslib": "2.6.2",
50
+ "typescript": "5.1.6",
51
+ "vite": "^5.1.7",
52
+ "vitest": "^1.3.1"
53
+ },
54
+ "author": "Prosopo",
55
+ "license": "Apache-2.0",
56
+ "sideEffects": false
64
57
  }
@@ -1,3 +1,4 @@
1
+ import path from "node:path";
1
2
  // Copyright 2021-2024 Prosopo (UK) Ltd.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -11,9 +12,8 @@
11
12
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
13
  // See the License for the specific language governing permissions and
13
14
  // limitations under the License.
14
- import { ViteCommonJSConfig } from '@prosopo/config'
15
- import path from 'path'
15
+ import { ViteCommonJSConfig } from "@prosopo/config";
16
16
 
17
17
  export default function () {
18
- return ViteCommonJSConfig('cli', path.resolve('./tsconfig.cjs.json'))
18
+ return ViteCommonJSConfig("cli", path.resolve("./tsconfig.cjs.json"));
19
19
  }
package/vite.config.ts CHANGED
@@ -11,37 +11,49 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import * as path from 'path'
15
- import { ViteBackendConfig } from '@prosopo/config'
16
- import { defineConfig } from 'vite'
17
- import { loadEnv } from '@prosopo/cli'
18
- import { version } from './package.json'
14
+ import * as path from "node:path";
15
+ import { loadEnv } from "@prosopo/cli";
16
+ import { ViteBackendConfig } from "@prosopo/config";
17
+ import { defineConfig } from "vite";
18
+ import { version } from "./package.json";
19
19
 
20
20
  // load env using our util because vite loadEnv is not working for .env.development
21
- loadEnv()
21
+ loadEnv();
22
22
 
23
23
  // Package specific config
24
- const packageName = '@prosopo/cli'
25
- const bundleName = 'provider'
26
- const dir = path.resolve()
27
- const entry = './src/cli.ts'
28
- const packageVersion = version
24
+ const packageName = "@prosopo/cli";
25
+ const bundleName = "provider";
26
+ const dir = path.resolve();
27
+ const entry = "./src/cli.ts";
28
+ const packageVersion = version;
29
29
 
30
- process.env.TS_NODE_PROJECT = path.resolve('./tsconfig.json')
30
+ process.env.TS_NODE_PROJECT = path.resolve("./tsconfig.json");
31
31
 
32
32
  // Merge with generic backend config
33
33
  export default defineConfig(async ({ command, mode }) => {
34
- const backendConfig = await ViteBackendConfig(packageName, packageVersion, bundleName, dir, entry, command, mode)
35
- return defineConfig({
36
- define: {
37
- ...backendConfig.define,
38
- ...(process.env.PROSOPO_MONGO_EVENTS_URI && {
39
- 'process.env.PROSOPO_MONGO_EVENTS_URI': JSON.stringify(process.env.PROSOPO_MONGO_EVENTS_URI),
40
- }),
41
- ...(process.env._DEV_ONLY_WATCH_EVENTS && {
42
- 'process.env._DEV_ONLY_WATCH_EVENTS': JSON.stringify(process.env._DEV_ONLY_WATCH_EVENTS),
43
- }),
44
- },
45
- ...backendConfig,
46
- })
47
- })
34
+ const backendConfig = await ViteBackendConfig(
35
+ packageName,
36
+ packageVersion,
37
+ bundleName,
38
+ dir,
39
+ entry,
40
+ command,
41
+ mode,
42
+ );
43
+ return defineConfig({
44
+ define: {
45
+ ...backendConfig.define,
46
+ ...(process.env.PROSOPO_MONGO_EVENTS_URI && {
47
+ "process.env.PROSOPO_MONGO_EVENTS_URI": JSON.stringify(
48
+ process.env.PROSOPO_MONGO_EVENTS_URI,
49
+ ),
50
+ }),
51
+ ...(process.env._DEV_ONLY_WATCH_EVENTS && {
52
+ "process.env._DEV_ONLY_WATCH_EVENTS": JSON.stringify(
53
+ process.env._DEV_ONLY_WATCH_EVENTS,
54
+ ),
55
+ }),
56
+ },
57
+ ...backendConfig,
58
+ });
59
+ });
@@ -1,3 +1,5 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
1
3
  // Copyright 2021-2024 Prosopo (UK) Ltd.
2
4
  //
3
5
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -11,22 +13,20 @@
11
13
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
14
  // See the License for the specific language governing permissions and
13
15
  // 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'
16
+ import { ViteTestConfig } from "@prosopo/config";
17
+ import dotenv from "dotenv";
18
+ process.env.NODE_ENV = "test";
19
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
20
+ const envFile = `.env.${process.env.NODE_ENV || "development"}`;
21
+ let envPath = envFile;
22
22
  if (fs.existsSync(envFile)) {
23
- envPath = path.resolve(envFile)
23
+ envPath = path.resolve(envFile);
24
24
  } else if (fs.existsSync(`../../${envFile}`)) {
25
- envPath = path.resolve(`../../${envFile}`)
25
+ envPath = path.resolve(`../../${envFile}`);
26
26
  } else {
27
- throw new Error(`No ${envFile} file found`)
27
+ throw new Error(`No ${envFile} file found`);
28
28
  }
29
29
 
30
- dotenv.config({ path: envPath })
30
+ dotenv.config({ path: envPath });
31
31
 
32
- export default ViteTestConfig
32
+ export default ViteTestConfig;
@@ -1,42 +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 commandBatchCommit = (pair, config, cmdArgs) => {
7
- const logger = cmdArgs?.logger || common.getLogger(common.LogLevel.enum.info, "cli.batch_commit");
8
- return {
9
- command: "batch_commit",
10
- describe: "Batch commit user solutions to contract",
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
- if (env$1.db) {
25
- const batchCommitter = new provider.BatchCommitmentsTask(
26
- env$1.config.batchCommit,
27
- env$1.getContractInterface(),
28
- env$1.db,
29
- 0n,
30
- env$1.logger
31
- );
32
- const result = await batchCommitter.run();
33
- logger.info(`Batch commit complete: ${result}`);
34
- } else {
35
- logger.error("No database configured");
36
- }
37
- }
38
- },
39
- middlewares: [validators.validateScheduleExpression]
40
- };
41
- };
42
- module.exports = commandBatchCommit;