@abtnode/ux 1.16.25-beta-be3a37f4 → 1.16.25-beta-44800645
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/es/blocklet/router/action/add-rule.js +12 -0
- package/es/blocklet/router/action/config-routing-rule.js +55 -4
- package/es/blocklet/router/action/update-rule.js +12 -0
- package/es/blocklet/router/rule-list.js +10 -2
- package/es/locales/ar.js +5 -1
- package/es/locales/de.js +5 -1
- package/es/locales/en.js +5 -1
- package/es/locales/es.js +5 -1
- package/es/locales/fr.js +5 -1
- package/es/locales/hi.js +5 -1
- package/es/locales/i18n.db +0 -0
- package/es/locales/id.js +5 -1
- package/es/locales/ja.js +5 -1
- package/es/locales/ko.js +5 -1
- package/es/locales/pt.js +5 -1
- package/es/locales/ru.js +5 -1
- package/es/locales/th.js +5 -1
- package/es/locales/vi.js +5 -1
- package/es/locales/zh-tw.js +5 -1
- package/es/locales/zh.js +5 -1
- package/lib/blocklet/router/action/add-rule.js +12 -0
- package/lib/blocklet/router/action/config-routing-rule.js +52 -3
- package/lib/blocklet/router/action/update-rule.js +13 -0
- package/lib/blocklet/router/rule-list.js +10 -1
- package/lib/locales/ar.js +5 -1
- package/lib/locales/de.js +5 -1
- package/lib/locales/en.js +5 -1
- package/lib/locales/es.js +5 -1
- package/lib/locales/fr.js +5 -1
- package/lib/locales/hi.js +5 -1
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +5 -1
- package/lib/locales/ja.js +5 -1
- package/lib/locales/ko.js +5 -1
- package/lib/locales/pt.js +5 -1
- package/lib/locales/ru.js +5 -1
- package/lib/locales/th.js +5 -1
- package/lib/locales/vi.js +5 -1
- package/lib/locales/zh-tw.js +5 -1
- package/lib/locales/zh.js +5 -1
- package/package.json +7 -7
|
@@ -65,6 +65,13 @@ export default function AddRule({
|
|
|
65
65
|
if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE) {
|
|
66
66
|
rule.to.url = urlPathFriendly(params.url);
|
|
67
67
|
}
|
|
68
|
+
if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
|
|
69
|
+
rule.to.response = {
|
|
70
|
+
status: 200,
|
|
71
|
+
contentType: params.responseType,
|
|
72
|
+
body: params.responseBody
|
|
73
|
+
};
|
|
74
|
+
}
|
|
68
75
|
await api.addRoutingRule({
|
|
69
76
|
input: {
|
|
70
77
|
id: siteId,
|
|
@@ -134,6 +141,9 @@ export default function AddRule({
|
|
|
134
141
|
if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && !params.url) {
|
|
135
142
|
disable = true;
|
|
136
143
|
}
|
|
144
|
+
if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && (!params.responseType || !params.responseBody)) {
|
|
145
|
+
disable = true;
|
|
146
|
+
}
|
|
137
147
|
if (!e.target.value.trim()) {
|
|
138
148
|
disable = true;
|
|
139
149
|
setError(t('router.validation.pathPrefixRequired'));
|
|
@@ -167,6 +177,8 @@ export default function AddRule({
|
|
|
167
177
|
componentId: '',
|
|
168
178
|
pageGroup: '',
|
|
169
179
|
redirectCode: 302,
|
|
180
|
+
responseType: 'text/plain',
|
|
181
|
+
responseBody: '',
|
|
170
182
|
__disableConfirm: true
|
|
171
183
|
},
|
|
172
184
|
onConfirm,
|
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import TextField from '@mui/material/TextField';
|
|
4
4
|
import MenuItem from '@mui/material/MenuItem';
|
|
5
5
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
6
|
-
import { ROUTING_RULE_TYPES } from '@abtnode/constant';
|
|
6
|
+
import { ROUTING_RULE_TYPES, ROUTING_RESPONSE_TYPES } from '@abtnode/constant';
|
|
7
7
|
import { BLOCKLET_INTERFACE_TYPE_WEB } from '@blocklet/constant';
|
|
8
8
|
import { findWebInterface, getDisplayName } from '@blocklet/meta/lib/util';
|
|
9
9
|
import { useBlockletContext } from '../../../contexts/blocklet';
|
|
@@ -194,18 +194,66 @@ export default function ConfigRoutingRule({
|
|
|
194
194
|
marginBottom: 32
|
|
195
195
|
},
|
|
196
196
|
onChange: e => {
|
|
197
|
+
const value = e.target.value.trim();
|
|
197
198
|
setParams({
|
|
198
199
|
...params,
|
|
199
200
|
url: e.target.value,
|
|
200
|
-
__disableConfirm: !
|
|
201
|
+
__disableConfirm: !value
|
|
201
202
|
});
|
|
202
|
-
if (!
|
|
203
|
+
if (!value) {
|
|
203
204
|
setError(t('router.validation.rewriteUrlRequired'));
|
|
204
205
|
} else {
|
|
205
206
|
setError('');
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
|
-
}, "url")
|
|
209
|
+
}, "url"), params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && [/*#__PURE__*/_jsx(TextField, {
|
|
210
|
+
select: true,
|
|
211
|
+
label: t('router.rule.add.responseType'),
|
|
212
|
+
autoComplete: "off",
|
|
213
|
+
variant: "outlined",
|
|
214
|
+
name: "responseType",
|
|
215
|
+
fullWidth: true,
|
|
216
|
+
value: params.responseType,
|
|
217
|
+
onChange: e => setParams({
|
|
218
|
+
...params,
|
|
219
|
+
responseType: e.target.value
|
|
220
|
+
}),
|
|
221
|
+
style: {
|
|
222
|
+
marginBottom: 32
|
|
223
|
+
},
|
|
224
|
+
SelectProps: {},
|
|
225
|
+
children: ROUTING_RESPONSE_TYPES.map(x => /*#__PURE__*/_jsx(MenuItem, {
|
|
226
|
+
value: x.value,
|
|
227
|
+
children: x.text
|
|
228
|
+
}, x.value))
|
|
229
|
+
}, "responseType"), /*#__PURE__*/_jsx(TextField, {
|
|
230
|
+
label: t('router.rule.add.responseBody'),
|
|
231
|
+
autoComplete: "off",
|
|
232
|
+
variant: "outlined",
|
|
233
|
+
name: "responseBody",
|
|
234
|
+
"data-cy": "response-body-input",
|
|
235
|
+
fullWidth: true,
|
|
236
|
+
multiline: true,
|
|
237
|
+
minRows: 3,
|
|
238
|
+
value: params.responseBody,
|
|
239
|
+
helperText: t('router.rule.add.responseBodyTip'),
|
|
240
|
+
style: {
|
|
241
|
+
marginBottom: 32
|
|
242
|
+
},
|
|
243
|
+
onChange: e => {
|
|
244
|
+
const value = e.target.value.trim();
|
|
245
|
+
setParams({
|
|
246
|
+
...params,
|
|
247
|
+
responseBody: e.target.value,
|
|
248
|
+
__disableConfirm: !value
|
|
249
|
+
});
|
|
250
|
+
if (!value) {
|
|
251
|
+
setError(t('router.rule.add.responseBodyRequired'));
|
|
252
|
+
} else {
|
|
253
|
+
setError('');
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}, "response-body")]]
|
|
209
257
|
});
|
|
210
258
|
}
|
|
211
259
|
ConfigRoutingRule.propTypes = {
|
|
@@ -225,6 +273,9 @@ ConfigRoutingRule.defaultProps = {
|
|
|
225
273
|
}, {
|
|
226
274
|
name: 'Rewrite - Route traffic without redirect',
|
|
227
275
|
value: ROUTING_RULE_TYPES.GENERAL_REWRITE
|
|
276
|
+
}, {
|
|
277
|
+
name: 'Response - Response with provided content',
|
|
278
|
+
value: ROUTING_RULE_TYPES.DIRECT_RESPONSE
|
|
228
279
|
}, {
|
|
229
280
|
name: 'Component - Pass traffic to blocklet component',
|
|
230
281
|
value: ROUTING_RULE_TYPES.COMPONENT
|
|
@@ -70,6 +70,13 @@ export default function UpdateRule({
|
|
|
70
70
|
if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE) {
|
|
71
71
|
rule.to.url = urlPathFriendly(params.url);
|
|
72
72
|
}
|
|
73
|
+
if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
|
|
74
|
+
rule.to.response = {
|
|
75
|
+
status: 200,
|
|
76
|
+
contentType: params.responseType,
|
|
77
|
+
body: params.responseBody
|
|
78
|
+
};
|
|
79
|
+
}
|
|
73
80
|
await api.updateRoutingRule({
|
|
74
81
|
input: {
|
|
75
82
|
id: siteId,
|
|
@@ -127,6 +134,9 @@ export default function UpdateRule({
|
|
|
127
134
|
if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && !params.url) {
|
|
128
135
|
disable = true;
|
|
129
136
|
}
|
|
137
|
+
if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && (!params.responseType || !params.responseBody)) {
|
|
138
|
+
disable = true;
|
|
139
|
+
}
|
|
130
140
|
if (!e.target.value.trim()) {
|
|
131
141
|
disable = true;
|
|
132
142
|
setError(t('router.validation.pathPrefixRequired'));
|
|
@@ -162,6 +172,8 @@ export default function UpdateRule({
|
|
|
162
172
|
componentId: to.componentId || '',
|
|
163
173
|
pageGroup: to.pageGroup || '',
|
|
164
174
|
url: to.url || '',
|
|
175
|
+
responseType: to.response?.contentType || '',
|
|
176
|
+
responseBody: (to.response?.body || '').replace(/\\"/g, '"'),
|
|
165
177
|
__disableConfirm: false
|
|
166
178
|
},
|
|
167
179
|
onConfirm,
|
|
@@ -9,8 +9,9 @@ import IconButton from '@mui/material/IconButton';
|
|
|
9
9
|
import Avatar from '@mui/material/Avatar';
|
|
10
10
|
import LockIcon from '@arcblock/icons/lib/LockIcon';
|
|
11
11
|
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
12
|
-
import { ROUTING_RULE_TYPES } from '@abtnode/constant';
|
|
12
|
+
import { ROUTING_RESPONSE_TYPES, ROUTING_RULE_TYPES } from '@abtnode/constant';
|
|
13
13
|
import { getDisplayName } from '@blocklet/meta/lib/util';
|
|
14
|
+
import { TextSnippetOutlined } from '@mui/icons-material';
|
|
14
15
|
import { getBlockletUrlParams, getAccessUrl, BlockletAdminRoles } from '../../util';
|
|
15
16
|
import { useBlockletContext } from '../../contexts/blocklet';
|
|
16
17
|
import { useNodeContext } from '../../contexts/node';
|
|
@@ -70,6 +71,13 @@ function RuleList({
|
|
|
70
71
|
avatar = rule.to.redirectCode;
|
|
71
72
|
} else if (rule.to.type === ROUTING_RULE_TYPES.GENERAL_REWRITE) {
|
|
72
73
|
avatar = 'R';
|
|
74
|
+
} else if (rule.to.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
|
|
75
|
+
avatar = /*#__PURE__*/_jsx(TextSnippetOutlined, {
|
|
76
|
+
sx: {
|
|
77
|
+
color: 'text.secondary',
|
|
78
|
+
fontSize: '45px'
|
|
79
|
+
}
|
|
80
|
+
});
|
|
73
81
|
} else if (rule.to.type === ROUTING_RULE_TYPES.COMPONENT) {
|
|
74
82
|
component = blocklet.children.find(x => x.meta.did === rule.to.componentId);
|
|
75
83
|
avatar = 'C';
|
|
@@ -127,7 +135,7 @@ function RuleList({
|
|
|
127
135
|
color: '#222',
|
|
128
136
|
fontSize: 16
|
|
129
137
|
},
|
|
130
|
-
children: [rule.to.type === ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === ROUTING_RULE_TYPES.REDIRECT && t('common.redirect'), rule.to.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && t('common.rewrite'), rule.to.type === ROUTING_RULE_TYPES.COMPONENT && getDisplayName(component, true)]
|
|
138
|
+
children: [rule.to.type === ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === ROUTING_RULE_TYPES.REDIRECT && t('common.redirect'), rule.to.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && t('common.rewrite'), rule.to.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && ROUTING_RESPONSE_TYPES.find(x => x.value === rule.to.response.contentType)?.text, rule.to.type === ROUTING_RULE_TYPES.COMPONENT && getDisplayName(component, true)]
|
|
131
139
|
}), /*#__PURE__*/_jsxs(Box, {
|
|
132
140
|
display: "flex",
|
|
133
141
|
alignItems: "center",
|
package/es/locales/ar.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "إذا قمت بتعيين البادئة على '/بادئة-الخاصة-بي'، فسيتم توجيه جميع الطلبات التي تبدأ بتلك البادئة إلى البلوكليت المكون",
|
|
1040
1040
|
blocklet: 'أي Blocklet سيتولى معالجة تلك الطلبات؟',
|
|
1041
1041
|
port: 'ما هو المنفذ الذي سيتعامل مع طلبات البلوكليت؟',
|
|
1042
|
-
portTip: 'هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.'
|
|
1042
|
+
portTip: 'هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.',
|
|
1043
|
+
responseType: 'نوع الاستجابة',
|
|
1044
|
+
responseBody: 'محتوى الرد',
|
|
1045
|
+
responseBodyTip: 'الصق محتوى الاستجابة الخاص بك هنا ، يجب ألا يتجاوز 4096 حرفًا.',
|
|
1046
|
+
responseBodyRequired: 'لا يمكن أن يكون محتوى الرد فارغاً'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'حذف تعيين عنوان URL',
|
package/es/locales/de.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Wenn Sie das Präfix auf '/mein-präfix' setzen, werden alle Anfragen, die mit diesem Präfix beginnen, zum konfigurierten Blocklet weitergeleitet",
|
|
1040
1040
|
blocklet: 'Welcher Blocklet wird diese Anfragen bearbeiten?',
|
|
1041
1041
|
port: 'Welcher Port des Blocklet wird Anfragen bearbeiten?',
|
|
1042
|
-
portTip: 'Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.'
|
|
1042
|
+
portTip: 'Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.',
|
|
1043
|
+
responseType: 'Antworttyp',
|
|
1044
|
+
responseBody: 'Antwortinhalt',
|
|
1045
|
+
responseBodyTip: 'Fügen Sie hier Ihren Antwortinhalt ein, der 4096 Zeichen nicht überschreiten sollte.',
|
|
1046
|
+
responseBodyRequired: 'Der Antwortinhalt darf nicht leer sein'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'URL-Mapping löschen',
|
package/es/locales/en.js
CHANGED
|
@@ -1032,7 +1032,11 @@ export default {
|
|
|
1032
1032
|
pathPrefixTip: "If you set prefix to '/my-prefix', then all requests that begins with that prefix will be routed to the configured blocklet",
|
|
1033
1033
|
blocklet: 'Which Blocklet will be handling those requests?',
|
|
1034
1034
|
port: 'Which port of the blocklet will be handling requests?',
|
|
1035
|
-
portTip: 'This defaults to the main port of blocklet, if your blocklet listens on multiple ports, you can customize this'
|
|
1035
|
+
portTip: 'This defaults to the main port of blocklet, if your blocklet listens on multiple ports, you can customize this',
|
|
1036
|
+
responseType: 'Response Type',
|
|
1037
|
+
responseBody: 'Response Content',
|
|
1038
|
+
responseBodyTip: 'Paste your response content here, should not exceed 4096 characters',
|
|
1039
|
+
responseBodyRequired: 'Response content can not be empty'
|
|
1036
1040
|
},
|
|
1037
1041
|
delete: {
|
|
1038
1042
|
title: 'Delete URL Mapping',
|
package/es/locales/es.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Si configuras el prefijo como '/my-prefix', todas las solicitudes que comiencen con ese prefijo se dirigirán al bloque configurado",
|
|
1040
1040
|
blocklet: '¿Qué Blocklet se encargará de manejar esas solicitudes?',
|
|
1041
1041
|
port: '¿Qué puerto del blocklet manejará las solicitudes?',
|
|
1042
|
-
portTip: 'Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto'
|
|
1042
|
+
portTip: 'Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto',
|
|
1043
|
+
responseType: 'Tipo de respuesta',
|
|
1044
|
+
responseBody: 'Contenido de respuesta',
|
|
1045
|
+
responseBodyTip: 'Pega tu contenido de respuesta aquí, no debe exceder los 4096 caracteres',
|
|
1046
|
+
responseBodyRequired: 'El contenido de respuesta no puede estar vacío'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'Eliminar asignación de URL',
|
package/es/locales/fr.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Si vous définissez le préfixe sur '/mon-préfixe', alors toutes les demandes commençant par ce préfixe seront routées vers le blocklet configuré",
|
|
1040
1040
|
blocklet: 'Quel Blocklet gérera ces demandes ?',
|
|
1041
1041
|
port: 'Quel port du blocklet gérera les requêtes ?',
|
|
1042
|
-
portTip: 'Par défaut, cela correspond au port principal du blocklet. Si votre blocklet écoute sur plusieurs ports, vous pouvez personnaliser cela.'
|
|
1042
|
+
portTip: 'Par défaut, cela correspond au port principal du blocklet. Si votre blocklet écoute sur plusieurs ports, vous pouvez personnaliser cela.',
|
|
1043
|
+
responseType: 'Type de réponse',
|
|
1044
|
+
responseBody: 'Contenu de la réponse',
|
|
1045
|
+
responseBodyTip: 'Veuillez coller votre contenu de réponse ici, ne doit pas dépasser 4096 caractères.',
|
|
1046
|
+
responseBodyRequired: 'Le contenu de la réponse ne peut pas être vide'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: "Supprimer la correspondance d'URL",
|
package/es/locales/hi.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "यदि आप प्रेफिक्स को '/मेरा प्रेफिक्स' सेट करते हैं, तो इस प्रेफिक्स के साथ शुरू होने वाले सभी अनुरोध विन्यासित ब्लॉकलेट को मार्ग-निर्दिष्ट में भेजे जाएंगे",
|
|
1040
1040
|
blocklet: 'इन अनुरोधों का हैंडलिंग कौन सा ब्लॉकलेट करेगा?',
|
|
1041
1041
|
port: 'ब्लॉकलेट का कौन सा पोर्ट अनुरोधों को संभालेगा?',
|
|
1042
|
-
portTip: 'यह डिफ़ॉल्ट रूप से ब्लॉकलेट के मुख्य पोर्ट के लिए होता है, यदि आपका ब्लॉकलेट कई पोर्टों पर सुनता है, तो आप इसे अनुकूलित कर सकते हैं।'
|
|
1042
|
+
portTip: 'यह डिफ़ॉल्ट रूप से ब्लॉकलेट के मुख्य पोर्ट के लिए होता है, यदि आपका ब्लॉकलेट कई पोर्टों पर सुनता है, तो आप इसे अनुकूलित कर सकते हैं।',
|
|
1043
|
+
responseType: 'प्रतिक्रिया प्रकार',
|
|
1044
|
+
responseBody: 'प्रतिक्रिया सामग्री',
|
|
1045
|
+
responseBodyTip: 'अपनी प्रतिक्रिया सामग्री यहां पेस्ट करें, 4096 वर्णों से अधिक नहीं होनी चाहिए।',
|
|
1046
|
+
responseBodyRequired: 'प्रतिक्रिया सामग्री खाली नहीं हो सकती'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'URL मैपिंग हटाएं',
|
package/es/locales/i18n.db
CHANGED
|
Binary file
|
package/es/locales/id.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Jika Anda mengatur awalan menjadi '/awalan-saya', maka semua permintaan yang dimulai dengan awalan tersebut akan diarahkan ke blok yang dikonfigurasi",
|
|
1040
1040
|
blocklet: 'Blocklet mana yang akan menangani permintaan tersebut?',
|
|
1041
1041
|
port: 'Port mana dari blocklet yang akan menangani permintaan?',
|
|
1042
|
-
portTip: 'Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya'
|
|
1042
|
+
portTip: 'Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya',
|
|
1043
|
+
responseType: 'Tipe Respons',
|
|
1044
|
+
responseBody: 'Konten Tanggapan',
|
|
1045
|
+
responseBodyTip: 'Tempelkan konten respon Anda di sini, tidak boleh melebihi 4096 karakter',
|
|
1046
|
+
responseBodyRequired: 'Konten respons tidak boleh kosong'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'Hapus Pemetaan URL',
|
package/es/locales/ja.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "'/my-prefix' をプレフィックスに設定すると、そのプレフィックスで始まるすべてのリクエストが設定されたブロックにルーティングされます",
|
|
1040
1040
|
blocklet: 'どのBlockletがそれらのリクエストを処理しますか?',
|
|
1041
1041
|
port: 'ブロックレットのどのポートがリクエストを処理しますか?',
|
|
1042
|
-
portTip: 'これは、Blockletのメインポートにデフォルトで設定されます。Blockletが複数のポートでリッスンする場合は、これをカスタマイズできます'
|
|
1042
|
+
portTip: 'これは、Blockletのメインポートにデフォルトで設定されます。Blockletが複数のポートでリッスンする場合は、これをカスタマイズできます',
|
|
1043
|
+
responseType: 'レスポンスタイプ',
|
|
1044
|
+
responseBody: '応答内容',
|
|
1045
|
+
responseBodyTip: '以下に回答内容を貼り付けてください。4096文字を超えてはいけません。',
|
|
1046
|
+
responseBodyRequired: 'レスポンスの内容は空にできません'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'URLマッピングを削除する',
|
package/es/locales/ko.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "'/my-prefix'로 접두사를 설정하면 해당 접두사로 시작하는 모든 요청이 구성된 블록에 라우팅됩니다",
|
|
1040
1040
|
blocklet: '어떤 블록이 그 요청을 처리하게 될까요?',
|
|
1041
1041
|
port: '블록렛의 어떤 포트가 요청을 처리합니까?',
|
|
1042
|
-
portTip: '이것은 블록릿의 기본 포트로 설정됩니다. 블록릿이 여러 포트로 수신 대기하는 경우, 이를 사용자 정의할 수 있습니다'
|
|
1042
|
+
portTip: '이것은 블록릿의 기본 포트로 설정됩니다. 블록릿이 여러 포트로 수신 대기하는 경우, 이를 사용자 정의할 수 있습니다',
|
|
1043
|
+
responseType: '응답 유형',
|
|
1044
|
+
responseBody: '응답 내용',
|
|
1045
|
+
responseBodyTip: '답변 내용을 여기에 붙여넣으세요. 4096자를 초과해서는 안 됩니다.',
|
|
1046
|
+
responseBodyRequired: '응답 내용은 비어 있을 수 없습니다'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'URL 매핑 삭제하기',
|
package/es/locales/pt.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Se você definir o prefixo como '/meu-prefixo', todas as solicitações que começarem com esse prefixo serão direcionadas para o bloco configurado",
|
|
1040
1040
|
blocklet: 'Qual Blocklet será responsável por essas solicitações?',
|
|
1041
1041
|
port: 'Qual porta do blocklet será responsável por lidar com as solicitações?',
|
|
1042
|
-
portTip: 'Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso'
|
|
1042
|
+
portTip: 'Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso',
|
|
1043
|
+
responseType: 'Tipo de resposta',
|
|
1044
|
+
responseBody: 'Conteúdo da resposta',
|
|
1045
|
+
responseBodyTip: 'Cole aqui o conteúdo da sua resposta, não deve exceder 4096 caracteres',
|
|
1046
|
+
responseBodyRequired: 'O conteúdo da resposta não pode estar vazio'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'Excluir mapeamento de URL',
|
package/es/locales/ru.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Если вы установите префикс на '/мой-префикс', то все запросы, начинающиеся с этого префикса, будут маршрутизироваться к настроенному блоклету",
|
|
1040
1040
|
blocklet: 'Какой блоклет будет обрабатывать эти запросы?',
|
|
1041
1041
|
port: 'Какой порт блоклета будет обрабатывать запросы?',
|
|
1042
|
-
portTip: 'По умолчанию используется основной порт блоклета. Если блоклет слушает несколько портов, вы можете настроить это.'
|
|
1042
|
+
portTip: 'По умолчанию используется основной порт блоклета. Если блоклет слушает несколько портов, вы можете настроить это.',
|
|
1043
|
+
responseType: 'Тип ответа',
|
|
1044
|
+
responseBody: 'Содержание ответа',
|
|
1045
|
+
responseBodyTip: 'Вставьте сюда содержимое вашего ответа, не превышающее 4096 символов.',
|
|
1046
|
+
responseBodyRequired: 'Содержимое ответа не может быть пустым'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'Удалить отображение URL',
|
package/es/locales/th.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "หากคุณตั้งค่าคำนำหน้าเป็น '/my-prefix' จะทำให้คำขอที่ตั้งต้นด้วยคำนำหน้าเหล่านั้นจะถูกส่งมายังบล็อกเลตที่กำหนด",
|
|
1040
1040
|
blocklet: 'Blocklet ไหนจะดูแลการร้องขอเหล่านั้น?',
|
|
1041
1041
|
port: 'พอร์ตของบล็อกเล็ตใดที่จะรับผิดชอบการร้องขอ?',
|
|
1042
|
-
portTip: 'นี่คือค่าพื้นฐานของพอร์ตหลักของ blocklet ถ้า blocklet ของคุณฟังถึงพอร์ตหลายๆพอร์ต คุณสามารถปรับแต่งได้'
|
|
1042
|
+
portTip: 'นี่คือค่าพื้นฐานของพอร์ตหลักของ blocklet ถ้า blocklet ของคุณฟังถึงพอร์ตหลายๆพอร์ต คุณสามารถปรับแต่งได้',
|
|
1043
|
+
responseType: 'ประเภทการตอบกลับ',
|
|
1044
|
+
responseBody: 'เนื้อหาการตอบกลับ',
|
|
1045
|
+
responseBodyTip: 'วางเนื้อหาการตอบสนองของคุณที่นี่ ต้องไม่เกิน 4096 อักขระ',
|
|
1046
|
+
responseBodyRequired: 'เนื้อหาการตอบกลับต้องไม่เป็นค่าว่าง'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'ลบการแมปลิงก์ URL',
|
package/es/locales/vi.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "Nếu bạn đặt tiền tố là '/tiền-tố-của-tôi', thì tất cả các yêu cầu bắt đầu bằng tiền tố đó sẽ được định tuyến đến khối đã được cấu hình",
|
|
1040
1040
|
blocklet: 'Blocklet nào sẽ xử lý những yêu cầu đó?',
|
|
1041
1041
|
port: 'Cổng nào của blocklet sẽ xử lý các yêu cầu?',
|
|
1042
|
-
portTip: 'Mặc định là cổng chính của blocklet, nếu blocklet của bạn lắng nghe trên nhiều cổng, bạn có thể tùy chỉnh điều này'
|
|
1042
|
+
portTip: 'Mặc định là cổng chính của blocklet, nếu blocklet của bạn lắng nghe trên nhiều cổng, bạn có thể tùy chỉnh điều này',
|
|
1043
|
+
responseType: 'Loại phản hồi',
|
|
1044
|
+
responseBody: 'Nội dung phản hồi',
|
|
1045
|
+
responseBodyTip: 'Dán nội dung đáp ứng của bạn vào đây, không vượt quá 4096 ký tự',
|
|
1046
|
+
responseBodyRequired: 'Nội dung phản hồi không thể trống'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: 'Xóa Liên kết URL',
|
package/es/locales/zh-tw.js
CHANGED
|
@@ -1039,7 +1039,11 @@ export default {
|
|
|
1039
1039
|
pathPrefixTip: "如果您將前綴設置為'/my-prefix',則所有以該前綴開頭的請求將被路由到配置的區塊",
|
|
1040
1040
|
blocklet: '哪一個Blocklet將處理這些請求?',
|
|
1041
1041
|
port: '區塊上的哪個埠將處理請求?',
|
|
1042
|
-
portTip: '這預設為 blocklet 的主要埠口,如果您的 blocklet 監聽多個埠口,您可以自訂這個'
|
|
1042
|
+
portTip: '這預設為 blocklet 的主要埠口,如果您的 blocklet 監聽多個埠口,您可以自訂這個',
|
|
1043
|
+
responseType: '回應類型',
|
|
1044
|
+
responseBody: '回應內容',
|
|
1045
|
+
responseBodyTip: '請將您的回覆內容貼上此處,不得超過4096個字元',
|
|
1046
|
+
responseBodyRequired: '回應內容不能為空'
|
|
1043
1047
|
},
|
|
1044
1048
|
delete: {
|
|
1045
1049
|
title: '刪除URL映射',
|
package/es/locales/zh.js
CHANGED
|
@@ -1043,7 +1043,11 @@ export default {
|
|
|
1043
1043
|
pathPrefixTip: "如果你填写了 '/prefix',那么所有以其为前缀的请求都会被转发到配置的基石程序",
|
|
1044
1044
|
blocklet: '把请求代理到哪个服务?',
|
|
1045
1045
|
port: '把请求代理到哪个端口?',
|
|
1046
|
-
portTip: '这里的默认值是应用默认监听的端口,如果你的应用会启用多个端口,你可以根据需要自定义'
|
|
1046
|
+
portTip: '这里的默认值是应用默认监听的端口,如果你的应用会启用多个端口,你可以根据需要自定义',
|
|
1047
|
+
responseType: '回应类型',
|
|
1048
|
+
responseBody: '响应内容',
|
|
1049
|
+
responseBodyTip: '请将您的回复内容粘贴在这里,不要超过4096个字符',
|
|
1050
|
+
responseBodyRequired: '响应内容不能为空'
|
|
1047
1051
|
},
|
|
1048
1052
|
delete: {
|
|
1049
1053
|
title: '删除规则',
|
|
@@ -78,6 +78,13 @@ function AddRule(_ref) {
|
|
|
78
78
|
if (params.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE) {
|
|
79
79
|
rule.to.url = (0, _urlPathFriendly.default)(params.url);
|
|
80
80
|
}
|
|
81
|
+
if (params.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
|
|
82
|
+
rule.to.response = {
|
|
83
|
+
status: 200,
|
|
84
|
+
contentType: params.responseType,
|
|
85
|
+
body: params.responseBody
|
|
86
|
+
};
|
|
87
|
+
}
|
|
81
88
|
await api.addRoutingRule({
|
|
82
89
|
input: {
|
|
83
90
|
id: siteId,
|
|
@@ -143,6 +150,9 @@ function AddRule(_ref) {
|
|
|
143
150
|
if (params.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE && !params.url) {
|
|
144
151
|
disable = true;
|
|
145
152
|
}
|
|
153
|
+
if (params.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE && (!params.responseType || !params.responseBody)) {
|
|
154
|
+
disable = true;
|
|
155
|
+
}
|
|
146
156
|
if (!e.target.value.trim()) {
|
|
147
157
|
disable = true;
|
|
148
158
|
setError(t('router.validation.pathPrefixRequired'));
|
|
@@ -175,6 +185,8 @@ function AddRule(_ref) {
|
|
|
175
185
|
componentId: '',
|
|
176
186
|
pageGroup: '',
|
|
177
187
|
redirectCode: 302,
|
|
188
|
+
responseType: 'text/plain',
|
|
189
|
+
responseBody: '',
|
|
178
190
|
__disableConfirm: true
|
|
179
191
|
},
|
|
180
192
|
onConfirm,
|
|
@@ -204,17 +204,63 @@ function ConfigRoutingRule(_ref) {
|
|
|
204
204
|
marginBottom: 32
|
|
205
205
|
},
|
|
206
206
|
onChange: e => {
|
|
207
|
+
const value = e.target.value.trim();
|
|
207
208
|
setParams(_objectSpread(_objectSpread({}, params), {}, {
|
|
208
209
|
url: e.target.value,
|
|
209
|
-
__disableConfirm: !
|
|
210
|
+
__disableConfirm: !value
|
|
210
211
|
}));
|
|
211
|
-
if (!
|
|
212
|
+
if (!value) {
|
|
212
213
|
setError(t('router.validation.rewriteUrlRequired'));
|
|
213
214
|
} else {
|
|
214
215
|
setError('');
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
|
-
}, "url")
|
|
218
|
+
}, "url"), params.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE && [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
|
|
219
|
+
select: true,
|
|
220
|
+
label: t('router.rule.add.responseType'),
|
|
221
|
+
autoComplete: "off",
|
|
222
|
+
variant: "outlined",
|
|
223
|
+
name: "responseType",
|
|
224
|
+
fullWidth: true,
|
|
225
|
+
value: params.responseType,
|
|
226
|
+
onChange: e => setParams(_objectSpread(_objectSpread({}, params), {}, {
|
|
227
|
+
responseType: e.target.value
|
|
228
|
+
})),
|
|
229
|
+
style: {
|
|
230
|
+
marginBottom: 32
|
|
231
|
+
},
|
|
232
|
+
SelectProps: {},
|
|
233
|
+
children: _constant.ROUTING_RESPONSE_TYPES.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
|
|
234
|
+
value: x.value,
|
|
235
|
+
children: x.text
|
|
236
|
+
}, x.value))
|
|
237
|
+
}, "responseType"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
|
|
238
|
+
label: t('router.rule.add.responseBody'),
|
|
239
|
+
autoComplete: "off",
|
|
240
|
+
variant: "outlined",
|
|
241
|
+
name: "responseBody",
|
|
242
|
+
"data-cy": "response-body-input",
|
|
243
|
+
fullWidth: true,
|
|
244
|
+
multiline: true,
|
|
245
|
+
minRows: 3,
|
|
246
|
+
value: params.responseBody,
|
|
247
|
+
helperText: t('router.rule.add.responseBodyTip'),
|
|
248
|
+
style: {
|
|
249
|
+
marginBottom: 32
|
|
250
|
+
},
|
|
251
|
+
onChange: e => {
|
|
252
|
+
const value = e.target.value.trim();
|
|
253
|
+
setParams(_objectSpread(_objectSpread({}, params), {}, {
|
|
254
|
+
responseBody: e.target.value,
|
|
255
|
+
__disableConfirm: !value
|
|
256
|
+
}));
|
|
257
|
+
if (!value) {
|
|
258
|
+
setError(t('router.rule.add.responseBodyRequired'));
|
|
259
|
+
} else {
|
|
260
|
+
setError('');
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}, "response-body")]]
|
|
218
264
|
});
|
|
219
265
|
}
|
|
220
266
|
ConfigRoutingRule.propTypes = {
|
|
@@ -234,6 +280,9 @@ ConfigRoutingRule.defaultProps = {
|
|
|
234
280
|
}, {
|
|
235
281
|
name: 'Rewrite - Route traffic without redirect',
|
|
236
282
|
value: _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE
|
|
283
|
+
}, {
|
|
284
|
+
name: 'Response - Response with provided content',
|
|
285
|
+
value: _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE
|
|
237
286
|
}, {
|
|
238
287
|
name: 'Component - Pass traffic to blocklet component',
|
|
239
288
|
value: _constant.ROUTING_RULE_TYPES.COMPONENT
|
|
@@ -29,6 +29,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
29
29
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
30
30
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
31
31
|
function UpdateRule(_ref) {
|
|
32
|
+
var _to$response, _to$response2;
|
|
32
33
|
let {
|
|
33
34
|
id: ruleId,
|
|
34
35
|
from,
|
|
@@ -81,6 +82,13 @@ function UpdateRule(_ref) {
|
|
|
81
82
|
if (params.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE) {
|
|
82
83
|
rule.to.url = (0, _urlPathFriendly.default)(params.url);
|
|
83
84
|
}
|
|
85
|
+
if (params.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
|
|
86
|
+
rule.to.response = {
|
|
87
|
+
status: 200,
|
|
88
|
+
contentType: params.responseType,
|
|
89
|
+
body: params.responseBody
|
|
90
|
+
};
|
|
91
|
+
}
|
|
84
92
|
await api.updateRoutingRule({
|
|
85
93
|
input: {
|
|
86
94
|
id: siteId,
|
|
@@ -135,6 +143,9 @@ function UpdateRule(_ref) {
|
|
|
135
143
|
if (params.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE && !params.url) {
|
|
136
144
|
disable = true;
|
|
137
145
|
}
|
|
146
|
+
if (params.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE && (!params.responseType || !params.responseBody)) {
|
|
147
|
+
disable = true;
|
|
148
|
+
}
|
|
138
149
|
if (!e.target.value.trim()) {
|
|
139
150
|
disable = true;
|
|
140
151
|
setError(t('router.validation.pathPrefixRequired'));
|
|
@@ -169,6 +180,8 @@ function UpdateRule(_ref) {
|
|
|
169
180
|
componentId: to.componentId || '',
|
|
170
181
|
pageGroup: to.pageGroup || '',
|
|
171
182
|
url: to.url || '',
|
|
183
|
+
responseType: ((_to$response = to.response) === null || _to$response === void 0 ? void 0 : _to$response.contentType) || '',
|
|
184
|
+
responseBody: (((_to$response2 = to.response) === null || _to$response2 === void 0 ? void 0 : _to$response2.body) || '').replace(/\\"/g, '"'),
|
|
172
185
|
__disableConfirm: false
|
|
173
186
|
},
|
|
174
187
|
onConfirm,
|
|
@@ -17,6 +17,7 @@ var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
|
|
|
17
17
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
18
18
|
var _constant = require("@abtnode/constant");
|
|
19
19
|
var _util = require("@blocklet/meta/lib/util");
|
|
20
|
+
var _iconsMaterial = require("@mui/icons-material");
|
|
20
21
|
var _util2 = require("../../util");
|
|
21
22
|
var _blocklet = require("../../contexts/blocklet");
|
|
22
23
|
var _node = require("../../contexts/node");
|
|
@@ -75,6 +76,7 @@ function RuleList(_ref2) {
|
|
|
75
76
|
} = (0, _blocklet.useBlockletContext)();
|
|
76
77
|
const rules = blocklet.site.rules.filter(rule => rule.to.type !== _constant.ROUTING_RULE_TYPES.BLOCKLET);
|
|
77
78
|
return rules.map(rule => {
|
|
79
|
+
var _ROUTING_RESPONSE_TYP;
|
|
78
80
|
let avatar = null;
|
|
79
81
|
let component = null;
|
|
80
82
|
if (rule.to.type === _constant.ROUTING_RULE_TYPES.NONE) {
|
|
@@ -83,6 +85,13 @@ function RuleList(_ref2) {
|
|
|
83
85
|
avatar = rule.to.redirectCode;
|
|
84
86
|
} else if (rule.to.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE) {
|
|
85
87
|
avatar = 'R';
|
|
88
|
+
} else if (rule.to.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
|
|
89
|
+
avatar = /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.TextSnippetOutlined, {
|
|
90
|
+
sx: {
|
|
91
|
+
color: 'text.secondary',
|
|
92
|
+
fontSize: '45px'
|
|
93
|
+
}
|
|
94
|
+
});
|
|
86
95
|
} else if (rule.to.type === _constant.ROUTING_RULE_TYPES.COMPONENT) {
|
|
87
96
|
component = blocklet.children.find(x => x.meta.did === rule.to.componentId);
|
|
88
97
|
avatar = 'C';
|
|
@@ -138,7 +147,7 @@ function RuleList(_ref2) {
|
|
|
138
147
|
color: '#222',
|
|
139
148
|
fontSize: 16
|
|
140
149
|
},
|
|
141
|
-
children: [rule.to.type === _constant.ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && t('common.redirect'), rule.to.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE && t('common.rewrite'), rule.to.type === _constant.ROUTING_RULE_TYPES.COMPONENT && (0, _util.getDisplayName)(component, true)]
|
|
150
|
+
children: [rule.to.type === _constant.ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && t('common.redirect'), rule.to.type === _constant.ROUTING_RULE_TYPES.GENERAL_REWRITE && t('common.rewrite'), rule.to.type === _constant.ROUTING_RULE_TYPES.DIRECT_RESPONSE && ((_ROUTING_RESPONSE_TYP = _constant.ROUTING_RESPONSE_TYPES.find(x => x.value === rule.to.response.contentType)) === null || _ROUTING_RESPONSE_TYP === void 0 ? void 0 : _ROUTING_RESPONSE_TYP.text), rule.to.type === _constant.ROUTING_RULE_TYPES.COMPONENT && (0, _util.getDisplayName)(component, true)]
|
|
142
151
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
143
152
|
display: "flex",
|
|
144
153
|
alignItems: "center",
|
package/lib/locales/ar.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "إذا قمت بتعيين البادئة على '/بادئة-الخاصة-بي'، فسيتم توجيه جميع الطلبات التي تبدأ بتلك البادئة إلى البلوكليت المكون",
|
|
1046
1046
|
blocklet: 'أي Blocklet سيتولى معالجة تلك الطلبات؟',
|
|
1047
1047
|
port: 'ما هو المنفذ الذي سيتعامل مع طلبات البلوكليت؟',
|
|
1048
|
-
portTip: 'هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.'
|
|
1048
|
+
portTip: 'هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.',
|
|
1049
|
+
responseType: 'نوع الاستجابة',
|
|
1050
|
+
responseBody: 'محتوى الرد',
|
|
1051
|
+
responseBodyTip: 'الصق محتوى الاستجابة الخاص بك هنا ، يجب ألا يتجاوز 4096 حرفًا.',
|
|
1052
|
+
responseBodyRequired: 'لا يمكن أن يكون محتوى الرد فارغاً'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'حذف تعيين عنوان URL',
|
package/lib/locales/de.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Wenn Sie das Präfix auf '/mein-präfix' setzen, werden alle Anfragen, die mit diesem Präfix beginnen, zum konfigurierten Blocklet weitergeleitet",
|
|
1046
1046
|
blocklet: 'Welcher Blocklet wird diese Anfragen bearbeiten?',
|
|
1047
1047
|
port: 'Welcher Port des Blocklet wird Anfragen bearbeiten?',
|
|
1048
|
-
portTip: 'Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.'
|
|
1048
|
+
portTip: 'Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.',
|
|
1049
|
+
responseType: 'Antworttyp',
|
|
1050
|
+
responseBody: 'Antwortinhalt',
|
|
1051
|
+
responseBodyTip: 'Fügen Sie hier Ihren Antwortinhalt ein, der 4096 Zeichen nicht überschreiten sollte.',
|
|
1052
|
+
responseBodyRequired: 'Der Antwortinhalt darf nicht leer sein'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'URL-Mapping löschen',
|
package/lib/locales/en.js
CHANGED
|
@@ -1038,7 +1038,11 @@ var _default = exports.default = {
|
|
|
1038
1038
|
pathPrefixTip: "If you set prefix to '/my-prefix', then all requests that begins with that prefix will be routed to the configured blocklet",
|
|
1039
1039
|
blocklet: 'Which Blocklet will be handling those requests?',
|
|
1040
1040
|
port: 'Which port of the blocklet will be handling requests?',
|
|
1041
|
-
portTip: 'This defaults to the main port of blocklet, if your blocklet listens on multiple ports, you can customize this'
|
|
1041
|
+
portTip: 'This defaults to the main port of blocklet, if your blocklet listens on multiple ports, you can customize this',
|
|
1042
|
+
responseType: 'Response Type',
|
|
1043
|
+
responseBody: 'Response Content',
|
|
1044
|
+
responseBodyTip: 'Paste your response content here, should not exceed 4096 characters',
|
|
1045
|
+
responseBodyRequired: 'Response content can not be empty'
|
|
1042
1046
|
},
|
|
1043
1047
|
delete: {
|
|
1044
1048
|
title: 'Delete URL Mapping',
|
package/lib/locales/es.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Si configuras el prefijo como '/my-prefix', todas las solicitudes que comiencen con ese prefijo se dirigirán al bloque configurado",
|
|
1046
1046
|
blocklet: '¿Qué Blocklet se encargará de manejar esas solicitudes?',
|
|
1047
1047
|
port: '¿Qué puerto del blocklet manejará las solicitudes?',
|
|
1048
|
-
portTip: 'Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto'
|
|
1048
|
+
portTip: 'Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto',
|
|
1049
|
+
responseType: 'Tipo de respuesta',
|
|
1050
|
+
responseBody: 'Contenido de respuesta',
|
|
1051
|
+
responseBodyTip: 'Pega tu contenido de respuesta aquí, no debe exceder los 4096 caracteres',
|
|
1052
|
+
responseBodyRequired: 'El contenido de respuesta no puede estar vacío'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'Eliminar asignación de URL',
|
package/lib/locales/fr.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Si vous définissez le préfixe sur '/mon-préfixe', alors toutes les demandes commençant par ce préfixe seront routées vers le blocklet configuré",
|
|
1046
1046
|
blocklet: 'Quel Blocklet gérera ces demandes ?',
|
|
1047
1047
|
port: 'Quel port du blocklet gérera les requêtes ?',
|
|
1048
|
-
portTip: 'Par défaut, cela correspond au port principal du blocklet. Si votre blocklet écoute sur plusieurs ports, vous pouvez personnaliser cela.'
|
|
1048
|
+
portTip: 'Par défaut, cela correspond au port principal du blocklet. Si votre blocklet écoute sur plusieurs ports, vous pouvez personnaliser cela.',
|
|
1049
|
+
responseType: 'Type de réponse',
|
|
1050
|
+
responseBody: 'Contenu de la réponse',
|
|
1051
|
+
responseBodyTip: 'Veuillez coller votre contenu de réponse ici, ne doit pas dépasser 4096 caractères.',
|
|
1052
|
+
responseBodyRequired: 'Le contenu de la réponse ne peut pas être vide'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: "Supprimer la correspondance d'URL",
|
package/lib/locales/hi.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "यदि आप प्रेफिक्स को '/मेरा प्रेफिक्स' सेट करते हैं, तो इस प्रेफिक्स के साथ शुरू होने वाले सभी अनुरोध विन्यासित ब्लॉकलेट को मार्ग-निर्दिष्ट में भेजे जाएंगे",
|
|
1046
1046
|
blocklet: 'इन अनुरोधों का हैंडलिंग कौन सा ब्लॉकलेट करेगा?',
|
|
1047
1047
|
port: 'ब्लॉकलेट का कौन सा पोर्ट अनुरोधों को संभालेगा?',
|
|
1048
|
-
portTip: 'यह डिफ़ॉल्ट रूप से ब्लॉकलेट के मुख्य पोर्ट के लिए होता है, यदि आपका ब्लॉकलेट कई पोर्टों पर सुनता है, तो आप इसे अनुकूलित कर सकते हैं।'
|
|
1048
|
+
portTip: 'यह डिफ़ॉल्ट रूप से ब्लॉकलेट के मुख्य पोर्ट के लिए होता है, यदि आपका ब्लॉकलेट कई पोर्टों पर सुनता है, तो आप इसे अनुकूलित कर सकते हैं।',
|
|
1049
|
+
responseType: 'प्रतिक्रिया प्रकार',
|
|
1050
|
+
responseBody: 'प्रतिक्रिया सामग्री',
|
|
1051
|
+
responseBodyTip: 'अपनी प्रतिक्रिया सामग्री यहां पेस्ट करें, 4096 वर्णों से अधिक नहीं होनी चाहिए।',
|
|
1052
|
+
responseBodyRequired: 'प्रतिक्रिया सामग्री खाली नहीं हो सकती'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'URL मैपिंग हटाएं',
|
package/lib/locales/i18n.db
CHANGED
|
Binary file
|
package/lib/locales/id.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Jika Anda mengatur awalan menjadi '/awalan-saya', maka semua permintaan yang dimulai dengan awalan tersebut akan diarahkan ke blok yang dikonfigurasi",
|
|
1046
1046
|
blocklet: 'Blocklet mana yang akan menangani permintaan tersebut?',
|
|
1047
1047
|
port: 'Port mana dari blocklet yang akan menangani permintaan?',
|
|
1048
|
-
portTip: 'Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya'
|
|
1048
|
+
portTip: 'Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya',
|
|
1049
|
+
responseType: 'Tipe Respons',
|
|
1050
|
+
responseBody: 'Konten Tanggapan',
|
|
1051
|
+
responseBodyTip: 'Tempelkan konten respon Anda di sini, tidak boleh melebihi 4096 karakter',
|
|
1052
|
+
responseBodyRequired: 'Konten respons tidak boleh kosong'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'Hapus Pemetaan URL',
|
package/lib/locales/ja.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "'/my-prefix' をプレフィックスに設定すると、そのプレフィックスで始まるすべてのリクエストが設定されたブロックにルーティングされます",
|
|
1046
1046
|
blocklet: 'どのBlockletがそれらのリクエストを処理しますか?',
|
|
1047
1047
|
port: 'ブロックレットのどのポートがリクエストを処理しますか?',
|
|
1048
|
-
portTip: 'これは、Blockletのメインポートにデフォルトで設定されます。Blockletが複数のポートでリッスンする場合は、これをカスタマイズできます'
|
|
1048
|
+
portTip: 'これは、Blockletのメインポートにデフォルトで設定されます。Blockletが複数のポートでリッスンする場合は、これをカスタマイズできます',
|
|
1049
|
+
responseType: 'レスポンスタイプ',
|
|
1050
|
+
responseBody: '応答内容',
|
|
1051
|
+
responseBodyTip: '以下に回答内容を貼り付けてください。4096文字を超えてはいけません。',
|
|
1052
|
+
responseBodyRequired: 'レスポンスの内容は空にできません'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'URLマッピングを削除する',
|
package/lib/locales/ko.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "'/my-prefix'로 접두사를 설정하면 해당 접두사로 시작하는 모든 요청이 구성된 블록에 라우팅됩니다",
|
|
1046
1046
|
blocklet: '어떤 블록이 그 요청을 처리하게 될까요?',
|
|
1047
1047
|
port: '블록렛의 어떤 포트가 요청을 처리합니까?',
|
|
1048
|
-
portTip: '이것은 블록릿의 기본 포트로 설정됩니다. 블록릿이 여러 포트로 수신 대기하는 경우, 이를 사용자 정의할 수 있습니다'
|
|
1048
|
+
portTip: '이것은 블록릿의 기본 포트로 설정됩니다. 블록릿이 여러 포트로 수신 대기하는 경우, 이를 사용자 정의할 수 있습니다',
|
|
1049
|
+
responseType: '응답 유형',
|
|
1050
|
+
responseBody: '응답 내용',
|
|
1051
|
+
responseBodyTip: '답변 내용을 여기에 붙여넣으세요. 4096자를 초과해서는 안 됩니다.',
|
|
1052
|
+
responseBodyRequired: '응답 내용은 비어 있을 수 없습니다'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'URL 매핑 삭제하기',
|
package/lib/locales/pt.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Se você definir o prefixo como '/meu-prefixo', todas as solicitações que começarem com esse prefixo serão direcionadas para o bloco configurado",
|
|
1046
1046
|
blocklet: 'Qual Blocklet será responsável por essas solicitações?',
|
|
1047
1047
|
port: 'Qual porta do blocklet será responsável por lidar com as solicitações?',
|
|
1048
|
-
portTip: 'Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso'
|
|
1048
|
+
portTip: 'Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso',
|
|
1049
|
+
responseType: 'Tipo de resposta',
|
|
1050
|
+
responseBody: 'Conteúdo da resposta',
|
|
1051
|
+
responseBodyTip: 'Cole aqui o conteúdo da sua resposta, não deve exceder 4096 caracteres',
|
|
1052
|
+
responseBodyRequired: 'O conteúdo da resposta não pode estar vazio'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'Excluir mapeamento de URL',
|
package/lib/locales/ru.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Если вы установите префикс на '/мой-префикс', то все запросы, начинающиеся с этого префикса, будут маршрутизироваться к настроенному блоклету",
|
|
1046
1046
|
blocklet: 'Какой блоклет будет обрабатывать эти запросы?',
|
|
1047
1047
|
port: 'Какой порт блоклета будет обрабатывать запросы?',
|
|
1048
|
-
portTip: 'По умолчанию используется основной порт блоклета. Если блоклет слушает несколько портов, вы можете настроить это.'
|
|
1048
|
+
portTip: 'По умолчанию используется основной порт блоклета. Если блоклет слушает несколько портов, вы можете настроить это.',
|
|
1049
|
+
responseType: 'Тип ответа',
|
|
1050
|
+
responseBody: 'Содержание ответа',
|
|
1051
|
+
responseBodyTip: 'Вставьте сюда содержимое вашего ответа, не превышающее 4096 символов.',
|
|
1052
|
+
responseBodyRequired: 'Содержимое ответа не может быть пустым'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'Удалить отображение URL',
|
package/lib/locales/th.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "หากคุณตั้งค่าคำนำหน้าเป็น '/my-prefix' จะทำให้คำขอที่ตั้งต้นด้วยคำนำหน้าเหล่านั้นจะถูกส่งมายังบล็อกเลตที่กำหนด",
|
|
1046
1046
|
blocklet: 'Blocklet ไหนจะดูแลการร้องขอเหล่านั้น?',
|
|
1047
1047
|
port: 'พอร์ตของบล็อกเล็ตใดที่จะรับผิดชอบการร้องขอ?',
|
|
1048
|
-
portTip: 'นี่คือค่าพื้นฐานของพอร์ตหลักของ blocklet ถ้า blocklet ของคุณฟังถึงพอร์ตหลายๆพอร์ต คุณสามารถปรับแต่งได้'
|
|
1048
|
+
portTip: 'นี่คือค่าพื้นฐานของพอร์ตหลักของ blocklet ถ้า blocklet ของคุณฟังถึงพอร์ตหลายๆพอร์ต คุณสามารถปรับแต่งได้',
|
|
1049
|
+
responseType: 'ประเภทการตอบกลับ',
|
|
1050
|
+
responseBody: 'เนื้อหาการตอบกลับ',
|
|
1051
|
+
responseBodyTip: 'วางเนื้อหาการตอบสนองของคุณที่นี่ ต้องไม่เกิน 4096 อักขระ',
|
|
1052
|
+
responseBodyRequired: 'เนื้อหาการตอบกลับต้องไม่เป็นค่าว่าง'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'ลบการแมปลิงก์ URL',
|
package/lib/locales/vi.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "Nếu bạn đặt tiền tố là '/tiền-tố-của-tôi', thì tất cả các yêu cầu bắt đầu bằng tiền tố đó sẽ được định tuyến đến khối đã được cấu hình",
|
|
1046
1046
|
blocklet: 'Blocklet nào sẽ xử lý những yêu cầu đó?',
|
|
1047
1047
|
port: 'Cổng nào của blocklet sẽ xử lý các yêu cầu?',
|
|
1048
|
-
portTip: 'Mặc định là cổng chính của blocklet, nếu blocklet của bạn lắng nghe trên nhiều cổng, bạn có thể tùy chỉnh điều này'
|
|
1048
|
+
portTip: 'Mặc định là cổng chính của blocklet, nếu blocklet của bạn lắng nghe trên nhiều cổng, bạn có thể tùy chỉnh điều này',
|
|
1049
|
+
responseType: 'Loại phản hồi',
|
|
1050
|
+
responseBody: 'Nội dung phản hồi',
|
|
1051
|
+
responseBodyTip: 'Dán nội dung đáp ứng của bạn vào đây, không vượt quá 4096 ký tự',
|
|
1052
|
+
responseBodyRequired: 'Nội dung phản hồi không thể trống'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: 'Xóa Liên kết URL',
|
package/lib/locales/zh-tw.js
CHANGED
|
@@ -1045,7 +1045,11 @@ var _default = exports.default = {
|
|
|
1045
1045
|
pathPrefixTip: "如果您將前綴設置為'/my-prefix',則所有以該前綴開頭的請求將被路由到配置的區塊",
|
|
1046
1046
|
blocklet: '哪一個Blocklet將處理這些請求?',
|
|
1047
1047
|
port: '區塊上的哪個埠將處理請求?',
|
|
1048
|
-
portTip: '這預設為 blocklet 的主要埠口,如果您的 blocklet 監聽多個埠口,您可以自訂這個'
|
|
1048
|
+
portTip: '這預設為 blocklet 的主要埠口,如果您的 blocklet 監聽多個埠口,您可以自訂這個',
|
|
1049
|
+
responseType: '回應類型',
|
|
1050
|
+
responseBody: '回應內容',
|
|
1051
|
+
responseBodyTip: '請將您的回覆內容貼上此處,不得超過4096個字元',
|
|
1052
|
+
responseBodyRequired: '回應內容不能為空'
|
|
1049
1053
|
},
|
|
1050
1054
|
delete: {
|
|
1051
1055
|
title: '刪除URL映射',
|
package/lib/locales/zh.js
CHANGED
|
@@ -1049,7 +1049,11 @@ var _default = exports.default = {
|
|
|
1049
1049
|
pathPrefixTip: "如果你填写了 '/prefix',那么所有以其为前缀的请求都会被转发到配置的基石程序",
|
|
1050
1050
|
blocklet: '把请求代理到哪个服务?',
|
|
1051
1051
|
port: '把请求代理到哪个端口?',
|
|
1052
|
-
portTip: '这里的默认值是应用默认监听的端口,如果你的应用会启用多个端口,你可以根据需要自定义'
|
|
1052
|
+
portTip: '这里的默认值是应用默认监听的端口,如果你的应用会启用多个端口,你可以根据需要自定义',
|
|
1053
|
+
responseType: '回应类型',
|
|
1054
|
+
responseBody: '响应内容',
|
|
1055
|
+
responseBodyTip: '请将您的回复内容粘贴在这里,不要超过4096个字符',
|
|
1056
|
+
responseBodyRequired: '响应内容不能为空'
|
|
1053
1057
|
},
|
|
1054
1058
|
delete: {
|
|
1055
1059
|
title: '删除规则',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abtnode/ux",
|
|
3
|
-
"version": "1.16.25-beta-
|
|
3
|
+
"version": "1.16.25-beta-44800645",
|
|
4
4
|
"description": "UX components shared across abtnode packages",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@abtnode/auth": "1.16.25-beta-
|
|
32
|
-
"@abtnode/constant": "1.16.25-beta-
|
|
33
|
-
"@abtnode/util": "1.16.25-beta-
|
|
31
|
+
"@abtnode/auth": "1.16.25-beta-44800645",
|
|
32
|
+
"@abtnode/constant": "1.16.25-beta-44800645",
|
|
33
|
+
"@abtnode/util": "1.16.25-beta-44800645",
|
|
34
34
|
"@ahooksjs/use-url-state": "^3.5.1",
|
|
35
35
|
"@arcblock/did": "^1.18.113",
|
|
36
36
|
"@arcblock/did-connect": "^2.9.54",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"@arcblock/react-hooks": "^2.9.54",
|
|
41
41
|
"@arcblock/terminal": "^2.9.54",
|
|
42
42
|
"@arcblock/ux": "^2.9.54",
|
|
43
|
-
"@blocklet/constant": "1.16.25-beta-
|
|
43
|
+
"@blocklet/constant": "1.16.25-beta-44800645",
|
|
44
44
|
"@blocklet/launcher-layout": "2.2.54",
|
|
45
45
|
"@blocklet/list": "^0.12.76",
|
|
46
|
-
"@blocklet/meta": "1.16.25-beta-
|
|
46
|
+
"@blocklet/meta": "1.16.25-beta-44800645",
|
|
47
47
|
"@blocklet/ui-react": "^2.9.54",
|
|
48
48
|
"@blocklet/uploader": "^0.0.74",
|
|
49
49
|
"@emotion/react": "^11.10.4",
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"jest": "^29.7.0",
|
|
108
108
|
"jest-environment-jsdom": "^29.7.0"
|
|
109
109
|
},
|
|
110
|
-
"gitHead": "
|
|
110
|
+
"gitHead": "1352ebbd41c052c8d369f95570e97b30ecb5f4f0",
|
|
111
111
|
"exports": {
|
|
112
112
|
".": {
|
|
113
113
|
"import": "./es/index.js",
|