@steedos/service-package-registry 2.2.54 → 2.2.55-beta.3
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.
|
@@ -7,7 +7,8 @@ const objectql = require('@steedos/objectql');
|
|
|
7
7
|
const registry = require('./registry');
|
|
8
8
|
const userDir = path.join(process.cwd(), '.steedos');
|
|
9
9
|
const packagesFilePath = path.join(userDir, 'steedos-packages.yml');
|
|
10
|
-
|
|
10
|
+
const metadataApi = require('@steedos/metadata-api');
|
|
11
|
+
const util = require('./util');
|
|
11
12
|
const loadPackagesConfig = ()=>{
|
|
12
13
|
return yaml.load(fs.readFileSync(packagesFilePath, 'utf8')) || {};
|
|
13
14
|
}
|
|
@@ -111,6 +112,36 @@ const destroyExistThePackageService = async (packageInfo)=>{
|
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
114
|
|
|
115
|
+
const loadDependency = async (dependencyName, dependencyVersion)=>{
|
|
116
|
+
let schema = objectql.getSteedosSchema();
|
|
117
|
+
let broker = schema.broker;
|
|
118
|
+
let packageInfo = null;
|
|
119
|
+
const packageConfig = getPackageConfig(dependencyName);
|
|
120
|
+
if(packageConfig){
|
|
121
|
+
if(packageConfig.enable){
|
|
122
|
+
return ;
|
|
123
|
+
}else{
|
|
124
|
+
await enablePackage(dependencyName)
|
|
125
|
+
}
|
|
126
|
+
}else{
|
|
127
|
+
try {
|
|
128
|
+
const packagePath = path.dirname(require.resolve(`${dependencyName}/package.json`, {
|
|
129
|
+
paths: [path.join(userDir, 'node_modules')]
|
|
130
|
+
}))
|
|
131
|
+
packageInfo = require(path.join(packagePath, 'package.json'));
|
|
132
|
+
} catch (error) {
|
|
133
|
+
// console.log(`loadDependency`, error.message)
|
|
134
|
+
}
|
|
135
|
+
if(packageInfo){
|
|
136
|
+
await enablePackage(dependencyName)
|
|
137
|
+
}else{
|
|
138
|
+
await installPackage(broker, {module: dependencyName, version: dependencyVersion, enable: true})
|
|
139
|
+
}
|
|
140
|
+
// 如果steedos package yml 中没有该依赖,则直接安装
|
|
141
|
+
// await installPackage(broker, {module: dependencyName, version: dependencyVersion, enable: true})
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
114
145
|
const loadPackage = async (packageName, packagePath)=>{
|
|
115
146
|
try {
|
|
116
147
|
if(!packagePath){
|
|
@@ -120,7 +151,14 @@ const loadPackage = async (packageName, packagePath)=>{
|
|
|
120
151
|
}
|
|
121
152
|
const packageInfo = require(path.join(packagePath, 'package.json'));
|
|
122
153
|
await destroyExistThePackageService(packageInfo);
|
|
123
|
-
await steedos.loadPackage(packagePath)
|
|
154
|
+
await steedos.loadPackage(packagePath);
|
|
155
|
+
|
|
156
|
+
if(packageInfo.dependencies){
|
|
157
|
+
for (const dependencyName in packageInfo.dependencies) {
|
|
158
|
+
const dependencyVersion = packageInfo.dependencies[dependencyName];
|
|
159
|
+
await loadDependency(dependencyName, dependencyVersion);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
124
162
|
return Object.assign({packagePath: packagePath}, packageInfo);
|
|
125
163
|
} catch (error) {
|
|
126
164
|
console.error(error)
|
|
@@ -162,13 +200,17 @@ const removePackage = async (packageName)=>{
|
|
|
162
200
|
fs.writeFileSync(packagesFilePath, data);
|
|
163
201
|
}
|
|
164
202
|
|
|
165
|
-
const
|
|
203
|
+
const getPackageConfig = (packageName)=>{
|
|
166
204
|
const packages = loadPackagesConfig();
|
|
167
|
-
|
|
168
|
-
const package = _.find(packages, (info, name)=>{
|
|
205
|
+
return _.find(packages, (info, name)=>{
|
|
169
206
|
return packageName == name
|
|
170
|
-
})
|
|
171
|
-
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const enablePackage = async (packageName)=>{
|
|
211
|
+
let packagePath = null;
|
|
212
|
+
let package = getPackageConfig(packageName);
|
|
213
|
+
if(package && package.local){
|
|
172
214
|
if(path.isAbsolute(package.path)){
|
|
173
215
|
packagePath = package.path
|
|
174
216
|
}else{
|
|
@@ -180,18 +222,85 @@ const enablePackage = async (packageName)=>{
|
|
|
180
222
|
}))
|
|
181
223
|
}
|
|
182
224
|
await steedos.loadPackage(packagePath)
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
225
|
+
|
|
226
|
+
if(package){
|
|
227
|
+
package.enable = true;
|
|
228
|
+
}else{
|
|
229
|
+
const packageJSON = require(path.join(packagePath, 'package.json'));
|
|
230
|
+
package = {
|
|
231
|
+
label: '',
|
|
232
|
+
version: packageJSON.version,
|
|
233
|
+
description: packageJSON.description || '',
|
|
234
|
+
local: false,
|
|
235
|
+
enable: true,
|
|
236
|
+
path: util.getPackageRelativePath(process.cwd(), packagePath)
|
|
188
237
|
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
238
|
+
}
|
|
239
|
+
appendToPackagesConfig(packageName, package);
|
|
240
|
+
let packageInfo = Object.assign({}, package, {name: packageName});
|
|
192
241
|
return packageInfo;
|
|
193
242
|
}
|
|
243
|
+
const installPackage = async (broker, options)=>{
|
|
244
|
+
let {module, version, label, description, enable} = options;
|
|
245
|
+
const packagePath = await registry.installModule(module, version)
|
|
246
|
+
if(enable){
|
|
247
|
+
await loadPackage(module, packagePath);
|
|
248
|
+
}else{
|
|
249
|
+
enable = false;
|
|
250
|
+
}
|
|
251
|
+
const packageConfig = {
|
|
252
|
+
label: label || '',
|
|
253
|
+
version: version,
|
|
254
|
+
description: description || '',
|
|
255
|
+
local: false,
|
|
256
|
+
enable: enable,
|
|
257
|
+
path: util.getPackageRelativePath(process.cwd(), packagePath)
|
|
258
|
+
}
|
|
259
|
+
appendToPackagesConfig(module, packageConfig);
|
|
260
|
+
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
|
|
261
|
+
await broker.call(`@steedos/service-packages.install`, {
|
|
262
|
+
serviceInfo: Object.assign({}, packageConfig, {
|
|
263
|
+
name: module,
|
|
264
|
+
enable: enable,
|
|
265
|
+
nodeID: broker.nodeID,
|
|
266
|
+
instanceID: broker.instanceID,
|
|
267
|
+
metadata: metadata
|
|
268
|
+
})
|
|
269
|
+
})
|
|
270
|
+
return packageConfig;
|
|
271
|
+
}
|
|
194
272
|
|
|
273
|
+
const getPackageMetadata = async (packagePath)=>{
|
|
274
|
+
const packageMetadata = [];
|
|
275
|
+
const result = await metadataApi.loadFileToJson(packagePath, {
|
|
276
|
+
CustomApplication: '*',
|
|
277
|
+
CustomPermissionset: '*',
|
|
278
|
+
CustomProfile: '*',
|
|
279
|
+
CustomObject: '*',
|
|
280
|
+
Layout: '*',
|
|
281
|
+
CustomReport: '*',
|
|
282
|
+
Workflow: '*',
|
|
283
|
+
Flow: '*',
|
|
284
|
+
ApprovalProcess: '*',
|
|
285
|
+
Role: '*',
|
|
286
|
+
FlowRole: '*',
|
|
287
|
+
Query: '*',
|
|
288
|
+
Chart: '*',
|
|
289
|
+
Page: '*',
|
|
290
|
+
Tab: '*',
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
_.each(result, (metadataItems, metadataType)=>{
|
|
294
|
+
_.each(metadataItems, (metadata, apiName)=>{
|
|
295
|
+
packageMetadata.push({
|
|
296
|
+
label: metadata.label || metadata.name,
|
|
297
|
+
type: metadataType,
|
|
298
|
+
api_name: apiName
|
|
299
|
+
})
|
|
300
|
+
})
|
|
301
|
+
})
|
|
302
|
+
return packageMetadata;
|
|
303
|
+
}
|
|
195
304
|
|
|
196
305
|
module.exports = {
|
|
197
306
|
loadPackages,
|
|
@@ -201,5 +310,7 @@ module.exports = {
|
|
|
201
310
|
disablePackage,
|
|
202
311
|
enablePackage,
|
|
203
312
|
removePackage,
|
|
204
|
-
getPackageInfo
|
|
313
|
+
getPackageInfo,
|
|
314
|
+
getPackageMetadata,
|
|
315
|
+
installPackage
|
|
205
316
|
}
|
|
@@ -6,7 +6,7 @@ const objectql = require('@steedos/objectql');
|
|
|
6
6
|
const packageJson = require('./package-json');
|
|
7
7
|
const _ = require('lodash');
|
|
8
8
|
const login = require('./login');
|
|
9
|
-
|
|
9
|
+
const metadataApi = require('@steedos/metadata-api');
|
|
10
10
|
function registryUrl(scope) {
|
|
11
11
|
try {
|
|
12
12
|
const result = login.getYarnrcScopes();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-registry",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.55-beta.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "package.service.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"author": "",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@steedos/auth": "2.2.
|
|
13
|
-
"@steedos/core": "2.2.
|
|
14
|
-
"@steedos/metadata-core": "2.2.
|
|
15
|
-
"@steedos/objectql": "2.2.
|
|
16
|
-
"@steedos/service-package-license": "2.2.
|
|
17
|
-
"@steedos/service-package-loader": "2.2.
|
|
12
|
+
"@steedos/auth": "2.2.55-beta.3",
|
|
13
|
+
"@steedos/core": "2.2.55-beta.3",
|
|
14
|
+
"@steedos/metadata-core": "2.2.55-beta.3",
|
|
15
|
+
"@steedos/objectql": "2.2.55-beta.3",
|
|
16
|
+
"@steedos/service-package-license": "2.2.55-beta.3",
|
|
17
|
+
"@steedos/service-package-loader": "2.2.55-beta.3",
|
|
18
18
|
"fs-extra": "8.1.0",
|
|
19
19
|
"i18next": "20.3.2",
|
|
20
20
|
"json-stringify-safe": "5.0.1",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "cf9ffd7d4f7de88c5b0bbb6c1c269afbeb2268a1"
|
|
36
36
|
}
|
|
@@ -9,7 +9,7 @@ const packageLicense = require('@steedos/service-package-license');
|
|
|
9
9
|
const axios = require('axios');
|
|
10
10
|
const _ = require(`lodash`);
|
|
11
11
|
const path = require(`path`);
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
const util = require('./main/default/manager/util');
|
|
14
14
|
const fetch = require('node-fetch');
|
|
15
15
|
const fs = require('fs');
|
|
@@ -21,38 +21,6 @@ const login = require('./main/default/manager/login');
|
|
|
21
21
|
const HEADER_AUTH = 'Authorization';
|
|
22
22
|
const AUTH_TYPE = 'Bearer';
|
|
23
23
|
|
|
24
|
-
const getPackageMetadata = async (packagePath)=>{
|
|
25
|
-
const packageMetadata = [];
|
|
26
|
-
const result = await metadataApi.loadFileToJson(packagePath, {
|
|
27
|
-
CustomApplication: '*',
|
|
28
|
-
CustomPermissionset: '*',
|
|
29
|
-
CustomProfile: '*',
|
|
30
|
-
CustomObject: '*',
|
|
31
|
-
Layout: '*',
|
|
32
|
-
CustomReport: '*',
|
|
33
|
-
Workflow: '*',
|
|
34
|
-
Flow: '*',
|
|
35
|
-
ApprovalProcess: '*',
|
|
36
|
-
Role: '*',
|
|
37
|
-
FlowRole: '*',
|
|
38
|
-
Query: '*',
|
|
39
|
-
Chart: '*',
|
|
40
|
-
Page: '*',
|
|
41
|
-
Tab: '*',
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
_.each(result, (metadataItems, metadataType)=>{
|
|
45
|
-
_.each(metadataItems, (metadata, apiName)=>{
|
|
46
|
-
packageMetadata.push({
|
|
47
|
-
label: metadata.label || metadata.name,
|
|
48
|
-
type: metadataType,
|
|
49
|
-
api_name: apiName
|
|
50
|
-
})
|
|
51
|
-
})
|
|
52
|
-
})
|
|
53
|
-
return packageMetadata;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
24
|
/**
|
|
57
25
|
* @typedef {import('moleculer').Context} Context Moleculer's Context
|
|
58
26
|
* 软件包服务启动后也需要抛出事件。
|
|
@@ -141,7 +109,7 @@ module.exports = {
|
|
|
141
109
|
packagePath = path.resolve(process.cwd(), packagePath)
|
|
142
110
|
}
|
|
143
111
|
await loader.loadPackage(module, packagePath);
|
|
144
|
-
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
|
|
112
|
+
const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
|
|
145
113
|
await ctx.broker.call(`@steedos/service-packages.install`, {
|
|
146
114
|
serviceInfo: Object.assign({}, Object.assign({}, packageConfig, { name: module }), {
|
|
147
115
|
nodeID: ctx.broker.nodeID,
|
|
@@ -167,7 +135,7 @@ module.exports = {
|
|
|
167
135
|
const { module } = ctx.params
|
|
168
136
|
const packageConfig = await loader.disablePackage(module);
|
|
169
137
|
if(packageConfig.path){
|
|
170
|
-
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
|
|
138
|
+
const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
|
|
171
139
|
await ctx.broker.call(`@steedos/service-packages.install`, {
|
|
172
140
|
serviceInfo: Object.assign({}, packageConfig, {
|
|
173
141
|
nodeID: ctx.broker.nodeID,
|
|
@@ -183,7 +151,7 @@ module.exports = {
|
|
|
183
151
|
async handler(ctx) {
|
|
184
152
|
const { module } = ctx.params
|
|
185
153
|
const packageConfig = await loader.enablePackage(module);
|
|
186
|
-
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
|
|
154
|
+
const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
|
|
187
155
|
await ctx.broker.call(`@steedos/service-packages.install`, {
|
|
188
156
|
serviceInfo: Object.assign({}, packageConfig, {
|
|
189
157
|
nodeID: ctx.broker.nodeID,
|
|
@@ -229,7 +197,7 @@ module.exports = {
|
|
|
229
197
|
await this.loginSteedosRegistry();
|
|
230
198
|
console.info(`login steedos registry success`);
|
|
231
199
|
} catch (error) {
|
|
232
|
-
console.error(`login steedos registry fail: `, error.message);
|
|
200
|
+
// console.error(`login steedos registry fail: `, error.message);
|
|
233
201
|
}
|
|
234
202
|
const settings = this.settings;
|
|
235
203
|
const syncCloudPackages = settings.STEEDOS_CLOUD_SYNC_PACKAGES;
|
|
@@ -295,7 +263,7 @@ module.exports = {
|
|
|
295
263
|
await this.loginSteedosRegistry();
|
|
296
264
|
console.info(`login steedos registry success`);
|
|
297
265
|
} catch (error) {
|
|
298
|
-
console.error(`login steedos registry fail: `, error.message);
|
|
266
|
+
// console.error(`login steedos registry fail: `, error.message);
|
|
299
267
|
}
|
|
300
268
|
let { module, version, url, auth, registry_url } = ctx.params
|
|
301
269
|
const enable = true;
|
|
@@ -342,32 +310,7 @@ module.exports = {
|
|
|
342
310
|
methods: {
|
|
343
311
|
installPackage: {
|
|
344
312
|
async handler(module, version, label, description, enable, broker) {
|
|
345
|
-
|
|
346
|
-
if(enable){
|
|
347
|
-
const packageInfo = await loader.loadPackage(module, packagePath);
|
|
348
|
-
}else{
|
|
349
|
-
enable = false;
|
|
350
|
-
}
|
|
351
|
-
const packageConfig = {
|
|
352
|
-
label: label,
|
|
353
|
-
version: version,
|
|
354
|
-
description: description || '',
|
|
355
|
-
local: false,
|
|
356
|
-
enable: enable,
|
|
357
|
-
path: util.getPackageRelativePath(process.cwd(), packagePath)
|
|
358
|
-
}
|
|
359
|
-
loader.appendToPackagesConfig(module, packageConfig);
|
|
360
|
-
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
|
|
361
|
-
await broker.call(`@steedos/service-packages.install`, {
|
|
362
|
-
serviceInfo: Object.assign({}, packageConfig, {
|
|
363
|
-
name: module,
|
|
364
|
-
enable: enable,
|
|
365
|
-
nodeID: broker.nodeID,
|
|
366
|
-
instanceID: broker.instanceID,
|
|
367
|
-
metadata: metadata
|
|
368
|
-
})
|
|
369
|
-
})
|
|
370
|
-
return packageConfig;
|
|
313
|
+
return await loader.installPackage(broker, {module, version, label, description, enable})
|
|
371
314
|
}
|
|
372
315
|
},
|
|
373
316
|
getCloudSaasPurchasedPackages:{
|
|
@@ -432,7 +375,7 @@ module.exports = {
|
|
|
432
375
|
path: util.getPackageRelativePath(process.cwd(), packagePath)
|
|
433
376
|
}
|
|
434
377
|
const newConfig = loader.appendToPackagesConfig(module, packageConfig);
|
|
435
|
-
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
|
|
378
|
+
const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
|
|
436
379
|
await this.broker.call(`@steedos/service-packages.install`, {
|
|
437
380
|
serviceInfo: Object.assign({}, newConfig, {
|
|
438
381
|
name: module,
|
|
@@ -508,7 +451,7 @@ module.exports = {
|
|
|
508
451
|
path: util.getPackageRelativePath(process.cwd(), packagePath)
|
|
509
452
|
}
|
|
510
453
|
loader.appendToPackagesConfig(packageName, packageConfig);
|
|
511
|
-
const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
|
|
454
|
+
const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
|
|
512
455
|
await broker.call(`@steedos/service-packages.install`, {
|
|
513
456
|
serviceInfo: Object.assign({}, packageConfig, {
|
|
514
457
|
name: packageName,
|
|
@@ -576,7 +519,7 @@ module.exports = {
|
|
|
576
519
|
async handler(){
|
|
577
520
|
const settings = this.settings;
|
|
578
521
|
const packages = settings.STEEDOS_INITIAL_PACKAGES;
|
|
579
|
-
if(_.isString(packages)){
|
|
522
|
+
if(_.isString(packages) && packages){
|
|
580
523
|
for (const packageName of packages.split(',')) {
|
|
581
524
|
try {
|
|
582
525
|
const parsed = npa(packageName);
|
|
@@ -642,22 +585,36 @@ module.exports = {
|
|
|
642
585
|
}
|
|
643
586
|
|
|
644
587
|
await this.broker.call(`@steedos/service-package-license.syncPackagesLicense`);
|
|
645
|
-
|
|
588
|
+
|
|
646
589
|
const PACKAGE_INSTALL_NODE = process.env.PACKAGE_INSTALL_NODE
|
|
647
590
|
if(PACKAGE_INSTALL_NODE){
|
|
648
591
|
await this.broker.call('metadata.add', {key: `#package_install_node.${this.broker.nodeID}`, data: {nodeID: PACKAGE_INSTALL_NODE}}, {meta: {}})
|
|
649
592
|
}
|
|
650
593
|
packages.maintainSystemFiles()
|
|
594
|
+
// 单包路径steedos-app
|
|
651
595
|
try {
|
|
652
596
|
const packagePath = path.join(process.cwd(), 'steedos-app');
|
|
653
597
|
if(fs.existsSync(packagePath)){
|
|
654
598
|
const packageInfo = require(path.join(packagePath, 'package.json'));
|
|
655
|
-
loader.appendToPackagesConfig(`${packageInfo.name}`, {version: packageInfo.version, description: packageInfo.description, local: true, path: util.getPackageRelativePath(process.cwd(), packagePath)});
|
|
599
|
+
loader.appendToPackagesConfig(`${packageInfo.name}`, {version: packageInfo.version, description: packageInfo.description || '', local: true, path: util.getPackageRelativePath(process.cwd(), packagePath)});
|
|
656
600
|
}
|
|
657
601
|
} catch (error) {
|
|
658
602
|
console.log(`started error`, error)
|
|
659
603
|
}
|
|
660
604
|
|
|
605
|
+
// 新版单包项目加载
|
|
606
|
+
// try {
|
|
607
|
+
// if(fs.existsSync(path.join(process.cwd(), 'package.service.js'))){
|
|
608
|
+
// const packagePath = process.cwd();
|
|
609
|
+
// if(fs.existsSync(packagePath)){
|
|
610
|
+
// const packageInfo = require(path.join(packagePath, 'package.json'));
|
|
611
|
+
// loader.appendToPackagesConfig(`${packageInfo.name}`, {version: packageInfo.version, description: packageInfo.description, local: true, path: util.getPackageRelativePath(process.cwd(), packagePath)});
|
|
612
|
+
// }
|
|
613
|
+
// }
|
|
614
|
+
// } catch (error) {
|
|
615
|
+
// console.log(`started error`, error)
|
|
616
|
+
// }
|
|
617
|
+
|
|
661
618
|
await metadata.uncompressPackages(process.cwd());
|
|
662
619
|
const mPackages = metadata.getAllPackages(process.cwd());
|
|
663
620
|
_.each(mPackages, (packagePath)=>{
|
|
@@ -675,7 +632,7 @@ module.exports = {
|
|
|
675
632
|
for (const name in installPackages) {
|
|
676
633
|
if (Object.hasOwnProperty.call(installPackages, name)) {
|
|
677
634
|
const _packageInfo = installPackages[name];
|
|
678
|
-
const metadata = await getPackageMetadata(_packageInfo.path);
|
|
635
|
+
const metadata = await loader.getPackageMetadata(_packageInfo.path);
|
|
679
636
|
await this.broker.call(`@steedos/service-packages.install`, {
|
|
680
637
|
serviceInfo: {
|
|
681
638
|
name: name,
|