@prosopo/cli 0.1.12

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.
@@ -0,0 +1,20 @@
1
+ CAPTCHA_WASM_PATH=./src/contract/sources/captcha/ade7e8ecada8f2c71d896efdc1e11fcfabbe4c19/captcha.wasm
2
+ CAPTCHA_ABI_PATH=./src/contract/sources/captcha/ade7e8ecada8f2c71d896efdc1e11fcfabbe4c19/captcha.json
3
+ DAPP_WASM_PATH=./src/contract/sources/dapp/411053b7ec79cc77f5ec9f5eb18610b24daaaaf0/dapp.wasm
4
+ DAPP_ABI_PATH=./src/contract/sources/dapp/411053b7ec79cc77f5ec9f5eb18610b24daaaaf0/dapp.json
5
+ DAPP_SITE_KEY=5Ea1uv1VkQRe2UUu7V8QffpricjfJZ7QvEfRJDPazkjdLyZE
6
+ PROTOCOL_CONTRACT_ADDRESS=5FtYnuNSYwTBqnC3jcrP6TSEhjeczyrSHXCPRWZgazkTUVHS
7
+ DATABASE_PASSWORD=root
8
+ DATABASE_USERNAME=root
9
+ DATABASE_NAME=prosopo
10
+ DATABASE_HOST=127.0.0.1
11
+ DATABASE_PORT=27017
12
+ SUBSTRATE_NODE_URL=ws://192.168.1.28:9944
13
+ API_BASE_URL=http://192.168.1.28:9229
14
+ API_PORT=9229
15
+ PAIR_TYPE=sr25519
16
+ SS58_FORMAT=42
17
+ PROVIDER_ADDRESS=5EjTA28bKSbFPPyMbUjNtArxyqjwq38r1BapVmLZShaqEedV
18
+ PROVIDER_MNEMONIC=puppy cream effort carbon despair leg pyramid cotton endorse immense drill peasant
19
+ NODE_ENV=development
20
+ LOG_LEVEL=Debug
package/.env.rococo ADDED
@@ -0,0 +1,26 @@
1
+ CAPTCHA_WASM_PATH=./src/contract/sources/captcha/48321f627ee7320c69287dcc94e4071f474a5983/captcha.wasm
2
+ CAPTCHA_ABI_PATH=./src/contract/sources/captcha//48321f627ee7320c69287dcc94e4071f474a5983/captcha.json
3
+ DAPP_WASM_PATH=./src/contract/sources/dapp/411053b7ec79cc77f5ec9f5eb18610b24daaaaf0/dapp.wasm
4
+ DAPP_ABI_PATH=./src/contract/sources/dapp/411053b7ec79cc77f5ec9f5eb18610b24daaaaf0/dapp.json
5
+ DAPP_SITE_KEY=5Fa9fTPbYzp3SBNbcdhDY5ikAnBf7JcpbFv2J7uPBAixsLku
6
+ PROSOPO_SITE_KEY=5FemVKhpS5oCU6isHofNM8oSCGHM8Kd9JEYDbVZKaRbpJtmW
7
+ DAPP_SITE_KEY=5FemVKhpS5oCU6isHofNM8oSCGHM8Kd9JEYDbVZKaRbpJtmW
8
+ DAPP_MNEMONIC: humble about bridge merit disorder coin evil spirit trumpet win volcano awesome
9
+ PROTOCOL_CONTRACT_ADDRESS=5HiVWQhJrysNcFNEWf2crArKht16zrhro3FcekVWocyQjx5u
10
+ DATABASE_PASSWORD=root
11
+ DATABASE_USERNAME=root
12
+ DATABASE_NAME=prosopo
13
+ DATABASE_HOST=127.0.0.1
14
+ DATABASE_PORT=27017
15
+ SUBSTRATE_NODE_URL=wss://rococo-contracts-rpc.polkadot.io:443
16
+ API_BASE_URL=http://localhost:8282
17
+ API_PORT=8282
18
+ PAIR_TYPE=sr25519
19
+ SS58_FORMAT=42
20
+ PROVIDER_ADDRESS=5HRPt4cxQ8q41RdSfzkZKyMEfyHWiGJpaGrcyrxw5bU2ARws
21
+ PROVIDER_JSON={"encoded":"BR7sGFI4P+Sn9wimXXXtjd+mmJXvfxLtbHQSmXVxgesAgAAAAQAAAAgAAAAtDbsYobLj7pDH68Q/kaGIlOloyUbhQ9iZBwHshiYYJPBgmBkQkG4D0L//TsNrVVrLzMLerZL2f0kDNx/VO0zoSeYHUUD95Zy+VibydeoLrcQS5vi74J2+aNGwyhx03oANjBssdfRzuZ2zm+cMFOT+2iwR5M5aKPcw5j6WGElJmO4PDkHP0wKAb2u8gI78gSl9+3CI6byf3+QoD+b+","encoding":{"content":["pkcs8","sr25519"],"type":["scrypt","xsalsa20-poly1305"],"version":"3"},"address":"5HRPt4cxQ8q41RdSfzkZKyMEfyHWiGJpaGrcyrxw5bU2ARws","meta":{"genesisHash":"","isHidden":false,"name":"test4","whenCreated":1655722026003}}
22
+ PROVIDER_ACCOUNT_PASSWORD=password
23
+ NODE_ENV=rococo
24
+ LOG_LEVEL=Debug
25
+
26
+
package/.env.test ADDED
@@ -0,0 +1,20 @@
1
+ CAPTCHA_WASM_PATH=./src/contract/sources/captcha/fa333789d24f851482aa137fcc91037808d2aeea/captcha.wasm
2
+ CAPTCHA_ABI_PATH=./src/contract/sources/captcha/fa333789d24f851482aa137fcc91037808d2aeea/captcha.json
3
+ DAPP_WASM_PATH=./src/contract/sources/dapp/411053b7ec79cc77f5ec9f5eb18610b24daaaaf0/dapp.wasm
4
+ DAPP_ABI_PATH=./src/contract/sources/dapp/411053b7ec79cc77f5ec9f5eb18610b24daaaaf0/dapp.json
5
+ DAPP_SITE_KEY=5Hi11MyzeLXg8ozMiEiT6SEFFXKh9LrgBgNZmWqc4b39yMGg
6
+ PROTOCOL_CONTRACT_ADDRESS=5D655MSuGyxMRLTgc5C1wpMvveEhjrkbNt9BUyXbCxgkqQ5r
7
+ DATABASE_PASSWORD=root
8
+ DATABASE_USERNAME=root
9
+ DATABASE_NAME=prosopo
10
+ DATABASE_HOST=127.0.0.1
11
+ DATABASE_PORT=27017
12
+ SUBSTRATE_NODE_URL=ws://localhost:9944
13
+ API_BASE_URL=http://localhost:9229
14
+ API_PORT=9229
15
+ PAIR_TYPE=sr25519
16
+ SS58_FORMAT=42
17
+ PROVIDER_ADDRESS=5EjTA28bKSbFPPyMbUjNtArxyqjwq38r1BapVmLZShaqEedV
18
+ PROVIDER_MNEMONIC=puppy cream effort carbon despair leg pyramid cotton endorse immense drill peasant
19
+ NODE_ENV=test
20
+ LOG_LEVEL=Info
package/dist/argv.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { ProviderEnvironment } from '@prosopo/types-env';
2
+ export declare function processArgs(args: any, env: ProviderEnvironment): any;
3
+ //# sourceMappingURL=argv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAyDxD,wBAAgB,WAAW,CAAC,IAAI,KAAA,EAAE,GAAG,EAAE,mBAAmB,OA+VzD"}
package/dist/argv.js ADDED
@@ -0,0 +1,315 @@
1
+ "use strict";
2
+ // Copyright 2021-2022 Prosopo (UK) Ltd.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.processArgs = void 0;
17
+ const tslib_1 = require("tslib");
18
+ const provider_1 = require("@prosopo/provider");
19
+ const types_1 = require("@prosopo/types");
20
+ const common_1 = require("@prosopo/common");
21
+ const provider_2 = require("@prosopo/provider");
22
+ const process_1 = require("process");
23
+ const provider_3 = require("@prosopo/provider");
24
+ const util_1 = require("@polkadot/util");
25
+ const files_1 = require("./files");
26
+ const contract_1 = require("@prosopo/contract");
27
+ const cron_parser_1 = tslib_1.__importDefault(require("cron-parser"));
28
+ const pm2_1 = tslib_1.__importDefault(require("pm2"));
29
+ const yargs = require('yargs');
30
+ const validateAddress = (argv) => {
31
+ const address = (0, provider_3.encodeStringAddress)(argv.address);
32
+ return { address };
33
+ };
34
+ const validateContract = (argv) => {
35
+ const address = (0, provider_3.encodeStringAddress)(argv.contract);
36
+ return { address };
37
+ };
38
+ const validatePayee = (argv) => {
39
+ try {
40
+ if (!argv.payee)
41
+ return;
42
+ const payeeArg = argv.payee[0].toUpperCase() + argv.payee.slice(1).toLowerCase() || '';
43
+ const payee = types_1.PayeeSchema.parse(payeeArg);
44
+ return { payee };
45
+ }
46
+ catch (error) {
47
+ throw new common_1.ProsopoEnvError(error, 'CLI.PARAMETER_ERROR', {}, [argv.payee]);
48
+ }
49
+ };
50
+ const validateValue = (argv) => {
51
+ if (typeof argv.value !== 'number') {
52
+ throw new common_1.ProsopoEnvError('CLI.PARAMETER_ERROR', validateValue.name, {}, argv.value);
53
+ }
54
+ const value = argv.value;
55
+ return { value };
56
+ };
57
+ const validateScheduleExpression = (argv) => {
58
+ if (typeof argv.schedule === 'string') {
59
+ const result = cron_parser_1.default.parseString(argv.schedule);
60
+ if (argv.schedule in result.errors) {
61
+ throw new common_1.ProsopoEnvError('CLI.PARAMETER_ERROR', validateScheduleExpression.name, {}, [argv.schedule]);
62
+ }
63
+ return { schedule: argv.schedule };
64
+ }
65
+ else {
66
+ return { schedule: null };
67
+ }
68
+ };
69
+ function processArgs(args, env) {
70
+ const tasks = new provider_2.Tasks(env);
71
+ const logger = (0, common_1.logger)(env.config.logLevel, 'CLI');
72
+ return yargs
73
+ .usage('Usage: $0 [global options] <command> [options]')
74
+ .option('api', { demand: false, default: false, type: 'boolean' })
75
+ .command('provider_register', 'Register a Provider', (yargs) => yargs
76
+ .option('url', {
77
+ type: 'string',
78
+ demand: true,
79
+ desc: 'The provider service origin (URI)',
80
+ })
81
+ .option('fee', {
82
+ type: 'number',
83
+ demand: true,
84
+ desc: 'The fee to pay per solved captcha',
85
+ })
86
+ .option('payee', {
87
+ type: 'string',
88
+ demand: true,
89
+ desc: 'The person who receives the fee (`Provider` or `Dapp`)',
90
+ }), async (argv) => {
91
+ const providerRegisterArgs = [
92
+ Array.from((0, util_1.hexToU8a)((0, contract_1.stringToHexPadded)(argv.url))),
93
+ argv.fee,
94
+ argv.payee,
95
+ {
96
+ value: 0,
97
+ },
98
+ ];
99
+ await (0, contract_1.wrapQuery)(tasks.contract.query.providerRegister, tasks.contract.query)(...providerRegisterArgs);
100
+ const result = await tasks.contract.tx.providerRegister(...providerRegisterArgs);
101
+ logger.info(JSON.stringify(result, null, 2));
102
+ }, [validatePayee])
103
+ .command('provider_update', 'Update a Provider', (yargs) => yargs
104
+ .option('url', {
105
+ type: 'string',
106
+ demand: false,
107
+ desc: 'The provider service origin (URI)',
108
+ })
109
+ .option('fee', {
110
+ type: 'number',
111
+ demand: false,
112
+ desc: 'The fee to pay per solved captcha',
113
+ })
114
+ .option('payee', {
115
+ type: 'string',
116
+ demand: false,
117
+ desc: 'The person who receives the fee (`Provider` or `Dapp`)',
118
+ })
119
+ .option('value', {
120
+ type: 'number',
121
+ demand: false,
122
+ desc: 'The value to stake in the contract',
123
+ }), async (argv) => {
124
+ const provider = (await tasks.contract.query.getProvider(argv.address, {})).value.unwrap().unwrap();
125
+ if (provider && (argv.url || argv.fee || argv.payee || argv.value)) {
126
+ const result = await tasks.contract.tx.providerUpdate(argv.url || provider.url, argv.fee || provider.fee, argv.payee || provider.payee, argv.value || 0);
127
+ logger.info(JSON.stringify(result, null, 2));
128
+ }
129
+ }, [validateAddress, validatePayee])
130
+ .command('provider_deregister', 'Deregister a Provider', (yargs) => yargs.option('address', {
131
+ type: 'string',
132
+ demand: true,
133
+ desc: 'The AccountId of the Provider',
134
+ }), async (argv) => {
135
+ try {
136
+ await tasks.contract.tx.providerDeregister(argv.address);
137
+ logger.info('Provider registered');
138
+ }
139
+ catch (err) {
140
+ logger.error(err);
141
+ }
142
+ }, [validateAddress])
143
+ .command('provider_set_data_set', 'Add a dataset as a Provider', (yargs) => yargs.option('file', {
144
+ type: 'string',
145
+ demand: true,
146
+ desc: 'The file path of a JSON dataset file',
147
+ }), async (argv) => {
148
+ try {
149
+ const jsonFile = (0, files_1.loadJSONFile)(argv.file, logger);
150
+ const result = await tasks.providerSetDatasetFromFile(jsonFile);
151
+ logger.info(JSON.stringify(result, null, 2));
152
+ }
153
+ catch (err) {
154
+ logger.error(err);
155
+ }
156
+ }, [])
157
+ .command('dapp_register', 'Register a Dapp', (yargs) => yargs
158
+ .option('contract', {
159
+ type: 'string',
160
+ demand: true,
161
+ desc: 'The AccountId of the Dapp',
162
+ })
163
+ .option('payee', {
164
+ type: 'string',
165
+ demand: true,
166
+ desc: 'The person who receives the fee (`Provider` or `Dapp`)',
167
+ }), async (argv) => {
168
+ const dappRegisterArgs = [
169
+ argv.contract,
170
+ argv.payee,
171
+ {
172
+ value: 0,
173
+ },
174
+ ];
175
+ await (0, contract_1.wrapQuery)(tasks.contract.query.dappRegister, tasks.contract.query)(...dappRegisterArgs);
176
+ const result = await tasks.contract.tx.dappRegister(...dappRegisterArgs);
177
+ logger.info(JSON.stringify(result, null, 2));
178
+ }, [validateContract, validatePayee])
179
+ .command('dapp_update', 'Register a Dapp', (yargs) => yargs
180
+ .option('contract', {
181
+ type: 'string',
182
+ demand: true,
183
+ desc: 'The AccountId of the Dapp',
184
+ })
185
+ .option('payee', {
186
+ type: 'string',
187
+ demand: true,
188
+ desc: 'The person who receives the fee (`Provider` or `Dapp`)',
189
+ }), async (argv) => {
190
+ const stakeThreshold = (await tasks.contract.query.getDappStakeThreshold({})).value.unwrap();
191
+ const dappRegisterArgs = [
192
+ argv.contract,
193
+ argv.payee,
194
+ argv.owner,
195
+ {
196
+ value: stakeThreshold.toNumber(),
197
+ },
198
+ ];
199
+ await (0, contract_1.wrapQuery)(tasks.contract.query.dappUpdate, tasks.contract.query)(...dappRegisterArgs);
200
+ const result = await tasks.contract.tx.dappUpdate(...dappRegisterArgs);
201
+ logger.info(JSON.stringify(result, null, 2));
202
+ }, [validateContract, validatePayee])
203
+ .command('provider_accounts', 'List all provider accounts', (yargs) => yargs, async () => {
204
+ try {
205
+ const result = await tasks.contract.contract['providerAccounts']();
206
+ logger.info(JSON.stringify(result, null, 2));
207
+ }
208
+ catch (err) {
209
+ logger.error(err);
210
+ }
211
+ }, [])
212
+ .command('dapp_accounts', 'List all dapp accounts', (yargs) => yargs, async () => {
213
+ try {
214
+ const result = await tasks.contract.contract['dappAccounts']();
215
+ logger.info(JSON.stringify(result, null, 2));
216
+ }
217
+ catch (err) {
218
+ logger.error(err);
219
+ }
220
+ }, [])
221
+ .command('provider_details', 'List details of a single Provider', (yargs) => yargs.option('address', {
222
+ type: 'string',
223
+ demand: true,
224
+ desc: 'The AccountId of the Provider',
225
+ }), async (argv) => {
226
+ try {
227
+ const result = (await tasks.contract.query.getProvider(argv.address, {})).value.unwrap().unwrap();
228
+ logger.info(JSON.stringify(result, null, 2));
229
+ }
230
+ catch (err) {
231
+ logger.error(err);
232
+ }
233
+ }, [validateAddress])
234
+ .command('dapp_details', 'List details of a single Dapp', (yargs) => yargs.option('address', {
235
+ type: 'string',
236
+ demand: true,
237
+ desc: 'The AccountId of the Dapp',
238
+ }), async (argv) => {
239
+ try {
240
+ const result = (await tasks.contract.query.getDapp(argv.address)).value.unwrap().unwrap();
241
+ logger.info(JSON.stringify(result, null, 2));
242
+ }
243
+ catch (err) {
244
+ logger.error(err);
245
+ }
246
+ }, [validateAddress])
247
+ .command('calculate_captcha_solutions', 'Calculate captcha solutions', (yargs) => yargs.option('schedule', {
248
+ type: 'string',
249
+ demand: false,
250
+ desc: 'A Recurring schedule expression',
251
+ }), async (argv) => {
252
+ if (argv.schedule) {
253
+ pm2_1.default.connect((err) => {
254
+ if (err) {
255
+ console.error(err);
256
+ process.exit(2);
257
+ }
258
+ pm2_1.default.start({
259
+ script: `ts-node scheduler.js ${JSON.stringify(argv.schedule)}`,
260
+ name: 'scheduler',
261
+ cwd: (0, process_1.cwd)() + '/dist/src',
262
+ }, (err, apps) => {
263
+ if (err) {
264
+ console.error(err);
265
+ return pm2_1.default.disconnect();
266
+ }
267
+ logger.info(apps);
268
+ process.exit();
269
+ });
270
+ });
271
+ }
272
+ else {
273
+ const result = await tasks.calculateCaptchaSolutions();
274
+ logger.info(`Updated ${result} captcha solutions`);
275
+ }
276
+ }, [validateScheduleExpression])
277
+ .command('batch_commit', 'Batch commit user solutions to contract', (yargs) => yargs.option('schedule', {
278
+ type: 'string',
279
+ demand: false,
280
+ desc: 'A Recurring schedule expression',
281
+ }), async (argv) => {
282
+ if (argv.schedule) {
283
+ pm2_1.default.connect((err) => {
284
+ if (err) {
285
+ console.error(err);
286
+ process.exit(2);
287
+ }
288
+ pm2_1.default.start({
289
+ script: `ts-node scheduler.js ${JSON.stringify(argv.schedule)}`,
290
+ name: 'scheduler',
291
+ cwd: (0, process_1.cwd)() + '/dist/src',
292
+ }, (err, apps) => {
293
+ if (err) {
294
+ console.error(err);
295
+ return pm2_1.default.disconnect();
296
+ }
297
+ logger.info(apps);
298
+ process.exit();
299
+ });
300
+ });
301
+ }
302
+ else {
303
+ if (env.db) {
304
+ const batchCommitter = new provider_1.BatchCommitments(env.config.batchCommit, env.contractInterface, env.db, 2, 0n, env.logger);
305
+ const result = await batchCommitter.runBatch();
306
+ logger.info(`Batch commit complete: ${result}`);
307
+ }
308
+ else {
309
+ logger.error('No database configured');
310
+ }
311
+ }
312
+ }, [validateScheduleExpression]).argv;
313
+ }
314
+ exports.processArgs = processArgs;
315
+ //# sourceMappingURL=argv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Copyright 2021-2022 Prosopo (UK) Ltd.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+ // import { prosopoMiddleware } from '../api';
17
+ // import { LocalAssetsResolver } from '../assets';
18
+ const env_1 = require("@prosopo/env");
19
+ const process_env_1 = require("./process.env");
20
+ const common_1 = require("@prosopo/common");
21
+ const env_2 = require("./env");
22
+ const argv_1 = require("./argv");
23
+ async function main() {
24
+ (0, env_2.loadEnv)();
25
+ const secret = (0, process_env_1.getSecret)();
26
+ const ss58Format = (0, process_env_1.getSs58Format)();
27
+ const pairType = (0, process_env_1.getPairType)();
28
+ const config = (0, process_env_1.getConfig)();
29
+ const pair = await (0, common_1.getPair)(pairType, ss58Format, secret);
30
+ console.log(`Pair address: ${pair.address}`);
31
+ console.log(`Contract address: ${process.env.PROTOCOL_CONTRACT_ADDRESS}`);
32
+ const env = new env_1.ProviderEnvironment(pair, config);
33
+ await env.isReady();
34
+ await (0, argv_1.processArgs)(process.argv.slice(2), env);
35
+ process.exit();
36
+ }
37
+ // if main node process
38
+ if (typeof require !== 'undefined' && require.main === module) {
39
+ main().catch((error) => {
40
+ console.error(error);
41
+ });
42
+ }
43
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,8CAA8C;AAC9C,mDAAmD;AACnD,sCAAkD;AAClD,+CAAgF;AAChF,4CAAyC;AACzC,+BAA+B;AAC/B,iCAAoC;AACpC,KAAK,UAAU,IAAI;IACf,IAAA,aAAO,GAAE,CAAA;IACT,MAAM,MAAM,GAAG,IAAA,uBAAS,GAAE,CAAA;IAC1B,MAAM,UAAU,GAAG,IAAA,2BAAa,GAAE,CAAA;IAClC,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAA,uBAAS,GAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAO,EAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IAExD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAE5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,CAAA;IAEzE,MAAM,GAAG,GAAG,IAAI,yBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAEjD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;IAEnB,MAAM,IAAA,kBAAW,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAE7C,OAAO,CAAC,IAAI,EAAE,CAAA;AAClB,CAAC;AAED,uBAAuB;AACvB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3D,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;CACL"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare function loadEnv(rootDir?: string, filename?: string, filePath?: string): void;
2
+ export declare function getEnvFile(rootDir?: string, filename?: string, filepath?: string): string;
3
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAKA,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,QAK7E;AAED,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAS,EAAE,QAAQ,SAAgC,UAMvG"}
package/dist/env.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEnvFile = exports.loadEnv = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@prosopo/common");
6
+ const process_env_1 = require("./process.env");
7
+ const dotenv_1 = tslib_1.__importDefault(require("dotenv"));
8
+ const path_1 = tslib_1.__importDefault(require("path"));
9
+ function loadEnv(rootDir, filename, filePath) {
10
+ const envPath = getEnvFile(path_1.default.resolve(rootDir || '.'), filename, filePath);
11
+ const args = { path: envPath };
12
+ (0, common_1.logger)(common_1.LogLevel.Info, 'cli.env').info(`Env path: ${envPath}`);
13
+ dotenv_1.default.config(args);
14
+ }
15
+ exports.loadEnv = loadEnv;
16
+ function getEnvFile(rootDir, filename = '.env', filepath = path_1.default.join(__dirname, '../..')) {
17
+ const log = (0, common_1.logger)(common_1.LogLevel.Info, 'cli.env');
18
+ const env = (0, process_env_1.getEnv)();
19
+ const envPath = path_1.default.join(rootDir || filepath, `${filename}.${env}`);
20
+ log.info(`Env path: ${envPath}`);
21
+ return envPath;
22
+ }
23
+ exports.getEnvFile = getEnvFile;
24
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":";;;;AAAA,4CAAkD;AAClD,+CAAsC;AACtC,4DAA2B;AAC3B,wDAAuB;AAEvB,SAAgB,OAAO,CAAC,OAAgB,EAAE,QAAiB,EAAE,QAAiB;IAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC5E,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAC9B,IAAA,eAAM,EAAC,iBAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAA;IAC9D,gBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC;AALD,0BAKC;AAED,SAAgB,UAAU,CAAC,OAAgB,EAAE,QAAQ,GAAG,MAAM,EAAE,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IACpG,MAAM,GAAG,GAAG,IAAA,eAAM,EAAC,iBAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,IAAA,oBAAM,GAAE,CAAA;IACpB,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAA;IACpE,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;IAChC,OAAO,OAAO,CAAA;AAClB,CAAC;AAND,gCAMC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ export declare function loadJSONFile(filePath: string, logger?: any): any;
3
+ export declare function writeJSONFile(filePath: string, jsonData: any): Promise<unknown>;
4
+ export declare function readFile(filePath: any): Promise<Buffer>;
5
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":";AAGA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,OAO1D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,KAAA,oBAuBvD;AAED,wBAAsB,QAAQ,CAAC,QAAQ,KAAA,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxD"}
package/dist/files.js ADDED
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readFile = exports.writeJSONFile = exports.loadJSONFile = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@prosopo/common");
6
+ const fs_1 = tslib_1.__importStar(require("fs"));
7
+ function loadJSONFile(filePath, logger) {
8
+ // const parsedFilePath = handleFileProtocol(filePath, logger)
9
+ try {
10
+ return JSON.parse(fs_1.default.readFileSync(filePath, 'utf8'));
11
+ }
12
+ catch (err) {
13
+ throw new common_1.ProsopoEnvError(err, 'GENERAL.JSON_LOAD_FAILED', {}, filePath);
14
+ }
15
+ }
16
+ exports.loadJSONFile = loadJSONFile;
17
+ function writeJSONFile(filePath, jsonData) {
18
+ return new Promise((resolve, reject) => {
19
+ const writeStream = (0, fs_1.createWriteStream)(filePath);
20
+ writeStream.setDefaultEncoding('utf-8');
21
+ writeStream.on('open', () => {
22
+ writeStream.write(JSON.stringify(jsonData), (err) => {
23
+ if (err) {
24
+ reject(err);
25
+ }
26
+ writeStream.end();
27
+ });
28
+ });
29
+ writeStream.on('finish', () => {
30
+ resolve(true);
31
+ });
32
+ writeStream.on('error', (err) => {
33
+ reject(err);
34
+ });
35
+ });
36
+ }
37
+ exports.writeJSONFile = writeJSONFile;
38
+ async function readFile(filePath) {
39
+ // const parsedFilePath = handleFileProtocol(filePath, undefined)
40
+ return new Promise((resolve, reject) => {
41
+ fs_1.default.readFile(filePath, (err, data) => {
42
+ if (err)
43
+ reject(err);
44
+ resolve(data);
45
+ });
46
+ });
47
+ }
48
+ exports.readFile = readFile;
49
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":";;;;AAAA,4CAAiD;AACjD,iDAAuD;AAEvD,SAAgB,YAAY,CAAC,QAAgB,EAAE,MAAY;IACvD,8DAA8D;IAC9D,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;KACvD;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,wBAAe,CAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;KAC3E;AACL,CAAC;AAPD,oCAOC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,QAAQ;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,WAAW,GAAgB,IAAA,sBAAiB,EAAC,QAAQ,CAAC,CAAA;QAE5D,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAEvC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACxB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChD,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,GAAG,CAAC,CAAA;iBACd;gBACD,WAAW,CAAC,GAAG,EAAE,CAAA;YACrB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAvBD,sCAuBC;AAEM,KAAK,UAAU,QAAQ,CAAC,QAAQ;IACnC,iEAAiE;IACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,YAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAChC,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,OAAO,CAAC,IAAc,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AARD,4BAQC"}
@@ -0,0 +1,8 @@
1
+ export * from './argv';
2
+ export * from './cli';
3
+ export * from './start';
4
+ export * from './process.env';
5
+ export * from './env';
6
+ export * from './files';
7
+ export { default as defaultConfig } from './prosopo.config';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultConfig = void 0;
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./argv"), exports);
6
+ tslib_1.__exportStar(require("./cli"), exports);
7
+ tslib_1.__exportStar(require("./start"), exports);
8
+ tslib_1.__exportStar(require("./process.env"), exports);
9
+ tslib_1.__exportStar(require("./env"), exports);
10
+ tslib_1.__exportStar(require("./files"), exports);
11
+ var prosopo_config_1 = require("./prosopo.config");
12
+ Object.defineProperty(exports, "defaultConfig", { enumerable: true, get: function () { return tslib_1.__importDefault(prosopo_config_1).default; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAsB;AACtB,gDAAqB;AACrB,kDAAuB;AACvB,wDAA6B;AAC7B,gDAAqB;AACrB,kDAAuB;AACvB,mDAA2D;AAAlD,wIAAA,OAAO,OAAiB"}
@@ -0,0 +1,14 @@
1
+ import { KeypairType } from '@polkadot/util-crypto/types';
2
+ import { LogLevel } from '@prosopo/common';
3
+ import { ProsopoConfig } from '@prosopo/types';
4
+ export declare function getEnv(): string;
5
+ export declare function getSs58Format(): number;
6
+ export declare function getPairType(): KeypairType;
7
+ export declare function getSecret(): string;
8
+ export declare function getConfig(): ProsopoConfig;
9
+ /**
10
+ * Get the log level from the passed value or from environment variables or a default of `info`.
11
+ * @param logTypeOption
12
+ */
13
+ export declare function getLogLevel(logTypeOption?: string): LogLevel;
14
+ //# sourceMappingURL=process.env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.env.d.ts","sourceRoot":"","sources":["../src/process.env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAA0C,MAAM,iBAAiB,CAAA;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG9C,wBAAgB,MAAM,WAErB;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,WAAW,IAAI,WAAW,CAEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAUlC;AAED,wBAAgB,SAAS,IAAI,aAAa,CAEzC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAS5D"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLogLevel = exports.getConfig = exports.getSecret = exports.getPairType = exports.getSs58Format = exports.getEnv = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@prosopo/common");
6
+ const prosopo_config_1 = tslib_1.__importDefault(require("./prosopo.config"));
7
+ function getEnv() {
8
+ return process.env.NODE_ENV || 'development';
9
+ }
10
+ exports.getEnv = getEnv;
11
+ function getSs58Format() {
12
+ return parseInt(process.env.SS58_FORMAT || '') || 42;
13
+ }
14
+ exports.getSs58Format = getSs58Format;
15
+ function getPairType() {
16
+ return process.env.PAIR_TYPE || 'sr25519';
17
+ }
18
+ exports.getPairType = getPairType;
19
+ function getSecret() {
20
+ const secret = process.env.PROVIDER_MNEMONIC ||
21
+ process.env.PROVIDER_SEED ||
22
+ process.env.PROVIDER_URI ||
23
+ process.env.PROVIDER_JSON;
24
+ if (!secret) {
25
+ throw new common_1.ProsopoEnvError('GENERAL.NO_MNEMONIC_OR_SEED');
26
+ }
27
+ return secret;
28
+ }
29
+ exports.getSecret = getSecret;
30
+ function getConfig() {
31
+ return (0, prosopo_config_1.default)();
32
+ }
33
+ exports.getConfig = getConfig;
34
+ /**
35
+ * Get the log level from the passed value or from environment variables or a default of `info`.
36
+ * @param logTypeOption
37
+ */
38
+ function getLogLevel(logTypeOption) {
39
+ const logType = (0, common_1.capitaliseFirstLetter)(logTypeOption ? logTypeOption : process.env.LOG_LEVEL ? process.env.LOG_LEVEL : 'info');
40
+ if (logType) {
41
+ return common_1.LogLevel[logType] ? common_1.LogLevel[logType] : common_1.LogLevel.Info;
42
+ }
43
+ else {
44
+ return common_1.LogLevel.Info;
45
+ }
46
+ }
47
+ exports.getLogLevel = getLogLevel;
48
+ //# sourceMappingURL=process.env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.env.js","sourceRoot":"","sources":["../src/process.env.ts"],"names":[],"mappings":";;;;AACA,4CAAkF;AAElF,8EAA4C;AAE5C,SAAgB,MAAM;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAA;AAChD,CAAC;AAFD,wBAEC;AAED,SAAgB,aAAa;IACzB,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;AACxD,CAAC;AAFD,sCAEC;AAED,SAAgB,WAAW;IACvB,OAAQ,OAAO,CAAC,GAAG,CAAC,SAAyB,IAAK,SAAyB,CAAA;AAC/E,CAAC;AAFD,kCAEC;AAED,SAAgB,SAAS;IACrB,MAAM,MAAM,GACR,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,YAAY;QACxB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAA;IAC7B,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,IAAI,wBAAe,CAAC,6BAA6B,CAAC,CAAA;KAC3D;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAVD,8BAUC;AAED,SAAgB,SAAS;IACrB,OAAO,IAAA,wBAAa,GAAmB,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,aAAsB;IAC9C,MAAM,OAAO,GAAG,IAAA,8BAAqB,EACjC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACzF,CAAA;IACD,IAAI,OAAO,EAAE;QACT,OAAO,iBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAQ,CAAC,IAAI,CAAA;KAC/D;SAAM;QACH,OAAO,iBAAQ,CAAC,IAAI,CAAA;KACvB;AACL,CAAC;AATD,kCASC"}
@@ -0,0 +1,4 @@
1
+ import { ProsopoConfig } from '@prosopo/types';
2
+ declare const _default: () => ProsopoConfig;
3
+ export default _default;
4
+ //# sourceMappingURL=prosopo.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosopo.config.d.ts","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":"AAeA,OAAO,EAA2D,aAAa,EAAE,MAAM,gBAAgB,CAAA;8BAGpF,aAAa;AAAhC,wBAiDE"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ // Copyright 2021-2022 Prosopo (UK) Ltd.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ // import {ProsopoConfig} from './types';
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const types_1 = require("@prosopo/types");
18
+ const process_env_1 = require("./process.env");
19
+ exports.default = () => ({
20
+ logLevel: (0, process_env_1.getLogLevel)(),
21
+ defaultEnvironment: process.env.DEFAULT_ENVIRONMENT || types_1.EnvironmentTypesSchema.enum.development,
22
+ account: {
23
+ address: process.env.PROVIDER_ADDRESS || '',
24
+ password: process.env.PROVIDER_ACCOUNT_PASSWORD || undefined,
25
+ },
26
+ networks: {
27
+ development: {
28
+ endpoint: process.env.SUBSTRATE_NODE_URL || 'http://localhost:9944',
29
+ contract: {
30
+ address: process.env.PROTOCOL_CONTRACT_ADDRESS || '',
31
+ name: 'prosopo',
32
+ },
33
+ accounts: ['//Alice', '//Bob', '//Charlie', '//Dave', '//Eve', '//Ferdie'],
34
+ },
35
+ },
36
+ captchas: {
37
+ solved: {
38
+ count: 1, // TODO add env var
39
+ },
40
+ unsolved: {
41
+ count: 1, // TODO add env var
42
+ },
43
+ },
44
+ captchaSolutions: {
45
+ captchaBlockRecency: 10,
46
+ requiredNumberOfSolutions: 3,
47
+ solutionWinningPercentage: 80,
48
+ captchaFilePath: '../../data/captchas.json', // TODO add env var
49
+ },
50
+ database: {
51
+ development: {
52
+ type: types_1.DatabaseTypes.enum.mongo,
53
+ endpoint: `mongodb://${process.env.DATABASE_USERNAME}:${process.env.DATABASE_PASSWORD}@${process.env.DATABASE_HOST}:${process.env.DATABASE_PORT}`,
54
+ dbname: process.env.DATABASE_NAME || '',
55
+ authSource: 'admin',
56
+ },
57
+ },
58
+ batchCommit: {
59
+ interval: 300,
60
+ maxBatchExtrinsicPercentage: 59, // TODO add env var
61
+ },
62
+ server: {
63
+ baseURL: process.env.API_BASE_URL || '',
64
+ port: process.env.API_PORT ? parseInt(process.env.API_PORT) : 9229,
65
+ fileServePaths: process.env.FILE_SERVE_PATHS || '[]',
66
+ },
67
+ });
68
+ //# sourceMappingURL=prosopo.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosopo.config.js","sourceRoot":"","sources":["../src/prosopo.config.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,yCAAyC;;AAEzC,0CAAuG;AACvG,+CAA2C;AAE3C,kBAAe,GAAkB,EAAE,CAAC,CAAC;IACjC,QAAQ,EAAE,IAAA,yBAAW,GAAE;IACvB,kBAAkB,EACb,OAAO,CAAC,GAAG,CAAC,mBAAwC,IAAI,8BAAsB,CAAC,IAAI,CAAC,WAAW;IACpG,OAAO,EAAE;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;QAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,SAAS;KAC/D;IACD,QAAQ,EAAE;QACN,WAAW,EAAE;YACT,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB;YACnE,QAAQ,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;gBACpD,IAAI,EAAE,SAAS;aAClB;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;SAC7E;KACJ;IACD,QAAQ,EAAE;QACN,MAAM,EAAE;YACJ,KAAK,EAAE,CAAC,EAAE,mBAAmB;SAChC;QACD,QAAQ,EAAE;YACN,KAAK,EAAE,CAAC,EAAE,mBAAmB;SAChC;KACJ;IACD,gBAAgB,EAAE;QACd,mBAAmB,EAAE,EAAE;QACvB,yBAAyB,EAAE,CAAC;QAC5B,yBAAyB,EAAE,EAAE;QAC7B,eAAe,EAAE,0BAA0B,EAAE,mBAAmB;KACnE;IACD,QAAQ,EAAE;QACN,WAAW,EAAE;YACT,IAAI,EAAE,qBAAa,CAAC,IAAI,CAAC,KAAK;YAC9B,QAAQ,EAAE,aAAa,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YACjJ,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;YACvC,UAAU,EAAE,OAAO;SACtB;KACJ;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,GAAG;QACb,2BAA2B,EAAE,EAAE,EAAE,mBAAmB;KACvD;IACD,MAAM,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;QACvC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI;KACvD;CACJ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ProsopoApiError } from '@prosopo/common';
2
+ export declare const handleErrors: (err: ProsopoApiError, req: any, res: any, next: any) => any;
3
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAA2B,MAAM,iBAAiB,CAAA;AAW1E,eAAO,MAAM,YAAY,QAAS,eAAe,uCAWhD,CAAA"}
package/dist/start.js ADDED
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleErrors = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Copyright 2021-2023 Prosopo (UK) Ltd.
6
+ //
7
+ // Licensed under the Apache License, Version 2.0 (the "License");
8
+ // you may not use this file except in compliance with the License.
9
+ // You may obtain a copy of the License at
10
+ //
11
+ // http://www.apache.org/licenses/LICENSE-2.0
12
+ //
13
+ // Unless required by applicable law or agreed to in writing, software
14
+ // distributed under the License is distributed on an "AS IS" BASIS,
15
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ // See the License for the specific language governing permissions and
17
+ // limitations under the License.
18
+ const common_1 = require("@prosopo/common");
19
+ const env_1 = require("@prosopo/env");
20
+ const process_env_1 = require("./process.env");
21
+ const env_2 = require("./env");
22
+ const provider_1 = require("@prosopo/provider");
23
+ const cors_1 = tslib_1.__importDefault(require("cors"));
24
+ const express_1 = tslib_1.__importDefault(require("express"));
25
+ let apiAppSrv;
26
+ const handleErrors = (err, req, res, next) => {
27
+ let message = err.message;
28
+ try {
29
+ message = JSON.parse(err.message);
30
+ }
31
+ catch {
32
+ console.debug('Invalid JSON error message');
33
+ }
34
+ return res.status(err.code).json({
35
+ message,
36
+ name: err.name,
37
+ });
38
+ };
39
+ exports.handleErrors = handleErrors;
40
+ function startApi(env) {
41
+ const apiApp = (0, express_1.default)();
42
+ const apiPort = env.config.server.port;
43
+ apiApp.use((0, cors_1.default)());
44
+ apiApp.use(express_1.default.json());
45
+ apiApp.use((0, common_1.i18nMiddleware)({}));
46
+ apiApp.use((0, provider_1.prosopoRouter)(env));
47
+ apiApp.use(exports.handleErrors);
48
+ apiAppSrv = apiApp.listen(apiPort, () => {
49
+ env.logger.info(`Prosopo app listening at http://localhost:${apiPort}`);
50
+ });
51
+ }
52
+ function startFileSrv(port, locations) {
53
+ const app = (0, express_1.default)();
54
+ locations.forEach((loc) => {
55
+ // allow local filesystem lookup at each location
56
+ // http://localhost:3000/a.jpg
57
+ // serve path set to /
58
+ // url: pronode1.duckdns.org/img/a.jpg
59
+ // serve path set to /img
60
+ // url: pronode1.duckdns.org/a.jpg`
61
+ app.use('/', express_1.default.static(loc));
62
+ });
63
+ // only run server if locations have been specified
64
+ if (locations.length > 0) {
65
+ app.listen(port, () => {
66
+ console.log(`File server running on port ${port} serving [${locations}]`);
67
+ });
68
+ }
69
+ }
70
+ async function start(nodeEnv) {
71
+ (0, env_2.loadEnv)();
72
+ const ss58Format = (0, process_env_1.getSs58Format)();
73
+ const pairType = (0, process_env_1.getPairType)();
74
+ const secret = (0, process_env_1.getSecret)();
75
+ const config = (0, process_env_1.getConfig)();
76
+ const pair = await (0, common_1.getPair)(pairType, ss58Format, secret);
77
+ const env = new env_1.ProviderEnvironment(pair, config);
78
+ await env.isReady();
79
+ startApi(env);
80
+ // set up the file server
81
+ const port = env.config.server.port;
82
+ // accept multiple paths for locations of files
83
+ const paths = env.config.server.fileServePaths;
84
+ // if single path given convert to array
85
+ const parsed = JSON.parse(paths);
86
+ const locations = Array.isArray(parsed) ? parsed : [parsed];
87
+ startFileSrv(port, locations);
88
+ }
89
+ function stop() {
90
+ apiAppSrv.close();
91
+ }
92
+ //if main process
93
+ if (typeof require !== undefined && require.main === module) {
94
+ start(process.env.NODE_ENV || 'development').catch((error) => {
95
+ console.error(error);
96
+ });
97
+ }
98
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@prosopo/cli",
3
+ "version": "0.1.12",
4
+ "description": "Path env prosopo environment",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1",
8
+ "clean": "tsc --build --clean",
9
+ "build": "tsc --build --verbose",
10
+ "cli": "node ./dist/cli.js",
11
+ "start": "node ./dist/start.js",
12
+ "lint": "npx eslint .",
13
+ "lint:fix": "npx eslint . --fix"
14
+ },
15
+ "dependencies": {
16
+ "cors": "^2.8.5",
17
+ "dotenv": "^16.0.1",
18
+ "@polkadot/util-crypto": "12.3.2",
19
+ "@prosopo/common": "^0.1.11",
20
+ "@prosopo/env": "^0.1.11",
21
+ "@prosopo/provider": "^0.1.11",
22
+ "@prosopo/types": "^0.1.11"
23
+ },
24
+ "devDependencies": {
25
+ "typescript": "^4.9.4"
26
+ },
27
+ "author": "Prosopo",
28
+ "license": "Apache-2.0",
29
+ "sideEffects": false
30
+ }