cnpmcore 3.73.0 → 3.74.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/dist/app/common/EnvUtil.d.ts +4 -0
- package/dist/app/common/EnvUtil.js +35 -0
- package/dist/app/port/webauth/WebauthController.d.ts +1 -1
- package/dist/app/port/webauth/WebauthController.js +3 -3
- package/dist/config/config.default.js +58 -55
- package/dist/config/config.unittest.js +1 -1
- package/dist/config/database.d.ts +5 -5
- package/dist/config/database.js +18 -17
- package/package.json +1 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type ValueType = 'string' | 'boolean' | 'number';
|
|
2
|
+
export declare function env(key: string, valueType: ValueType, defaultValue: string): string;
|
|
3
|
+
export declare function env(key: string, valueType: ValueType, defaultValue: boolean): boolean;
|
|
4
|
+
export declare function env(key: string, valueType: ValueType, defaultValue: number): number;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.env = void 0;
|
|
4
|
+
function env(key, valueType, defaultValue) {
|
|
5
|
+
const value = process.env[key];
|
|
6
|
+
if (value === undefined) {
|
|
7
|
+
return defaultValue;
|
|
8
|
+
}
|
|
9
|
+
if (valueType === 'string') {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
if (valueType === 'boolean') {
|
|
13
|
+
let booleanValue = false;
|
|
14
|
+
if (value === 'true' || value === '1') {
|
|
15
|
+
booleanValue = true;
|
|
16
|
+
}
|
|
17
|
+
else if (value === 'false' || value === '0') {
|
|
18
|
+
booleanValue = false;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
throw new TypeError(`Invalid boolean value: ${value} on process.env.${key}`);
|
|
22
|
+
}
|
|
23
|
+
return booleanValue;
|
|
24
|
+
}
|
|
25
|
+
if (valueType === 'number') {
|
|
26
|
+
const numberValue = Number(value);
|
|
27
|
+
if (isNaN(numberValue)) {
|
|
28
|
+
throw new TypeError(`Invalid number value: ${value} on process.env.${key}`);
|
|
29
|
+
}
|
|
30
|
+
return numberValue;
|
|
31
|
+
}
|
|
32
|
+
throw new TypeError(`Invalid value type: ${valueType}`);
|
|
33
|
+
}
|
|
34
|
+
exports.env = env;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9jb21tb24vRW52VXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxTQUFnQixHQUFHLENBQUMsR0FBVyxFQUFFLFNBQW9CLEVBQUUsWUFBdUM7SUFDNUYsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDdkIsT0FBTyxZQUFZLENBQUM7S0FDckI7SUFFRCxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7UUFDMUIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtRQUMzQixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUU7WUFDckMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUNyQjthQUFNLElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFO1lBQzdDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDdEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxTQUFTLENBQUMsMEJBQTBCLEtBQUssbUJBQW1CLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLFlBQVksQ0FBQztLQUNyQjtJQUVELElBQUksU0FBUyxLQUFLLFFBQVEsRUFBRTtRQUMxQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyx5QkFBeUIsS0FBSyxtQkFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM3RTtRQUNELE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0lBRUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBL0JELGtCQStCQyJ9
|
|
@@ -5,7 +5,7 @@ import type { PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequest
|
|
|
5
5
|
import { UserService } from '../../core/service/UserService';
|
|
6
6
|
import { MiddlewareController } from '../middleware';
|
|
7
7
|
declare const LoginRequestRule: import("@sinclair/typebox").TObject<{
|
|
8
|
-
hostname: import("@sinclair/typebox").TString
|
|
8
|
+
hostname: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
9
9
|
}>;
|
|
10
10
|
type LoginRequest = Static<typeof LoginRequestRule>;
|
|
11
11
|
type LoginPrepareResult = {
|
|
@@ -30,8 +30,8 @@ const AuthAdapter_1 = require("../../infra/AuthAdapter");
|
|
|
30
30
|
const CryptoUtil_1 = require("../../common/CryptoUtil");
|
|
31
31
|
const UserUtil_1 = require("../../common/UserUtil");
|
|
32
32
|
const LoginRequestRule = typebox_1.Type.Object({
|
|
33
|
-
// cli 所在机器的 hostname
|
|
34
|
-
hostname: typebox_1.Type.String({ minLength: 1, maxLength: 100 }),
|
|
33
|
+
// cli 所在机器的 hostname,最新版本 npm cli 已经不会上报 hostname
|
|
34
|
+
hostname: typebox_1.Type.Optional(typebox_1.Type.String({ minLength: 1, maxLength: 100 })),
|
|
35
35
|
});
|
|
36
36
|
const UserRule = typebox_1.Type.Object({
|
|
37
37
|
name: typebox_1.Type.String({ minLength: 1, maxLength: 100 }),
|
|
@@ -382,4 +382,4 @@ __decorate([
|
|
|
382
382
|
exports.WebauthController = WebauthController = __decorate([
|
|
383
383
|
(0, tegg_1.HTTPController)()
|
|
384
384
|
], WebauthController);
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViYXV0aENvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC93ZWJhdXRoL1dlYmF1dGhDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQVVxQjtBQUtyQiwrQ0FBaUQ7QUFDakQsMkNBQTJEO0FBQzNELG1DQUFvQztBQUNwQywwREFBa0M7QUFDbEMsbURBT2dDO0FBRWhDLGlEQUF3RTtBQUN4RSxvRUFBaUU7QUFDakUsZ0VBQTZEO0FBQzdELDhDQUFxRDtBQUNyRCx5REFBc0Q7QUFDdEQsd0RBQWlFO0FBQ2pFLG9EQUFrRTtBQUVsRSxNQUFNLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMscUJBQXFCO0lBQ3JCLFFBQVEsRUFBRSxjQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUM7Q0FDeEQsQ0FBQyxDQUFDO0FBb0JILE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNuRCxRQUFRLEVBQUUsY0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO0NBQ3hELENBQUMsQ0FBQztBQUVILE1BQU0sV0FBVyxHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUM7SUFDOUIsT0FBTztJQUNQLFNBQVMsRUFBRSxjQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7Q0FDekQsQ0FBQyxDQUFDO0FBR0ksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxp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
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViYXV0aENvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC93ZWJhdXRoL1dlYmF1dGhDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQVVxQjtBQUtyQiwrQ0FBaUQ7QUFDakQsMkNBQTJEO0FBQzNELG1DQUFvQztBQUNwQywwREFBa0M7QUFDbEMsbURBT2dDO0FBRWhDLGlEQUF3RTtBQUN4RSxvRUFBaUU7QUFDakUsZ0VBQTZEO0FBQzdELDhDQUFxRDtBQUNyRCx5REFBc0Q7QUFDdEQsd0RBQWlFO0FBQ2pFLG9EQUFrRTtBQUVsRSxNQUFNLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsa0RBQWtEO0lBQ2xELFFBQVEsRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0NBQ3ZFLENBQUMsQ0FBQztBQW9CSCxNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNCLElBQUksRUFBRSxjQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDbkQsUUFBUSxFQUFFLGNBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztDQUN4RCxDQUFDLENBQUM7QUFFSCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsTUFBTSxDQUFDO0lBQzlCLE9BQU87SUFDUCxTQUFTLEVBQUUsY0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO0NBQ3pELENBQUMsQ0FBQztBQUdJ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
|
|
@@ -10,13 +10,14 @@ const node_path_1 = require("node:path");
|
|
|
10
10
|
const oss_cnpm_1 = __importDefault(require("oss-cnpm"));
|
|
11
11
|
const typebox_1 = require("../app/port/typebox");
|
|
12
12
|
const constants_1 = require("../app/common/constants");
|
|
13
|
+
const EnvUtil_1 = require("../app/common/EnvUtil");
|
|
13
14
|
const database_1 = require("./database");
|
|
14
15
|
exports.cnpmcoreConfig = {
|
|
15
16
|
name: 'cnpm',
|
|
16
17
|
hookEnable: false,
|
|
17
18
|
hooksLimit: 20,
|
|
18
|
-
sourceRegistry: 'https://registry.npmjs.org',
|
|
19
|
-
sourceRegistryIsCNpm: false,
|
|
19
|
+
sourceRegistry: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_SOURCE_REGISTRY', 'string', 'https://registry.npmjs.org'),
|
|
20
|
+
sourceRegistryIsCNpm: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_SOURCE_REGISTRY_IS_CNPM', 'boolean', false),
|
|
20
21
|
syncUpstreamFirst: false,
|
|
21
22
|
sourceRegistrySyncTimeout: 180000,
|
|
22
23
|
taskQueueHighWaterSize: 100,
|
|
@@ -36,7 +37,7 @@ exports.cnpmcoreConfig = {
|
|
|
36
37
|
checkChangesStreamInterval: 500,
|
|
37
38
|
changesStreamRegistry: 'https://replicate.npmjs.com',
|
|
38
39
|
changesStreamRegistryMode: constants_1.ChangesStreamMode.streaming,
|
|
39
|
-
registry:
|
|
40
|
+
registry: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_REGISTRY', 'string', 'http://localhost:7001'),
|
|
40
41
|
alwaysAuth: false,
|
|
41
42
|
allowScopes: [
|
|
42
43
|
'@cnpm',
|
|
@@ -48,7 +49,7 @@ exports.cnpmcoreConfig = {
|
|
|
48
49
|
admins: {
|
|
49
50
|
cnpmcore_admin: 'admin@cnpmjs.org',
|
|
50
51
|
},
|
|
51
|
-
enableWebAuthn:
|
|
52
|
+
enableWebAuthn: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_ENABLE_WEB_AUTHN', 'boolean', false),
|
|
52
53
|
enableCDN: false,
|
|
53
54
|
cdnCacheControlHeader: 'public, max-age=300',
|
|
54
55
|
cdnVaryHeader: 'Accept, Accept-Encoding',
|
|
@@ -60,7 +61,7 @@ exports.cnpmcoreConfig = {
|
|
|
60
61
|
enableSyncUnpkgFiles: true,
|
|
61
62
|
enableSyncUnpkgFilesWhiteList: false,
|
|
62
63
|
strictSyncSpecivicVersion: false,
|
|
63
|
-
enableElasticsearch:
|
|
64
|
+
enableElasticsearch: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_ENABLE_ES', 'boolean', false),
|
|
64
65
|
elasticsearchIndex: 'cnpmcore_packages',
|
|
65
66
|
strictValidateTarballPkg: false,
|
|
66
67
|
strictValidatePackageDeps: false,
|
|
@@ -70,13 +71,13 @@ exports.cnpmcoreConfig = {
|
|
|
70
71
|
};
|
|
71
72
|
exports.default = (appInfo) => {
|
|
72
73
|
const config = {};
|
|
73
|
-
config.keys =
|
|
74
|
+
config.keys = (0, EnvUtil_1.env)('CNPMCORE_EGG_KEYS', 'string', (0, node_crypto_1.randomUUID)());
|
|
74
75
|
config.cnpmcore = exports.cnpmcoreConfig;
|
|
75
76
|
// override config from framework / plugin
|
|
76
|
-
config.dataDir =
|
|
77
|
+
config.dataDir = (0, EnvUtil_1.env)('CNPMCORE_DATA_DIR', 'string', (0, node_path_1.join)(appInfo.root, '.cnpmcore'));
|
|
77
78
|
config.orm = {
|
|
78
79
|
...database_1.database,
|
|
79
|
-
database: database_1.database.name
|
|
80
|
+
database: database_1.database.name || 'cnpmcore',
|
|
80
81
|
charset: 'utf8mb4',
|
|
81
82
|
logger: {
|
|
82
83
|
// https://github.com/cyjake/leoric/blob/master/docs/zh/logging.md#logqueryerror
|
|
@@ -89,10 +90,10 @@ exports.default = (appInfo) => {
|
|
|
89
90
|
};
|
|
90
91
|
config.redis = {
|
|
91
92
|
client: {
|
|
92
|
-
port:
|
|
93
|
-
host:
|
|
94
|
-
password:
|
|
95
|
-
db:
|
|
93
|
+
port: (0, EnvUtil_1.env)('CNPMCORE_REDIS_PORT', 'number', 6379),
|
|
94
|
+
host: (0, EnvUtil_1.env)('CNPMCORE_REDIS_HOST', 'string', '127.0.0.1'),
|
|
95
|
+
password: (0, EnvUtil_1.env)('CNPMCORE_REDIS_PASSWORD', 'string', ''),
|
|
96
|
+
db: (0, EnvUtil_1.env)('CNPMCORE_REDIS_DB', 'number', 0),
|
|
96
97
|
},
|
|
97
98
|
};
|
|
98
99
|
config.security = {
|
|
@@ -111,59 +112,61 @@ exports.default = (appInfo) => {
|
|
|
111
112
|
};
|
|
112
113
|
config.nfs = {
|
|
113
114
|
client: null,
|
|
114
|
-
dir:
|
|
115
|
+
dir: (0, EnvUtil_1.env)('CNPMCORE_NFS_DIR', 'string', (0, node_path_1.join)(config.dataDir, 'nfs')),
|
|
115
116
|
};
|
|
116
117
|
/* c8 ignore next 17 */
|
|
117
118
|
// enable oss nfs store by env values
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
bucket: process.env.CNPMCORE_NFS_OSS_BUCKET,
|
|
127
|
-
accessKeyId: process.env.CNPMCORE_NFS_OSS_ID,
|
|
128
|
-
accessKeySecret: process.env.CNPMCORE_NFS_OSS_SECRET,
|
|
119
|
+
const nfsType = (0, EnvUtil_1.env)('CNPMCORE_NFS_TYPE', 'string', '');
|
|
120
|
+
if (nfsType === 'oss') {
|
|
121
|
+
const ossConfig = {
|
|
122
|
+
cdnBaseUrl: (0, EnvUtil_1.env)('CNPMCORE_NFS_OSS_CDN', 'string', ''),
|
|
123
|
+
endpoint: (0, EnvUtil_1.env)('CNPMCORE_NFS_OSS_ENDPOINT', 'string', ''),
|
|
124
|
+
bucket: (0, EnvUtil_1.env)('CNPMCORE_NFS_OSS_BUCKET', 'string', ''),
|
|
125
|
+
accessKeyId: (0, EnvUtil_1.env)('CNPMCORE_NFS_OSS_ID', 'string', ''),
|
|
126
|
+
accessKeySecret: (0, EnvUtil_1.env)('CNPMCORE_NFS_OSS_SECRET', 'string', ''),
|
|
129
127
|
defaultHeaders: {
|
|
130
128
|
'Cache-Control': 'max-age=0, s-maxage=60',
|
|
131
129
|
},
|
|
132
|
-
}
|
|
130
|
+
};
|
|
131
|
+
(0, node_assert_1.strict)(ossConfig.cdnBaseUrl, 'require env CNPMCORE_NFS_OSS_BUCKET');
|
|
132
|
+
(0, node_assert_1.strict)(ossConfig.endpoint, 'require env CNPMCORE_NFS_OSS_ENDPOINT');
|
|
133
|
+
(0, node_assert_1.strict)(ossConfig.accessKeyId, 'require env CNPMCORE_NFS_OSS_ID');
|
|
134
|
+
(0, node_assert_1.strict)(ossConfig.accessKeySecret, 'require env CNPMCORE_NFS_OSS_SECRET');
|
|
135
|
+
config.nfs.client = new oss_cnpm_1.default(ossConfig);
|
|
133
136
|
}
|
|
134
|
-
else if (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
(0, node_assert_1.strict)(process.env.CNPMCORE_NFS_S3_CLIENT_BUCKET, 'require env CNPMCORE_NFS_S3_CLIENT_BUCKET');
|
|
139
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
140
|
-
const S3Client = require('s3-cnpmcore');
|
|
141
|
-
config.nfs.client = new S3Client({
|
|
142
|
-
region: process.env.CNPMCORE_NFS_S3_CLIENT_REGION || 'default',
|
|
143
|
-
endpoint: process.env.CNPMCORE_NFS_S3_CLIENT_ENDPOINT,
|
|
137
|
+
else if (nfsType === 's3') {
|
|
138
|
+
const s3Config = {
|
|
139
|
+
region: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_REGION', 'string', 'default'),
|
|
140
|
+
endpoint: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_ENDPOINT', 'string', ''),
|
|
144
141
|
credentials: {
|
|
145
|
-
accessKeyId:
|
|
146
|
-
secretAccessKey:
|
|
142
|
+
accessKeyId: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_ID', 'string', ''),
|
|
143
|
+
secretAccessKey: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_SECRET', 'string', ''),
|
|
147
144
|
},
|
|
148
|
-
bucket:
|
|
149
|
-
forcePathStyle:
|
|
150
|
-
disableURL:
|
|
151
|
-
}
|
|
145
|
+
bucket: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_BUCKET', 'string', ''),
|
|
146
|
+
forcePathStyle: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_FORCE_PATH_STYLE', 'boolean', false),
|
|
147
|
+
disableURL: (0, EnvUtil_1.env)('CNPMCORE_NFS_S3_CLIENT_DISABLE_URL', 'boolean', false),
|
|
148
|
+
};
|
|
149
|
+
(0, node_assert_1.strict)(s3Config.endpoint, 'require env CNPMCORE_NFS_S3_CLIENT_ENDPOINT');
|
|
150
|
+
(0, node_assert_1.strict)(s3Config.credentials.accessKeyId, 'require env CNPMCORE_NFS_S3_CLIENT_ID');
|
|
151
|
+
(0, node_assert_1.strict)(s3Config.credentials.secretAccessKey, 'require env CNPMCORE_NFS_S3_CLIENT_SECRET');
|
|
152
|
+
(0, node_assert_1.strict)(s3Config.bucket, 'require env CNPMCORE_NFS_S3_CLIENT_BUCKET');
|
|
153
|
+
// TODO(@fengmk2): should change to use import to support esm
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
155
|
+
const S3Client = require('s3-cnpmcore');
|
|
156
|
+
config.nfs.client = new S3Client(s3Config);
|
|
152
157
|
}
|
|
153
158
|
config.logger = {
|
|
154
159
|
enablePerformanceTimer: true,
|
|
155
160
|
enableFastContextLogger: true,
|
|
156
|
-
appLogName:
|
|
157
|
-
coreLogName:
|
|
158
|
-
agentLogName:
|
|
159
|
-
errorLogName:
|
|
160
|
-
outputJSON:
|
|
161
|
+
appLogName: (0, EnvUtil_1.env)('CNPMCORE_APP_LOG_NAME', 'string', `${appInfo.name}-web.log`),
|
|
162
|
+
coreLogName: (0, EnvUtil_1.env)('CNPMCORE_CORE_LOG_NAME', 'string', 'egg-web.log'),
|
|
163
|
+
agentLogName: (0, EnvUtil_1.env)('CNPMCORE_AGENT_LOG_NAME', 'string', 'egg-agent.log'),
|
|
164
|
+
errorLogName: (0, EnvUtil_1.env)('CNPMCORE_ERROR_LOG_NAME', 'string', 'common-error.log'),
|
|
165
|
+
outputJSON: (0, EnvUtil_1.env)('CNPMCORE_LOG_JSON_OUTPUT', 'boolean', false),
|
|
161
166
|
};
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (process.env.CNPMCORE_LOG_JSON_OUTPUT) {
|
|
166
|
-
config.logger.outputJSON = Boolean(process.env.CNPMCORE_LOG_JSON_OUTPUT);
|
|
167
|
+
const logDir = (0, EnvUtil_1.env)('CNPMCORE_LOG_DIR', 'string', '');
|
|
168
|
+
if (logDir) {
|
|
169
|
+
config.logger.dir = logDir;
|
|
167
170
|
}
|
|
168
171
|
config.logrotator = {
|
|
169
172
|
// only keep 1 days log files
|
|
@@ -196,14 +199,14 @@ exports.default = (appInfo) => {
|
|
|
196
199
|
if (config.cnpmcore.enableElasticsearch) {
|
|
197
200
|
config.elasticsearch = {
|
|
198
201
|
client: {
|
|
199
|
-
node:
|
|
202
|
+
node: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_ES_CLIENT_NODE', 'string', ''),
|
|
200
203
|
auth: {
|
|
201
|
-
username:
|
|
202
|
-
password:
|
|
204
|
+
username: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_ES_CLIENT_AUTH_USERNAME', 'string', ''),
|
|
205
|
+
password: (0, EnvUtil_1.env)('CNPMCORE_CONFIG_ES_CLIENT_AUTH_PASSWORD', 'string', ''),
|
|
203
206
|
},
|
|
204
207
|
},
|
|
205
208
|
};
|
|
206
209
|
}
|
|
207
210
|
return config;
|
|
208
211
|
};
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb25maWcvY29uZmlnLmRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQStDO0FBQy9DLDZDQUF5QztBQUN6Qyx5Q0FBaUM7QUFFakMsd0RBQWlDO0FBQ2pDLGlEQUErQztBQUMvQyx1REFBNEc7QUFDNUcsbURBQTRDO0FBRTVDLHlDQUFzQztBQUV6QixRQUFBLGNBQWMsR0FBbUI7SUFDNUMsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLEVBQUUsS0FBSztJQUNqQixVQUFVLEVBQUUsRUFBRTtJQUNkLGNBQWMsRUFBRSxJQUFBLGFBQUcsRUFBQyxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsNEJBQTRCLENBQUM7SUFDOUYsb0JBQW9CLEVBQUUsSUFBQSxhQUFHLEVBQUMseUNBQXlDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztJQUN0RixpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLHlCQUF5QixFQUFFLE1BQU07SUFDakMsc0JBQXNCLEVBQUUsR0FBRztJQUMzQixRQUFRLEVBQUUsb0JBQVEsQ0FBQyxJQUFJO0lBQ3ZCLGNBQWMsRUFBRSwwQkFBYyxDQUFDLE1BQU07SUFDckMsbUNBQW1DLEVBQUUsRUFBRTtJQUN2QyxtQ0FBbUMsRUFBRSxFQUFFO0lBQ3ZDLHlDQUF5QyxFQUFFLEVBQUU7SUFDN0Msb0JBQW9CLEVBQUUsRUFBRTtJQUN4QiwwQkFBMEIsRUFBRSxJQUFJO0lBQ2hDLGdCQUFnQixFQUFFLEtBQUs7SUFDdkIsdUJBQXVCLEVBQUUsRUFBRTtJQUMzQixzQkFBc0IsRUFBRSxLQUFLO0lBQzdCLDhCQUE4QixFQUFFLEVBQUU7SUFDbEMsdUJBQXVCLEVBQUUsRUFBRTtJQUMzQixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLDBCQUEwQixFQUFFLEdBQUc7SUFDL0IscUJBQXFCLEVBQUUsNkJBQTZCO0lBQ3BELHlCQUF5QixFQUFFLDZC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
|
|
@@ -12,7 +12,7 @@ exports.default = (appInfo) => {
|
|
|
12
12
|
const config = {};
|
|
13
13
|
config.dataDir = (0, path_1.join)(appInfo.root, '.cnpmcore_unittest');
|
|
14
14
|
config.orm = {
|
|
15
|
-
database: database_1.database.name
|
|
15
|
+
database: database_1.database.name || 'cnpmcore_unittest',
|
|
16
16
|
};
|
|
17
17
|
config.nfs = {
|
|
18
18
|
dir: (0, path_1.join)(config.dataDir, 'nfs'),
|
|
@@ -7,9 +7,9 @@ export declare const database: {
|
|
|
7
7
|
type: string;
|
|
8
8
|
dialect: string;
|
|
9
9
|
client: string;
|
|
10
|
-
name: string
|
|
11
|
-
host: string
|
|
12
|
-
port:
|
|
13
|
-
user: string
|
|
14
|
-
password: string
|
|
10
|
+
name: string;
|
|
11
|
+
host: string;
|
|
12
|
+
port: number;
|
|
13
|
+
user: string;
|
|
14
|
+
password: string;
|
|
15
15
|
};
|
package/dist/config/database.js
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.database = exports.DATABASE_TYPE = void 0;
|
|
4
|
+
const EnvUtil_1 = require("../app/common/EnvUtil");
|
|
4
5
|
var DATABASE_TYPE;
|
|
5
6
|
(function (DATABASE_TYPE) {
|
|
6
7
|
DATABASE_TYPE["MySQL"] = "MySQL";
|
|
7
8
|
DATABASE_TYPE["PostgreSQL"] = "PostgreSQL";
|
|
8
9
|
DATABASE_TYPE["SQLite"] = "SQLite";
|
|
9
10
|
})(DATABASE_TYPE || (exports.DATABASE_TYPE = DATABASE_TYPE = {}));
|
|
10
|
-
const dbType =
|
|
11
|
-
let dbName =
|
|
12
|
-
let dbHost =
|
|
13
|
-
let dbPort =
|
|
14
|
-
let dbUser =
|
|
15
|
-
let dbPassword =
|
|
11
|
+
const dbType = (0, EnvUtil_1.env)('CNPMCORE_DATABASE_TYPE', 'string', DATABASE_TYPE.MySQL);
|
|
12
|
+
let dbName = (0, EnvUtil_1.env)('CNPMCORE_DATABASE_NAME', 'string', '');
|
|
13
|
+
let dbHost = (0, EnvUtil_1.env)('CNPMCORE_DATABASE_HOST', 'string', '');
|
|
14
|
+
let dbPort = (0, EnvUtil_1.env)('CNPMCORE_DATABASE_PORT', 'number', 0);
|
|
15
|
+
let dbUser = (0, EnvUtil_1.env)('CNPMCORE_DATABASE_USER', 'string', '');
|
|
16
|
+
let dbPassword = (0, EnvUtil_1.env)('CNPMCORE_DATABASE_PASSWORD', 'string', '');
|
|
16
17
|
let dialect = 'mysql';
|
|
17
18
|
let dbClient = 'mysql2';
|
|
18
19
|
if (dbType === DATABASE_TYPE.MySQL) {
|
|
19
20
|
// Compatible mysql configurations
|
|
20
|
-
dbName = dbName
|
|
21
|
-
dbHost = dbHost
|
|
22
|
-
dbPort = dbPort
|
|
23
|
-
dbUser = dbUser
|
|
24
|
-
dbPassword = dbPassword
|
|
21
|
+
dbName = dbName || (0, EnvUtil_1.env)('CNPMCORE_MYSQL_DATABASE', 'string', '') || (0, EnvUtil_1.env)('MYSQL_DATABASE', 'string', '') || '';
|
|
22
|
+
dbHost = dbHost || (0, EnvUtil_1.env)('CNPMCORE_MYSQL_HOST', 'string', '') || (0, EnvUtil_1.env)('MYSQL_HOST', 'string', '') || '127.0.0.1';
|
|
23
|
+
dbPort = dbPort || (0, EnvUtil_1.env)('CNPMCORE_MYSQL_PORT', 'number', 0) || (0, EnvUtil_1.env)('MYSQL_PORT', 'number', 0) || 3306;
|
|
24
|
+
dbUser = dbUser || (0, EnvUtil_1.env)('CNPMCORE_MYSQL_USER', 'string', '') || (0, EnvUtil_1.env)('MYSQL_USER', 'string', '') || 'root';
|
|
25
|
+
dbPassword = dbPassword || (0, EnvUtil_1.env)('CNPMCORE_MYSQL_PASSWORD', 'string', '') || (0, EnvUtil_1.env)('MYSQL_PASSWORD', 'string', '');
|
|
25
26
|
}
|
|
26
27
|
else if (dbType === DATABASE_TYPE.PostgreSQL) {
|
|
27
28
|
dbClient = 'pg';
|
|
28
29
|
dialect = 'postgres';
|
|
29
|
-
dbHost = dbHost
|
|
30
|
-
dbPort = dbPort
|
|
31
|
-
dbUser = dbUser
|
|
32
|
-
dbPassword = dbPassword
|
|
30
|
+
dbHost = dbHost || (0, EnvUtil_1.env)('CNPMCORE_POSTGRES_HOST', 'string', '') || (0, EnvUtil_1.env)('POSTGRES_HOST', 'string', '') || '127.0.0.1';
|
|
31
|
+
dbPort = dbPort || (0, EnvUtil_1.env)('CNPMCORE_POSTGRES_PORT', 'number', 0) || (0, EnvUtil_1.env)('POSTGRES_PORT', 'number', 0) || 5432;
|
|
32
|
+
dbUser = dbUser || (0, EnvUtil_1.env)('CNPMCORE_POSTGRES_USER', 'string', '') || (0, EnvUtil_1.env)('POSTGRES_USER', 'string', '') || 'postgres';
|
|
33
|
+
dbPassword = dbPassword || (0, EnvUtil_1.env)('CNPMCORE_POSTGRES_PASSWORD', 'string', '') || (0, EnvUtil_1.env)('POSTGRES_PASSWORD', 'string', '') || 'postgres';
|
|
33
34
|
}
|
|
34
35
|
else if (dbType === DATABASE_TYPE.SQLite) {
|
|
35
|
-
// TODO
|
|
36
|
+
// TODO: Implement SQLite
|
|
36
37
|
dbClient = 'sqlite';
|
|
37
38
|
dialect = 'sqlite';
|
|
38
39
|
}
|
|
@@ -46,4 +47,4 @@ exports.database = {
|
|
|
46
47
|
user: dbUser,
|
|
47
48
|
password: dbPassword,
|
|
48
49
|
};
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb25maWcvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTRDO0FBRTVDLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2YsMENBQXlCLENBQUE7SUFDekIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsNkJBQWIsYUFBYSxRQUl4QjtBQUVELE1BQU0sTUFBTSxHQUFHLElBQUEsYUFBRyxFQUFDLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUUsSUFBSSxNQUFNLEdBQUcsSUFBQSxhQUFHLEVBQUMsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELElBQUksTUFBTSxHQUFHLElBQUEsYUFBRyxFQUFDLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RCxJQUFJLE1BQU0sR0FBRyxJQUFBLGFBQUcsRUFBQyx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEQsSUFBSSxNQUFNLEdBQUcsSUFBQSxhQUFHLEVBQUMsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELElBQUksVUFBVSxHQUFHLElBQUEsYUFBRyxFQUFDLDRCQUE0QixFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqRSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDdEIsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3hCLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxLQUFLLEVBQUU7SUFDbEMsa0NBQWtDO0lBQ2xDLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBQSxhQUFHLEVBQUMseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUEsYUFBRyxF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
|