@abtnode/ux 1.15.17 → 1.16.0-beta-b16cb035
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/lib/actions.js +111 -0
- package/lib/blocklet/access/config-access.js +303 -0
- package/lib/blocklet/access/index.js +221 -0
- package/lib/blocklet/actions.js +438 -0
- package/lib/blocklet/add-cert.js +191 -0
- package/lib/blocklet/agreement-app.js +30 -0
- package/lib/blocklet/agreement.js +72 -0
- package/lib/blocklet/app-avatar.js +74 -0
- package/lib/blocklet/audit-logs.js +197 -0
- package/lib/blocklet/blocklet-source.js +56 -0
- package/lib/blocklet/bundle-avatar.js +80 -0
- package/lib/blocklet/component/add.js +1063 -0
- package/lib/blocklet/component/configuration.js +124 -0
- package/lib/blocklet/component/delete.js +117 -0
- package/lib/blocklet/component/environment.js +289 -0
- package/lib/blocklet/component/expiration.js +53 -0
- package/lib/blocklet/component/index.js +804 -0
- package/lib/blocklet/component/line.js +28 -0
- package/lib/blocklet/component/navigation/locale-tabs.js +218 -0
- package/lib/blocklet/component/navigation/navigation-actions.js +120 -0
- package/lib/blocklet/component/navigation/navigation-dialog.js +620 -0
- package/lib/blocklet/component/navigation/navigation-preview.js +102 -0
- package/lib/blocklet/component/navigation/simple-select.js +131 -0
- package/lib/blocklet/component/select-store.js +153 -0
- package/lib/blocklet/component/setting.js +151 -0
- package/lib/blocklet/component/sortable-tree.js +138 -0
- package/lib/blocklet/component/space-gateway-selector.js +174 -0
- package/lib/blocklet/component/store-blocklet-list.js +205 -0
- package/lib/blocklet/config-navigation.js +344 -0
- package/lib/blocklet/configuration.js +574 -0
- package/lib/blocklet/disk-info.js +91 -0
- package/lib/blocklet/icons.js +26 -0
- package/lib/blocklet/install-from-url.js +347 -0
- package/lib/blocklet/log.js +62 -0
- package/lib/blocklet/migration.js +153 -0
- package/lib/blocklet/mode.js +35 -0
- package/lib/blocklet/monitor.js +186 -0
- package/lib/blocklet/overview.js +236 -0
- package/lib/blocklet/preferences/app-sk.js +131 -0
- package/lib/blocklet/preferences/index.js +238 -0
- package/lib/blocklet/preferences/wallet-type.js +107 -0
- package/lib/blocklet/purchase/common.js +103 -0
- package/lib/blocklet/purchase/component-purchase.js +253 -0
- package/lib/blocklet/purchase/index.js +13 -0
- package/lib/blocklet/router/action/add-domain-alias.js +173 -0
- package/lib/blocklet/router/action/add-rule.js +204 -0
- package/lib/blocklet/router/action/config-routing-rule.js +129 -0
- package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
- package/lib/blocklet/router/action/delete-rule.js +114 -0
- package/lib/blocklet/router/action/update-rule.js +203 -0
- package/lib/blocklet/router/domain-actions.js +71 -0
- package/lib/blocklet/router/domain-status.js +96 -0
- package/lib/blocklet/router/rule-actions.js +77 -0
- package/lib/blocklet/router/rule-list.js +181 -0
- package/lib/blocklet/router/util.js +146 -0
- package/lib/blocklet/runtime-info.js +87 -0
- package/lib/blocklet/status.js +105 -0
- package/lib/blocklet/storage.js +322 -0
- package/lib/blocklet/types.js +25 -0
- package/lib/blocklet/util.js +213 -0
- package/lib/blocklet/version.js +156 -0
- package/lib/card-selector.js +109 -0
- package/lib/certificate.js +110 -0
- package/lib/click-to-copy.js +38 -0
- package/lib/confirm.js +149 -0
- package/lib/contexts/audit-log.js +141 -0
- package/lib/contexts/blocklet.js +19 -0
- package/lib/contexts/deleting-blocklets.js +78 -0
- package/lib/contexts/node.js +30 -0
- package/lib/contexts/session.js +20 -0
- package/lib/contexts/team.js +19 -0
- package/lib/delete-confirm.js +127 -0
- package/lib/did-address.js +77 -0
- package/lib/dot.js +18 -0
- package/lib/form/form-text-input.js +266 -0
- package/lib/form/form-wrapper.js +13 -0
- package/lib/form/required.js +13 -0
- package/lib/hooks/blocklet.js +231 -0
- package/lib/hooks/mobile-width.js +19 -0
- package/lib/hooks/url-evaluation.js +168 -0
- package/lib/hooks/use-app-logo.js +25 -0
- package/lib/hooks/use-bundle-logo.js +36 -0
- package/lib/hooks/use-navigation.js +355 -0
- package/lib/hooks/use-passport-id.js +21 -0
- package/lib/hooks/use-subscription.js +28 -0
- package/lib/icons/long-arrow.svg +5 -0
- package/lib/index.js +0 -3
- package/lib/invitation/invitation-app.js +51 -0
- package/lib/invitation/invitation-login.js +47 -0
- package/lib/invitation/invitation-passport.js +130 -0
- package/lib/invitation/invitation-receive.js +108 -0
- package/lib/invitation/invitation-success.js +82 -0
- package/lib/invitation/invitation-user.js +79 -0
- package/lib/invitation/invitation.js +80 -0
- package/lib/issue-passport.js +84 -84
- package/lib/launch-blocklet/content-layout.js +33 -0
- package/lib/launch-blocklet/page-header.js +38 -0
- package/lib/layout/addon.js +100 -0
- package/lib/layout/feedback.js +55 -0
- package/lib/locales/en.js +1221 -10
- package/lib/locales/index.js +3 -4
- package/lib/locales/zh.js +1232 -15
- package/lib/logs/clock.js +19 -0
- package/lib/logs/download.js +139 -0
- package/lib/logs/log-terminal.js +183 -0
- package/lib/lost-passport.js +191 -195
- package/lib/monitor/card.js +73 -0
- package/lib/monitor/cpu.js +109 -0
- package/lib/monitor/disk.js +122 -0
- package/lib/monitor/memory.js +144 -0
- package/lib/nav-logo.js +120 -0
- package/lib/passport-tag.js +43 -0
- package/lib/permission.js +70 -0
- package/lib/relative-time.js +61 -0
- package/lib/schema-form/color-input.js +105 -0
- package/lib/schema-form/common-prop-types.js +21 -0
- package/lib/schema-form/index.js +229 -0
- package/lib/schema-form/passport-input.js +66 -0
- package/lib/schema-form/text-input.js +72 -0
- package/lib/store/add.js +185 -0
- package/lib/store/delete.js +102 -0
- package/lib/store/item.js +84 -0
- package/lib/table-icons.js +42 -0
- package/lib/table.js +13 -0
- package/lib/tag.js +37 -0
- package/lib/team/members/actions.js +99 -0
- package/lib/team/members/index.js +503 -0
- package/lib/team/members/invitations.js +196 -0
- package/lib/team/members/invite-member.js +212 -0
- package/lib/team/members/issue-passport.js +155 -0
- package/lib/team/members/member.js +300 -0
- package/lib/team/members/passport-issuances.js +154 -0
- package/lib/team/members/passports.js +336 -0
- package/lib/team/members/toggle-user-approval.js +128 -0
- package/lib/team/members/transfer-node.js +262 -0
- package/lib/team/members/util.js +20 -0
- package/lib/team/passports/color.js +132 -0
- package/lib/team/passports/detail.js +271 -0
- package/lib/team/passports/index.js +233 -0
- package/lib/team/passports/mutate-role.js +204 -0
- package/lib/team/passports/trusted-issuer.js +297 -0
- package/lib/team/passports/trusted-issuers.js +240 -0
- package/lib/team/search-input.js +38 -0
- package/lib/team/styles/dialog.js +13 -0
- package/lib/team/styles/list-header.js +13 -0
- package/lib/toast.js +86 -0
- package/lib/util/api.js +21 -0
- package/lib/util/constants.js +10 -0
- package/lib/util/index.js +703 -0
- package/lib/util/locales.js +28 -0
- package/lib/util/mode.js +11 -0
- package/lib/who-can-access/config.js +46 -0
- package/lib/wrap-locale.js +12 -13
- package/package.json +69 -17
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = DomainStatus;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Https = _interopRequireDefault(require("@mui/icons-material/Https"));
|
|
10
|
+
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
11
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
12
|
+
var _dot = _interopRequireDefault(require("../../dot"));
|
|
13
|
+
var _types = require("../types");
|
|
14
|
+
var _util = require("../../util");
|
|
15
|
+
var _certificate = _interopRequireDefault(require("../../certificate"));
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
+
function DomainStatus(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
domain,
|
|
21
|
+
filters
|
|
22
|
+
} = _ref;
|
|
23
|
+
const {
|
|
24
|
+
t
|
|
25
|
+
} = (0, _context.useLocaleContext)();
|
|
26
|
+
const {
|
|
27
|
+
value: name,
|
|
28
|
+
domainStatus
|
|
29
|
+
} = domain;
|
|
30
|
+
if (!(0, _util.shouldCheckDomainStatus)(name)) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
let domainIcon = null;
|
|
34
|
+
let httpsIcon = null;
|
|
35
|
+
const {
|
|
36
|
+
isHttps,
|
|
37
|
+
matchedCert
|
|
38
|
+
} = domainStatus;
|
|
39
|
+
if (!(0, _util.checkIsWildcardDomain)(name)) {
|
|
40
|
+
const {
|
|
41
|
+
dns: {
|
|
42
|
+
resolved,
|
|
43
|
+
ip
|
|
44
|
+
} = {}
|
|
45
|
+
} = domainStatus;
|
|
46
|
+
if (resolved || ip === '127.0.0.1') {
|
|
47
|
+
domainIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
48
|
+
title: t('router.domain.verify.ok'),
|
|
49
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dot.default, {
|
|
50
|
+
color: "success"
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
domainIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
55
|
+
title: t('router.domain.verify.notResolved'),
|
|
56
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dot.default, {
|
|
57
|
+
color: "error"
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (isHttps) {
|
|
63
|
+
httpsIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_certificate.default, {
|
|
64
|
+
certificate: matchedCert
|
|
65
|
+
});
|
|
66
|
+
} else {
|
|
67
|
+
httpsIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
68
|
+
title: t('router.domain.https.bad'),
|
|
69
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Https.default, {
|
|
70
|
+
style: {
|
|
71
|
+
color: '#D0021B',
|
|
72
|
+
fontSize: 20,
|
|
73
|
+
marginLeft: 8,
|
|
74
|
+
cursor: 'pointer'
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const items = filters.map(x => {
|
|
80
|
+
if (x === 'domain') {
|
|
81
|
+
return domainIcon;
|
|
82
|
+
}
|
|
83
|
+
if (x === 'http') {
|
|
84
|
+
return httpsIcon;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
});
|
|
88
|
+
return /*#__PURE__*/(0, _react.createElement)(_react.Fragment, null, ...items);
|
|
89
|
+
}
|
|
90
|
+
DomainStatus.propTypes = {
|
|
91
|
+
domain: _types.DomainType.isRequired,
|
|
92
|
+
filters: _propTypes.default.array
|
|
93
|
+
};
|
|
94
|
+
DomainStatus.defaultProps = {
|
|
95
|
+
filters: ['domain', 'http']
|
|
96
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = RuleActions;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
9
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
10
|
+
var _Launch = _interopRequireDefault(require("@mui/icons-material/Launch"));
|
|
11
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
12
|
+
var _SettingsOutlined = _interopRequireDefault(require("@mui/icons-material/SettingsOutlined"));
|
|
13
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
14
|
+
var _blocklet = require("../../contexts/blocklet");
|
|
15
|
+
var _deleteRule = _interopRequireDefault(require("./action/delete-rule"));
|
|
16
|
+
var _updateRule = _interopRequireDefault(require("./action/update-rule"));
|
|
17
|
+
var _util = require("../../util");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
22
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
24
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
25
|
+
function RuleActions(rule) {
|
|
26
|
+
const {
|
|
27
|
+
locale
|
|
28
|
+
} = (0, _context.useLocaleContext)();
|
|
29
|
+
const {
|
|
30
|
+
blocklet,
|
|
31
|
+
recommendedDomain: domain
|
|
32
|
+
} = (0, _blocklet.useBlockletContext)();
|
|
33
|
+
const href = (0, _util.getAccessUrl)(domain, rule.from.pathPrefix, (0, _util.getBlockletUrlParams)(blocklet, locale));
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
35
|
+
display: "flex",
|
|
36
|
+
alignItems: "center",
|
|
37
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
38
|
+
target: "_blank",
|
|
39
|
+
href: href,
|
|
40
|
+
rel: "noopener noreferrer",
|
|
41
|
+
title: href,
|
|
42
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
43
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Launch.default, {})
|
|
44
|
+
})
|
|
45
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_updateRule.default, _objectSpread(_objectSpread({}, rule), {}, {
|
|
46
|
+
children: _ref => {
|
|
47
|
+
let {
|
|
48
|
+
open: o
|
|
49
|
+
} = _ref;
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
51
|
+
onClick: o,
|
|
52
|
+
disabled: rule.isProtected,
|
|
53
|
+
"data-cy": "action-update-rule",
|
|
54
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsOutlined.default, {})
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_deleteRule.default, _objectSpread(_objectSpread({}, rule), {}, {
|
|
58
|
+
children: _ref2 => {
|
|
59
|
+
let {
|
|
60
|
+
open
|
|
61
|
+
} = _ref2;
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
63
|
+
onClick: open,
|
|
64
|
+
disabled: rule.isProtected,
|
|
65
|
+
"data-cy": "action-delete-rule",
|
|
66
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {})
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}))]
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
RuleActions.propTypes = {
|
|
73
|
+
isProtected: _propTypes.default.bool
|
|
74
|
+
};
|
|
75
|
+
RuleActions.defaultProps = {
|
|
76
|
+
isProtected: false
|
|
77
|
+
};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = RuleListWithPermission;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
9
|
+
var _useTheme = _interopRequireDefault(require("@mui/material/styles/useTheme"));
|
|
10
|
+
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
11
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
12
|
+
var _Link = _interopRequireDefault(require("@mui/material/Link"));
|
|
13
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
14
|
+
var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
|
|
15
|
+
var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
|
|
16
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
17
|
+
var _constant = require("@abtnode/constant");
|
|
18
|
+
var _util = require("../../util");
|
|
19
|
+
var _blocklet = require("../../contexts/blocklet");
|
|
20
|
+
var _node = require("../../contexts/node");
|
|
21
|
+
var _permission = require("../../permission");
|
|
22
|
+
var _line = _interopRequireDefault(require("../component/line"));
|
|
23
|
+
var _ruleActions = _interopRequireDefault(require("./rule-actions"));
|
|
24
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
28
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
30
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
31
|
+
function RedirectRule(_ref) {
|
|
32
|
+
let {
|
|
33
|
+
domain,
|
|
34
|
+
isHttps,
|
|
35
|
+
toUrl
|
|
36
|
+
} = _ref;
|
|
37
|
+
const scheme = isHttps ? 'https' : 'http';
|
|
38
|
+
let tmpToUrl = toUrl;
|
|
39
|
+
if (!(0, _isUrl.default)(tmpToUrl)) {
|
|
40
|
+
tmpToUrl = "".concat(scheme, "://").concat(domain).concat(toUrl);
|
|
41
|
+
}
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
|
|
43
|
+
href: tmpToUrl,
|
|
44
|
+
target: "_blank",
|
|
45
|
+
style: {
|
|
46
|
+
fontSize: 14
|
|
47
|
+
},
|
|
48
|
+
underline: "hover",
|
|
49
|
+
children: toUrl
|
|
50
|
+
}, tmpToUrl);
|
|
51
|
+
}
|
|
52
|
+
RedirectRule.propTypes = {
|
|
53
|
+
domain: _propTypes.default.string.isRequired,
|
|
54
|
+
toUrl: _propTypes.default.string.isRequired,
|
|
55
|
+
isHttps: _propTypes.default.bool
|
|
56
|
+
};
|
|
57
|
+
RedirectRule.defaultProps = {
|
|
58
|
+
isHttps: false
|
|
59
|
+
};
|
|
60
|
+
function RuleList(_ref2) {
|
|
61
|
+
let {
|
|
62
|
+
hasPermission
|
|
63
|
+
} = _ref2;
|
|
64
|
+
const {
|
|
65
|
+
t,
|
|
66
|
+
locale
|
|
67
|
+
} = (0, _context.useLocaleContext)();
|
|
68
|
+
const theme = (0, _useTheme.default)();
|
|
69
|
+
const {
|
|
70
|
+
blocklet,
|
|
71
|
+
recommendedDomain: domain
|
|
72
|
+
} = (0, _blocklet.useBlockletContext)();
|
|
73
|
+
const rules = blocklet.site.rules.filter(rule => rule.to.did !== blocklet.meta.did).filter(rule => rule.to.type !== _constant.ROUTING_RULE_TYPES.BLOCKLET);
|
|
74
|
+
return rules.map(rule => {
|
|
75
|
+
let avatarName = '';
|
|
76
|
+
if (rule.to.type === _constant.ROUTING_RULE_TYPES.NONE) {
|
|
77
|
+
avatarName = '404';
|
|
78
|
+
} else if (rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
|
|
79
|
+
avatarName = rule.to.redirectCode;
|
|
80
|
+
}
|
|
81
|
+
const action = rule.isProtected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
82
|
+
title: t('blocklet.router.urlLockTooltip'),
|
|
83
|
+
placement: "top",
|
|
84
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
85
|
+
disabled: true,
|
|
86
|
+
size: "large",
|
|
87
|
+
style: {
|
|
88
|
+
pointerEvents: 'auto',
|
|
89
|
+
// padding replace to margin, fix the tooltip position
|
|
90
|
+
paddingTop: 0,
|
|
91
|
+
paddingBottom: 0,
|
|
92
|
+
margin: '12px 0'
|
|
93
|
+
},
|
|
94
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockIcon.default, {
|
|
95
|
+
style: {
|
|
96
|
+
fill: theme.palette.text.disabled
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ruleActions.default, _objectSpread({}, rule));
|
|
101
|
+
return [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
102
|
+
display: "flex",
|
|
103
|
+
py: 2,
|
|
104
|
+
className: "component-item",
|
|
105
|
+
justifyContent: "space-between",
|
|
106
|
+
alignItems: "center",
|
|
107
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
108
|
+
width: {
|
|
109
|
+
xs: 300,
|
|
110
|
+
md: 400
|
|
111
|
+
},
|
|
112
|
+
display: "flex",
|
|
113
|
+
alignItems: "center",
|
|
114
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
115
|
+
width: 28
|
|
116
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
|
|
117
|
+
children: avatarName
|
|
118
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
119
|
+
ml: "16px",
|
|
120
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
121
|
+
style: {
|
|
122
|
+
color: '#222',
|
|
123
|
+
fontSize: 18
|
|
124
|
+
},
|
|
125
|
+
children: [rule.to.type === _constant.ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && t('common.redirect')]
|
|
126
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
127
|
+
display: "flex",
|
|
128
|
+
alignItems: "center",
|
|
129
|
+
children: rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && /*#__PURE__*/(0, _jsxRuntime.jsx)(RedirectRule, {
|
|
130
|
+
domain: domain,
|
|
131
|
+
toUrl: rule.to.url
|
|
132
|
+
})
|
|
133
|
+
})]
|
|
134
|
+
})]
|
|
135
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
136
|
+
px: 2,
|
|
137
|
+
sx: {
|
|
138
|
+
display: {
|
|
139
|
+
xs: 'none',
|
|
140
|
+
md: 'flex'
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
alignItems: "center",
|
|
144
|
+
flexGrow: "1",
|
|
145
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
|
|
146
|
+
href: (0, _util.getAccessUrl)(domain, rule.from.pathPrefix, (0, _util.getBlockletUrlParams)(blocklet, locale)),
|
|
147
|
+
target: "_blank",
|
|
148
|
+
style: {
|
|
149
|
+
fontSize: 18
|
|
150
|
+
},
|
|
151
|
+
underline: "hover",
|
|
152
|
+
children: rule.from.pathPrefix
|
|
153
|
+
})
|
|
154
|
+
}, rule.from.pathPrefix), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
155
|
+
children: hasPermission && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
156
|
+
style: {
|
|
157
|
+
textAlign: 'right'
|
|
158
|
+
},
|
|
159
|
+
children: action
|
|
160
|
+
})
|
|
161
|
+
}, "actions")]
|
|
162
|
+
}, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_line.default, {})];
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
RuleList.propTypes = {
|
|
166
|
+
hasPermission: _propTypes.default.bool
|
|
167
|
+
};
|
|
168
|
+
RuleList.defaultProps = {
|
|
169
|
+
hasPermission: false
|
|
170
|
+
};
|
|
171
|
+
const RuleListInDaemon = (0, _permission.withPermission)(RuleList, 'mutate_blocklets');
|
|
172
|
+
const RuleListInService = (0, _permission.withPermission)(RuleList, '', _util.BlockletAdminRoles);
|
|
173
|
+
function RuleListWithPermission(props) {
|
|
174
|
+
const {
|
|
175
|
+
inService
|
|
176
|
+
} = (0, _node.useNodeContext)();
|
|
177
|
+
if (inService) {
|
|
178
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RuleListInService, _objectSpread({}, props));
|
|
179
|
+
}
|
|
180
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RuleListInDaemon, _objectSpread({}, props));
|
|
181
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validateSite = exports.validateRule = exports.validatePathPrefix = exports.validateDomain = exports.isSpecialDomain = exports.getInitialBlockletDid = void 0;
|
|
7
|
+
var _constant = require("@abtnode/constant");
|
|
8
|
+
var _isPathPrefixEqual = _interopRequireDefault(require("@abtnode/util/lib/is-path-prefix-equal"));
|
|
9
|
+
var _constant2 = require("@blocklet/constant");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
/* eslint-disable import/prefer-default-export */
|
|
12
|
+
|
|
13
|
+
const validateRuleByServiceType = (params, localeContext) => {
|
|
14
|
+
if (params.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
|
|
15
|
+
if (!params.url) {
|
|
16
|
+
return new Error("".concat(localeContext('router.validation.redirectUrlRequired')));
|
|
17
|
+
}
|
|
18
|
+
if (!params.redirectCode) {
|
|
19
|
+
return new Error("redirect ".concat(localeContext('router.validation.redirectCodeRequired')));
|
|
20
|
+
}
|
|
21
|
+
} else if (params.type === _constant.ROUTING_RULE_TYPES.BLOCKLET) {
|
|
22
|
+
if (!params.did) {
|
|
23
|
+
return new Error(localeContext('router.validation.didRequired'));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
};
|
|
28
|
+
const validateDomain = (domain, localeContext) => {
|
|
29
|
+
if (!domain) {
|
|
30
|
+
return localeContext('router.domain.validate.emptyTip');
|
|
31
|
+
}
|
|
32
|
+
if (domain.endsWith(_constant.DEFAULT_IP_DOMAIN_SUFFIX)) {
|
|
33
|
+
return localeContext('router.domain.validate.suffixTip', {
|
|
34
|
+
suffix: _constant.DEFAULT_IP_DOMAIN_SUFFIX
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* form validator of add site(add domain)
|
|
42
|
+
* @param {Object} params form params
|
|
43
|
+
* @param {Function} localeContext error message
|
|
44
|
+
*/
|
|
45
|
+
exports.validateDomain = validateDomain;
|
|
46
|
+
const validateSite = (params, localeContext) => {
|
|
47
|
+
const validateResult = validateRuleByServiceType(params, localeContext);
|
|
48
|
+
if (validateResult) {
|
|
49
|
+
return validateResult;
|
|
50
|
+
}
|
|
51
|
+
const errMsg = validateDomain(params.domain, localeContext);
|
|
52
|
+
if (errMsg) {
|
|
53
|
+
return new Error(errMsg);
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* form validator of add_rule and update_rule
|
|
60
|
+
* @param {Object} params form params
|
|
61
|
+
* @param {Function} localeContext error message
|
|
62
|
+
*/
|
|
63
|
+
exports.validateSite = validateSite;
|
|
64
|
+
const validateRule = (params, localeContext) => {
|
|
65
|
+
const validateResult = validateRuleByServiceType(params, localeContext);
|
|
66
|
+
if (validateResult) {
|
|
67
|
+
return validateResult;
|
|
68
|
+
}
|
|
69
|
+
if (!params.pathPrefix.length) {
|
|
70
|
+
return new Error(localeContext('router.validation.pathPrefixCannotBeEmpty'));
|
|
71
|
+
}
|
|
72
|
+
if (params.pathPrefix.length > 150) {
|
|
73
|
+
return new Error(localeContext('router.validation.pathPrefixTooLong', {
|
|
74
|
+
length: 150
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
};
|
|
79
|
+
exports.validateRule = validateRule;
|
|
80
|
+
const validatePathPrefix = _ref => {
|
|
81
|
+
let {
|
|
82
|
+
params,
|
|
83
|
+
blocklets,
|
|
84
|
+
blocklet: curBlocklet,
|
|
85
|
+
locale = 'en'
|
|
86
|
+
} = _ref;
|
|
87
|
+
// validate children
|
|
88
|
+
if (curBlocklet) {
|
|
89
|
+
let exist = (curBlocklet.children || []).find(x => (0, _isPathPrefixEqual.default)(x.mountPoint, params.pathPrefix));
|
|
90
|
+
if (curBlocklet.meta.group !== 'gateway' && params.pathPrefix === '/') {
|
|
91
|
+
exist = '/';
|
|
92
|
+
}
|
|
93
|
+
if (exist) {
|
|
94
|
+
return {
|
|
95
|
+
zh: "\u6302\u8F7D\u70B9 ".concat(params.pathPrefix, " \u5DF2\u5B58\u5728\uFF0C\u8BF7\u4F7F\u7528\u5176\u4ED6\u6302\u8F7D\u70B9"),
|
|
96
|
+
en: "The mount point ".concat(params.pathPrefix, " already exist, please use another mount point")
|
|
97
|
+
}[locale];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const blocklet = blocklets.find(item => item.meta.did === params.did);
|
|
101
|
+
if (!blocklet) {
|
|
102
|
+
return '';
|
|
103
|
+
}
|
|
104
|
+
const selected = blocklet.meta.interfaces.find(x => x.type === 'web');
|
|
105
|
+
if (!selected) {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
if (selected.prefix !== _constant2.BLOCKLET_DYNAMIC_PATH_PREFIX && params.pathPrefix !== selected.prefix) {
|
|
109
|
+
return {
|
|
110
|
+
zh: "\u8BE5 blocklet \u53EA\u80FD\u6302\u8F7D\u5728 ".concat(selected.prefix),
|
|
111
|
+
en: "This blocklet can only be mounted on ".concat(selected.prefix)
|
|
112
|
+
}[locale];
|
|
113
|
+
}
|
|
114
|
+
return '';
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* get initial blocklet did when add rule / update rule / add domain
|
|
119
|
+
* @param {array} blocklets
|
|
120
|
+
*/
|
|
121
|
+
exports.validatePathPrefix = validatePathPrefix;
|
|
122
|
+
const getInitialBlockletDid = blocklets => {
|
|
123
|
+
if (blocklets.length === 0) {
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
const {
|
|
127
|
+
searchParams
|
|
128
|
+
} = new URL(window.location.href);
|
|
129
|
+
const fromDid = searchParams.get('fromDid');
|
|
130
|
+
if (fromDid) {
|
|
131
|
+
const blocklet = blocklets.find(x => x.meta.did === fromDid);
|
|
132
|
+
if (blocklet) {
|
|
133
|
+
return blocklet.meta.did;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return blocklets[0].meta.did;
|
|
137
|
+
};
|
|
138
|
+
exports.getInitialBlockletDid = getInitialBlockletDid;
|
|
139
|
+
const isSpecialDomain = name => {
|
|
140
|
+
const specialDomains = [_constant.DOMAIN_FOR_IP_SITE_REGEXP, _constant.DOMAIN_FOR_DEFAULT_SITE, _constant.DOMAIN_FOR_IP_SITE];
|
|
141
|
+
if (typeof window !== 'undefined' && typeof window.location !== 'undefined') {
|
|
142
|
+
specialDomains.push(window.location.hostname);
|
|
143
|
+
}
|
|
144
|
+
return specialDomains.includes(name);
|
|
145
|
+
};
|
|
146
|
+
exports.isSpecialDomain = isSpecialDomain;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = BlockletRuntimeInfo;
|
|
7
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
10
|
+
var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
|
|
11
|
+
var _cpu = _interopRequireDefault(require("../monitor/cpu"));
|
|
12
|
+
var _memory = _interopRequireDefault(require("../monitor/memory"));
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
var _templateObject;
|
|
15
|
+
const _excluded = ["blocklet", "cpuHistory", "memoryHistory"];
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
20
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
22
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
23
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
24
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
25
|
+
function BlockletRuntimeInfo(_ref) {
|
|
26
|
+
let {
|
|
27
|
+
blocklet,
|
|
28
|
+
cpuHistory,
|
|
29
|
+
memoryHistory
|
|
30
|
+
} = _ref,
|
|
31
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
32
|
+
const runtimeInfo = blocklet.appRuntimeInfo || {};
|
|
33
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({
|
|
34
|
+
component: "div"
|
|
35
|
+
}, rest), {}, {
|
|
36
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, {
|
|
37
|
+
className: "page-metrics",
|
|
38
|
+
container: true,
|
|
39
|
+
spacing: 5,
|
|
40
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
|
|
41
|
+
item: true,
|
|
42
|
+
lg: 4,
|
|
43
|
+
md: 6,
|
|
44
|
+
sm: 6,
|
|
45
|
+
xs: 12,
|
|
46
|
+
children: !!cpuHistory.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_cpu.default, {
|
|
47
|
+
currentLoad: runtimeInfo.cpuUsage || 0,
|
|
48
|
+
history: cpuHistory,
|
|
49
|
+
style: {
|
|
50
|
+
height: 150
|
|
51
|
+
},
|
|
52
|
+
hideDescription: true
|
|
53
|
+
})
|
|
54
|
+
}, "cpu"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
|
|
55
|
+
item: true,
|
|
56
|
+
lg: 4,
|
|
57
|
+
md: 6,
|
|
58
|
+
sm: 6,
|
|
59
|
+
xs: 12,
|
|
60
|
+
children: !!memoryHistory.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_memory.default, {
|
|
61
|
+
used: runtimeInfo.memoryUsage || 0,
|
|
62
|
+
history: memoryHistory,
|
|
63
|
+
style: {
|
|
64
|
+
height: 150
|
|
65
|
+
},
|
|
66
|
+
hideDescription: true
|
|
67
|
+
})
|
|
68
|
+
}, "memory")]
|
|
69
|
+
})
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
BlockletRuntimeInfo.propTypes = {
|
|
73
|
+
blocklet: _propTypes.default.object.isRequired,
|
|
74
|
+
cpuHistory: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
75
|
+
date: _propTypes.default.number,
|
|
76
|
+
value: _propTypes.default.number
|
|
77
|
+
})),
|
|
78
|
+
memoryHistory: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
79
|
+
date: _propTypes.default.number,
|
|
80
|
+
value: _propTypes.default.number
|
|
81
|
+
}))
|
|
82
|
+
};
|
|
83
|
+
BlockletRuntimeInfo.defaultProps = {
|
|
84
|
+
cpuHistory: [],
|
|
85
|
+
memoryHistory: []
|
|
86
|
+
};
|
|
87
|
+
const Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
|