@steedos/service-package-registry 2.2.52-beta.1 → 2.2.52-beta.14
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.
|
@@ -59,7 +59,8 @@ const loadPackages = async ()=>{
|
|
|
59
59
|
paths: [path.join(userDir, 'node_modules')]
|
|
60
60
|
}))
|
|
61
61
|
if(packagePath){
|
|
62
|
-
await loadPackage(packageName);
|
|
62
|
+
const packageInfo = await loadPackage(packageName);
|
|
63
|
+
appendToPackagesConfig(packageInfo.name, {version: packageInfo.version, description: packageInfo.description, local: false});
|
|
63
64
|
}
|
|
64
65
|
} catch (error) {
|
|
65
66
|
try {
|
|
@@ -76,12 +77,10 @@ const loadPackages = async ()=>{
|
|
|
76
77
|
packagePath = path.resolve(process.cwd(), packagePath)
|
|
77
78
|
}
|
|
78
79
|
if(packagePath){
|
|
79
|
-
await loadPackage(packageName, packagePath);
|
|
80
|
+
const packageInfo = await loadPackage(packageName, packagePath);
|
|
81
|
+
appendToPackagesConfig(packageInfo.name, {version: packageInfo.version, description: packageInfo.description, local: true});
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
84
|
}
|
|
86
85
|
}
|
|
87
86
|
}
|
|
@@ -120,7 +120,7 @@ router.post('/api/nodes/enable', core.requireAuthentication, async function (req
|
|
|
120
120
|
router.get('/api/nodes/versions', core.requireAuthentication, async function (req, res) {
|
|
121
121
|
const userSession = req.user;
|
|
122
122
|
const isSpaceAdmin = userSession.is_space_admin;
|
|
123
|
-
console.log(`req.query`, req.query)
|
|
123
|
+
// console.log(`req.query`, req.query)
|
|
124
124
|
const body = req.query;
|
|
125
125
|
const { module } = body || {};
|
|
126
126
|
if(!module){
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-registry",
|
|
3
|
-
"version": "2.2.52-beta.
|
|
3
|
+
"version": "2.2.52-beta.14",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "package.service.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"author": "",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@steedos/service-package-license": "2.2.52-beta.
|
|
13
|
-
"@steedos/service-package-loader": "2.2.52-beta.
|
|
12
|
+
"@steedos/service-package-license": "2.2.52-beta.14",
|
|
13
|
+
"@steedos/service-package-loader": "2.2.52-beta.14",
|
|
14
14
|
"fs-extra": "8.1.0",
|
|
15
15
|
"i18next": "20.3.2",
|
|
16
16
|
"json-stringify-safe": "5.0.1",
|
|
@@ -18,14 +18,15 @@
|
|
|
18
18
|
"lodash": "~4.17.21",
|
|
19
19
|
"lodash.clonedeep": "^4.5.0",
|
|
20
20
|
"moment-timezone": "0.5.33",
|
|
21
|
-
"npm-package-arg": "~
|
|
21
|
+
"npm-package-arg": "~9.1.0",
|
|
22
22
|
"npm-registry-client": "8.6.0",
|
|
23
23
|
"package-json": "^7.0.0",
|
|
24
|
-
"radwag-mass": "~1.0.5"
|
|
24
|
+
"radwag-mass": "~1.0.5",
|
|
25
|
+
"validator": "^13.5.2"
|
|
25
26
|
},
|
|
26
27
|
"private": false,
|
|
27
28
|
"publishConfig": {
|
|
28
29
|
"access": "public"
|
|
29
30
|
},
|
|
30
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "893000f7cdde94c4050995e3f17b84a4af921f74"
|
|
31
32
|
}
|
package/package.service.js
CHANGED
|
@@ -10,13 +10,13 @@ const packageLicense = require('@steedos/service-package-license');
|
|
|
10
10
|
const axios = require('axios');
|
|
11
11
|
const _ = require(`lodash`);
|
|
12
12
|
const path = require(`path`);
|
|
13
|
-
const objectql = require('@steedos/objectql');
|
|
14
13
|
const metadataApi = require('@steedos/metadata-api');
|
|
15
14
|
const util = require('./main/default/manager/util');
|
|
16
15
|
const fetch = require('node-fetch');
|
|
17
16
|
const fs = require('fs');
|
|
18
17
|
const { MoleculerError } = require("moleculer").Errors;
|
|
19
|
-
|
|
18
|
+
const validator = require('validator');
|
|
19
|
+
const npa = require("npm-package-arg");
|
|
20
20
|
const login = require('./main/default/manager/login');
|
|
21
21
|
|
|
22
22
|
const HEADER_AUTH = 'Authorization';
|
|
@@ -75,6 +75,8 @@ module.exports = {
|
|
|
75
75
|
STEEDOS_CLOUD_SPACE_ID: process.env.STEEDOS_CLOUD_SPACE_ID,
|
|
76
76
|
STEEDOS_CLOUD_API_KEY: process.env.STEEDOS_CLOUD_API_KEY,
|
|
77
77
|
STEEDOS_REGISTRY_URL: process.env.STEEDOS_REGISTRY_URL ? process.env.STEEDOS_REGISTRY_URL : 'https://registry.steedos.cn/',
|
|
78
|
+
STEEDOS_CLOUD_SYNC_PACKAGES: validator.toBoolean(process.env.STEEDOS_CLOUD_SYNC_PACKAGES || 'false', true),
|
|
79
|
+
STEEDOS_INITIAL_PACKAGES: process.env.STEEDOS_INITIAL_PACKAGES
|
|
78
80
|
},
|
|
79
81
|
|
|
80
82
|
/**
|
|
@@ -92,13 +94,6 @@ module.exports = {
|
|
|
92
94
|
path: "/getProjectNodes"
|
|
93
95
|
},
|
|
94
96
|
async handler(ctx) {
|
|
95
|
-
// let schema = objectql.getSteedosSchema();
|
|
96
|
-
// let broker = schema.broker;
|
|
97
|
-
// const serviceList = broker.registry.getServiceList({ withActions: false });
|
|
98
|
-
// const services = _.filter(serviceList, (_service)=>{
|
|
99
|
-
// return _service.name == this.name;
|
|
100
|
-
// })
|
|
101
|
-
// return services;
|
|
102
97
|
const data = await ctx.broker.call('metadata.filter', {key: `#package_install_node.*`}, {meta: ctx.meta})
|
|
103
98
|
const nodes = [];
|
|
104
99
|
_.each(data,(item)=>{
|
|
@@ -236,21 +231,29 @@ module.exports = {
|
|
|
236
231
|
} catch (error) {
|
|
237
232
|
console.error(`login steedos registry fail: `, error.message);
|
|
238
233
|
}
|
|
239
|
-
const
|
|
234
|
+
const settings = this.settings;
|
|
235
|
+
const syncCloudPackages = settings.STEEDOS_CLOUD_SYNC_PACKAGES;
|
|
236
|
+
let result = null;
|
|
237
|
+
if(syncCloudPackages){
|
|
238
|
+
result = await this.getCloudSaasPurchasedPackages();
|
|
239
|
+
}
|
|
240
240
|
//同步软件包许可证
|
|
241
241
|
await this.broker.call(`@steedos/service-package-license.syncPackagesLicense`);
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
242
|
+
if(result){
|
|
243
|
+
for (const _package of result.packages) {
|
|
244
|
+
try {
|
|
245
|
+
const { name, version, label, description } = _package
|
|
246
|
+
let enable = true; //安装已购买的软件包时先默认启用
|
|
247
|
+
//TODO 处理 registry_url
|
|
248
|
+
// 安装最新版
|
|
249
|
+
const packageInfo = await this.installPackage(name, null, label, description, enable, ctx.broker);
|
|
250
|
+
installPackages.push(packageInfo)
|
|
251
|
+
} catch (error) {
|
|
252
|
+
if(error.stderr){
|
|
253
|
+
installErrors[_package.name] = error.stderr
|
|
254
|
+
}else{
|
|
255
|
+
installErrors[_package.name] = error.message
|
|
256
|
+
}
|
|
254
257
|
}
|
|
255
258
|
}
|
|
256
259
|
}
|
|
@@ -318,6 +321,11 @@ module.exports = {
|
|
|
318
321
|
throw new MoleculerError(errorInfo, 500, "ERR_SOMETHING");
|
|
319
322
|
}
|
|
320
323
|
}
|
|
324
|
+
},
|
|
325
|
+
initialPackages: {
|
|
326
|
+
async handler(ctx) {
|
|
327
|
+
return await this.initialPackages();
|
|
328
|
+
}
|
|
321
329
|
}
|
|
322
330
|
},
|
|
323
331
|
|
|
@@ -563,6 +571,55 @@ module.exports = {
|
|
|
563
571
|
await login.loginToRegistry(adminPhone, apiKey, `${adminPhone}@steedos.com`, registryUrl, undefined);
|
|
564
572
|
login.setYarnrcScopes(scopes, registryUrl);
|
|
565
573
|
}
|
|
574
|
+
},
|
|
575
|
+
initialPackages: {
|
|
576
|
+
async handler(){
|
|
577
|
+
const settings = this.settings;
|
|
578
|
+
const packages = settings.STEEDOS_INITIAL_PACKAGES;
|
|
579
|
+
if(_.isString(packages)){
|
|
580
|
+
for (const packageName of packages.split(',')) {
|
|
581
|
+
try {
|
|
582
|
+
const parsed = npa(packageName);
|
|
583
|
+
const installProps = {
|
|
584
|
+
url: null,
|
|
585
|
+
name: null,
|
|
586
|
+
version: null
|
|
587
|
+
};
|
|
588
|
+
switch (parsed.type) {
|
|
589
|
+
case "tag":
|
|
590
|
+
installProps.name = parsed.name;
|
|
591
|
+
installProps.version = parsed.rawSpec;
|
|
592
|
+
break;
|
|
593
|
+
case "version":
|
|
594
|
+
installProps.name = parsed.name;
|
|
595
|
+
installProps.version = parsed.rawSpec;
|
|
596
|
+
break;
|
|
597
|
+
case "range":
|
|
598
|
+
installProps.name = parsed.name;
|
|
599
|
+
installProps.version = parsed.rawSpec;
|
|
600
|
+
break;
|
|
601
|
+
case "directory":
|
|
602
|
+
case "remote":
|
|
603
|
+
case "file":
|
|
604
|
+
case "git":
|
|
605
|
+
installProps.url = parsed.rawSpec;
|
|
606
|
+
break;
|
|
607
|
+
case "alias":
|
|
608
|
+
throw new Error(`not support ${parsed.type}`);
|
|
609
|
+
}
|
|
610
|
+
if(installProps.url){
|
|
611
|
+
//module, version, url, auth, enable, registry_url, broker
|
|
612
|
+
await this.installPackageFromUrl(installProps.url, installProps.version, installProps.url, null, true, null, this.broker);
|
|
613
|
+
}else{
|
|
614
|
+
//module, version, label, description, enable, broker
|
|
615
|
+
await this.installPackage(installProps.name, installProps.version, null, null, true, this.broker);
|
|
616
|
+
}
|
|
617
|
+
} catch (error) {
|
|
618
|
+
this.broker.logger.error(`initialPackages: ${packageName}. ${error.message}`);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
}
|
|
566
623
|
}
|
|
567
624
|
},
|
|
568
625
|
|
|
@@ -581,7 +638,7 @@ module.exports = {
|
|
|
581
638
|
await this.loginSteedosRegistry();
|
|
582
639
|
console.info(`login steedos registry success`);
|
|
583
640
|
} catch (error) {
|
|
584
|
-
console.error(`login steedos registry fail: `, error.message);
|
|
641
|
+
// console.error(`login steedos registry fail: `, error.message);
|
|
585
642
|
}
|
|
586
643
|
|
|
587
644
|
await this.broker.call(`@steedos/service-package-license.syncPackagesLicense`);
|