@steedos/service-package-registry 3.0.0-beta.99 → 3.0.1
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/main/default/manager/loader.js +4 -4
- package/main/default/manager/package-json.js +1 -1
- package/main/default/manager/packages.js +1 -1
- package/main/default/manager/registry.js +154 -18
- package/main/default/objectTranslations/steedos_packages.en/steedos_packages.en.objectTranslation.yml +2 -2
- package/package.json +6 -7
- package/project.package.service.js +1 -1
|
@@ -173,7 +173,7 @@ const destroyExistThePackageService = async (packageInfo)=>{
|
|
|
173
173
|
let schema = objectql.getSteedosSchema();
|
|
174
174
|
let broker = schema.broker;
|
|
175
175
|
let svc = broker.getLocalService({
|
|
176
|
-
name:
|
|
176
|
+
name: `${packageInfo.name}`
|
|
177
177
|
});
|
|
178
178
|
if(!svc){
|
|
179
179
|
svc = broker.getLocalService({
|
|
@@ -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
|
}
|
|
@@ -280,7 +280,7 @@ const disablePackage = async (packageName)=>{
|
|
|
280
280
|
let schema = objectql.getSteedosSchema();
|
|
281
281
|
let broker = schema.broker;
|
|
282
282
|
const serviceList = broker.registry.getServiceList({ withActions: true });
|
|
283
|
-
const service = _.find(serviceList, (_service)=>{return _service.name ==
|
|
283
|
+
const service = _.find(serviceList, (_service)=>{return _service.name == `${packageName}` || _service.name == packageName;})
|
|
284
284
|
if(service){
|
|
285
285
|
await broker.destroyService(service);
|
|
286
286
|
}
|
|
@@ -301,7 +301,7 @@ const removePackage = async (packageName)=>{
|
|
|
301
301
|
let schema = objectql.getSteedosSchema();
|
|
302
302
|
let broker = schema.broker;
|
|
303
303
|
const serviceList = broker.registry.getServiceList({ withActions: true });
|
|
304
|
-
const service = _.find(serviceList, (_service)=>{return _service.name ==
|
|
304
|
+
const service = _.find(serviceList, (_service)=>{return _service.name == `${packageName}` || _service.name == packageName;})
|
|
305
305
|
if(service){
|
|
306
306
|
await broker.destroyService(service);
|
|
307
307
|
}
|
|
@@ -68,7 +68,7 @@ const packageJson = async (packageName, options) => {
|
|
|
68
68
|
try {
|
|
69
69
|
data = await got(packageUrl, gotOptions).json();
|
|
70
70
|
} catch (error) {
|
|
71
|
-
if (error
|
|
71
|
+
if (error?.response?.statusCode === 404) {
|
|
72
72
|
throw new PackageNotFoundError(packageName);
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -62,7 +62,7 @@ const getAllPackages = async ()=>{
|
|
|
62
62
|
}
|
|
63
63
|
})
|
|
64
64
|
_.map(_.map(onlinePackages, 'metadata'), (packageInfo)=>{
|
|
65
|
-
const packageName = packageInfo.name.replace(
|
|
65
|
+
const packageName = packageInfo.name.replace(``, '');
|
|
66
66
|
const _package = _.find(packages, (_p)=>{return _p.name == packageName})
|
|
67
67
|
if(_package){
|
|
68
68
|
_package.status = 'enable'
|
|
@@ -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
|
|
|
@@ -126,7 +126,7 @@ actions:
|
|
|
126
126
|
upgradePackage:
|
|
127
127
|
label: Upgrade Package
|
|
128
128
|
edit_npmrc:
|
|
129
|
-
label:
|
|
129
|
+
label: NPM Settings
|
|
130
130
|
CustomLabels:
|
|
131
131
|
steedos_packages_tab_introduce_title: Introduction
|
|
132
132
|
steedos_packages_tab_components_title: Package Components
|
|
@@ -136,7 +136,7 @@ CustomLabels:
|
|
|
136
136
|
steedos_packages_button_enable_dialog_confirm_text_suffix: "\"?"
|
|
137
137
|
steedos_packages_button_enable_dialog_button_ok: Enable
|
|
138
138
|
steedos_packages_button_enable_dialog_message_success: Enabled Successfully
|
|
139
|
-
steedos_packages_button_edit_npmrc_dialog_describe: "#####
|
|
139
|
+
steedos_packages_button_edit_npmrc_dialog_describe: "##### NPM Settings (.npmrc):\r- `; Set a new registry for scoped packages`\r- `@myscope:registry=https://mycustomregistry.example.org`\r- `; Configure authentication information for the new registry (optional)`\r- `//mycustomregistry.example.org:_authToken=\"Authentication Token\"`"
|
|
140
140
|
steedos_packages_button_installPackageFromUrl_dialog_field_registry: Registry
|
|
141
141
|
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_taobao: taobao
|
|
142
142
|
steedos_packages_button_installPackageFromUrl_dialog_field_registry_option_cnpm: cnpm
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-registry",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
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.
|
|
13
|
-
"@steedos/metadata-core": "3.0.
|
|
14
|
-
"@steedos/objectql": "3.0.
|
|
15
|
-
"@steedos/service-package-loader": "3.0.
|
|
12
|
+
"@steedos/auth": "3.0.1",
|
|
13
|
+
"@steedos/metadata-core": "3.0.1",
|
|
14
|
+
"@steedos/objectql": "3.0.1",
|
|
15
|
+
"@steedos/service-package-loader": "3.0.1",
|
|
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": "4bbcc1f1ba098d299f5c363e67679f001f715575"
|
|
35
34
|
}
|