@alicloud/alfa-react 1.4.0-alpha.8 → 1.4.0

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.
@@ -1,4 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+
4
+ 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; }
5
+
6
+ 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; }
7
+
2
8
  import React from 'react';
3
9
  import { BaseLoader } from '@alicloud/alfa-core';
4
10
  import ErrorBoundary from './components/ErrorBoundary';
@@ -21,10 +27,14 @@ function createAlfaApp(option) {
21
27
  };
22
28
  var passedInOption = option;
23
29
  return /*#__PURE__*/React.memo(function (props) {
30
+ var customProps = _objectSpread(_objectSpread({}, props), {}, {
31
+ __injectHistory: props.history
32
+ });
33
+
24
34
  return /*#__PURE__*/React.createElement(ErrorBoundary, props, /*#__PURE__*/React.createElement(Application, _extends({}, passedInOption, {
25
35
  sandbox: option.sandbox || props.sandbox,
26
36
  deps: dependencies || {},
27
- customProps: props
37
+ customProps: customProps
28
38
  })));
29
39
  });
30
40
  }
package/es/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '1.4.0-alpha.8';
1
+ export var version = '1.4.0';
@@ -1,7 +1,7 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import template from 'lodash/template';
4
- import axios from 'axios';
4
+ import { request } from '@alicloud/alfa-core';
5
5
  import { ENV, getConsoleEnv } from './env';
6
6
  var cachedConfig = {};
7
7
  export var getWidgetConfigById = /*#__PURE__*/function () {
@@ -19,13 +19,13 @@ export var getWidgetConfigById = /*#__PURE__*/function () {
19
19
  }
20
20
 
21
21
  _context.next = 4;
22
- return axios.get(template(env.configUrl)({
22
+ return request.get(template(env.configUrl)({
23
23
  id: option.name
24
24
  }));
25
25
 
26
26
  case 4:
27
27
  resp = _context.sent;
28
- cachedConfig[option.name] = resp.data;
28
+ cachedConfig[option.name] = resp === null || resp === void 0 ? void 0 : resp.data;
29
29
 
30
30
  case 6:
31
31
  return _context.abrupt("return", cachedConfig[option.name]);
@@ -45,7 +45,7 @@ export var getWidgetDeps = /*#__PURE__*/function () {
45
45
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config, option) {
46
46
  var _objectSpread2;
47
47
 
48
- var _yield$getWidgetVersi, entryUrl, version, _yield$getWidgetVersi2, messageVersion, resp, _yield$getWidgetVersi3, oldVersion, components, injectedWidgetUtils;
48
+ var _yield$getWidgetVersi, _yield$getWidgetVersi2, entryUrl, version, _yield$getWidgetVersi3, _yield$getWidgetVersi4, messageVersion, resp, _yield$getWidgetVersi5, oldVersion, components, injectedWidgetUtils;
49
49
 
50
50
  return _regeneratorRuntime.wrap(function _callee$(_context) {
51
51
  while (1) {
@@ -59,54 +59,56 @@ export var getWidgetDeps = /*#__PURE__*/function () {
59
59
 
60
60
  case 2:
61
61
  _yield$getWidgetVersi = _context.sent;
62
- entryUrl = _yield$getWidgetVersi.entryUrl;
62
+ _yield$getWidgetVersi2 = _yield$getWidgetVersi.entryUrl;
63
+ entryUrl = _yield$getWidgetVersi2 === void 0 ? '' : _yield$getWidgetVersi2;
63
64
  version = _yield$getWidgetVersi.version;
64
- _context.next = 7;
65
+ _context.next = 8;
65
66
  return getWidgetVersionById({
66
67
  name: WIDGET_WIND_MESSAGE_ID,
67
68
  version: '0.x'
68
69
  });
69
70
 
70
- case 7:
71
- _yield$getWidgetVersi2 = _context.sent;
72
- messageVersion = _yield$getWidgetVersi2.version;
71
+ case 8:
72
+ _yield$getWidgetVersi3 = _context.sent;
73
+ _yield$getWidgetVersi4 = _yield$getWidgetVersi3.version;
74
+ messageVersion = _yield$getWidgetVersi4 === void 0 ? '0.0.8' : _yield$getWidgetVersi4;
73
75
 
74
76
  if (cachedMessage) {
75
- _context.next = 19;
77
+ _context.next = 21;
76
78
  break;
77
79
  }
78
80
 
79
- _context.prev = 10;
80
- _context.next = 13;
81
+ _context.prev = 12;
82
+ _context.next = 15;
81
83
  return axios.get("https://g.alicdn.com/one-mcms/wind-v2/".concat(messageVersion, "/wind-v2_").concat((widgetUtils.getLocale() || 'en-US').toLowerCase(), ".json"));
82
84
 
83
- case 13:
85
+ case 15:
84
86
  resp = _context.sent;
85
87
  cachedMessage = resp.data;
86
- _context.next = 19;
88
+ _context.next = 21;
87
89
  break;
88
90
 
89
- case 17:
90
- _context.prev = 17;
91
- _context.t0 = _context["catch"](10);
92
-
93
91
  case 19:
94
- _context.next = 21;
92
+ _context.prev = 19;
93
+ _context.t0 = _context["catch"](12);
94
+
95
+ case 21:
96
+ _context.next = 23;
95
97
  return getWidgetVersionById({
96
98
  name: WIDGET_RUNTIME_ID,
97
99
  version: '1.x'
98
100
  });
99
101
 
100
- case 21:
101
- _yield$getWidgetVersi3 = _context.sent;
102
- oldVersion = _yield$getWidgetVersi3.version;
102
+ case 23:
103
+ _yield$getWidgetVersi5 = _context.sent;
104
+ oldVersion = _yield$getWidgetVersi5.version;
103
105
 
104
106
  if (cachedRuntime[version]) {
105
- _context.next = 29;
107
+ _context.next = 31;
106
108
  break;
107
109
  }
108
110
 
109
- _context.next = 26;
111
+ _context.next = 28;
110
112
  return loadBundle({
111
113
  id: WIDGET_RUNTIME_ID,
112
114
  url: entryUrl,
@@ -131,14 +133,14 @@ export var getWidgetDeps = /*#__PURE__*/function () {
131
133
  }
132
134
  });
133
135
 
134
- case 26:
136
+ case 28:
135
137
  cachedRuntime[version] = _context.sent;
136
138
  components = cachedRuntime[version].default['@ali/wind'];
137
139
  Object.keys(components).forEach(function (key) {
138
140
  cachedRuntime[version].default["@ali/wind/lib/".concat(kebabCase(key).toLowerCase())] = components[key];
139
141
  });
140
142
 
141
- case 29:
143
+ case 31:
142
144
  injectedWidgetUtils = _objectSpread(_objectSpread({}, widgetUtils), {}, {
143
145
  getChannelLink: widgetUtils.channelLinkFactory(function () {
144
146
  return config.links[widgetUtils.getChannel() || 'OFFICIAL'];
@@ -163,12 +165,12 @@ export var getWidgetDeps = /*#__PURE__*/function () {
163
165
  axios: axios
164
166
  }, cachedRuntime[version].default), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, WIDGET_UTILS_PKG_NAME, injectedWidgetUtils), _defineProperty(_objectSpread2, '@ali/widget-utils-config', injectedWidgetUtils), _defineProperty(_objectSpread2, '@ali/widget-loader', createWidget), _objectSpread2)));
165
167
 
166
- case 31:
168
+ case 33:
167
169
  case "end":
168
170
  return _context.stop();
169
171
  }
170
172
  }
171
- }, _callee, null, [[10, 17]]);
173
+ }, _callee, null, [[12, 19]]);
172
174
  }));
173
175
 
174
176
  return function getWidgetDeps(_x, _x2) {
@@ -1,12 +1,17 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+
3
+ var _ALIYUN_CONSOLE_CONFI;
4
+
2
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import axios from 'axios';
4
6
  import template from 'lodash/template';
7
+ import { request } from '@alicloud/alfa-core';
5
8
  import { ENV, DIS_ENV, getConsoleEnv } from './env';
6
9
  export var cachedRelease = null;
7
10
  var WIDGET_ENTRY_URL = 'https://g.alicdn.com/${id}/${version}/index.js';
11
+ var uid = (_ALIYUN_CONSOLE_CONFI = window.ALIYUN_CONSOLE_CONFIG) === null || _ALIYUN_CONSOLE_CONFI === void 0 ? void 0 : _ALIYUN_CONSOLE_CONFI.MAIN_ACCOUNT_PK;
8
12
 
9
13
  var normalizeEntryUrl = function normalizeEntryUrl(id, version, resourceUrl) {
14
+ if (!version) throw new Error('No Version for Widget');
10
15
  var gitRepoId = id.replace('@ali/', '').replace('widget-', 'widget/');
11
16
  return template(resourceUrl)({
12
17
  id: gitRepoId,
@@ -16,13 +21,15 @@ var normalizeEntryUrl = function normalizeEntryUrl(id, version, resourceUrl) {
16
21
 
17
22
  export var getWidgetVersionById = /*#__PURE__*/function () {
18
23
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(option) {
19
- var _option$central, central, env, Release, resp, version;
24
+ var _release$distTags, _release$distTags2, _release$nextVersion;
25
+
26
+ var name, _option$central, central, env, Release, version, entryUrl, _resp, _cachedRelease$option, _cachedRelease$option2, latestVersion, _nextVersion, gray, resp, release, nextVersion, sampling;
20
27
 
21
28
  return _regeneratorRuntime.wrap(function _callee$(_context) {
22
29
  while (1) {
23
30
  switch (_context.prev = _context.next) {
24
31
  case 0:
25
- _option$central = option.central, central = _option$central === void 0 ? true : _option$central, env = option.env;
32
+ name = option.name, _option$central = option.central, central = _option$central === void 0 ? true : _option$central, env = option.env;
26
33
  Release = central ? ENV[env || getConsoleEnv()] : DIS_ENV[env || getConsoleEnv()];
27
34
 
28
35
  if (option.version) {
@@ -44,26 +51,78 @@ export var getWidgetVersionById = /*#__PURE__*/function () {
44
51
  });
45
52
 
46
53
  case 6:
54
+ if (!central) {
55
+ _context.next = 12;
56
+ break;
57
+ }
58
+
47
59
  if (cachedRelease) {
48
- _context.next = 11;
60
+ _context.next = 12;
49
61
  break;
50
62
  }
51
63
 
52
- _context.next = 9;
53
- return axios.get(Release.releaseUrl);
64
+ _context.next = 10;
65
+ return request.get(Release.releaseUrl);
66
+
67
+ case 10:
68
+ _resp = _context.sent;
54
69
 
55
- case 9:
70
+ if (_resp && _resp.data) {
71
+ cachedRelease = _resp.data;
72
+ }
73
+
74
+ case 12:
75
+ if (!cachedRelease) {
76
+ _context.next = 19;
77
+ break;
78
+ }
79
+
80
+ latestVersion = cachedRelease[option.name][option.version].latest;
81
+ _nextVersion = (_cachedRelease$option = cachedRelease[option.name][option.version].next) === null || _cachedRelease$option === void 0 ? void 0 : _cachedRelease$option.version;
82
+ gray = (_cachedRelease$option2 = cachedRelease[option.name][option.version].next) === null || _cachedRelease$option2 === void 0 ? void 0 : _cachedRelease$option2.gray;
83
+ version = uid && Number(uid.substring(uid.length - 2)) < gray ? _nextVersion : latestVersion;
84
+ entryUrl = normalizeEntryUrl(option.name, version, Release.resourceUrl || WIDGET_ENTRY_URL);
85
+ return _context.abrupt("return", {
86
+ version: version,
87
+ entryUrl: entryUrl
88
+ });
89
+
90
+ case 19:
91
+ _context.next = 21;
92
+ return request.get(template(Release.releaseUrl)({
93
+ id: name
94
+ }));
95
+
96
+ case 21:
56
97
  resp = _context.sent;
57
- cachedRelease = resp.data;
58
98
 
59
- case 11:
60
- version = cachedRelease[option.name][option.version].latest;
99
+ if (!(!resp || !resp.data)) {
100
+ _context.next = 24;
101
+ break;
102
+ }
103
+
104
+ throw new Error('Cannot get Release');
105
+
106
+ case 24:
107
+ release = resp.data;
108
+ nextVersion = (_release$distTags = release['dist-tags']) === null || _release$distTags === void 0 ? void 0 : _release$distTags["".concat(option.version, "-next")];
109
+ version = (_release$distTags2 = release['dist-tags']) === null || _release$distTags2 === void 0 ? void 0 : _release$distTags2[option.version]; // has gray version
110
+
111
+ if (nextVersion && release !== null && release !== void 0 && (_release$nextVersion = release['next-versions']) !== null && _release$nextVersion !== void 0 && _release$nextVersion[nextVersion] && uid) {
112
+ sampling = release['next-versions'][nextVersion].featureStatus.sampling || 0;
113
+
114
+ if (sampling * 100 > Number(uid.substring(uid.length - 2))) {
115
+ version = nextVersion;
116
+ }
117
+ }
118
+
119
+ entryUrl = normalizeEntryUrl(option.name, version, Release.resourceUrl || WIDGET_ENTRY_URL);
61
120
  return _context.abrupt("return", {
62
121
  version: version,
63
- entryUrl: normalizeEntryUrl(option.name, version, Release.resourceUrl || WIDGET_ENTRY_URL)
122
+ entryUrl: entryUrl
64
123
  });
65
124
 
66
- case 13:
125
+ case 30:
67
126
  case "end":
68
127
  return _context.stop();
69
128
  }
package/es/widget.js CHANGED
@@ -58,7 +58,7 @@ export function createCWSWidget(option) {
58
58
  deps = _context.sent;
59
59
  return _context.abrupt("return", loadBundle({
60
60
  id: normalizeName(option.name),
61
- url: (option.url || url).replace('index.js', option !== null && option !== void 0 && option.alfaLoader ? 'index.alfa.js' : 'index.js'),
61
+ url: (option.url || url || '').replace('index.js', option !== null && option !== void 0 && option.alfaLoader ? 'index.alfa.js' : 'index.js'),
62
62
  deps: _objectSpread(_objectSpread({}, deps), option.dependencies),
63
63
  xmlrequest: !option.alfaLoader,
64
64
  context: {
@@ -1,4 +1,7 @@
1
1
  import React from 'react';
2
2
  import { AlfaFactoryOption } from './types';
3
- declare function createAlfaApp<P = any>(option: AlfaFactoryOption): (() => null) | React.MemoExoticComponent<(props: P) => JSX.Element>;
3
+ declare function createAlfaApp<P = any>(option: AlfaFactoryOption): (() => null) | React.MemoExoticComponent<(props: P & {
4
+ history: any;
5
+ sandbox: {};
6
+ }) => JSX.Element>;
4
7
  export default createAlfaApp;
@@ -9,6 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _react = _interopRequireDefault(require("react"));
13
15
 
14
16
  var _alfaCore = require("@alicloud/alfa-core");
@@ -21,6 +23,10 @@ var _beforeResolveHook = _interopRequireDefault(require("./hooks/beforeResolveHo
21
23
 
22
24
  var _beforeLoadHook = _interopRequireDefault(require("./hooks/beforeLoadHook"));
23
25
 
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
+
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) { (0, _defineProperty2.default)(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
+
24
30
  var loader = _alfaCore.BaseLoader.create();
25
31
 
26
32
  loader.beforeResolve.use(_beforeResolveHook.default);
@@ -38,10 +44,14 @@ function createAlfaApp(option) {
38
44
  };
39
45
  var passedInOption = option;
40
46
  return /*#__PURE__*/_react.default.memo(function (props) {
47
+ var customProps = _objectSpread(_objectSpread({}, props), {}, {
48
+ __injectHistory: props.history
49
+ });
50
+
41
51
  return /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, props, /*#__PURE__*/_react.default.createElement(Application, (0, _extends2.default)({}, passedInOption, {
42
52
  sandbox: option.sandbox || props.sandbox,
43
53
  deps: dependencies || {},
44
- customProps: props
54
+ customProps: customProps
45
55
  })));
46
56
  });
47
57
  }
@@ -28,6 +28,8 @@ export interface WidgetFactoryOption extends Omit<AlfaFactoryOption, OmitKeys> {
28
28
  alfaLoader?: boolean;
29
29
  theme?: string;
30
30
  central?: boolean;
31
+ host?: string;
32
+ configHost?: string;
31
33
  }
32
34
  export interface AlfaEnvConfigDescriptor {
33
35
  releaseUrl: string;
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "1.4.0-alpha.8";
1
+ export declare const version = "1.4.0";
package/lib/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- var version = '1.4.0-alpha.8';
7
+ var version = '1.4.0';
8
8
  exports.version = version;
@@ -1,2 +1,2 @@
1
- import { AlfaFactoryOption, WidgetCWSConfig } from '../types';
2
- export declare const getWidgetConfigById: (option: AlfaFactoryOption) => Promise<WidgetCWSConfig>;
1
+ import { WidgetFactoryOption, WidgetCWSConfig } from '../types';
2
+ export declare const getWidgetConfigById: (option: WidgetFactoryOption) => Promise<WidgetCWSConfig>;
@@ -13,7 +13,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
13
13
 
14
14
  var _template = _interopRequireDefault(require("lodash/template"));
15
15
 
16
- var _axios = _interopRequireDefault(require("axios"));
16
+ var _alfaCore = require("@alicloud/alfa-core");
17
17
 
18
18
  var _env = require("./env");
19
19
 
@@ -34,13 +34,13 @@ var getWidgetConfigById = /*#__PURE__*/function () {
34
34
  }
35
35
 
36
36
  _context.next = 4;
37
- return _axios.default.get((0, _template.default)(env.configUrl)({
37
+ return _alfaCore.request.get((0, _template.default)(env.configUrl)({
38
38
  id: option.name
39
39
  }));
40
40
 
41
41
  case 4:
42
42
  resp = _context.sent;
43
- cachedConfig[option.name] = resp.data;
43
+ cachedConfig[option.name] = resp === null || resp === void 0 ? void 0 : resp.data;
44
44
 
45
45
  case 6:
46
46
  return _context.abrupt("return", cachedConfig[option.name]);
@@ -70,7 +70,7 @@ var getWidgetDeps = /*#__PURE__*/function () {
70
70
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(config, option) {
71
71
  var _objectSpread2;
72
72
 
73
- var _yield$getWidgetVersi, entryUrl, version, _yield$getWidgetVersi2, messageVersion, resp, _yield$getWidgetVersi3, oldVersion, components, injectedWidgetUtils;
73
+ var _yield$getWidgetVersi, _yield$getWidgetVersi2, entryUrl, version, _yield$getWidgetVersi3, _yield$getWidgetVersi4, messageVersion, resp, _yield$getWidgetVersi5, oldVersion, components, injectedWidgetUtils;
74
74
 
75
75
  return _regenerator.default.wrap(function _callee$(_context) {
76
76
  while (1) {
@@ -84,54 +84,56 @@ var getWidgetDeps = /*#__PURE__*/function () {
84
84
 
85
85
  case 2:
86
86
  _yield$getWidgetVersi = _context.sent;
87
- entryUrl = _yield$getWidgetVersi.entryUrl;
87
+ _yield$getWidgetVersi2 = _yield$getWidgetVersi.entryUrl;
88
+ entryUrl = _yield$getWidgetVersi2 === void 0 ? '' : _yield$getWidgetVersi2;
88
89
  version = _yield$getWidgetVersi.version;
89
- _context.next = 7;
90
+ _context.next = 8;
90
91
  return (0, _getWidgetVersionById.getWidgetVersionById)({
91
92
  name: WIDGET_WIND_MESSAGE_ID,
92
93
  version: '0.x'
93
94
  });
94
95
 
95
- case 7:
96
- _yield$getWidgetVersi2 = _context.sent;
97
- messageVersion = _yield$getWidgetVersi2.version;
96
+ case 8:
97
+ _yield$getWidgetVersi3 = _context.sent;
98
+ _yield$getWidgetVersi4 = _yield$getWidgetVersi3.version;
99
+ messageVersion = _yield$getWidgetVersi4 === void 0 ? '0.0.8' : _yield$getWidgetVersi4;
98
100
 
99
101
  if (cachedMessage) {
100
- _context.next = 19;
102
+ _context.next = 21;
101
103
  break;
102
104
  }
103
105
 
104
- _context.prev = 10;
105
- _context.next = 13;
106
+ _context.prev = 12;
107
+ _context.next = 15;
106
108
  return _axios.default.get("https://g.alicdn.com/one-mcms/wind-v2/".concat(messageVersion, "/wind-v2_").concat((widgetUtils.getLocale() || 'en-US').toLowerCase(), ".json"));
107
109
 
108
- case 13:
110
+ case 15:
109
111
  resp = _context.sent;
110
112
  cachedMessage = resp.data;
111
- _context.next = 19;
113
+ _context.next = 21;
112
114
  break;
113
115
 
114
- case 17:
115
- _context.prev = 17;
116
- _context.t0 = _context["catch"](10);
117
-
118
116
  case 19:
119
- _context.next = 21;
117
+ _context.prev = 19;
118
+ _context.t0 = _context["catch"](12);
119
+
120
+ case 21:
121
+ _context.next = 23;
120
122
  return (0, _getWidgetVersionById.getWidgetVersionById)({
121
123
  name: WIDGET_RUNTIME_ID,
122
124
  version: '1.x'
123
125
  });
124
126
 
125
- case 21:
126
- _yield$getWidgetVersi3 = _context.sent;
127
- oldVersion = _yield$getWidgetVersi3.version;
127
+ case 23:
128
+ _yield$getWidgetVersi5 = _context.sent;
129
+ oldVersion = _yield$getWidgetVersi5.version;
128
130
 
129
131
  if (cachedRuntime[version]) {
130
- _context.next = 29;
132
+ _context.next = 31;
131
133
  break;
132
134
  }
133
135
 
134
- _context.next = 26;
136
+ _context.next = 28;
135
137
  return (0, _consoleOsLoader.loadBundle)({
136
138
  id: WIDGET_RUNTIME_ID,
137
139
  url: entryUrl,
@@ -156,14 +158,14 @@ var getWidgetDeps = /*#__PURE__*/function () {
156
158
  }
157
159
  });
158
160
 
159
- case 26:
161
+ case 28:
160
162
  cachedRuntime[version] = _context.sent;
161
163
  components = cachedRuntime[version].default['@ali/wind'];
162
164
  Object.keys(components).forEach(function (key) {
163
165
  cachedRuntime[version].default["@ali/wind/lib/".concat((0, _kebabCase.default)(key).toLowerCase())] = components[key];
164
166
  });
165
167
 
166
- case 29:
168
+ case 31:
167
169
  injectedWidgetUtils = _objectSpread(_objectSpread({}, widgetUtils), {}, {
168
170
  getChannelLink: widgetUtils.channelLinkFactory(function () {
169
171
  return config.links[widgetUtils.getChannel() || 'OFFICIAL'];
@@ -188,12 +190,12 @@ var getWidgetDeps = /*#__PURE__*/function () {
188
190
  axios: _axios.default
189
191
  }, cachedRuntime[version].default), {}, (_objectSpread2 = {}, (0, _defineProperty2.default)(_objectSpread2, WIDGET_UTILS_PKG_NAME, injectedWidgetUtils), (0, _defineProperty2.default)(_objectSpread2, '@ali/widget-utils-config', injectedWidgetUtils), (0, _defineProperty2.default)(_objectSpread2, '@ali/widget-loader', createWidget), _objectSpread2)));
190
192
 
191
- case 31:
193
+ case 33:
192
194
  case "end":
193
195
  return _context.stop();
194
196
  }
195
197
  }
196
- }, _callee, null, [[10, 17]]);
198
+ }, _callee, null, [[12, 19]]);
197
199
  }));
198
200
 
199
201
  return function getWidgetDeps(_x, _x2) {
@@ -11,17 +11,21 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
 
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
13
 
14
- var _axios = _interopRequireDefault(require("axios"));
15
-
16
14
  var _template = _interopRequireDefault(require("lodash/template"));
17
15
 
16
+ var _alfaCore = require("@alicloud/alfa-core");
17
+
18
18
  var _env = require("./env");
19
19
 
20
+ var _ALIYUN_CONSOLE_CONFI;
21
+
20
22
  var cachedRelease = null;
21
23
  exports.cachedRelease = cachedRelease;
22
24
  var WIDGET_ENTRY_URL = 'https://g.alicdn.com/${id}/${version}/index.js';
25
+ var uid = (_ALIYUN_CONSOLE_CONFI = window.ALIYUN_CONSOLE_CONFIG) === null || _ALIYUN_CONSOLE_CONFI === void 0 ? void 0 : _ALIYUN_CONSOLE_CONFI.MAIN_ACCOUNT_PK;
23
26
 
24
27
  var normalizeEntryUrl = function normalizeEntryUrl(id, version, resourceUrl) {
28
+ if (!version) throw new Error('No Version for Widget');
25
29
  var gitRepoId = id.replace('@ali/', '').replace('widget-', 'widget/');
26
30
  return (0, _template.default)(resourceUrl)({
27
31
  id: gitRepoId,
@@ -31,13 +35,15 @@ var normalizeEntryUrl = function normalizeEntryUrl(id, version, resourceUrl) {
31
35
 
32
36
  var getWidgetVersionById = /*#__PURE__*/function () {
33
37
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(option) {
34
- var _option$central, central, env, Release, resp, version;
38
+ var _release$distTags, _release$distTags2, _release$nextVersion;
39
+
40
+ var name, _option$central, central, env, Release, version, entryUrl, _resp, _cachedRelease$option, _cachedRelease$option2, latestVersion, _nextVersion, gray, resp, release, nextVersion, sampling;
35
41
 
36
42
  return _regenerator.default.wrap(function _callee$(_context) {
37
43
  while (1) {
38
44
  switch (_context.prev = _context.next) {
39
45
  case 0:
40
- _option$central = option.central, central = _option$central === void 0 ? true : _option$central, env = option.env;
46
+ name = option.name, _option$central = option.central, central = _option$central === void 0 ? true : _option$central, env = option.env;
41
47
  Release = central ? _env.ENV[env || (0, _env.getConsoleEnv)()] : _env.DIS_ENV[env || (0, _env.getConsoleEnv)()];
42
48
 
43
49
  if (option.version) {
@@ -59,26 +65,78 @@ var getWidgetVersionById = /*#__PURE__*/function () {
59
65
  });
60
66
 
61
67
  case 6:
68
+ if (!central) {
69
+ _context.next = 12;
70
+ break;
71
+ }
72
+
62
73
  if (cachedRelease) {
63
- _context.next = 11;
74
+ _context.next = 12;
75
+ break;
76
+ }
77
+
78
+ _context.next = 10;
79
+ return _alfaCore.request.get(Release.releaseUrl);
80
+
81
+ case 10:
82
+ _resp = _context.sent;
83
+
84
+ if (_resp && _resp.data) {
85
+ exports.cachedRelease = cachedRelease = _resp.data;
86
+ }
87
+
88
+ case 12:
89
+ if (!cachedRelease) {
90
+ _context.next = 19;
64
91
  break;
65
92
  }
66
93
 
67
- _context.next = 9;
68
- return _axios.default.get(Release.releaseUrl);
94
+ latestVersion = cachedRelease[option.name][option.version].latest;
95
+ _nextVersion = (_cachedRelease$option = cachedRelease[option.name][option.version].next) === null || _cachedRelease$option === void 0 ? void 0 : _cachedRelease$option.version;
96
+ gray = (_cachedRelease$option2 = cachedRelease[option.name][option.version].next) === null || _cachedRelease$option2 === void 0 ? void 0 : _cachedRelease$option2.gray;
97
+ version = uid && Number(uid.substring(uid.length - 2)) < gray ? _nextVersion : latestVersion;
98
+ entryUrl = normalizeEntryUrl(option.name, version, Release.resourceUrl || WIDGET_ENTRY_URL);
99
+ return _context.abrupt("return", {
100
+ version: version,
101
+ entryUrl: entryUrl
102
+ });
69
103
 
70
- case 9:
104
+ case 19:
105
+ _context.next = 21;
106
+ return _alfaCore.request.get((0, _template.default)(Release.releaseUrl)({
107
+ id: name
108
+ }));
109
+
110
+ case 21:
71
111
  resp = _context.sent;
72
- exports.cachedRelease = cachedRelease = resp.data;
73
112
 
74
- case 11:
75
- version = cachedRelease[option.name][option.version].latest;
113
+ if (!(!resp || !resp.data)) {
114
+ _context.next = 24;
115
+ break;
116
+ }
117
+
118
+ throw new Error('Cannot get Release');
119
+
120
+ case 24:
121
+ release = resp.data;
122
+ nextVersion = (_release$distTags = release['dist-tags']) === null || _release$distTags === void 0 ? void 0 : _release$distTags["".concat(option.version, "-next")];
123
+ version = (_release$distTags2 = release['dist-tags']) === null || _release$distTags2 === void 0 ? void 0 : _release$distTags2[option.version]; // has gray version
124
+
125
+ if (nextVersion && release !== null && release !== void 0 && (_release$nextVersion = release['next-versions']) !== null && _release$nextVersion !== void 0 && _release$nextVersion[nextVersion] && uid) {
126
+ sampling = release['next-versions'][nextVersion].featureStatus.sampling || 0;
127
+
128
+ if (sampling * 100 > Number(uid.substring(uid.length - 2))) {
129
+ version = nextVersion;
130
+ }
131
+ }
132
+
133
+ entryUrl = normalizeEntryUrl(option.name, version, Release.resourceUrl || WIDGET_ENTRY_URL);
76
134
  return _context.abrupt("return", {
77
135
  version: version,
78
- entryUrl: normalizeEntryUrl(option.name, version, Release.resourceUrl || WIDGET_ENTRY_URL)
136
+ entryUrl: entryUrl
79
137
  });
80
138
 
81
- case 13:
139
+ case 30:
82
140
  case "end":
83
141
  return _context.stop();
84
142
  }