@abtnode/ux 1.8.26 → 1.8.28

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.
Files changed (88) hide show
  1. package/lib/actions.js +109 -0
  2. package/lib/blocklet/actions.js +437 -0
  3. package/lib/blocklet/audit-logs.js +194 -0
  4. package/lib/blocklet/avatar.js +96 -0
  5. package/lib/blocklet/blocklet-source.js +56 -0
  6. package/lib/blocklet/component/configuration.js +124 -0
  7. package/lib/blocklet/component/delete.js +115 -0
  8. package/lib/blocklet/component/environment.js +277 -0
  9. package/lib/blocklet/component/index.js +742 -0
  10. package/lib/blocklet/component/setting.js +135 -0
  11. package/lib/blocklet/configuration.js +463 -0
  12. package/lib/blocklet/disk-info.js +89 -0
  13. package/lib/blocklet/icons.js +26 -0
  14. package/lib/blocklet/log.js +55 -0
  15. package/lib/blocklet/mode.js +33 -0
  16. package/lib/blocklet/overview.js +184 -0
  17. package/lib/blocklet/runtime-info.js +85 -0
  18. package/lib/blocklet/status.js +103 -0
  19. package/lib/blocklet/util.js +119 -0
  20. package/lib/blocklet/version.js +178 -0
  21. package/lib/card-selector.js +9 -22
  22. package/lib/click-to-copy.js +36 -0
  23. package/lib/confirm.js +149 -0
  24. package/lib/contexts/audit-log.js +141 -0
  25. package/lib/contexts/deleting-blocklets.js +78 -0
  26. package/lib/contexts/node.js +28 -0
  27. package/lib/contexts/session.js +20 -0
  28. package/lib/contexts/team.js +19 -0
  29. package/lib/did-address.js +75 -0
  30. package/lib/dot.js +18 -0
  31. package/lib/form/form-text-input.js +12 -38
  32. package/lib/form/form-wrapper.js +0 -7
  33. package/lib/form/required.js +0 -6
  34. package/lib/hooks/mobile-width.js +19 -0
  35. package/lib/hooks/use-passport-id.js +0 -5
  36. package/lib/icons/long-arrow.svg +5 -0
  37. package/lib/index.js +0 -3
  38. package/lib/invitation/invitation-app.js +3 -21
  39. package/lib/invitation/invitation-passport.js +2 -16
  40. package/lib/invitation/invitation-receive.js +2 -19
  41. package/lib/invitation/invitation-user.js +0 -16
  42. package/lib/invitation/invitation.js +0 -23
  43. package/lib/issue-passport.js +2 -31
  44. package/lib/launch-blocklet/content-layout.js +3 -19
  45. package/lib/launch-blocklet/page-header.js +0 -9
  46. package/lib/layout/addon.js +0 -24
  47. package/lib/locales/en.js +1046 -38
  48. package/lib/locales/index.js +0 -3
  49. package/lib/locales/zh.js +1049 -36
  50. package/lib/logs/clock.js +19 -0
  51. package/lib/logs/log-terminal.js +172 -0
  52. package/lib/lost-passport.js +6 -51
  53. package/lib/nav-logo.js +12 -33
  54. package/lib/passport-tag.js +41 -0
  55. package/lib/permission.js +68 -0
  56. package/lib/relative-time.js +61 -0
  57. package/lib/schema-form/color-input.js +2 -15
  58. package/lib/schema-form/common-prop-types.js +0 -3
  59. package/lib/schema-form/index.js +8 -45
  60. package/lib/schema-form/passport-input.js +6 -24
  61. package/lib/schema-form/text-input.js +9 -26
  62. package/lib/table-icons.js +42 -0
  63. package/lib/table.js +13 -0
  64. package/lib/tag.js +35 -0
  65. package/lib/team/members/actions.js +99 -0
  66. package/lib/team/members/index.js +476 -0
  67. package/lib/team/members/invitations.js +196 -0
  68. package/lib/team/members/invite-member.js +212 -0
  69. package/lib/team/members/issue-passport.js +155 -0
  70. package/lib/team/members/member.js +294 -0
  71. package/lib/team/members/passport-issuances.js +154 -0
  72. package/lib/team/members/passports.js +329 -0
  73. package/lib/team/members/toggle-user-approval.js +128 -0
  74. package/lib/team/members/transfer-node.js +262 -0
  75. package/lib/team/members/util.js +20 -0
  76. package/lib/team/passports/detail.js +261 -0
  77. package/lib/team/passports/index.js +220 -0
  78. package/lib/team/passports/mutate-role.js +204 -0
  79. package/lib/team/passports/trusted-issuer.js +295 -0
  80. package/lib/team/passports/trusted-issuers.js +238 -0
  81. package/lib/team/search-input.js +36 -0
  82. package/lib/team/styles/dialog.js +13 -0
  83. package/lib/team/styles/list-header.js +13 -0
  84. package/lib/toast.js +4 -19
  85. package/lib/util/index.js +504 -38
  86. package/lib/who-can-access/config.js +0 -6
  87. package/lib/wrap-locale.js +0 -7
  88. package/package.json +43 -20
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
8
+ var _PlayArrow = _interopRequireDefault(require("@mui/icons-material/PlayArrow"));
9
+ var _Stop = _interopRequireDefault(require("@mui/icons-material/Stop"));
10
+ var _Replay = _interopRequireDefault(require("@mui/icons-material/Replay"));
11
+ var _Autorenew = _interopRequireDefault(require("@mui/icons-material/Autorenew"));
12
+ var _Settings = _interopRequireDefault(require("@mui/icons-material/Settings"));
13
+ var _Receipt = _interopRequireDefault(require("@mui/icons-material/Receipt"));
14
+ var _Group = _interopRequireDefault(require("@mui/icons-material/Group"));
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ var _default = {
17
+ Start: _PlayArrow.default,
18
+ Stop: _Stop.default,
19
+ Restart: _Replay.default,
20
+ Reload: _Autorenew.default,
21
+ Remove: _Delete.default,
22
+ Config: _Settings.default,
23
+ Log: _Receipt.default,
24
+ Group: _Group.default
25
+ };
26
+ exports.default = _default;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletLog;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
+ var _util = require("@blocklet/meta/lib/util");
10
+ var _logTerminal = require("../logs/log-terminal");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const _excluded = ["blocklet"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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; }
15
+ 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; }
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+ 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; }
18
+ 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; }
19
+ /**
20
+ * - heights:
21
+ * - header: 64
22
+ * - footer:
23
+ * - xs: 57 + 64
24
+ * - sm: 109 + 64
25
+ * - main content top:
26
+ * - xs: 211 + 32 + 16
27
+ * - md: 160 + 32 + 16
28
+ * - content height:
29
+ * - xs (Mobile) = 100vh - 444
30
+ * - sm (Mobile) = 100vh - 508
31
+ * - md (PC) = 100vh - 445
32
+ */
33
+ function BlockletLog(_ref) {
34
+ let {
35
+ blocklet
36
+ } = _ref,
37
+ rest = _objectWithoutProperties(_ref, _excluded);
38
+ const initialData = ['Tip: this tab will only show runtime logs. Please go to "Blocklet Server" to view other lifecycle logs of the blocklet (install/start/stop...)', '\r\n\r\n'];
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({
40
+ height: {
41
+ xs: 'calc(100vh - 444px)',
42
+ sm: 'calc(100vh - 508px)',
43
+ md: 'calc(100vh - 445px)'
44
+ }
45
+ }, rest), {}, {
46
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_logTerminal.LogTerminalGroup, {
47
+ name: (0, _util.getDisplayName)(blocklet),
48
+ logId: "blocklet-".concat(blocklet.meta.did),
49
+ initialData: initialData
50
+ })
51
+ }));
52
+ }
53
+ BlockletLog.propTypes = {
54
+ blocklet: _propTypes.default.object.isRequired
55
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletMode;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _tag = _interopRequireDefault(require("../tag"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ const _excluded = ["mode"];
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ 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; }
13
+ 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; }
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ 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; }
16
+ 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; }
17
+ function BlockletMode(_ref) {
18
+ let {
19
+ mode
20
+ } = _ref,
21
+ rest = _objectWithoutProperties(_ref, _excluded);
22
+ if (mode === 'development') {
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, _objectSpread(_objectSpread({
24
+ type: "primary"
25
+ }, rest), {}, {
26
+ children: "DEV"
27
+ }));
28
+ }
29
+ return null;
30
+ }
31
+ BlockletMode.propTypes = {
32
+ mode: _propTypes.default.string.isRequired
33
+ };
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletOverview;
7
+ var _react = require("react");
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
11
+ var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
12
+ var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
13
+ var _util = require("@blocklet/meta/lib/util");
14
+ var _context = require("@arcblock/ux/lib/Locale/context");
15
+ var _didAddress = _interopRequireDefault(require("../did-address"));
16
+ var _blockletSource = _interopRequireDefault(require("./blocklet-source"));
17
+ var _runtimeInfo = _interopRequireDefault(require("./runtime-info"));
18
+ var _diskInfo = _interopRequireDefault(require("./disk-info"));
19
+ var _status = _interopRequireDefault(require("./status"));
20
+ var _version = _interopRequireDefault(require("./version"));
21
+ var _util2 = require("../util");
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ var _templateObject;
24
+ const _excluded = ["blocklet"];
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27
+ 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; }
28
+ 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; }
29
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
30
+ 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; }
31
+ 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; }
32
+ const getEngineRows = (engine, t) => {
33
+ if (!engine) {
34
+ return [];
35
+ }
36
+ return [{
37
+ name: t('common.name'),
38
+ value: engine.displayName
39
+ }, {
40
+ name: t('common.description'),
41
+ value: engine.description
42
+ }, {
43
+ name: t('common.version'),
44
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {
45
+ children: engine.version
46
+ })
47
+ }];
48
+ };
49
+ function BlockletOverview(_ref) {
50
+ var _blocklet$settings;
51
+ let {
52
+ blocklet
53
+ } = _ref,
54
+ rest = _objectWithoutProperties(_ref, _excluded);
55
+ const {
56
+ t
57
+ } = (0, _react.useContext)(_context.LocaleContext);
58
+ const {
59
+ value: appDid
60
+ } = (blocklet.environments || []).find(x => x.key === 'BLOCKLET_APP_ID') || {};
61
+ const infoRows = [appDid ? {
62
+ name: t('blocklet.appId'),
63
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
64
+ did: appDid
65
+ })
66
+ } : null, {
67
+ name: t('common.name'),
68
+ value: (0, _util.getDisplayName)(blocklet, true)
69
+ }, {
70
+ name: t('common.status'),
71
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_status.default, {
72
+ status: blocklet.status,
73
+ source: blocklet.source
74
+ })
75
+ }, {
76
+ name: t('common.version'),
77
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_version.default, {
78
+ blocklet: blocklet
79
+ })
80
+ }, {
81
+ name: t('common.group'),
82
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {
83
+ type: "success",
84
+ children: blocklet.meta.group
85
+ })
86
+ }, {
87
+ name: t('common.author'),
88
+ value: (0, _util2.formatPerson)(blocklet.meta.author)
89
+ }, {
90
+ name: t('blocklet.installedAt'),
91
+ value: (0, _util2.formatToDatetime)(blocklet.installedAt)
92
+ }, blocklet.status === 'running' ? {
93
+ name: t('blocklet.startedAt'),
94
+ value: (0, _util2.formatToDatetime)(blocklet.startedAt)
95
+ } : null, blocklet.status !== 'running' ? {
96
+ name: t('blocklet.stoppedAt'),
97
+ value: (0, _util2.formatToDatetime)(blocklet.stoppedAt)
98
+ } : null, {
99
+ name: t('blocklet.overview.source'),
100
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockletSource.default, {
101
+ sourceInfo: {
102
+ source: blocklet.source,
103
+ deployedFrom: blocklet.deployedFrom
104
+ },
105
+ blocklet: blocklet
106
+ })
107
+ }, {
108
+ name: t('blocklet.overview.deployedFrom'),
109
+ value: blocklet.deployedFrom || '-'
110
+ }, {
111
+ name: t('blocklet.overview.accessControl'),
112
+ value: t("team.whoCanAccess.".concat((0, _util.getWhoCanAccess)(blocklet), ".title"))
113
+ }, {
114
+ name: t('common.did'),
115
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
116
+ did: blocklet.meta.did
117
+ })
118
+ }, {
119
+ name: t('common.owner'),
120
+ value: (_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.owner ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
121
+ did: blocklet.settings.owner.did
122
+ }) : '--'
123
+ }].filter(Boolean);
124
+ const engineRows = getEngineRows(blocklet.engine, t);
125
+ const renderRows = rows => rows.map(row => {
126
+ if (row.name === t('common.did') || row.name === t('blocklet.appId')) {
127
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
128
+ valueComponent: "div",
129
+ nameWidth: 120,
130
+ name: row.name,
131
+ nameFormatter: () => row.name,
132
+ children: row.value
133
+ }, row.name);
134
+ }
135
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
136
+ valueComponent: "div",
137
+ nameWidth: 120,
138
+ name: row.name,
139
+ children: row.value
140
+ }, row.name);
141
+ });
142
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({
143
+ component: "div"
144
+ }, rest), {}, {
145
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
146
+ className: "title",
147
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
148
+ children: t('common.basicInfo')
149
+ })
150
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
151
+ className: "basicInfo",
152
+ children: renderRows(infoRows)
153
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
154
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
155
+ className: "title",
156
+ children: t('common.runtimeInfo')
157
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_runtimeInfo.default, {
158
+ blocklet: blocklet
159
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
160
+ className: "title",
161
+ children: t('common.engine')
162
+ }), engineRows.map(_ref2 => {
163
+ let {
164
+ name,
165
+ value
166
+ } = _ref2;
167
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
168
+ nameWidth: 120,
169
+ name: name,
170
+ children: value
171
+ }, name);
172
+ })]
173
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
174
+ className: "title",
175
+ children: t('common.dataStorage')
176
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_diskInfo.default, {
177
+ blocklet: blocklet
178
+ })]
179
+ }));
180
+ }
181
+ BlockletOverview.propTypes = {
182
+ blocklet: _propTypes.default.object.isRequired
183
+ };
184
+ const Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n margin-top: ", ";\n margin-bottom: ", ";\n }\n"])), props => props.theme.spacing(5), props => props.theme.spacing(3));
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletRuntimeInfo;
7
+ var _react = require("react");
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _filesize = _interopRequireDefault(require("filesize"));
11
+ var _prettyMsI18n = _interopRequireDefault(require("pretty-ms-i18n"));
12
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
13
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
14
+ var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
15
+ var _context = require("@arcblock/ux/lib/Locale/context");
16
+ var _util = require("../util");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ var _templateObject;
19
+ const _excluded = ["blocklet", "noRunningMessage"];
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
22
+ 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; }
23
+ 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; }
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+ 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; }
26
+ 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; }
27
+ function BlockletRuntimeInfo(_ref) {
28
+ let {
29
+ blocklet,
30
+ noRunningMessage
31
+ } = _ref,
32
+ rest = _objectWithoutProperties(_ref, _excluded);
33
+ const {
34
+ t,
35
+ locale
36
+ } = (0, _react.useContext)(_context.LocaleContext);
37
+ if (blocklet.status !== 'running') {
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
39
+ children: noRunningMessage || t('blocklet.runtimeInfo.noRunning')
40
+ });
41
+ }
42
+ if ((0, _isEmpty.default)(blocklet.runtimeInfo)) {
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
44
+ children: t('common.empty')
45
+ });
46
+ }
47
+ const rows = [{
48
+ name: t('blocklet.runtimeInfo.memoryUsage'),
49
+ value: (0, _filesize.default)(blocklet.runtimeInfo.memoryUsage)
50
+ }, {
51
+ name: t('blocklet.runtimeInfo.cpuUsage'),
52
+ value: "".concat(blocklet.runtimeInfo.cpuUsage * 100, "%")
53
+ }, {
54
+ name: t('blocklet.runtimeInfo.uptime'),
55
+ value: (0, _prettyMsI18n.default)(Number(+new Date() - blocklet.runtimeInfo.startAt || 0), {
56
+ locale: (0, _util.formatLocale)(locale)
57
+ })
58
+ }, {
59
+ name: t('blocklet.runtimeInfo.processId'),
60
+ value: blocklet.runtimeInfo.pid
61
+ }];
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({
63
+ component: "div"
64
+ }, rest), {}, {
65
+ children: rows.map(_ref2 => {
66
+ let {
67
+ name,
68
+ value
69
+ } = _ref2;
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
71
+ nameWidth: 120,
72
+ name: name,
73
+ children: value
74
+ }, name);
75
+ })
76
+ }));
77
+ }
78
+ BlockletRuntimeInfo.propTypes = {
79
+ blocklet: _propTypes.default.object.isRequired,
80
+ noRunningMessage: _propTypes.default.string
81
+ };
82
+ BlockletRuntimeInfo.defaultProps = {
83
+ noRunningMessage: ''
84
+ };
85
+ const Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletStatus;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
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 _tag = _interopRequireDefault(require("../tag"));
14
+ var _util = require("../util");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ const _excluded = ["status", "variant", "source"];
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
+ 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; }
22
+ 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; }
23
+ const colors = {
24
+ yellow: '#FFCF71',
25
+ grey: '#888888'
26
+ };
27
+ function BlockletStatus(_ref) {
28
+ let {
29
+ status,
30
+ variant,
31
+ source
32
+ } = _ref,
33
+ rest = _objectWithoutProperties(_ref, _excluded);
34
+ const {
35
+ t
36
+ } = (0, _react.useContext)(_context.LocaleContext);
37
+ const map = {
38
+ added: 'primary',
39
+ waiting: 'warning',
40
+ downloading: 'warning',
41
+ downloaded: 'primary',
42
+ installing: 'warning',
43
+ installed: 'primary',
44
+ starting: 'warning',
45
+ running: 'success',
46
+ stopping: 'warning',
47
+ stopped: 'reverse',
48
+ error: 'error',
49
+ upgrading: 'warning',
50
+ restarting: 'warning',
51
+ corrupted: 'error',
52
+ deleting: 'warning'
53
+ };
54
+ const colorMap = {
55
+ added: colors.grey,
56
+ waiting: colors.yellow,
57
+ downloading: colors.yellow,
58
+ downloaded: colors.grey,
59
+ installing: colors.yellow,
60
+ installed: colors.grey,
61
+ starting: colors.yellow,
62
+ running: 'success',
63
+ stopping: colors.yellow,
64
+ stopped: colors.grey,
65
+ error: 'error',
66
+ upgrading: colors.yellow,
67
+ restarting: colors.yellow,
68
+ corrupted: 'error',
69
+ deleting: colors.yellow
70
+ };
71
+ const inProgress = (0, _util.isInProgress)(status);
72
+ const statusTxt = t("blocklet.status.".concat(source === 'custom' && status === 'installed' ? 'created' : status));
73
+ if (variant === 'dot') {
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
75
+ title: t('blocklet.statusTip', {
76
+ status: statusTxt
77
+ }),
78
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dot.default, _objectSpread({
79
+ color: colorMap[status]
80
+ }, rest))
81
+ });
82
+ }
83
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_tag.default, _objectSpread(_objectSpread({
84
+ type: map[status]
85
+ }, rest), {}, {
86
+ children: [inProgress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
87
+ size: [12, 6],
88
+ color: "inherit",
89
+ style: {
90
+ marginRight: 5
91
+ }
92
+ }), statusTxt]
93
+ }));
94
+ }
95
+ BlockletStatus.propTypes = {
96
+ status: _propTypes.default.string.isRequired,
97
+ variant: _propTypes.default.oneOf(['dot', 'tag']),
98
+ source: _propTypes.default.string
99
+ };
100
+ BlockletStatus.defaultProps = {
101
+ variant: 'tag',
102
+ source: ''
103
+ };
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.downloadExportedSource = downloadExportedSource;
7
+ exports.genExportedMeta = genExportedMeta;
8
+ exports.getLaunchURL = exports.getLaunchAgreementUrl = void 0;
9
+ exports.getNameByTitle = getNameByTitle;
10
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
11
+ var _pickBy = _interopRequireDefault(require("lodash/pickBy"));
12
+ var _jszip = _interopRequireDefault(require("jszip"));
13
+ var _jsYaml = _interopRequireDefault(require("js-yaml"));
14
+ var _fileSaver = _interopRequireDefault(require("file-saver"));
15
+ var _urlJoin = _interopRequireDefault(require("url-join"));
16
+ var _did = _interopRequireDefault(require("@blocklet/meta/lib/did"));
17
+ var _didMotif = require("@arcblock/did-motif");
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ const base64ToArrayBuffer = base64 => {
20
+ const bufStr = window.atob(base64);
21
+ const bytes = new Uint8Array(bufStr.length);
22
+ for (let i = 0; i < bufStr.length; i++) {
23
+ bytes[i] = bufStr.charCodeAt(i);
24
+ }
25
+ return bytes;
26
+ };
27
+ const getLogo = did => {
28
+ const url = (0, _didMotif.toDataURL)(did, {
29
+ size: 200
30
+ });
31
+ const base64 = url.replace(/^[^,]*,/, '');
32
+ return base64ToArrayBuffer(base64);
33
+ };
34
+ function getNameByTitle(title) {
35
+ return title.replace(/[\s/@_]/g, '-').replace(/[^a-zA-Z0-9_-]/g, '').replace(/(^[-\s]+)|([-\s]+$)/g, '').toLowerCase();
36
+ }
37
+ function genExportedMeta(name, blocklet) {
38
+ const meta = (0, _pickBy.default)((0, _cloneDeep.default)(blocklet.meta), x => x !== null);
39
+ meta.name = name;
40
+ meta.did = (0, _did.default)(name);
41
+ meta.logo = 'logo.png';
42
+ meta.interfaces.forEach(x => {
43
+ // filter null or undefined
44
+ if (!x.services) {
45
+ delete x.services;
46
+ }
47
+ });
48
+ blocklet.children.forEach(child => {
49
+ if (child.dynamic && child.bundleSource) {
50
+ meta.children.push({
51
+ name: child.meta.name,
52
+ source: child.bundleSource,
53
+ title: child.meta.title,
54
+ mountPoint: child.mountPoint
55
+ });
56
+ }
57
+ });
58
+ meta.environments = (blocklet.configs || []).map(x => ({
59
+ name: x.key,
60
+ description: 'Automatically generated when exporting',
61
+ required: !!x.required,
62
+ secure: !!x.secure,
63
+ default: x.secure ? '' : x.value || ''
64
+ }));
65
+ meta.capabilities.component = false;
66
+ return meta;
67
+ }
68
+ const license = holder => "Copyright \xA9 2022 ".concat(holder || '', "\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201CSoftware\u201D), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \u201CAS IS\u201D, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.");
69
+ const Gitignore = ".DS_Store\n.blocklet";
70
+ const GithubAction = "name: Deploy\n\non:\n push:\n branches:\n - main\n\njobs:\n Deploy:\n runs-on: ubuntu-latest\n\n steps:\n - name: Checkout repo\n uses: actions/checkout@v2\n\n - name: Blocklet workflow\n uses: blocklet/action-workflow@v1\n with:\n skip-upload: true\n skip-deploy: true\n bundle-command: blocklet bundle --create-release\n github-token: ${{ secrets.GITHUB_TOKEN }}";
71
+ async function downloadExportedSource(meta) {
72
+ let {
73
+ holder
74
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
75
+ const folderName = "".concat(meta.name.split('/').pop());
76
+ const readme = "# ".concat(meta.title, "\n\n## Introduction\n\n").concat(meta.description);
77
+ const zip = new _jszip.default();
78
+ const folder = zip.folder(folderName);
79
+ folder.file('blocklet.yml', _jsYaml.default.dump(meta));
80
+ folder.file('blocklet.md', readme);
81
+ folder.file('README.md', readme);
82
+ folder.file('logo.png', getLogo(meta.did));
83
+ folder.file('LICENSE', license(holder));
84
+ folder.file('.gitignore', Gitignore);
85
+ folder.folder('screenshots').file('.gitkeep', '');
86
+ folder.folder('.github').folder('workflows').file('main.yml', GithubAction);
87
+ await new Promise((resolve, reject) => {
88
+ zip.generateAsync({
89
+ type: 'blob'
90
+ }).then(content => {
91
+ (0, _fileSaver.default)(content, "".concat(folderName, ".zip"));
92
+ resolve();
93
+ }).catch(err => {
94
+ reject(err);
95
+ });
96
+ });
97
+ }
98
+ const getLaunchURL = function getLaunchURL(meta, info) {
99
+ let encodeURI = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
100
+ const adminPath = process.env.NODE_ENV === 'production' ? info.routing.adminPath : '';
101
+ const serverUrl = encodeURI ? encodeURIComponent((0, _urlJoin.default)(window.location.origin, adminPath)) : (0, _urlJoin.default)(window.location.origin, adminPath);
102
+ const metaUrl = (0, _urlJoin.default)(info === null || info === void 0 ? void 0 : info.blockletRegistry, "/api/blocklets/".concat(meta.did, "/blocklet.json"));
103
+ return {
104
+ serverUrl,
105
+ metaUrl
106
+ };
107
+ };
108
+ exports.getLaunchURL = getLaunchURL;
109
+ const getLaunchAgreementUrl = (meta, info) => {
110
+ const {
111
+ metaUrl,
112
+ serverUrl
113
+ } = getLaunchURL(meta, info);
114
+ const url = new URL((0, _urlJoin.default)(serverUrl, '/launch-blocklet/agreement'));
115
+ url.searchParams.set('blocklet_meta_url', metaUrl);
116
+ url.searchParams.set('from', window.location.href);
117
+ return url.href;
118
+ };
119
+ exports.getLaunchAgreementUrl = getLaunchAgreementUrl;