@prosopo/client-example-server 0.2.14 → 0.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/app.js +4 -17
- package/dist/app.js.map +1 -1
- package/dist/controllers/auth.js +0 -21
- package/dist/controllers/auth.js.map +1 -1
- package/dist/models/user.js +0 -13
- package/dist/models/user.js.map +1 -1
- package/dist/routes/routes.js +0 -1
- package/dist/routes/routes.js.map +1 -1
- package/dist/utils/connection.js +0 -13
- package/dist/utils/connection.js.map +1 -1
- package/dist/utils/database.js +0 -13
- package/dist/utils/database.js.map +1 -1
- package/env.development +9 -9
- package/package.json +7 -7
- package/src/app.ts +4 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/vite.config.ts +1 -1
package/README.md
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
This example server implements signup, login and authorisation methods for a typical node backend application. The code
|
|
4
4
|
is based
|
|
5
5
|
on [an article written by Agustin Fernandez](https://www.asapdevelopers.com/build-a-react-native-login-app-with-node-js-backend/)
|
|
6
|
-
and is adapted to use a Mongo In-Memory Database.
|
|
6
|
+
and is adapted to use a Mongo In-Memory Database. This backend server integrates with the client-example React app.
|
package/dist/app.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
1
|
import { ProsopoServer, getServerConfig } from '@prosopo/server';
|
|
15
2
|
import { getPairAsync } from '@prosopo/contract';
|
|
16
3
|
import connectionFactory from './utils/connection.js';
|
|
@@ -45,15 +32,15 @@ async function main() {
|
|
|
45
32
|
const uri = await memoryServerSetup();
|
|
46
33
|
console.log('mongo uri', uri);
|
|
47
34
|
const mongoose = connectionFactory(uri);
|
|
48
|
-
if (!process.env.
|
|
49
|
-
throw new Error('No
|
|
35
|
+
if (!process.env.PROSOPO_SITE_PRIVATE_KEY) {
|
|
36
|
+
throw new Error('No private key found');
|
|
50
37
|
}
|
|
51
38
|
const config = getServerConfig();
|
|
52
39
|
console.log('config', config);
|
|
53
|
-
const pair = await getPairAsync(config.networks[config.defaultNetwork], process.env.
|
|
40
|
+
const pair = await getPairAsync(config.networks[config.defaultNetwork], process.env.PROSOPO_SITE_PRIVATE_KEY);
|
|
54
41
|
const prosopoServer = new ProsopoServer(config, pair);
|
|
55
42
|
app.use(routesFactory(mongoose, prosopoServer));
|
|
56
|
-
app.listen(process.env.
|
|
43
|
+
app.listen(process.env.PROSOPO_SERVER_PORT);
|
|
57
44
|
}
|
|
58
45
|
main()
|
|
59
46
|
.then(() => {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/controllers/auth.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
1
|
import { ApiParams } from '@prosopo/types';
|
|
15
2
|
import { ProcaptchaResponse } from '@prosopo/types';
|
|
16
3
|
import { at } from '@prosopo/util';
|
|
@@ -29,7 +16,6 @@ function hashPassword(password) {
|
|
|
29
16
|
const signup = async (mongoose, prosopoServer, req, res, next) => {
|
|
30
17
|
try {
|
|
31
18
|
const User = mongoose.model('User');
|
|
32
|
-
// checks if email exists
|
|
33
19
|
const dbUser = await User.findOne({
|
|
34
20
|
email: req.body.email,
|
|
35
21
|
});
|
|
@@ -39,9 +25,7 @@ const signup = async (mongoose, prosopoServer, req, res, next) => {
|
|
|
39
25
|
return res.status(409).json({ message: 'email already exists' });
|
|
40
26
|
}
|
|
41
27
|
if (await prosopoServer.isVerified(payload[ApiParams.procaptchaResponse])) {
|
|
42
|
-
// salt
|
|
43
28
|
const salt = randomAsHex(32);
|
|
44
|
-
// !!!DUMMY CODE!!! - Do not use in production. Use bcrypt or similar for password hashing.
|
|
45
29
|
const passwordHash = hashPassword(`${req.body.password}${salt}`);
|
|
46
30
|
if (passwordHash) {
|
|
47
31
|
return User.create({
|
|
@@ -71,7 +55,6 @@ const signup = async (mongoose, prosopoServer, req, res, next) => {
|
|
|
71
55
|
const login = async (mongoose, prosopoServer, req, res) => {
|
|
72
56
|
const User = mongoose.model('User');
|
|
73
57
|
await prosopoServer.isReady();
|
|
74
|
-
// checks if email exists
|
|
75
58
|
await User.findOne({
|
|
76
59
|
email: req.body.email,
|
|
77
60
|
})
|
|
@@ -82,15 +65,11 @@ const login = async (mongoose, prosopoServer, req, res) => {
|
|
|
82
65
|
else {
|
|
83
66
|
const payload = SubscribeBodySpec.parse(req.body);
|
|
84
67
|
if (await prosopoServer.isVerified(payload[ApiParams.procaptchaResponse])) {
|
|
85
|
-
// password hash
|
|
86
|
-
// !!!DUMMY CODE!!! - Do not use in production. Use bcrypt or similar for password hashing.
|
|
87
68
|
const passwordHash = hashPassword(`${req.body.password}${dbUser.salt}`);
|
|
88
69
|
if (passwordHash !== dbUser.password) {
|
|
89
|
-
// password doesnt match
|
|
90
70
|
res.status(401).json({ message: 'invalid credentials' });
|
|
91
71
|
}
|
|
92
72
|
else {
|
|
93
|
-
// password match
|
|
94
73
|
const token = jwt.sign({ email: req.body.email }, 'secret', { expiresIn: '1h' });
|
|
95
74
|
res.status(200).json({ message: 'user logged in', token: token });
|
|
96
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/controllers/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/controllers/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/models/user.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
1
|
import mongoose, { Schema } from 'mongoose';
|
|
15
2
|
const UserSchema = new Schema({
|
|
16
3
|
email: {
|
package/dist/models/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":"AAaA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAU3C,MAAM,UAAU,GAAG,IAAI,MAAM,CAAgB;IACzC,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;QACjC,QAAQ,EAAE,IAAI;KACjB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;KACpC;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;QACjC,QAAQ,EAAE,IAAI;KACjB;IACD,EAAE,EAAE;QACA,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;KACpC;IACD,IAAI,EAAE;QACF,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;QACjC,QAAQ,EAAE,IAAI;KACjB;CACJ,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
|
package/dist/routes/routes.js
CHANGED
|
@@ -8,7 +8,6 @@ function getRoutes(mongoose, prosopoServer) {
|
|
|
8
8
|
router.get('/public', (req, res) => {
|
|
9
9
|
res.status(200).json({ message: 'here is your public resource' });
|
|
10
10
|
});
|
|
11
|
-
// will match any other path
|
|
12
11
|
router.use('/', (req, res) => {
|
|
13
12
|
res.status(404).json({ error: 'page not found' });
|
|
14
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;AAE/B,SAAS,SAAS,CAAC,QAAoB,EAAE,aAA4B;IACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAEhE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAElE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAE9B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;AAE/B,SAAS,SAAS,CAAC,QAAoB,EAAE,aAA4B;IACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAEhE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAElE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAE9B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAGF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,eAAe,SAAS,CAAA"}
|
package/dist/utils/connection.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
1
|
import { AutoIncrementID } from '@typegoose/auto-increment';
|
|
15
2
|
import UserSchema from '../models/user.js';
|
|
16
3
|
import mongoose from 'mongoose';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/utils/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/utils/connection.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAA0B,MAAM,2BAA2B,CAAA;AACnF,OAAO,UAAU,MAAM,mBAAmB,CAAA;AAC1C,OAAO,QAAwB,MAAM,UAAU,CAAA;AAE/C,SAAS,iBAAiB,CAAC,GAAW;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACnB,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAA4B,CAAC,CAAA;QAC7E,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KACjC;IACD,OAAO,IAAI,CAAA;AACf,CAAC;AACD,eAAe,iBAAiB,CAAA"}
|
package/dist/utils/database.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
1
|
import { MongoMemoryServer } from 'mongodb-memory-server';
|
|
15
2
|
export async function memoryServerSetup() {
|
|
16
3
|
const mongod = MongoMemoryServer.create();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/utils/database.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAA;IACzC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAA;IACjC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAA;AAChC,CAAC;AACD,eAAe,iBAAiB,CAAA"}
|
package/env.development
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
PROSOPO_SITE_KEY=5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw
|
|
2
|
+
PROSOPO_SUBSTRATE_ENDPOINT=ws://localhost:9944
|
|
3
|
+
PROSOPO_CONTRACT_ADDRESS=
|
|
4
|
+
PROSOPO_WEB2=true
|
|
5
|
+
PROSOPO_SERVER_URL=https://localhost
|
|
6
|
+
PROSOPO_SITE_PRIVATE_KEY=//Bob
|
|
7
|
+
PROSOPO_SERVER_PORT=9228
|
|
8
|
+
PROSOPO_DEFAULT_ENVIRONMENT=development
|
|
9
|
+
PROSOPO_DEFAULT_NETWORK=development
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/client-example-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"description": "Backend for client-example",
|
|
5
5
|
"main": "dist/app.js",
|
|
6
6
|
"type": "module",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"@noble/hashes": "^1.3.1",
|
|
34
34
|
"@polkadot/util": "12.5.1",
|
|
35
35
|
"@polkadot/util-crypto": "12.5.1",
|
|
36
|
-
"@prosopo/api": "0.2.
|
|
37
|
-
"@prosopo/contract": "0.2.
|
|
38
|
-
"@prosopo/procaptcha": "0.2.
|
|
39
|
-
"@prosopo/server": "0.2.
|
|
40
|
-
"@prosopo/types": "0.2.
|
|
36
|
+
"@prosopo/api": "0.2.15",
|
|
37
|
+
"@prosopo/contract": "0.2.15",
|
|
38
|
+
"@prosopo/procaptcha": "0.2.15",
|
|
39
|
+
"@prosopo/server": "0.2.15",
|
|
40
|
+
"@prosopo/types": "0.2.15",
|
|
41
41
|
"@typegoose/auto-increment": "3.3.0",
|
|
42
42
|
"cors": "^2.8.5",
|
|
43
43
|
"jsonwebtoken": "^9.0.0",
|
|
@@ -52,6 +52,6 @@
|
|
|
52
52
|
"tslib": "2.6.2",
|
|
53
53
|
"typescript": "5.1.6",
|
|
54
54
|
"vite": "^4.5.0",
|
|
55
|
-
"@prosopo/config": "0.2.
|
|
55
|
+
"@prosopo/config": "0.2.15"
|
|
56
56
|
}
|
|
57
57
|
}
|
package/src/app.ts
CHANGED
|
@@ -55,19 +55,19 @@ async function main() {
|
|
|
55
55
|
const uri = await memoryServerSetup()
|
|
56
56
|
console.log('mongo uri', uri)
|
|
57
57
|
const mongoose = connectionFactory(uri)
|
|
58
|
-
if (!process.env.
|
|
59
|
-
throw new Error('No
|
|
58
|
+
if (!process.env.PROSOPO_SITE_PRIVATE_KEY) {
|
|
59
|
+
throw new Error('No private key found')
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
const config = getServerConfig()
|
|
63
63
|
|
|
64
64
|
console.log('config', config)
|
|
65
|
-
const pair = await getPairAsync(config.networks[config.defaultNetwork], process.env.
|
|
65
|
+
const pair = await getPairAsync(config.networks[config.defaultNetwork], process.env.PROSOPO_SITE_PRIVATE_KEY)
|
|
66
66
|
const prosopoServer = new ProsopoServer(config, pair)
|
|
67
67
|
|
|
68
68
|
app.use(routesFactory(mongoose, prosopoServer))
|
|
69
69
|
|
|
70
|
-
app.listen(process.env.
|
|
70
|
+
app.listen(process.env.PROSOPO_SERVER_PORT)
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
main()
|