@steedos/service-package-registry 3.0.0-beta.108 → 3.0.0-beta.112
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.
|
@@ -181,7 +181,7 @@ const destroyExistThePackageService = async (packageInfo)=>{
|
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
183
|
if (svc) {
|
|
184
|
-
console.info(`Destroy previous '${
|
|
184
|
+
console.info(`Destroy previous '${packageInfo.name}' service...`);
|
|
185
185
|
await broker.destroyService(svc);
|
|
186
186
|
}
|
|
187
187
|
}
|
|
@@ -269,33 +269,169 @@ async function installModule(module, version, url, registry_url) {
|
|
|
269
269
|
return activePromise;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* 对比两个 package.json 对象的依赖变化,返回新增和修改的依赖
|
|
275
|
+
* @param {Object} oldPkg 修改前的 package.json 对象
|
|
276
|
+
* @param {Object} newPkg 修改后的 package.json 对象
|
|
277
|
+
* @returns {Array} 包含变化信息的数组,每个元素包含名称、版本号、路径和变化类型
|
|
278
|
+
*/
|
|
279
|
+
function comparePackageJsonChanges(oldPkg, newPkg) {
|
|
280
|
+
const changes = [];
|
|
281
|
+
|
|
282
|
+
// 检查 dependencies 变化
|
|
283
|
+
const oldDeps = oldPkg?.dependencies || {};
|
|
284
|
+
const newDeps = newPkg?.dependencies || {};
|
|
285
|
+
|
|
286
|
+
// 检查 devDependencies 变化
|
|
287
|
+
const oldDevDeps = oldPkg?.devDependencies || {};
|
|
288
|
+
const newDevDeps = newPkg?.devDependencies || {};
|
|
289
|
+
|
|
290
|
+
// 对比 dependencies
|
|
291
|
+
for (const [pkg, newVersion] of Object.entries(newDeps)) {
|
|
292
|
+
const oldVersion = oldDeps[pkg];
|
|
293
|
+
|
|
294
|
+
if (oldVersion === undefined) {
|
|
295
|
+
// 新增的依赖
|
|
296
|
+
changes.push({
|
|
297
|
+
name: pkg,
|
|
298
|
+
version: newVersion,
|
|
299
|
+
path: 'dependencies',
|
|
300
|
+
changeType: 'added'
|
|
301
|
+
});
|
|
302
|
+
} else if (oldVersion !== newVersion) {
|
|
303
|
+
// 版本变化的依赖
|
|
304
|
+
changes.push({
|
|
305
|
+
name: pkg,
|
|
306
|
+
version: newVersion,
|
|
307
|
+
oldVersion: oldVersion,
|
|
308
|
+
path: 'dependencies',
|
|
309
|
+
changeType: 'changed'
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// 对比 devDependencies
|
|
315
|
+
for (const [pkg, newVersion] of Object.entries(newDevDeps)) {
|
|
316
|
+
const oldVersion = oldDevDeps[pkg];
|
|
317
|
+
|
|
318
|
+
if (oldVersion === undefined) {
|
|
319
|
+
// 新增的依赖
|
|
320
|
+
changes.push({
|
|
321
|
+
name: pkg,
|
|
322
|
+
version: newVersion,
|
|
323
|
+
path: 'devDependencies',
|
|
324
|
+
changeType: 'added'
|
|
325
|
+
});
|
|
326
|
+
} else if (oldVersion !== newVersion) {
|
|
327
|
+
// 版本变化的依赖
|
|
328
|
+
changes.push({
|
|
329
|
+
name: pkg,
|
|
330
|
+
version: newVersion,
|
|
331
|
+
oldVersion: oldVersion,
|
|
332
|
+
path: 'devDependencies',
|
|
333
|
+
changeType: 'changed'
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
return changes;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
function loadJson(filePath){
|
|
342
|
+
const packageData = fs.readFileSync(filePath, 'utf8');
|
|
343
|
+
return JSON.parse(packageData);
|
|
344
|
+
}
|
|
345
|
+
|
|
272
346
|
async function yarnAddPackage(yarnPackage){
|
|
273
347
|
var installDir = settings.userDir || ".";
|
|
348
|
+
|
|
349
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, no-undef
|
|
350
|
+
const oldPackageInfo = loadJson(path.join(installDir, 'package.json'));
|
|
351
|
+
|
|
274
352
|
var yarnArgs = ['add', '-E', ...yarnPackage.split(' '), '--json'];
|
|
275
353
|
const data = await exec.run(yarnCommand, yarnArgs, {cwd: installDir}, true);
|
|
354
|
+
|
|
355
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, no-undef
|
|
356
|
+
const newPackageInfo = loadJson(path.join(installDir, 'package.json'));
|
|
357
|
+
|
|
358
|
+
const changes = comparePackageJsonChanges(oldPackageInfo, newPackageInfo);
|
|
276
359
|
const formatData = JSON.parse(_.last(_.compact(data.stdout.split('\n'))))
|
|
360
|
+
// console.log(`yarnAddPackage:`, yarnPackage, formatData, data)
|
|
277
361
|
// 解析 yarn add 返回的结果
|
|
278
362
|
const steedosPackages = [];
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
363
|
+
if(formatData.data.trees){
|
|
364
|
+
_.each(formatData.data.trees, (module)=>{
|
|
365
|
+
const parsed = npa(module.name);
|
|
366
|
+
const packagePath = path.dirname(require.resolve(`${parsed.name}/package.json`, {
|
|
367
|
+
paths: [path.join(installDir, 'node_modules')]
|
|
368
|
+
}))
|
|
369
|
+
if(fs.existsSync(path.join(packagePath, 'package.service.js'))){
|
|
370
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, no-undef
|
|
371
|
+
const schema = require(path.join(packagePath, 'package.service.js'));
|
|
372
|
+
schema.settings.packageInfo = {
|
|
373
|
+
...schema.settings?.packageInfo,
|
|
374
|
+
...(schema.metadata && schema.metadata.$package ? schema.metadata.$package : {}),
|
|
375
|
+
}
|
|
376
|
+
steedosPackages.push({
|
|
377
|
+
name: parsed.name,
|
|
378
|
+
version: parsed.rawSpec,
|
|
379
|
+
path: packagePath,
|
|
380
|
+
isUnmanaged: schema.settings.packageInfo.isUnmanaged
|
|
381
|
+
})
|
|
290
382
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
383
|
+
})
|
|
384
|
+
}else{
|
|
385
|
+
// console.log('changes', changes, npa(yarnPackage));
|
|
386
|
+
const module = npa(yarnPackage);
|
|
387
|
+
if(module.name){
|
|
388
|
+
// eslint-disable-next-line no-undef
|
|
389
|
+
const packagePath = path.dirname(require.resolve(`${module.name}/package.json`, {
|
|
390
|
+
paths: [path.join(installDir, 'node_modules')]
|
|
391
|
+
}));
|
|
392
|
+
if(fs.existsSync(path.join(packagePath, 'package.service.js'))){
|
|
393
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, no-undef
|
|
394
|
+
const schema = require(path.join(packagePath, 'package.service.js'));
|
|
395
|
+
const packageInfo = loadJson(path.join(packagePath, 'package.json'));
|
|
396
|
+
schema.settings.packageInfo = {
|
|
397
|
+
...schema.settings?.packageInfo,
|
|
398
|
+
...(schema.metadata && schema.metadata.$package ? schema.metadata.$package : {}),
|
|
399
|
+
}
|
|
400
|
+
steedosPackages.push({
|
|
401
|
+
name: module.name,
|
|
402
|
+
version: packageInfo.version,
|
|
403
|
+
path: packagePath,
|
|
404
|
+
isUnmanaged: schema.settings.packageInfo.isUnmanaged
|
|
405
|
+
})
|
|
406
|
+
}
|
|
407
|
+
|
|
297
408
|
}
|
|
298
|
-
|
|
409
|
+
|
|
410
|
+
for (const change of changes) {
|
|
411
|
+
// eslint-disable-next-line no-undef
|
|
412
|
+
const packagePath = path.dirname(require.resolve(`${change.name}/package.json`, {
|
|
413
|
+
paths: [path.join(installDir, 'node_modules')]
|
|
414
|
+
}))
|
|
415
|
+
if(fs.existsSync(path.join(packagePath, 'package.service.js'))){
|
|
416
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, no-undef
|
|
417
|
+
const schema = require(path.join(packagePath, 'package.service.js'));
|
|
418
|
+
schema.settings.packageInfo = {
|
|
419
|
+
...schema.settings?.packageInfo,
|
|
420
|
+
...(schema.metadata && schema.metadata.$package ? schema.metadata.$package : {}),
|
|
421
|
+
}
|
|
422
|
+
if(!_.find(steedosPackages, {name: change.name})){
|
|
423
|
+
steedosPackages.push({
|
|
424
|
+
name: change.name,
|
|
425
|
+
version: change.version,
|
|
426
|
+
path: packagePath,
|
|
427
|
+
isUnmanaged: schema.settings.packageInfo.isUnmanaged
|
|
428
|
+
})
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
// console.log('steedosPackages===>', steedosPackages);
|
|
299
435
|
return steedosPackages;
|
|
300
436
|
}
|
|
301
437
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-registry",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.112",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "package.service.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"author": "",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@steedos/auth": "3.0.0-beta.
|
|
13
|
-
"@steedos/metadata-core": "3.0.0-beta.
|
|
14
|
-
"@steedos/objectql": "3.0.0-beta.
|
|
15
|
-
"@steedos/service-package-loader": "3.0.0-beta.
|
|
12
|
+
"@steedos/auth": "3.0.0-beta.112",
|
|
13
|
+
"@steedos/metadata-core": "3.0.0-beta.112",
|
|
14
|
+
"@steedos/objectql": "3.0.0-beta.112",
|
|
15
|
+
"@steedos/service-package-loader": "3.0.0-beta.112",
|
|
16
16
|
"clone": "^2.1.2",
|
|
17
17
|
"fs-extra": "8.1.0",
|
|
18
18
|
"i18next": "20.3.2",
|
|
@@ -27,9 +27,8 @@
|
|
|
27
27
|
"radwag-mass": "~1.0.5",
|
|
28
28
|
"validator": "^13.5.2"
|
|
29
29
|
},
|
|
30
|
-
"private": false,
|
|
31
30
|
"publishConfig": {
|
|
32
31
|
"access": "public"
|
|
33
32
|
},
|
|
34
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "742d399ecaca836729c200044deee3ef0988be14"
|
|
35
34
|
}
|