@abtnode/ux 1.15.17 → 1.16.0-beta-8ee536d7

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 (154) hide show
  1. package/lib/actions.js +111 -0
  2. package/lib/blocklet/access/config-access.js +303 -0
  3. package/lib/blocklet/access/index.js +221 -0
  4. package/lib/blocklet/actions.js +438 -0
  5. package/lib/blocklet/add-cert.js +191 -0
  6. package/lib/blocklet/agreement-app.js +30 -0
  7. package/lib/blocklet/agreement.js +72 -0
  8. package/lib/blocklet/app-avatar.js +74 -0
  9. package/lib/blocklet/audit-logs.js +197 -0
  10. package/lib/blocklet/blocklet-source.js +56 -0
  11. package/lib/blocklet/bundle-avatar.js +80 -0
  12. package/lib/blocklet/component/add.js +1063 -0
  13. package/lib/blocklet/component/configuration.js +124 -0
  14. package/lib/blocklet/component/delete.js +117 -0
  15. package/lib/blocklet/component/environment.js +289 -0
  16. package/lib/blocklet/component/expiration.js +53 -0
  17. package/lib/blocklet/component/index.js +804 -0
  18. package/lib/blocklet/component/line.js +28 -0
  19. package/lib/blocklet/component/navigation/locale-tabs.js +218 -0
  20. package/lib/blocklet/component/navigation/navigation-actions.js +120 -0
  21. package/lib/blocklet/component/navigation/navigation-dialog.js +620 -0
  22. package/lib/blocklet/component/navigation/navigation-preview.js +102 -0
  23. package/lib/blocklet/component/navigation/simple-select.js +131 -0
  24. package/lib/blocklet/component/select-store.js +153 -0
  25. package/lib/blocklet/component/setting.js +151 -0
  26. package/lib/blocklet/component/sortable-tree.js +138 -0
  27. package/lib/blocklet/component/space-gateway-selector.js +174 -0
  28. package/lib/blocklet/component/store-blocklet-list.js +205 -0
  29. package/lib/blocklet/config-navigation.js +344 -0
  30. package/lib/blocklet/configuration.js +574 -0
  31. package/lib/blocklet/disk-info.js +91 -0
  32. package/lib/blocklet/icons.js +26 -0
  33. package/lib/blocklet/install-from-url.js +347 -0
  34. package/lib/blocklet/log.js +62 -0
  35. package/lib/blocklet/migration.js +153 -0
  36. package/lib/blocklet/mode.js +35 -0
  37. package/lib/blocklet/monitor.js +186 -0
  38. package/lib/blocklet/overview.js +236 -0
  39. package/lib/blocklet/preferences/app-sk.js +131 -0
  40. package/lib/blocklet/preferences/index.js +238 -0
  41. package/lib/blocklet/preferences/wallet-type.js +107 -0
  42. package/lib/blocklet/purchase/common.js +103 -0
  43. package/lib/blocklet/purchase/component-purchase.js +253 -0
  44. package/lib/blocklet/purchase/index.js +13 -0
  45. package/lib/blocklet/router/action/add-domain-alias.js +173 -0
  46. package/lib/blocklet/router/action/add-rule.js +204 -0
  47. package/lib/blocklet/router/action/config-routing-rule.js +129 -0
  48. package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
  49. package/lib/blocklet/router/action/delete-rule.js +114 -0
  50. package/lib/blocklet/router/action/update-rule.js +203 -0
  51. package/lib/blocklet/router/domain-actions.js +71 -0
  52. package/lib/blocklet/router/domain-status.js +96 -0
  53. package/lib/blocklet/router/rule-actions.js +77 -0
  54. package/lib/blocklet/router/rule-list.js +181 -0
  55. package/lib/blocklet/router/util.js +146 -0
  56. package/lib/blocklet/runtime-info.js +87 -0
  57. package/lib/blocklet/status.js +105 -0
  58. package/lib/blocklet/storage.js +322 -0
  59. package/lib/blocklet/types.js +25 -0
  60. package/lib/blocklet/util.js +233 -0
  61. package/lib/blocklet/version.js +156 -0
  62. package/lib/card-selector.js +109 -0
  63. package/lib/certificate.js +110 -0
  64. package/lib/click-to-copy.js +38 -0
  65. package/lib/confirm.js +149 -0
  66. package/lib/contexts/audit-log.js +141 -0
  67. package/lib/contexts/blocklet.js +19 -0
  68. package/lib/contexts/deleting-blocklets.js +78 -0
  69. package/lib/contexts/node.js +30 -0
  70. package/lib/contexts/session.js +20 -0
  71. package/lib/contexts/team.js +19 -0
  72. package/lib/delete-confirm.js +127 -0
  73. package/lib/did-address.js +77 -0
  74. package/lib/dot.js +18 -0
  75. package/lib/form/form-text-input.js +266 -0
  76. package/lib/form/form-wrapper.js +13 -0
  77. package/lib/form/required.js +13 -0
  78. package/lib/hooks/blocklet.js +231 -0
  79. package/lib/hooks/mobile-width.js +19 -0
  80. package/lib/hooks/url-evaluation.js +168 -0
  81. package/lib/hooks/use-app-logo.js +25 -0
  82. package/lib/hooks/use-bundle-logo.js +36 -0
  83. package/lib/hooks/use-navigation.js +355 -0
  84. package/lib/hooks/use-passport-id.js +21 -0
  85. package/lib/hooks/use-subscription.js +28 -0
  86. package/lib/icons/long-arrow.svg +5 -0
  87. package/lib/index.js +0 -3
  88. package/lib/invitation/invitation-app.js +51 -0
  89. package/lib/invitation/invitation-login.js +47 -0
  90. package/lib/invitation/invitation-passport.js +130 -0
  91. package/lib/invitation/invitation-receive.js +108 -0
  92. package/lib/invitation/invitation-success.js +82 -0
  93. package/lib/invitation/invitation-user.js +79 -0
  94. package/lib/invitation/invitation.js +80 -0
  95. package/lib/issue-passport.js +84 -84
  96. package/lib/launch-blocklet/content-layout.js +33 -0
  97. package/lib/launch-blocklet/page-header.js +38 -0
  98. package/lib/layout/addon.js +100 -0
  99. package/lib/layout/feedback.js +55 -0
  100. package/lib/locales/en.js +1221 -10
  101. package/lib/locales/index.js +3 -4
  102. package/lib/locales/zh.js +1232 -15
  103. package/lib/logs/clock.js +19 -0
  104. package/lib/logs/download.js +139 -0
  105. package/lib/logs/log-terminal.js +183 -0
  106. package/lib/lost-passport.js +207 -192
  107. package/lib/monitor/card.js +73 -0
  108. package/lib/monitor/cpu.js +109 -0
  109. package/lib/monitor/disk.js +122 -0
  110. package/lib/monitor/memory.js +144 -0
  111. package/lib/nav-logo.js +120 -0
  112. package/lib/passport-tag.js +43 -0
  113. package/lib/permission.js +70 -0
  114. package/lib/relative-time.js +61 -0
  115. package/lib/schema-form/color-input.js +105 -0
  116. package/lib/schema-form/common-prop-types.js +21 -0
  117. package/lib/schema-form/index.js +229 -0
  118. package/lib/schema-form/passport-input.js +66 -0
  119. package/lib/schema-form/text-input.js +72 -0
  120. package/lib/store/add.js +185 -0
  121. package/lib/store/delete.js +102 -0
  122. package/lib/store/item.js +84 -0
  123. package/lib/table-icons.js +42 -0
  124. package/lib/table.js +13 -0
  125. package/lib/tag.js +37 -0
  126. package/lib/team/members/actions.js +99 -0
  127. package/lib/team/members/index.js +503 -0
  128. package/lib/team/members/invitations.js +196 -0
  129. package/lib/team/members/invite-member.js +212 -0
  130. package/lib/team/members/issue-passport.js +155 -0
  131. package/lib/team/members/member.js +300 -0
  132. package/lib/team/members/passport-issuances.js +154 -0
  133. package/lib/team/members/passports.js +336 -0
  134. package/lib/team/members/toggle-user-approval.js +128 -0
  135. package/lib/team/members/transfer-node.js +262 -0
  136. package/lib/team/members/util.js +20 -0
  137. package/lib/team/passports/color.js +132 -0
  138. package/lib/team/passports/detail.js +271 -0
  139. package/lib/team/passports/index.js +233 -0
  140. package/lib/team/passports/mutate-role.js +204 -0
  141. package/lib/team/passports/trusted-issuer.js +297 -0
  142. package/lib/team/passports/trusted-issuers.js +240 -0
  143. package/lib/team/search-input.js +38 -0
  144. package/lib/team/styles/dialog.js +13 -0
  145. package/lib/team/styles/list-header.js +13 -0
  146. package/lib/toast.js +86 -0
  147. package/lib/util/api.js +21 -0
  148. package/lib/util/constants.js +10 -0
  149. package/lib/util/index.js +703 -0
  150. package/lib/util/locales.js +28 -0
  151. package/lib/util/mode.js +11 -0
  152. package/lib/who-can-access/config.js +46 -0
  153. package/lib/wrap-locale.js +12 -13
  154. package/package.json +71 -17
@@ -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,347 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = InstallFromUrl;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
10
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
11
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
12
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
13
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
14
+ var _Stepper = _interopRequireDefault(require("@mui/material/Stepper"));
15
+ var _Step = _interopRequireDefault(require("@mui/material/Step"));
16
+ var _StepLabel = _interopRequireDefault(require("@mui/material/StepLabel"));
17
+ var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
18
+ var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
19
+ var _context = require("@arcblock/ux/lib/Locale/context");
20
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
21
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
22
+ var _util = require("@blocklet/meta/lib/util");
23
+ var _node = require("../contexts/node");
24
+ var _session = require("../contexts/session");
25
+ var _util2 = require("../util");
26
+ var _didAddress = _interopRequireDefault(require("../did-address"));
27
+ var _jsxRuntime = require("react/jsx-runtime");
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+ 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; }
30
+ 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; }
31
+ 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; }
32
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
33
+ 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); }
34
+ function InstallFromUrl(_ref) {
35
+ let {
36
+ defaultUrl,
37
+ onCancel: _onCancel,
38
+ onSuccess,
39
+ onError,
40
+ mode,
41
+ handleText
42
+ } = _ref;
43
+ const {
44
+ api
45
+ } = (0, _node.useNodeContext)();
46
+ const {
47
+ api: $api
48
+ } = (0, _session.useSessionContext)();
49
+ const [loading, setLoading] = (0, _react.useState)(false);
50
+ const [error, setError] = (0, _react.useState)('');
51
+ const {
52
+ t
53
+ } = (0, _context.useLocaleContext)();
54
+ const initMeta = {
55
+ dist: {}
56
+ };
57
+ const [url, setUrl] = (0, _react.useState)(defaultUrl);
58
+ const [activeStep, setActiveStep] = (0, _react.useState)(defaultUrl ? 1 : 0);
59
+ const [meta, setMeta] = (0, _react.useState)(initMeta);
60
+ const [isConnectOpen, setConnectOpen] = (0, _react.useState)(false);
61
+ const [params, setParams] = (0, _react.useState)({});
62
+ const isComponentMode = mode === 'component';
63
+ // if mode is component , we need to always show the step, that means the user can return to the previous step
64
+ const alwayShowSteps = isComponentMode ? true : !defaultUrl;
65
+ const onGetMeta = async () => {
66
+ setMeta(initMeta);
67
+ setError(null);
68
+ setLoading(true);
69
+ try {
70
+ const decoded = decodeURIComponent(url.trim());
71
+ // validate
72
+ try {
73
+ new URL(decoded); // eslint-disable-line no-new
74
+ } catch (_unused) {
75
+ throw new Error('Invalid URL');
76
+ }
77
+
78
+ // request
79
+ const {
80
+ meta: newer,
81
+ inStore,
82
+ registryUrl
83
+ } = await api.getBlockletMetaFromUrl({
84
+ input: {
85
+ url: decoded
86
+ }
87
+ });
88
+ setMeta(newer);
89
+ setParams({
90
+ inStore,
91
+ registryUrl,
92
+ inputUrl: url.trim()
93
+ });
94
+ } catch (err) {
95
+ console.error(err);
96
+ const errMsg = "Blocklet Install failed: ".concat((0, _util2.formatError)(err));
97
+ setError(errMsg);
98
+ onError(err);
99
+ } finally {
100
+ setLoading(false);
101
+ }
102
+ };
103
+ const _onConfirm = async () => {
104
+ if (isComponentMode) {
105
+ onSuccess(_objectSpread({
106
+ meta
107
+ }, params));
108
+ _onCancel();
109
+ return;
110
+ }
111
+ setLoading(true);
112
+ setConnectOpen(true);
113
+ };
114
+ const onEndInstall = () => {
115
+ setLoading(false);
116
+ setConnectOpen(false);
117
+ onSuccess(_objectSpread({
118
+ meta
119
+ }, params));
120
+ _onCancel();
121
+ };
122
+ const onCancelInstall = () => {
123
+ setLoading(false);
124
+ setConnectOpen(false);
125
+ };
126
+ (0, _react.useEffect)(() => {
127
+ if (defaultUrl) {
128
+ onGetMeta();
129
+ }
130
+ }, [defaultUrl]); // eslint-disable-line
131
+
132
+ const rows = [{
133
+ name: t('common.name'),
134
+ value: (0, _util.getDisplayName)({
135
+ meta
136
+ }, true)
137
+ }, {
138
+ name: t('common.version'),
139
+ value: meta.version
140
+ }, {
141
+ name: t('common.did'),
142
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
143
+ did: meta.did
144
+ })
145
+ }, {
146
+ name: t('common.author'),
147
+ value: (0, _util2.formatPerson)(meta.author)
148
+ }, {
149
+ name: t('blocklet.dist.downloadLink'),
150
+ value: meta.dist.tarball
151
+ }];
152
+ const getStep1Body = () => {
153
+ if (loading) {
154
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
155
+ style: {
156
+ height: 200,
157
+ width: '100%',
158
+ display: 'flex',
159
+ alignItems: 'center',
160
+ justifyContent: 'center',
161
+ flexDirection: 'column'
162
+ },
163
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {})
164
+ });
165
+ }
166
+ if (meta.did) {
167
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
168
+ style: {
169
+ paddingLeft: '10%'
170
+ },
171
+ children: rows.map(row => {
172
+ if (row.name === t('common.did')) {
173
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
174
+ valueComponent: "div",
175
+ nameWidth: 120,
176
+ name: row.name,
177
+ nameFormatter: () => t('common.did'),
178
+ children: row.value
179
+ }, row.name);
180
+ }
181
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
182
+ valueComponent: "div",
183
+ nameWidth: 120,
184
+ name: row.name,
185
+ children: row.value
186
+ }, row.name);
187
+ })
188
+ });
189
+ }
190
+ return null;
191
+ };
192
+ const steps = [{
193
+ label: t('blocklet.fromUrl.step0'),
194
+ body: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
195
+ component: "div",
196
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
197
+ label: t('blocklet.fromUrl.label'),
198
+ autoComplete: "off",
199
+ variant: "outlined",
200
+ name: "url",
201
+ "data-cy": "blocklet-url-input",
202
+ fullWidth: true,
203
+ autoFocus: true,
204
+ style: {
205
+ marginBottom: 32
206
+ },
207
+ margin: "dense",
208
+ helperText: t('blocklet.fromUrl.description'),
209
+ value: url,
210
+ onChange: e => {
211
+ setError(null);
212
+ setUrl(e.target.value);
213
+ },
214
+ disabled: loading,
215
+ onKeyPress: e => {
216
+ if (e.key === 'Enter') {
217
+ e.preventDefault();
218
+ onGetMeta();
219
+ setActiveStep(1);
220
+ }
221
+ }
222
+ })
223
+ }),
224
+ cancel: t('common.cancel'),
225
+ confirm: t('common.next'),
226
+ onCancel: _onCancel,
227
+ onConfirm: () => {
228
+ onGetMeta();
229
+ setActiveStep(1);
230
+ }
231
+ }, {
232
+ label: t('blocklet.fromUrl.step1'),
233
+ body: getStep1Body(),
234
+ cancel: alwayShowSteps ? t('common.pre') : t('common.cancel'),
235
+ confirm: (handleText === null || handleText === void 0 ? void 0 : handleText.confirm) || t('blocklet.fromUrl.confirm'),
236
+ onCancel: () => {
237
+ if (alwayShowSteps) {
238
+ setActiveStep(s => s - 1);
239
+ } else {
240
+ _onCancel();
241
+ }
242
+ },
243
+ onConfirm: () => {
244
+ _onConfirm();
245
+ }
246
+ }];
247
+ const step = steps[activeStep];
248
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
249
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
250
+ title: (handleText === null || handleText === void 0 ? void 0 : handleText.title) || t('blocklet.fromUrl.title'),
251
+ fullWidth: true,
252
+ maxWidth: "md",
253
+ onClose: () => step.onCancel(),
254
+ showCloseButton: activeStep === 0,
255
+ disableEscapeKeyDown: true,
256
+ open: true,
257
+ actions: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
258
+ children: [step.cancel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
259
+ onClick: e => {
260
+ e.stopPropagation();
261
+ setError(null);
262
+ step.onCancel();
263
+ },
264
+ color: "inherit",
265
+ children: step.cancel || t('common.cancel')
266
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
267
+ onClick: e => {
268
+ e.stopPropagation();
269
+ step.onConfirm();
270
+ },
271
+ color: "primary",
272
+ "data-cy": "install-blocklet-next-step",
273
+ disabled: loading || !url || error,
274
+ variant: "contained",
275
+ autoFocus: true,
276
+ style: {
277
+ marginLeft: 8
278
+ },
279
+ children: [loading && activeStep === 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
280
+ size: 16
281
+ }), step.confirm]
282
+ })]
283
+ }),
284
+ children: [alwayShowSteps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Stepper.default, {
285
+ alternativeLabel: true,
286
+ activeStep: activeStep,
287
+ children: steps.map(_ref2 => {
288
+ let {
289
+ label
290
+ } = _ref2;
291
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Step.default, {
292
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
293
+ children: label
294
+ })
295
+ }, label);
296
+ })
297
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {
298
+ component: "div",
299
+ style: {
300
+ marginTop: 24
301
+ },
302
+ children: step.body
303
+ }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
304
+ type: "error",
305
+ style: {
306
+ width: '100%',
307
+ marginTop: 8
308
+ },
309
+ children: error
310
+ })]
311
+ }), meta && isConnectOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
312
+ popup: true,
313
+ open: true,
314
+ forceConnected: false,
315
+ className: "launch-from-url-auth",
316
+ action: "launch-free-blocklet-by-session",
317
+ checkFn: $api.get,
318
+ checkTimeout: 5 * 60 * 1000,
319
+ onSuccess: onEndInstall,
320
+ extraParams: {
321
+ title: meta.title,
322
+ blockletMetaUrl: decodeURIComponent(url.trim())
323
+ },
324
+ messages: {
325
+ title: t('setup.keyPair.title'),
326
+ scan: t('setup.keyPair.scan'),
327
+ confirm: t('setup.keyPair.confirm'),
328
+ success: t('setup.keyPair.success')
329
+ },
330
+ onClose: onCancelInstall
331
+ })]
332
+ });
333
+ }
334
+ InstallFromUrl.propTypes = {
335
+ defaultUrl: _propTypes.default.string,
336
+ onCancel: _propTypes.default.func.isRequired,
337
+ onSuccess: _propTypes.default.func.isRequired,
338
+ onError: _propTypes.default.func,
339
+ mode: _propTypes.default.oneOf(['install', 'component']),
340
+ handleText: _propTypes.default.object
341
+ };
342
+ InstallFromUrl.defaultProps = {
343
+ onError: () => {},
344
+ defaultUrl: '',
345
+ mode: 'install',
346
+ handleText: {}
347
+ };
@@ -0,0 +1,62 @@
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 _download = _interopRequireDefault(require("../logs/download"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ const _excluded = ["blocklet"];
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ 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; }
16
+ 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; }
17
+ 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; }
18
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
+ 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); }
20
+ 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; }
21
+ 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; }
22
+ /**
23
+ * - heights:
24
+ * - header: 64
25
+ * - footer:
26
+ * - xs: 57 + 64
27
+ * - sm: 109 + 64
28
+ * - main content top:
29
+ * - xs: 211 + 32 + 16
30
+ * - md: 160 + 32 + 16
31
+ * - content height:
32
+ * - xs (Mobile) = 100vh - 444
33
+ * - sm (Mobile) = 100vh - 508
34
+ * - md (PC) = 100vh - 445
35
+ */
36
+ function BlockletLog(_ref) {
37
+ let {
38
+ blocklet
39
+ } = _ref,
40
+ rest = _objectWithoutProperties(_ref, _excluded);
41
+ 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'];
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({
43
+ height: {
44
+ xs: 'calc(100vh - 444px)',
45
+ sm: 'calc(100vh - 508px)',
46
+ md: 'calc(100vh - 445px)'
47
+ }
48
+ }, rest), {}, {
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_logTerminal.LogTerminalGroup, {
50
+ name: (0, _util.getDisplayName)(blocklet),
51
+ logId: "blocklet-".concat(blocklet.meta.did),
52
+ initialData: initialData,
53
+ postpend: /*#__PURE__*/(0, _jsxRuntime.jsx)(_download.default, {
54
+ id: blocklet.meta.did,
55
+ name: blocklet.meta.name
56
+ })
57
+ })
58
+ }));
59
+ }
60
+ BlockletLog.propTypes = {
61
+ blocklet: _propTypes.default.object.isRequired
62
+ };
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletMigration;
7
+ var _react = require("react");
8
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
10
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
11
+ var _constant = require("@abtnode/constant");
12
+ var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
13
+ var _context = require("@arcblock/ux/lib/Locale/context");
14
+ var _util = require("@blocklet/meta/lib/util");
15
+ var _node = require("../contexts/node");
16
+ var _blocklet = require("../contexts/blocklet");
17
+ var _session = require("../contexts/session");
18
+ var _toast = _interopRequireDefault(require("../toast"));
19
+ var _util2 = require("../util");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ const findDuplicate = blocklet => {
23
+ const map = {};
24
+ let duplicate = null;
25
+ (0, _util.forEachBlockletSync)(blocklet, component => {
26
+ if (map[component.meta.bundleDid]) {
27
+ duplicate = (0, _util.getDisplayName)(component, true);
28
+ } else if (component.meta.bundleDid) {
29
+ map[component.meta.bundleDid] = true;
30
+ }
31
+ });
32
+ return duplicate;
33
+ };
34
+ const getNewHref = (location, blocklet, inService) => {
35
+ const {
36
+ hostname,
37
+ href
38
+ } = location;
39
+ if (!blocklet) {
40
+ return href;
41
+ }
42
+ if (inService) {
43
+ var _blocklet$site;
44
+ const ipRegex = /\d+[-.]\d+[-.]\d+[-.]\d+/;
45
+ const match = ipRegex.exec(hostname);
46
+ if (!match) {
47
+ return href;
48
+ }
49
+ const ip = match[0];
50
+ const didDomain = (((_blocklet$site = blocklet.site) === null || _blocklet$site === void 0 ? void 0 : _blocklet$site.domainAliases) || []).map(x => x.value).filter(Boolean).find(x => x.endsWith(_constant.DEFAULT_DID_DOMAIN)) || '';
51
+ const base32Did = didDomain.replace(".".concat(_constant.DEFAULT_DID_DOMAIN), '');
52
+ if (!base32Did) {
53
+ return href;
54
+ }
55
+ return href.replace(hostname, "".concat(base32Did, "-").concat(ip, ".").concat(_constant.DEFAULT_IP_DOMAIN_SUFFIX));
56
+ }
57
+ return href.replace(blocklet.meta.bundleDid, blocklet.appPid);
58
+ };
59
+ function BlockletMigration() {
60
+ const {
61
+ t
62
+ } = (0, _context.useLocaleContext)();
63
+ const {
64
+ api
65
+ } = (0, _session.useSessionContext)();
66
+ const {
67
+ blocklet
68
+ } = (0, _blocklet.useBlockletContext)();
69
+ const {
70
+ inService
71
+ } = (0, _node.useNodeContext)();
72
+ const [openConnect, setOpenConnect] = (0, _react.useState)(false);
73
+ const [leftSec, setLeftSec] = (0, _react.useState)(5);
74
+ const needMigration = blocklet && blocklet.structVersion !== _constant.APP_STRUCT_VERSION;
75
+ const onMigrate = async () => {
76
+ try {
77
+ if (blocklet.status === 'running') {
78
+ _toast.default.error(t('blocklet.migrate.tip.running'));
79
+ return;
80
+ }
81
+ const duplicate = findDuplicate(blocklet);
82
+ if (duplicate) {
83
+ _toast.default.error(t('blocklet.migrate.tip.duplicate', {
84
+ name: duplicate
85
+ }));
86
+ return;
87
+ }
88
+ setOpenConnect(true);
89
+ } catch (error) {
90
+ _toast.default.error((0, _util2.formatError)(error));
91
+ }
92
+ };
93
+ const onSuccess = () => {
94
+ const newHref = getNewHref(window.location, blocklet, inService);
95
+ setTimeout(() => {
96
+ window.location.href = newHref;
97
+ }, 5000);
98
+ setLeftSec(5);
99
+ setInterval(() => {
100
+ setLeftSec(sec => sec - 1);
101
+ }, 1000);
102
+ };
103
+ const onClose = () => setOpenConnect(false);
104
+ return [needMigration && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Alert.default, {
105
+ type: "warning",
106
+ style: {
107
+ margin: '12px 0'
108
+ },
109
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
110
+ display: "flex",
111
+ alignItems: "center",
112
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
113
+ variant: "contained",
114
+ size: "small",
115
+ color: "primary",
116
+ onClick: () => onMigrate(),
117
+ style: {
118
+ marginRight: 8
119
+ },
120
+ children: t('blocklet.migrate.intro.l1')
121
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
122
+ children: t('blocklet.migrate.intro.l2')
123
+ })]
124
+ }), ['l3', 'l4', 'l5', 'l6'].map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
125
+ display: "flex",
126
+ alignItems: "center",
127
+ children: t("blocklet.migrate.intro.".concat(x))
128
+ }, x))]
129
+ }), blocklet && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
130
+ popup: true,
131
+ open: openConnect,
132
+ saveConnect: false,
133
+ forceConnected: false,
134
+ action: "migrate-app-to-struct-v2",
135
+ checkFn: api.get,
136
+ checkTimeout: 5 * 60 * 1000,
137
+ onSuccess: onSuccess,
138
+ extraParams: {
139
+ did: blocklet.meta.did,
140
+ title: (0, _util.getDisplayName)(blocklet)
141
+ },
142
+ messages: {
143
+ title: t('blocklet.migrate.title'),
144
+ scan: t('blocklet.migrate.scan'),
145
+ confirm: t('blocklet.migrate.confirm'),
146
+ success: leftSec >= 0 ? t('blocklet.migrate.success', {
147
+ sec: leftSec
148
+ }) : 'Redirecting...'
149
+ },
150
+ onClose: onClose
151
+ })];
152
+ }
153
+ BlockletMigration.propTypes = {};
@@ -0,0 +1,35 @@
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) { 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; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
+ 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); }
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
+ function BlockletMode(_ref) {
20
+ let {
21
+ mode
22
+ } = _ref,
23
+ rest = _objectWithoutProperties(_ref, _excluded);
24
+ if (mode === 'development') {
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, _objectSpread(_objectSpread({
26
+ type: "primary"
27
+ }, rest), {}, {
28
+ children: "DEV"
29
+ }));
30
+ }
31
+ return null;
32
+ }
33
+ BlockletMode.propTypes = {
34
+ mode: _propTypes.default.string.isRequired
35
+ };