payment-kit 1.22.14 → 1.22.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/api/src/routes/tool.ts +31 -1
- package/blocklet.yml +1 -1
- package/package.json +6 -6
package/api/src/routes/tool.ts
CHANGED
|
@@ -2,9 +2,12 @@ import dayjs from 'dayjs';
|
|
|
2
2
|
import { Router } from 'express';
|
|
3
3
|
import Joi from 'joi';
|
|
4
4
|
|
|
5
|
+
import { getUrl } from '@blocklet/sdk';
|
|
6
|
+
import { joinURL } from 'ufo';
|
|
5
7
|
import { authenticate } from '../libs/security';
|
|
6
8
|
import { formatToShortUrl } from '../libs/url';
|
|
7
9
|
import { CheckoutSession } from '../store/models';
|
|
10
|
+
import logger from '../libs/logger';
|
|
8
11
|
|
|
9
12
|
const loginAuth = authenticate<CheckoutSession>({ component: false, ensureLogin: true, mine: true });
|
|
10
13
|
|
|
@@ -14,7 +17,7 @@ const shortUrlSchema = Joi.object({
|
|
|
14
17
|
url: Joi.string().uri().required(),
|
|
15
18
|
timeoutMin: Joi.number().optional(),
|
|
16
19
|
maxVisits: Joi.number().optional(),
|
|
17
|
-
});
|
|
20
|
+
}).unknown(true);
|
|
18
21
|
|
|
19
22
|
router.get('/short-url', loginAuth, async (req, res) => {
|
|
20
23
|
const { error } = shortUrlSchema.validate(req.query);
|
|
@@ -32,4 +35,31 @@ router.get('/short-url', loginAuth, async (req, res) => {
|
|
|
32
35
|
return res.json({ url: shortUrl });
|
|
33
36
|
});
|
|
34
37
|
|
|
38
|
+
router.get('/short-connect-url', async (req, res) => {
|
|
39
|
+
const { error } = shortUrlSchema.validate(req.query);
|
|
40
|
+
if (error) {
|
|
41
|
+
return res.status(400).json({ error: 'Invalid parameters', message: error.message });
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const { url, timeoutMin = 60, maxVisits = 5 } = req.query;
|
|
45
|
+
const serverUrl = getUrl();
|
|
46
|
+
|
|
47
|
+
const allowedEndpoint = joinURL(new URL(serverUrl).origin, '.well-known/service/gen-simple-access-key');
|
|
48
|
+
|
|
49
|
+
if (!url?.toString().startsWith(allowedEndpoint)) {
|
|
50
|
+
logger.error('Client try to generate short connect url from invalid service', { url });
|
|
51
|
+
return res
|
|
52
|
+
.status(400)
|
|
53
|
+
.json({ error: 'Just support generate short connect url from gen-simple-access-key service' });
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const timeoutMinNumber = Number(timeoutMin);
|
|
57
|
+
const validUntil = dayjs()
|
|
58
|
+
.add(timeoutMinNumber > 60 ? 60 : timeoutMinNumber, 'minutes')
|
|
59
|
+
.format('YYYY-MM-DDTHH:mm:ss+00:00');
|
|
60
|
+
|
|
61
|
+
const shortUrl = await formatToShortUrl({ url: url as string, validUntil, maxVisits: Number(maxVisits) });
|
|
62
|
+
return res.json({ url: shortUrl });
|
|
63
|
+
});
|
|
64
|
+
|
|
35
65
|
export default router;
|
package/blocklet.yml
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payment-kit",
|
|
3
|
-
"version": "1.22.
|
|
3
|
+
"version": "1.22.15",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "blocklet dev --open",
|
|
6
6
|
"lint": "tsc --noEmit && eslint src api/src --ext .mjs,.js,.jsx,.ts,.tsx",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
"@blocklet/error": "^0.3.2",
|
|
58
58
|
"@blocklet/js-sdk": "^1.17.2",
|
|
59
59
|
"@blocklet/logger": "^1.17.2",
|
|
60
|
-
"@blocklet/payment-broker-client": "1.22.
|
|
61
|
-
"@blocklet/payment-react": "1.22.
|
|
62
|
-
"@blocklet/payment-vendor": "1.22.
|
|
60
|
+
"@blocklet/payment-broker-client": "1.22.15",
|
|
61
|
+
"@blocklet/payment-react": "1.22.15",
|
|
62
|
+
"@blocklet/payment-vendor": "1.22.15",
|
|
63
63
|
"@blocklet/sdk": "^1.17.2",
|
|
64
64
|
"@blocklet/ui-react": "^3.2.6",
|
|
65
65
|
"@blocklet/uploader": "^0.3.11",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"devDependencies": {
|
|
130
130
|
"@abtnode/types": "^1.17.2",
|
|
131
131
|
"@arcblock/eslint-config-ts": "^0.3.3",
|
|
132
|
-
"@blocklet/payment-types": "1.22.
|
|
132
|
+
"@blocklet/payment-types": "1.22.15",
|
|
133
133
|
"@types/cookie-parser": "^1.4.9",
|
|
134
134
|
"@types/cors": "^2.8.19",
|
|
135
135
|
"@types/debug": "^4.1.12",
|
|
@@ -176,5 +176,5 @@
|
|
|
176
176
|
"parser": "typescript"
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
|
-
"gitHead": "
|
|
179
|
+
"gitHead": "4d8543567eb8958c55a8cf06d9031f3f64c57e27"
|
|
180
180
|
}
|