@alicloud/console-base-conf-parse-env 1.3.9 → 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.
- package/CHANGELOG.md +4 -0
- package/build/cjs/enum/index.js +2 -3
- package/build/cjs/util/get-channel.js +5 -1
- package/build/cjs/util/get-env.js +10 -1
- package/build/cjs/util/parse-env.js +12 -5
- package/build/{es → esm}/util/get-channel.js +5 -1
- package/build/{es → esm}/util/get-env.js +10 -1
- package/build/{es → esm}/util/parse-env.js +12 -5
- package/build/types/enum/index.d.ts +3 -3
- package/build/types/types/index.d.ts +27 -0
- package/package.json +9 -14
- package/LICENSE +0 -21
- /package/build/{es → esm}/enum/index.js +0 -0
- /package/build/{es → esm}/index.js +0 -0
- /package/build/{es → esm}/types/index.js +0 -0
- /package/build/{es → esm}/util/get-site.js +0 -0
package/CHANGELOG.md
CHANGED
package/build/cjs/enum/index.js
CHANGED
|
@@ -7,11 +7,10 @@ exports.EEnv = void 0;
|
|
|
7
7
|
/**
|
|
8
8
|
* 环境枚举,互斥
|
|
9
9
|
*/
|
|
10
|
-
var EEnv = /*#__PURE__*/function (EEnv) {
|
|
10
|
+
var EEnv = exports.EEnv = /*#__PURE__*/function (EEnv) {
|
|
11
11
|
EEnv["DEV"] = "dev";
|
|
12
12
|
EEnv["DAILY"] = "daily";
|
|
13
13
|
EEnv["PRE"] = "pre";
|
|
14
14
|
EEnv["PROD"] = "prod";
|
|
15
15
|
return EEnv;
|
|
16
|
-
}({});
|
|
17
|
-
exports.EEnv = EEnv;
|
|
16
|
+
}({});
|
|
@@ -20,7 +20,8 @@ function getFallbackChannel(site) {
|
|
|
20
20
|
}
|
|
21
21
|
function getChannel(site) {
|
|
22
22
|
var _ref = window,
|
|
23
|
-
ALIYUN_ECS_CONSOLE_CONFIG = _ref.ALIYUN_ECS_CONSOLE_CONFIG
|
|
23
|
+
ALIYUN_ECS_CONSOLE_CONFIG = _ref.ALIYUN_ECS_CONSOLE_CONFIG,
|
|
24
|
+
$BUY_CONFIG = _ref.$BUY_CONFIG;
|
|
24
25
|
var channel = '';
|
|
25
26
|
if (_consoleOneConfig.default.ONE) {
|
|
26
27
|
// OneConsole 的场景
|
|
@@ -28,6 +29,9 @@ function getChannel(site) {
|
|
|
28
29
|
} else if (ALIYUN_ECS_CONSOLE_CONFIG) {
|
|
29
30
|
// ECS 不是 OneConsole 但,是大头,需要兼容一下
|
|
30
31
|
channel = ALIYUN_ECS_CONSOLE_CONFIG.channel;
|
|
32
|
+
} else if ($BUY_CONFIG) {
|
|
33
|
+
// CommonBuy 环境
|
|
34
|
+
channel = $BUY_CONFIG.channelId;
|
|
31
35
|
}
|
|
32
36
|
return channel || getFallbackChannel(site);
|
|
33
37
|
}
|
|
@@ -7,6 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = getEnv;
|
|
8
8
|
var _consoleOneConfig = _interopRequireDefault(require("@alicloud/console-one-config"));
|
|
9
9
|
var _enum = require("../enum");
|
|
10
|
+
/**
|
|
11
|
+
* 是否是 CommonBuy 预发环境
|
|
12
|
+
*/
|
|
13
|
+
function isCommonBuyPre() {
|
|
14
|
+
var _$BUY_CONFIG;
|
|
15
|
+
return !_consoleOneConfig.default.ONE && ['pre', 'validate'].includes(((_$BUY_CONFIG = window.$BUY_CONFIG) === null || _$BUY_CONFIG === void 0 ? void 0 : _$BUY_CONFIG.env) || '');
|
|
16
|
+
}
|
|
17
|
+
|
|
10
18
|
/**
|
|
11
19
|
* 获取当前运行的环境(线上 → 预发 → 日常 → 本地开发)
|
|
12
20
|
*/
|
|
@@ -44,10 +52,11 @@ function getEnv() {
|
|
|
44
52
|
* 预发环境:
|
|
45
53
|
*
|
|
46
54
|
* 1. OneConsole 的输出
|
|
55
|
+
* 2. CommonBuy 的输出
|
|
47
56
|
* 2. hostname 中带 `pre-` 或 `-pre`
|
|
48
57
|
* 3. 非 HTTPS (通常绑 host)的一般认为是预发
|
|
49
58
|
*/
|
|
50
|
-
if (_consoleOneConfig.default.ONE && _consoleOneConfig.default.ENV === 'pre' || /pre-|-pre/i.test(hostname) || protocol === 'http:') {
|
|
59
|
+
if (_consoleOneConfig.default.ONE && _consoleOneConfig.default.ENV === 'pre' || isCommonBuyPre() || /pre-|-pre/i.test(hostname) || protocol === 'http:') {
|
|
51
60
|
return _enum.EEnv.PRE;
|
|
52
61
|
}
|
|
53
62
|
return _enum.EEnv.PROD;
|
|
@@ -18,6 +18,10 @@ function parseEnv() {
|
|
|
18
18
|
hostname = _ref.location.hostname;
|
|
19
19
|
var ENV = (0, _getEnv.default)();
|
|
20
20
|
var SITE = (0, _getSite.default)();
|
|
21
|
+
var ENV_IS_DEV = ENV === _enum.EEnv.DEV;
|
|
22
|
+
var ENV_IS_DAILY = ENV === _enum.EEnv.DAILY;
|
|
23
|
+
var ENV_IS_PRE = ENV === _enum.EEnv.PRE;
|
|
24
|
+
var ENV_IS_PROD = ENV === _enum.EEnv.PROD;
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
27
|
* 是否虚商
|
|
@@ -26,23 +30,26 @@ function parseEnv() {
|
|
|
26
30
|
*/
|
|
27
31
|
var DOMAIN_IS_4SERVICE = /4service/.test(hostname);
|
|
28
32
|
var DOMAIN_IS_TEST = /\.test$/.test(hostname);
|
|
33
|
+
var FECS_FOR_4SERVICE = 'fecs4service';
|
|
34
|
+
var FECS_FOR_CONSOLE = ENV_IS_DEV || ENV_IS_DAILY || ENV_IS_PRE ? 'pre-fecs' : 'fecs';
|
|
29
35
|
/**
|
|
30
36
|
* 是否「标准」控制台
|
|
31
37
|
*
|
|
32
38
|
* 有的控制台(甚至有些内部应用会用 console-base,它们的域名不是 .console.aliyun.com),有些逻辑(比如 CloudShell 是否本地打开)需要调整
|
|
33
39
|
*/
|
|
34
40
|
var DOMAIN_IS_CONSOLE = /\.console\.aliyun\.(?:com|test)$/.test(hostname);
|
|
41
|
+
// fecs 域名必须和当前页面域名一致
|
|
35
42
|
var DOMAIN_IS_ALIBABACLOUD = /\.alibabacloud\.(?:com|test)$/.test(hostname);
|
|
36
43
|
// 不同的域名,保证可以获取到 SameSite 属性为 Lax 的 cookie,比如 login_aliyunid_ticket,避免误判成未登录
|
|
37
|
-
var FECS_HOST = "".concat(DOMAIN_IS_4SERVICE ?
|
|
44
|
+
var FECS_HOST = "".concat(DOMAIN_IS_4SERVICE ? FECS_FOR_4SERVICE : FECS_FOR_CONSOLE, ".console.").concat(DOMAIN_IS_ALIBABACLOUD ? 'alibabacloud' : 'aliyun', ".").concat(DOMAIN_IS_TEST ? 'test' : 'com');
|
|
38
45
|
// 这个不推荐用 protocol-relative,Firefox 调用 CORS 时,有可能 request.header.Origin 是 null 而导致接口失败...
|
|
39
46
|
var FECS_URL_BASE = "https://".concat(FECS_HOST);
|
|
40
47
|
return {
|
|
41
48
|
ENV: ENV,
|
|
42
|
-
ENV_IS_DEV:
|
|
43
|
-
ENV_IS_DAILY:
|
|
44
|
-
ENV_IS_PRE:
|
|
45
|
-
ENV_IS_PROD:
|
|
49
|
+
ENV_IS_DEV: ENV_IS_DEV,
|
|
50
|
+
ENV_IS_DAILY: ENV_IS_DAILY,
|
|
51
|
+
ENV_IS_PRE: ENV_IS_PRE,
|
|
52
|
+
ENV_IS_PROD: ENV_IS_PROD,
|
|
46
53
|
APP_ID: _consoleOneConfig.default.APP_ID,
|
|
47
54
|
DOMAIN_IS_4SERVICE: DOMAIN_IS_4SERVICE,
|
|
48
55
|
DOMAIN_IS_CONSOLE: DOMAIN_IS_CONSOLE,
|
|
@@ -13,7 +13,8 @@ function getFallbackChannel(site) {
|
|
|
13
13
|
}
|
|
14
14
|
export default function getChannel(site) {
|
|
15
15
|
var _ref = window,
|
|
16
|
-
ALIYUN_ECS_CONSOLE_CONFIG = _ref.ALIYUN_ECS_CONSOLE_CONFIG
|
|
16
|
+
ALIYUN_ECS_CONSOLE_CONFIG = _ref.ALIYUN_ECS_CONSOLE_CONFIG,
|
|
17
|
+
$BUY_CONFIG = _ref.$BUY_CONFIG;
|
|
17
18
|
var channel = '';
|
|
18
19
|
if (ONE_CONF.ONE) {
|
|
19
20
|
// OneConsole 的场景
|
|
@@ -21,6 +22,9 @@ export default function getChannel(site) {
|
|
|
21
22
|
} else if (ALIYUN_ECS_CONSOLE_CONFIG) {
|
|
22
23
|
// ECS 不是 OneConsole 但,是大头,需要兼容一下
|
|
23
24
|
channel = ALIYUN_ECS_CONSOLE_CONFIG.channel;
|
|
25
|
+
} else if ($BUY_CONFIG) {
|
|
26
|
+
// CommonBuy 环境
|
|
27
|
+
channel = $BUY_CONFIG.channelId;
|
|
24
28
|
}
|
|
25
29
|
return channel || getFallbackChannel(site);
|
|
26
30
|
}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import ONE_CONF from '@alicloud/console-one-config';
|
|
2
2
|
import { EEnv } from '../enum';
|
|
3
|
+
/**
|
|
4
|
+
* 是否是 CommonBuy 预发环境
|
|
5
|
+
*/
|
|
6
|
+
function isCommonBuyPre() {
|
|
7
|
+
var _$BUY_CONFIG;
|
|
8
|
+
return !ONE_CONF.ONE && ['pre', 'validate'].includes(((_$BUY_CONFIG = window.$BUY_CONFIG) === null || _$BUY_CONFIG === void 0 ? void 0 : _$BUY_CONFIG.env) || '');
|
|
9
|
+
}
|
|
10
|
+
|
|
3
11
|
/**
|
|
4
12
|
* 获取当前运行的环境(线上 → 预发 → 日常 → 本地开发)
|
|
5
13
|
*/
|
|
@@ -37,10 +45,11 @@ export default function getEnv() {
|
|
|
37
45
|
* 预发环境:
|
|
38
46
|
*
|
|
39
47
|
* 1. OneConsole 的输出
|
|
48
|
+
* 2. CommonBuy 的输出
|
|
40
49
|
* 2. hostname 中带 `pre-` 或 `-pre`
|
|
41
50
|
* 3. 非 HTTPS (通常绑 host)的一般认为是预发
|
|
42
51
|
*/
|
|
43
|
-
if (ONE_CONF.ONE && ONE_CONF.ENV === 'pre' || /pre-|-pre/i.test(hostname) || protocol === 'http:') {
|
|
52
|
+
if (ONE_CONF.ONE && ONE_CONF.ENV === 'pre' || isCommonBuyPre() || /pre-|-pre/i.test(hostname) || protocol === 'http:') {
|
|
44
53
|
return EEnv.PRE;
|
|
45
54
|
}
|
|
46
55
|
return EEnv.PROD;
|
|
@@ -12,6 +12,10 @@ export default function parseEnv() {
|
|
|
12
12
|
hostname = _ref.location.hostname;
|
|
13
13
|
var ENV = getEnv();
|
|
14
14
|
var SITE = getSite();
|
|
15
|
+
var ENV_IS_DEV = ENV === EEnv.DEV;
|
|
16
|
+
var ENV_IS_DAILY = ENV === EEnv.DAILY;
|
|
17
|
+
var ENV_IS_PRE = ENV === EEnv.PRE;
|
|
18
|
+
var ENV_IS_PROD = ENV === EEnv.PROD;
|
|
15
19
|
|
|
16
20
|
/**
|
|
17
21
|
* 是否虚商
|
|
@@ -20,23 +24,26 @@ export default function parseEnv() {
|
|
|
20
24
|
*/
|
|
21
25
|
var DOMAIN_IS_4SERVICE = /4service/.test(hostname);
|
|
22
26
|
var DOMAIN_IS_TEST = /\.test$/.test(hostname);
|
|
27
|
+
var FECS_FOR_4SERVICE = 'fecs4service';
|
|
28
|
+
var FECS_FOR_CONSOLE = ENV_IS_DEV || ENV_IS_DAILY || ENV_IS_PRE ? 'pre-fecs' : 'fecs';
|
|
23
29
|
/**
|
|
24
30
|
* 是否「标准」控制台
|
|
25
31
|
*
|
|
26
32
|
* 有的控制台(甚至有些内部应用会用 console-base,它们的域名不是 .console.aliyun.com),有些逻辑(比如 CloudShell 是否本地打开)需要调整
|
|
27
33
|
*/
|
|
28
34
|
var DOMAIN_IS_CONSOLE = /\.console\.aliyun\.(?:com|test)$/.test(hostname);
|
|
35
|
+
// fecs 域名必须和当前页面域名一致
|
|
29
36
|
var DOMAIN_IS_ALIBABACLOUD = /\.alibabacloud\.(?:com|test)$/.test(hostname);
|
|
30
37
|
// 不同的域名,保证可以获取到 SameSite 属性为 Lax 的 cookie,比如 login_aliyunid_ticket,避免误判成未登录
|
|
31
|
-
var FECS_HOST = "".concat(DOMAIN_IS_4SERVICE ?
|
|
38
|
+
var FECS_HOST = "".concat(DOMAIN_IS_4SERVICE ? FECS_FOR_4SERVICE : FECS_FOR_CONSOLE, ".console.").concat(DOMAIN_IS_ALIBABACLOUD ? 'alibabacloud' : 'aliyun', ".").concat(DOMAIN_IS_TEST ? 'test' : 'com');
|
|
32
39
|
// 这个不推荐用 protocol-relative,Firefox 调用 CORS 时,有可能 request.header.Origin 是 null 而导致接口失败...
|
|
33
40
|
var FECS_URL_BASE = "https://".concat(FECS_HOST);
|
|
34
41
|
return {
|
|
35
42
|
ENV: ENV,
|
|
36
|
-
ENV_IS_DEV:
|
|
37
|
-
ENV_IS_DAILY:
|
|
38
|
-
ENV_IS_PRE:
|
|
39
|
-
ENV_IS_PROD:
|
|
43
|
+
ENV_IS_DEV: ENV_IS_DEV,
|
|
44
|
+
ENV_IS_DAILY: ENV_IS_DAILY,
|
|
45
|
+
ENV_IS_PRE: ENV_IS_PRE,
|
|
46
|
+
ENV_IS_PROD: ENV_IS_PROD,
|
|
40
47
|
APP_ID: ONE_CONF.APP_ID,
|
|
41
48
|
DOMAIN_IS_4SERVICE: DOMAIN_IS_4SERVICE,
|
|
42
49
|
DOMAIN_IS_CONSOLE: DOMAIN_IS_CONSOLE,
|
|
@@ -1,8 +1,35 @@
|
|
|
1
1
|
import { EEnv } from '../enum';
|
|
2
2
|
export interface IWin extends Window {
|
|
3
|
+
/**
|
|
4
|
+
* ECS 控制台全局变量
|
|
5
|
+
*/
|
|
3
6
|
ALIYUN_ECS_CONSOLE_CONFIG?: {
|
|
4
7
|
channel: string;
|
|
5
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* CommonBuy 全局配置
|
|
11
|
+
*/
|
|
12
|
+
$BUY_CONFIG?: {
|
|
13
|
+
/**
|
|
14
|
+
* CommonBuy 固定字段
|
|
15
|
+
*/
|
|
16
|
+
channel: 'commonbuy';
|
|
17
|
+
/**
|
|
18
|
+
* 渠道:
|
|
19
|
+
* OFFICIAL - 国际站 | SIN - 国内站
|
|
20
|
+
*/
|
|
21
|
+
channelId: 'OFFICIAL' | 'SIN';
|
|
22
|
+
/**
|
|
23
|
+
* 环境:
|
|
24
|
+
* pre - 预发 | validate - 验证 | prod - 线上
|
|
25
|
+
*/
|
|
26
|
+
env: 'pre' | 'validate' | 'prod';
|
|
27
|
+
/**
|
|
28
|
+
* 不建议使用
|
|
29
|
+
* cn - 国内站 | INTL - 国际站
|
|
30
|
+
*/
|
|
31
|
+
site: 'cn' | 'INTL';
|
|
32
|
+
};
|
|
6
33
|
}
|
|
7
34
|
export interface IConfEnv {
|
|
8
35
|
ENV: EEnv;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alicloud/console-base-conf-parse-env",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "ConsoleBase CONF.ENV parse",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "build/cjs/index.js",
|
|
8
|
-
"module": "build/
|
|
8
|
+
"module": "build/esm/index.js",
|
|
9
9
|
"types": "build/types/index.d.ts",
|
|
10
10
|
"homepage": "https://github.com/aliyun/alibabacloud-console-base/tree/master/packages-conf/console-base-conf-parse-env",
|
|
11
11
|
"author": {
|
|
@@ -19,22 +19,17 @@
|
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
|
-
"keywords": [
|
|
23
|
-
"console-base",
|
|
24
|
-
"conf",
|
|
25
|
-
"parse",
|
|
26
|
-
"env"
|
|
27
|
-
],
|
|
22
|
+
"keywords": [],
|
|
28
23
|
"devDependencies": {
|
|
29
24
|
"@alicloud/console-toolkit-cli": "^1.2.30",
|
|
30
25
|
"@alicloud/console-toolkit-preset-component": "^1.2.61",
|
|
31
26
|
"@alicloud/ts-config": "^1.1.3",
|
|
32
|
-
"@types/react": "^17.0.
|
|
27
|
+
"@types/react": "^17.0.58",
|
|
33
28
|
"react": "^17.0.2",
|
|
34
|
-
"typescript": "^
|
|
29
|
+
"typescript": "^5.0.4"
|
|
35
30
|
},
|
|
36
31
|
"dependencies": {
|
|
37
|
-
"@alicloud/console-one-config": "^1.
|
|
32
|
+
"@alicloud/console-one-config": "^1.5.0",
|
|
38
33
|
"@alicloud/cookie": "^1.5.3"
|
|
39
34
|
},
|
|
40
35
|
"scripts": {
|
|
@@ -43,10 +38,10 @@
|
|
|
43
38
|
"build:esm": "breezr build --engine babel --es-module",
|
|
44
39
|
"build:cjs": "breezr build --engine babel",
|
|
45
40
|
"build:bundle": "breezr build --engine webpack",
|
|
46
|
-
"build:
|
|
47
|
-
"build": "yarn build:esm && yarn build:cjs && yarn build:
|
|
41
|
+
"build:types": "tsc -p tsconfig-declaration.json --outDir build/types --declaration --emitDeclarationOnly",
|
|
42
|
+
"build": "yarn build:esm && yarn build:cjs && yarn build:types",
|
|
48
43
|
"clean": "rm -rf build",
|
|
49
44
|
"prepublishOnly": "yarn clean && yarn build"
|
|
50
45
|
},
|
|
51
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "e3daf0b177915f37e8beae4ecee204d8c62f9507"
|
|
52
47
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2019 Alibaba Cloud
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|