trm-core 7.5.4 → 8.0.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/LICENSE +20 -20
- package/README.md +35 -35
- package/changelog.txt +186 -171
- package/dist/actions/checkPackageDependencies/analyze.js +5 -51
- package/dist/actions/checkPackageDependencies/index.d.ts +2 -5
- package/dist/actions/checkPackageDependencies/init.js +5 -7
- package/dist/actions/checkSapEntries/analyze.js +2 -2
- package/dist/actions/checkSapEntries/index.d.ts +2 -2
- package/dist/actions/checkSapEntries/init.js +1 -4
- package/dist/actions/findDependencies/index.d.ts +0 -2
- package/dist/actions/findDependencies/setTrmDependencies.js +11 -55
- package/dist/actions/install/addNamespace.js +14 -9
- package/dist/actions/install/checkAlreadyInstalled.js +2 -2
- package/dist/actions/install/checkDependencies.js +2 -16
- package/dist/actions/install/checkSapEntries.js +1 -1
- package/dist/actions/install/checkTransports.js +2 -2
- package/dist/actions/install/executePostActivities.js +3 -3
- package/dist/actions/install/generateInstallTransport.js +40 -5
- package/dist/actions/install/index.d.ts +6 -10
- package/dist/actions/install/index.js +2 -4
- package/dist/actions/install/init.js +37 -45
- package/dist/actions/install/installDependencies.js +0 -1
- package/dist/actions/install/setPackageIntegrity.js +1 -1
- package/dist/actions/install/setTrmServerUpgradeService.js +1 -1
- package/dist/actions/installDependency/findInstallRelease.js +18 -18
- package/dist/actions/installDependency/index.d.ts +0 -1
- package/dist/actions/installDependency/init.js +0 -7
- package/dist/actions/installDependency/installRelease.js +0 -1
- package/dist/actions/publish/findDependencies.js +0 -12
- package/dist/actions/publish/generateCustTransport.js +0 -3
- package/dist/actions/publish/generateDevcTransport.js +0 -4
- package/dist/actions/publish/generateLangTransport.js +0 -3
- package/dist/actions/publish/getSourceCode.js +1 -1
- package/dist/actions/publish/index.d.ts +1 -1
- package/dist/actions/publish/init.js +71 -95
- package/dist/actions/publish/setManifestValues.js +4 -13
- package/dist/commons/getAxiosInstance.d.ts +1 -1
- package/dist/manifest/Manifest.d.ts +2 -0
- package/dist/manifest/Manifest.js +47 -17
- package/dist/manifest/TrmManifestDependency.d.ts +0 -1
- package/dist/registry/AbstractRegistry.d.ts +7 -7
- package/dist/registry/FileSystem.d.ts +7 -6
- package/dist/registry/FileSystem.js +35 -34
- package/dist/registry/RegistryProvider.js +4 -4
- package/dist/registry/{Registry.d.ts → RegistryV2.d.ts} +11 -10
- package/dist/registry/{Registry.js → RegistryV2.js} +146 -74
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/systemConnector/ISystemConnectorBase.d.ts +1 -1
- package/dist/systemConnector/SystemConnector.d.ts +1 -1
- package/dist/systemConnector/SystemConnector.js +3 -3
- package/dist/systemConnector/SystemConnectorBase.d.ts +1 -1
- package/dist/systemConnector/SystemConnectorBase.js +33 -11
- package/dist/transport/Transport.d.ts +4 -1
- package/dist/transport/Transport.js +53 -30
- package/dist/trmPackage/TrmArtifact.js +3 -5
- package/dist/trmPackage/TrmPackage.d.ts +0 -16
- package/dist/trmPackage/TrmPackage.js +10 -133
- package/dist/validators/validatePackageVisibility.d.ts +1 -1
- package/dist/validators/validatePackageVisibility.js +2 -16
- package/package.json +98 -97
- package/dist/actions/install/checkIntegrity.d.ts +0 -3
- package/dist/actions/install/checkIntegrity.js +0 -42
|
@@ -36,9 +36,16 @@ class SystemConnectorBase {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
getWbTransports(trmPackage) {
|
|
40
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
var
|
|
41
|
+
var sqlWhere = `PGMID EQ '*' AND OBJECT EQ '${transport_1.COMMENT_OBJ}'`;
|
|
42
|
+
if (trmPackage instanceof trmPackage_1.TrmPackage) {
|
|
43
|
+
sqlWhere += ` AND OBJ_NAME EQ 'name=${trmPackage.packageName}'`;
|
|
44
|
+
}
|
|
45
|
+
else if (typeof trmPackage === 'string') {
|
|
46
|
+
sqlWhere += ` AND OBJ_NAME EQ 'name=${trmPackage}'`;
|
|
47
|
+
}
|
|
48
|
+
var aTrkorr = (yield this.readTable('E071', [{ fieldName: 'TRKORR' }], sqlWhere)).map(o => o.trkorr);
|
|
42
49
|
aTrkorr = Array.from(new Set(aTrkorr));
|
|
43
50
|
var aSkipTrkorr = [];
|
|
44
51
|
for (const sTrkorr of aTrkorr) {
|
|
@@ -54,20 +61,35 @@ class SystemConnectorBase {
|
|
|
54
61
|
}
|
|
55
62
|
}
|
|
56
63
|
aTrkorr = aTrkorr.filter(trkorr => !aSkipTrkorr.includes(trkorr));
|
|
57
|
-
const transports = aTrkorr.map(trkorr => new transport_1.Transport(trkorr));
|
|
58
64
|
var packageTransports = [];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (
|
|
62
|
-
|
|
65
|
+
var transports = aTrkorr.map(trkorr => new transport_1.Transport(trkorr));
|
|
66
|
+
for (let i = transports.length - 1; i >= 0; i--) {
|
|
67
|
+
if (!(yield transports[i].getLinkedPackage())) {
|
|
68
|
+
transports.splice(i, 1);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (trmPackage instanceof trmPackage_1.TrmPackage) {
|
|
72
|
+
for (const transport of transports) {
|
|
73
|
+
const transportPackage = yield transport.getLinkedPackage();
|
|
74
|
+
if (transportPackage) {
|
|
75
|
+
if (trmPackage_1.TrmPackage.compare(transportPackage, trmPackage)) {
|
|
76
|
+
packageTransports.push(transport);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return [yield transport_1.Transport.getLatest(packageTransports)];
|
|
81
|
+
}
|
|
82
|
+
else if (typeof trmPackage === 'string') {
|
|
83
|
+
for (const transport of transports) {
|
|
84
|
+
if ((yield transport.getTrmPackageName()) === trmPackage) {
|
|
63
85
|
packageTransports.push(transport);
|
|
64
86
|
}
|
|
65
87
|
}
|
|
88
|
+
return packageTransports;
|
|
66
89
|
}
|
|
67
|
-
|
|
68
|
-
return
|
|
90
|
+
else {
|
|
91
|
+
return transports;
|
|
69
92
|
}
|
|
70
|
-
return null;
|
|
71
93
|
});
|
|
72
94
|
}
|
|
73
95
|
getSourceTrkorr(refresh) {
|
|
@@ -231,7 +253,7 @@ class SystemConnectorBase {
|
|
|
231
253
|
var aSkipTrkorr = yield this.getIgnoredTrkorr();
|
|
232
254
|
trm_commons_1.Logger.log(`Ignored trkorr ${JSON.stringify(aSkipTrkorr)}`, true);
|
|
233
255
|
var aMigrationTrkorr;
|
|
234
|
-
var aActualTrkorr = (yield this.readTable('E071', [{ fieldName: 'TRKORR' }], `PGMID EQ '*' AND OBJECT EQ '${transport_1.COMMENT_OBJ}'
|
|
256
|
+
var aActualTrkorr = (yield this.readTable('E071', [{ fieldName: 'TRKORR' }], `PGMID EQ '*' AND OBJECT EQ '${transport_1.COMMENT_OBJ}'`)).map(o => o.trkorr);
|
|
235
257
|
aActualTrkorr = Array.from(new Set(aActualTrkorr));
|
|
236
258
|
try {
|
|
237
259
|
aMigrationTrkorr = (yield this.readTable('ZTRM_E070', [{ fieldName: 'TRM_TROKRR' }])).map(o => o.trmTrokrr);
|
|
@@ -16,7 +16,8 @@ export declare class Transport {
|
|
|
16
16
|
private _e070;
|
|
17
17
|
private _e071;
|
|
18
18
|
private _docs;
|
|
19
|
-
private
|
|
19
|
+
private _trmPackageName;
|
|
20
|
+
private _trmPackageVersion;
|
|
20
21
|
private _linkedTrmPackage;
|
|
21
22
|
private _rootDevclass;
|
|
22
23
|
trmIdentifier?: TrmTransportIdentifier;
|
|
@@ -29,6 +30,8 @@ export declare class Transport {
|
|
|
29
30
|
getTasks(): Promise<Transport[]>;
|
|
30
31
|
getDevclass(aTdevc?: TDEVC[]): Promise<DEVCLASS>;
|
|
31
32
|
getDate(): Promise<Date>;
|
|
33
|
+
getTrmPackageName(): Promise<string>;
|
|
34
|
+
getTrmPackageVersion(): Promise<string>;
|
|
32
35
|
isTrmRelevant(): Promise<boolean>;
|
|
33
36
|
download(): Promise<{
|
|
34
37
|
binaries: BinaryTransport;
|
|
@@ -183,16 +183,45 @@ class Transport {
|
|
|
183
183
|
return (0, commons_1.fromAbapToDate)(e070.as4Date, e070.as4Time);
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
|
-
|
|
186
|
+
getTrmPackageName() {
|
|
187
187
|
return __awaiter(this, void 0, void 0, function* () {
|
|
188
|
-
if (this.
|
|
188
|
+
if (this._trmPackageName === undefined) {
|
|
189
189
|
const e071 = yield this.getE071();
|
|
190
190
|
const trmComments = e071.filter(o => o.pgmid === '*' && o.object === exports.COMMENT_OBJ);
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
191
|
+
trmComments.forEach(s => {
|
|
192
|
+
if (!this._trmPackageName) {
|
|
193
|
+
try {
|
|
194
|
+
this._trmPackageName = /name=(\S*)/i.exec(s.objName)[1];
|
|
195
|
+
}
|
|
196
|
+
catch (e) { }
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return this._trmPackageName;
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
getTrmPackageVersion() {
|
|
204
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
+
if (this._trmPackageVersion === undefined) {
|
|
206
|
+
const e071 = yield this.getE071();
|
|
207
|
+
const trmComments = e071.filter(o => o.pgmid === '*' && o.object === exports.COMMENT_OBJ);
|
|
208
|
+
trmComments.forEach(s => {
|
|
209
|
+
if (!this._trmPackageVersion) {
|
|
210
|
+
try {
|
|
211
|
+
this._trmPackageVersion = /version=(\S*)/i.exec(s.objName)[1];
|
|
212
|
+
}
|
|
213
|
+
catch (e) { }
|
|
214
|
+
}
|
|
215
|
+
});
|
|
194
216
|
}
|
|
195
|
-
return this.
|
|
217
|
+
return this._trmPackageVersion;
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
isTrmRelevant() {
|
|
221
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
222
|
+
const packageName = yield this.getTrmPackageName();
|
|
223
|
+
const packageVersion = yield this.getTrmPackageVersion();
|
|
224
|
+
return !!(packageName && packageVersion);
|
|
196
225
|
});
|
|
197
226
|
}
|
|
198
227
|
download() {
|
|
@@ -367,31 +396,14 @@ class Transport {
|
|
|
367
396
|
}
|
|
368
397
|
release(lock, skipLog, tmpFolder, secondsTimeout) {
|
|
369
398
|
return __awaiter(this, void 0, void 0, function* () {
|
|
370
|
-
var rc;
|
|
371
399
|
trm_commons_1.Logger.loading('Releasing transport...', skipLog);
|
|
372
400
|
yield systemConnector_1.SystemConnector.releaseTrkorr(this.trkorr, lock, secondsTimeout);
|
|
373
401
|
yield systemConnector_1.SystemConnector.dequeueTransport(this.trkorr);
|
|
374
402
|
if (tmpFolder) {
|
|
375
|
-
|
|
403
|
+
yield this.readReleaseLog(tmpFolder, secondsTimeout);
|
|
376
404
|
}
|
|
377
405
|
else {
|
|
378
|
-
|
|
379
|
-
}
|
|
380
|
-
if (!skipLog && !tmpFolder) {
|
|
381
|
-
switch (rc) {
|
|
382
|
-
case 4:
|
|
383
|
-
trm_commons_1.Logger.warning(`${this.trkorr} release ended with warning.`);
|
|
384
|
-
break;
|
|
385
|
-
case 8:
|
|
386
|
-
trm_commons_1.Logger.error(`${this.trkorr} release ended with error.`);
|
|
387
|
-
break;
|
|
388
|
-
case 12:
|
|
389
|
-
trm_commons_1.Logger.error(`${this.trkorr} release was cancelled.`);
|
|
390
|
-
break;
|
|
391
|
-
case 16:
|
|
392
|
-
trm_commons_1.Logger.error(`${this.trkorr} release was cancelled.`);
|
|
393
|
-
break;
|
|
394
|
-
}
|
|
406
|
+
yield this._isInTmsQueue(skipLog, false, secondsTimeout);
|
|
395
407
|
}
|
|
396
408
|
});
|
|
397
409
|
}
|
|
@@ -558,7 +570,6 @@ class Transport {
|
|
|
558
570
|
var inQueue = false;
|
|
559
571
|
var rc = 12;
|
|
560
572
|
if (this._trTarget) {
|
|
561
|
-
var sLog = `status unknown`;
|
|
562
573
|
var inQueueAttempts = 0;
|
|
563
574
|
while (!inQueue && (new Date()).getTime() < timeoutDate.getTime()) {
|
|
564
575
|
inQueueAttempts++;
|
|
@@ -569,14 +580,17 @@ class Transport {
|
|
|
569
580
|
tmsQueue = tmsQueue.filter(o => o.trkorr === this.trkorr);
|
|
570
581
|
tmsQueue = tmsQueue.sort((a, b) => parseInt(b.bufpos) - parseInt(a.bufpos));
|
|
571
582
|
if (!checkImpSing) {
|
|
572
|
-
sLog = `released`;
|
|
573
583
|
inQueue = tmsQueue.length > 0;
|
|
574
584
|
}
|
|
575
585
|
else {
|
|
576
|
-
sLog = `imported`;
|
|
577
586
|
if (tmsQueue.length > 0) {
|
|
578
587
|
inQueue = tmsQueue[0].impsing !== 'X';
|
|
579
|
-
|
|
588
|
+
if (!tmsQueue[0].maxrc) {
|
|
589
|
+
rc = -1;
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
rc = parseInt(tmsQueue[0].maxrc);
|
|
593
|
+
}
|
|
580
594
|
}
|
|
581
595
|
else {
|
|
582
596
|
inQueue = false;
|
|
@@ -587,7 +601,10 @@ class Transport {
|
|
|
587
601
|
throw new Error(`${this.trkorr} not found in queue, timed out after ${inQueueAttempts + 1} attempts`);
|
|
588
602
|
}
|
|
589
603
|
else {
|
|
590
|
-
|
|
604
|
+
if (!checkImpSing) {
|
|
605
|
+
trm_commons_1.Logger.success(`${this.trkorr} released.`, skipLog);
|
|
606
|
+
rc = -1;
|
|
607
|
+
}
|
|
591
608
|
}
|
|
592
609
|
}
|
|
593
610
|
else {
|
|
@@ -753,6 +770,12 @@ class Transport {
|
|
|
753
770
|
const rc = yield this._isInTmsQueue(false, true, timeout);
|
|
754
771
|
trm_commons_1.Logger.log(`Transport ${this.trkorr} import ended: return code ${rc}`, true);
|
|
755
772
|
switch (rc) {
|
|
773
|
+
case -1:
|
|
774
|
+
trm_commons_1.Logger.error(`${this.trkorr} import has no return code!`);
|
|
775
|
+
break;
|
|
776
|
+
case 0:
|
|
777
|
+
trm_commons_1.Logger.success(`${this.trkorr} import ended with success.`);
|
|
778
|
+
break;
|
|
756
779
|
case 4:
|
|
757
780
|
trm_commons_1.Logger.warning(`${this.trkorr} import ended with warning.`);
|
|
758
781
|
break;
|
|
@@ -84,7 +84,7 @@ class TrmArtifact {
|
|
|
84
84
|
return this._manifest;
|
|
85
85
|
}
|
|
86
86
|
replaceManifest(oManifest) {
|
|
87
|
-
const manifestBuffer = Buffer.from(
|
|
87
|
+
const manifestBuffer = Buffer.from(oManifest.getJSON(), 'utf8');
|
|
88
88
|
this._zip.updateFile('manifest.json', manifestBuffer);
|
|
89
89
|
}
|
|
90
90
|
getDistFolder() {
|
|
@@ -218,10 +218,8 @@ class TrmArtifact {
|
|
|
218
218
|
trm_commons_1.Logger.error(`Couldn't add source code to TRM artifact!`);
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
delete oManifest.sapEntries;
|
|
224
|
-
const manifestBuffer = Buffer.from(JSON.stringify(oManifest, null, 2), 'utf8');
|
|
221
|
+
const oSapEntries = data.manifest.get().sapEntries;
|
|
222
|
+
const manifestBuffer = Buffer.from(data.manifest.getJSON(["sapEntries"]), 'utf8');
|
|
225
223
|
trm_commons_1.Logger.log(`Adding manifest.json`, true);
|
|
226
224
|
artifact.addFile(`manifest.json`, manifestBuffer, `manifest`);
|
|
227
225
|
if (oSapEntries && Object.keys(oSapEntries).length > 0) {
|
|
@@ -2,17 +2,11 @@ import { Manifest } from "../manifest";
|
|
|
2
2
|
import { AbstractRegistry } from "../registry";
|
|
3
3
|
import { TrmArtifact } from "./TrmArtifact";
|
|
4
4
|
import { DEVCLASS } from "../client";
|
|
5
|
-
import { R3transOptions } from "node-r3trans";
|
|
6
5
|
import { Transport } from "../transport";
|
|
7
|
-
export declare const DEFAULT_VERSION: string;
|
|
8
6
|
export declare class TrmPackage {
|
|
9
7
|
packageName: string;
|
|
10
8
|
registry: AbstractRegistry;
|
|
11
9
|
manifest?: Manifest;
|
|
12
|
-
private _userAuthorizations;
|
|
13
|
-
private _canPublishReleasesCause;
|
|
14
|
-
private _remoteArtifacts;
|
|
15
|
-
private _remoteContent;
|
|
16
10
|
private _devclass;
|
|
17
11
|
private _wbTransport;
|
|
18
12
|
constructor(packageName: string, registry: AbstractRegistry, manifest?: Manifest);
|
|
@@ -20,22 +14,12 @@ export declare class TrmPackage {
|
|
|
20
14
|
getDevclass(): DEVCLASS;
|
|
21
15
|
setWbTransport(transport: Transport): TrmPackage;
|
|
22
16
|
getWbTransport(): Promise<Transport>;
|
|
23
|
-
exists(version?: string): Promise<boolean>;
|
|
24
|
-
canPublishReleases(): Promise<{
|
|
25
|
-
canPublishReleases: boolean;
|
|
26
|
-
cause?: string;
|
|
27
|
-
}>;
|
|
28
|
-
fetchRemoteArtifact(version?: string): Promise<TrmArtifact>;
|
|
29
|
-
fetchRemoteManifest(version?: string): Promise<Manifest>;
|
|
30
|
-
fetchRemoteContent(version?: string, r3transConfig?: R3transOptions): Promise<any>;
|
|
31
17
|
publish(data: {
|
|
32
18
|
artifact: TrmArtifact;
|
|
33
19
|
readme?: string;
|
|
34
20
|
}): Promise<TrmPackage>;
|
|
35
21
|
compareRegistry(registry: AbstractRegistry): boolean;
|
|
36
22
|
compareName(name: string): boolean;
|
|
37
|
-
private _viewLatest;
|
|
38
23
|
static create(manifest: Manifest, registry: AbstractRegistry): Promise<TrmPackage>;
|
|
39
24
|
static compare(o1: TrmPackage, o2: TrmPackage): boolean;
|
|
40
|
-
static normalizeVersion(packageName: string, version: string, registry: AbstractRegistry): Promise<string>;
|
|
41
25
|
}
|
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -42,19 +9,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
42
9
|
});
|
|
43
10
|
};
|
|
44
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.TrmPackage =
|
|
46
|
-
const semver = __importStar(require("semver"));
|
|
12
|
+
exports.TrmPackage = void 0;
|
|
47
13
|
const trm_commons_1 = require("trm-commons");
|
|
48
14
|
const manifest_1 = require("../manifest");
|
|
49
15
|
const systemConnector_1 = require("../systemConnector");
|
|
50
|
-
exports.DEFAULT_VERSION = "1.0.0";
|
|
51
16
|
class TrmPackage {
|
|
52
17
|
constructor(packageName, registry, manifest) {
|
|
53
18
|
this.packageName = packageName;
|
|
54
19
|
this.registry = registry;
|
|
55
20
|
this.manifest = manifest;
|
|
56
|
-
this._remoteArtifacts = {};
|
|
57
|
-
this._remoteContent = {};
|
|
58
21
|
}
|
|
59
22
|
setDevclass(devclass) {
|
|
60
23
|
this._devclass = devclass;
|
|
@@ -70,66 +33,18 @@ class TrmPackage {
|
|
|
70
33
|
getWbTransport() {
|
|
71
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
35
|
if (this._wbTransport === undefined) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
exists() {
|
|
79
|
-
return __awaiter(this, arguments, void 0, function* (version = 'latest') {
|
|
80
|
-
return (yield this.registry.packageExists(this.packageName, version));
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
canPublishReleases() {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
if (this._userAuthorizations === undefined) {
|
|
86
|
-
var view;
|
|
87
|
-
try {
|
|
88
|
-
view = yield this._viewLatest();
|
|
36
|
+
const transports = yield systemConnector_1.SystemConnector.getWbTransports(this);
|
|
37
|
+
if (transports.length === 1) {
|
|
38
|
+
this._wbTransport = transports[0];
|
|
89
39
|
}
|
|
90
|
-
|
|
91
|
-
this.
|
|
92
|
-
if (e.response && typeof (e.response) === "object") {
|
|
93
|
-
view = e.response;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
throw e;
|
|
97
|
-
}
|
|
40
|
+
else {
|
|
41
|
+
this._wbTransport = false;
|
|
98
42
|
}
|
|
99
|
-
this._userAuthorizations = view.userAuthorizations;
|
|
100
|
-
}
|
|
101
|
-
return {
|
|
102
|
-
canPublishReleases: this._userAuthorizations.canCreateReleases,
|
|
103
|
-
cause: this._canPublishReleasesCause
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
fetchRemoteArtifact() {
|
|
108
|
-
return __awaiter(this, arguments, void 0, function* (version = 'latest') {
|
|
109
|
-
if (!this._remoteArtifacts[version]) {
|
|
110
|
-
this._remoteArtifacts[version] = yield this.registry.getArtifact(this.packageName, version);
|
|
111
43
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
fetchRemoteManifest() {
|
|
116
|
-
return __awaiter(this, arguments, void 0, function* (version = 'latest') {
|
|
117
|
-
const artifact = yield this.fetchRemoteArtifact(version);
|
|
118
|
-
this.manifest = artifact.getManifest();
|
|
119
|
-
this._remoteArtifacts[this.manifest.get().version] = this._remoteArtifacts[version];
|
|
120
|
-
return this._remoteArtifacts[version].getManifest();
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
fetchRemoteContent() {
|
|
124
|
-
return __awaiter(this, arguments, void 0, function* (version = 'latest', r3transConfig) {
|
|
125
|
-
if (!this._remoteContent[version]) {
|
|
126
|
-
const artifact = yield this.fetchRemoteArtifact(version);
|
|
127
|
-
const manifest = artifact.getManifest();
|
|
128
|
-
const actualVersion = manifest.get().version;
|
|
129
|
-
this._remoteArtifacts[version] = yield artifact.getContent(r3transConfig);
|
|
130
|
-
this._remoteArtifacts[actualVersion] = this._remoteArtifacts[version];
|
|
44
|
+
if (this._wbTransport === false) {
|
|
45
|
+
return undefined;
|
|
131
46
|
}
|
|
132
|
-
return this.
|
|
47
|
+
return this._wbTransport;
|
|
133
48
|
});
|
|
134
49
|
}
|
|
135
50
|
publish(data) {
|
|
@@ -141,9 +56,8 @@ class TrmPackage {
|
|
|
141
56
|
throw new Error(`Cannot publish package ${packageName}: expected name is ${this.packageName}`);
|
|
142
57
|
}
|
|
143
58
|
const packageVersion = trmManifest.version;
|
|
144
|
-
const readme = data.readme || '';
|
|
145
59
|
trm_commons_1.Logger.loading(`Publishing "${packageName}" ${packageVersion} to registry "${this.registry.name}"...`, false);
|
|
146
|
-
yield this.registry.
|
|
60
|
+
yield this.registry.publish(packageName, packageVersion, artifact, data.readme);
|
|
147
61
|
this.manifest = new manifest_1.Manifest(trmManifest);
|
|
148
62
|
return this;
|
|
149
63
|
});
|
|
@@ -154,11 +68,6 @@ class TrmPackage {
|
|
|
154
68
|
compareName(name) {
|
|
155
69
|
return this.packageName.trim().toUpperCase() === name.trim().toUpperCase();
|
|
156
70
|
}
|
|
157
|
-
_viewLatest() {
|
|
158
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
-
return (yield this.registry.view(this.packageName, 'latest'));
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
71
|
static create(manifest, registry) {
|
|
163
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
164
73
|
return new TrmPackage(manifest.get().name, registry, manifest);
|
|
@@ -167,37 +76,5 @@ class TrmPackage {
|
|
|
167
76
|
static compare(o1, o2) {
|
|
168
77
|
return o1.compareName(o2.packageName) && o1.compareRegistry(o2.registry);
|
|
169
78
|
}
|
|
170
|
-
static normalizeVersion(packageName, version, registry) {
|
|
171
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
-
const oPackage = new TrmPackage(packageName, registry);
|
|
173
|
-
const usingLatest = version.trim().toLowerCase() === 'latest';
|
|
174
|
-
if (!usingLatest) {
|
|
175
|
-
version = semver.clean(version);
|
|
176
|
-
if (!version) {
|
|
177
|
-
throw new Error('Version not supported.');
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
const exists = yield oPackage.exists();
|
|
181
|
-
if (!exists) {
|
|
182
|
-
if (usingLatest) {
|
|
183
|
-
version = exports.DEFAULT_VERSION;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
if (!usingLatest) {
|
|
188
|
-
const versionExists = yield oPackage.exists(version);
|
|
189
|
-
if (versionExists) {
|
|
190
|
-
throw new Error(`Package "${packageName}" versioned ${version} already published.`);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
const oManifest = yield oPackage.fetchRemoteManifest('latest');
|
|
195
|
-
const latestPublishedManifest = oManifest.get();
|
|
196
|
-
version = semver.inc(latestPublishedManifest.version, 'patch');
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return version;
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
79
|
}
|
|
203
80
|
exports.TrmPackage = TrmPackage;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { RegistryType } from "../registry";
|
|
2
|
-
export declare function validatePackageVisibility(registryType: RegistryType,
|
|
2
|
+
export declare function validatePackageVisibility(registryType: RegistryType, isPrivate: boolean, latestReleaseVisibility: boolean): string | true;
|
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validatePackageVisibility = validatePackageVisibility;
|
|
4
|
-
const commons_1 = require("../commons");
|
|
5
4
|
const registry_1 = require("../registry");
|
|
6
|
-
function validatePackageVisibility(registryType,
|
|
5
|
+
function validatePackageVisibility(registryType, isPrivate, latestReleaseVisibility) {
|
|
7
6
|
if (registryType === registry_1.RegistryType.PUBLIC) {
|
|
8
7
|
if (latestReleaseVisibility !== undefined) {
|
|
9
8
|
if (isPrivate !== latestReleaseVisibility) {
|
|
10
9
|
return `Cannot change package visibility from ${isPrivate ? 'private' : 'public'} to ${latestReleaseVisibility ? 'private' : 'public'}.`;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
|
|
14
|
-
const packageNameParsed = (0, commons_1.parsePackageName)({
|
|
15
|
-
fullName: packageName
|
|
16
|
-
});
|
|
17
|
-
if (!packageNameParsed.organization) {
|
|
18
|
-
return `Private packages on public registry need a scope!`;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
12
|
+
return true;
|
|
27
13
|
}
|
|
28
14
|
else {
|
|
29
15
|
return true;
|