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.
Files changed (63) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +35 -35
  3. package/changelog.txt +186 -171
  4. package/dist/actions/checkPackageDependencies/analyze.js +5 -51
  5. package/dist/actions/checkPackageDependencies/index.d.ts +2 -5
  6. package/dist/actions/checkPackageDependencies/init.js +5 -7
  7. package/dist/actions/checkSapEntries/analyze.js +2 -2
  8. package/dist/actions/checkSapEntries/index.d.ts +2 -2
  9. package/dist/actions/checkSapEntries/init.js +1 -4
  10. package/dist/actions/findDependencies/index.d.ts +0 -2
  11. package/dist/actions/findDependencies/setTrmDependencies.js +11 -55
  12. package/dist/actions/install/addNamespace.js +14 -9
  13. package/dist/actions/install/checkAlreadyInstalled.js +2 -2
  14. package/dist/actions/install/checkDependencies.js +2 -16
  15. package/dist/actions/install/checkSapEntries.js +1 -1
  16. package/dist/actions/install/checkTransports.js +2 -2
  17. package/dist/actions/install/executePostActivities.js +3 -3
  18. package/dist/actions/install/generateInstallTransport.js +40 -5
  19. package/dist/actions/install/index.d.ts +6 -10
  20. package/dist/actions/install/index.js +2 -4
  21. package/dist/actions/install/init.js +37 -45
  22. package/dist/actions/install/installDependencies.js +0 -1
  23. package/dist/actions/install/setPackageIntegrity.js +1 -1
  24. package/dist/actions/install/setTrmServerUpgradeService.js +1 -1
  25. package/dist/actions/installDependency/findInstallRelease.js +18 -18
  26. package/dist/actions/installDependency/index.d.ts +0 -1
  27. package/dist/actions/installDependency/init.js +0 -7
  28. package/dist/actions/installDependency/installRelease.js +0 -1
  29. package/dist/actions/publish/findDependencies.js +0 -12
  30. package/dist/actions/publish/generateCustTransport.js +0 -3
  31. package/dist/actions/publish/generateDevcTransport.js +0 -4
  32. package/dist/actions/publish/generateLangTransport.js +0 -3
  33. package/dist/actions/publish/getSourceCode.js +1 -1
  34. package/dist/actions/publish/index.d.ts +1 -1
  35. package/dist/actions/publish/init.js +71 -95
  36. package/dist/actions/publish/setManifestValues.js +4 -13
  37. package/dist/commons/getAxiosInstance.d.ts +1 -1
  38. package/dist/manifest/Manifest.d.ts +2 -0
  39. package/dist/manifest/Manifest.js +47 -17
  40. package/dist/manifest/TrmManifestDependency.d.ts +0 -1
  41. package/dist/registry/AbstractRegistry.d.ts +7 -7
  42. package/dist/registry/FileSystem.d.ts +7 -6
  43. package/dist/registry/FileSystem.js +35 -34
  44. package/dist/registry/RegistryProvider.js +4 -4
  45. package/dist/registry/{Registry.d.ts → RegistryV2.d.ts} +11 -10
  46. package/dist/registry/{Registry.js → RegistryV2.js} +146 -74
  47. package/dist/registry/index.d.ts +1 -1
  48. package/dist/registry/index.js +1 -1
  49. package/dist/systemConnector/ISystemConnectorBase.d.ts +1 -1
  50. package/dist/systemConnector/SystemConnector.d.ts +1 -1
  51. package/dist/systemConnector/SystemConnector.js +3 -3
  52. package/dist/systemConnector/SystemConnectorBase.d.ts +1 -1
  53. package/dist/systemConnector/SystemConnectorBase.js +33 -11
  54. package/dist/transport/Transport.d.ts +4 -1
  55. package/dist/transport/Transport.js +53 -30
  56. package/dist/trmPackage/TrmArtifact.js +3 -5
  57. package/dist/trmPackage/TrmPackage.d.ts +0 -16
  58. package/dist/trmPackage/TrmPackage.js +10 -133
  59. package/dist/validators/validatePackageVisibility.d.ts +1 -1
  60. package/dist/validators/validatePackageVisibility.js +2 -16
  61. package/package.json +98 -97
  62. package/dist/actions/install/checkIntegrity.d.ts +0 -3
  63. package/dist/actions/install/checkIntegrity.js +0 -42
@@ -78,47 +78,46 @@ class FileSystem {
78
78
  return __awaiter(this, void 0, void 0, function* () {
79
79
  if (this._filePath) {
80
80
  return {
81
- authenticationType: trm_registry_types_1.AuthenticationType.NO_AUTH,
82
- wallMessage: {
83
- text: `File system: "${this.name}", "${this.endpoint}"`,
84
- type: trm_registry_types_1.MessageType.INFO
85
- }
81
+ authentication_type: trm_registry_types_1.AuthenticationType.NO_AUTH,
82
+ messages: [{
83
+ text: `File system: "${this.name}", "${this.endpoint}"`,
84
+ type: trm_registry_types_1.MessageType.INFO
85
+ }]
86
86
  };
87
87
  }
88
- return null;
88
+ throw new Error(`Missing file path!`);
89
89
  });
90
90
  }
91
91
  whoAmI() {
92
92
  return __awaiter(this, void 0, void 0, function* () {
93
93
  if (this._filePath) {
94
94
  return {
95
- username: (0, os_1.userInfo)().username
95
+ user: (0, os_1.userInfo)().username
96
96
  };
97
97
  }
98
- return null;
98
+ throw new Error(`Missing file path!`);
99
99
  });
100
100
  }
101
- packageExists(name, version) {
101
+ getPackage(fullName, version) {
102
102
  return __awaiter(this, void 0, void 0, function* () {
103
103
  if (this._filePath) {
104
- return false;
104
+ return {
105
+ name: fullName,
106
+ latest: version,
107
+ versions: [],
108
+ yanked_versions: [],
109
+ deprecated: false,
110
+ manifest: null,
111
+ checksum: null,
112
+ download_link: this._filePath
113
+ };
105
114
  }
106
- return null;
115
+ throw new Error(`File system can't view packages!`);
107
116
  });
108
117
  }
109
- view(name_1) {
110
- return __awaiter(this, arguments, void 0, function* (name, version = 'latest') {
111
- if (this._filePath) {
112
- const userAuthorizations = {
113
- canCreateReleases: true
114
- };
115
- var error = new Error(`File system can't view packages!`);
116
- error.response = {
117
- userAuthorizations
118
- };
119
- throw error;
120
- }
121
- return null;
118
+ downloadArtifact(fullName, version) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ return new trmPackage_1.TrmArtifact((0, fs_1.readFileSync)(this._filePath));
122
121
  });
123
122
  }
124
123
  getArtifact(name_1) {
@@ -135,30 +134,32 @@ class FileSystem {
135
134
  throw new Error(`File system couldn't read package`);
136
135
  }
137
136
  }
138
- return null;
137
+ throw new Error(`Missing file path!`);
139
138
  });
140
139
  }
141
- publishArtifact(packageName, version, artifact, readme) {
140
+ validatePublish(fullName, version) {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ });
143
+ }
144
+ publish(fullName, version, artifact, readme) {
142
145
  return __awaiter(this, void 0, void 0, function* () {
143
146
  if (this._filePath) {
144
- return (0, promises_1.writeFile)(this._filePath, artifact.binary, {
147
+ yield (0, promises_1.writeFile)(this._filePath, artifact.binary, {
145
148
  flag: 'w'
146
149
  });
150
+ return this.getPackage(fullName, version);
147
151
  }
148
- return null;
152
+ throw new Error(`Missing file path!`);
149
153
  });
150
154
  }
151
- unpublish(packageName, version) {
155
+ unpublish(fullName, version) {
152
156
  return __awaiter(this, void 0, void 0, function* () {
153
157
  throw new Error(`File system can't delete packages!`);
154
158
  });
155
159
  }
156
- getReleases(packageName, versionRange) {
160
+ deprecate(fullName, version, reason) {
157
161
  return __awaiter(this, void 0, void 0, function* () {
158
- if (this._filePath) {
159
- return [];
160
- }
161
- return null;
162
+ throw new Error(`File system can't deprecate packages!`);
162
163
  });
163
164
  }
164
165
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RegistryProvider = void 0;
4
4
  const FileSystem_1 = require("./FileSystem");
5
- const Registry_1 = require("./Registry");
5
+ const RegistryV2_1 = require("./RegistryV2");
6
6
  const RegistryType_1 = require("./RegistryType");
7
7
  var RegistryProvider;
8
8
  (function (RegistryProvider) {
@@ -12,10 +12,10 @@ var RegistryProvider;
12
12
  if (endpoint) {
13
13
  endpoint = endpoint.toLowerCase().trim();
14
14
  }
15
- if (!endpoint || endpoint === Registry_1.PUBLIC_RESERVED_KEYWORD) {
15
+ if (!endpoint || endpoint === RegistryV2_1.PUBLIC_RESERVED_KEYWORD) {
16
16
  foundRegistry = RegistryProvider.registry.find(o => o.getRegistryType() === RegistryType_1.RegistryType.PUBLIC);
17
17
  if (!foundRegistry) {
18
- foundRegistry = new Registry_1.Registry(Registry_1.PUBLIC_RESERVED_KEYWORD);
18
+ foundRegistry = new RegistryV2_1.RegistryV2(RegistryV2_1.PUBLIC_RESERVED_KEYWORD);
19
19
  RegistryProvider.registry.push(foundRegistry);
20
20
  }
21
21
  }
@@ -25,7 +25,7 @@ var RegistryProvider;
25
25
  else {
26
26
  foundRegistry = RegistryProvider.registry.find(o => o.endpoint === endpoint);
27
27
  if (!foundRegistry) {
28
- foundRegistry = new Registry_1.Registry(endpoint, endpoint);
28
+ foundRegistry = new RegistryV2_1.RegistryV2(endpoint, endpoint);
29
29
  RegistryProvider.registry.push(foundRegistry);
30
30
  }
31
31
  }
@@ -1,17 +1,18 @@
1
1
  import { RegistryType } from "./RegistryType";
2
- import { Ping, Release, View, WhoAmI } from "trm-registry-types";
2
+ import { Package, Ping, WhoAmI } from "trm-registry-types";
3
3
  import { TrmArtifact } from "../trmPackage/TrmArtifact";
4
4
  import { AbstractRegistry } from "./AbstractRegistry";
5
5
  export declare const PUBLIC_RESERVED_KEYWORD = "public";
6
- export declare class Registry implements AbstractRegistry {
6
+ export declare class RegistryV2 implements AbstractRegistry {
7
7
  endpoint: string;
8
8
  name: string;
9
+ private _cache;
9
10
  private _registryType;
10
11
  private _axiosInstance;
11
12
  private _authData;
12
- private _ping;
13
- private _whoami;
13
+ private _userAgent;
14
14
  constructor(endpoint: string, name?: string);
15
+ private getDefaultAxiosHeaders;
15
16
  compare(registry: AbstractRegistry): boolean;
16
17
  getRegistryType(): RegistryType;
17
18
  authenticate(defaultData?: any): Promise<AbstractRegistry>;
@@ -21,10 +22,10 @@ export declare class Registry implements AbstractRegistry {
21
22
  getAuthData(): any;
22
23
  ping(): Promise<Ping>;
23
24
  whoAmI(): Promise<WhoAmI>;
24
- packageExists(name: string, version?: string): Promise<boolean>;
25
- view(name: string, version?: string): Promise<View>;
26
- getArtifact(name: string, version?: string): Promise<TrmArtifact>;
27
- publishArtifact(packageName: string, version: string, artifact: TrmArtifact, readme?: string): Promise<void>;
28
- unpublish(packageName: string, version: string): Promise<void>;
29
- getReleases(packageName: string, versionRange: string): Promise<Release[]>;
25
+ getPackage(fullName: string, version?: string): Promise<Package>;
26
+ downloadArtifact(fullName: string, version?: string): Promise<TrmArtifact>;
27
+ validatePublish(fullName: string, version?: string): Promise<void>;
28
+ publish(fullName: string, version: string, artifact: TrmArtifact, readme?: string): Promise<Package>;
29
+ unpublish(fullName: string, version: string): Promise<void>;
30
+ deprecate(fullName: string, version: string, reason: string): Promise<void>;
30
31
  }
@@ -45,7 +45,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
45
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.Registry = exports.PUBLIC_RESERVED_KEYWORD = void 0;
48
+ exports.RegistryV2 = exports.PUBLIC_RESERVED_KEYWORD = void 0;
49
49
  const RegistryType_1 = require("./RegistryType");
50
50
  const normalize_url_1 = __importDefault(require("@esm2cjs/normalize-url"));
51
51
  const axios_1 = require("axios");
@@ -57,12 +57,14 @@ const crypto_1 = require("crypto");
57
57
  const protocol_1 = require("../protocol");
58
58
  const opener_1 = __importDefault(require("opener"));
59
59
  const commons_1 = require("../commons");
60
- const AXIOS_CTX = "Registry";
60
+ const node_cache_1 = __importDefault(require("node-cache"));
61
+ const AXIOS_CTX = "RegistryV2";
61
62
  exports.PUBLIC_RESERVED_KEYWORD = 'public';
62
- class Registry {
63
+ class RegistryV2 {
63
64
  constructor(endpoint, name = 'Unknown') {
64
65
  this.endpoint = endpoint;
65
66
  this.name = name;
67
+ this._cache = new node_cache_1.default({ stdTTL: 60, useClones: false });
66
68
  var envEndpoint = process.env.TRM_PUBLIC_REGISTRY_ENDPOINT;
67
69
  trm_commons_1.Logger.log(`TRM_PUBLIC_REGISTRY_ENDPOINT Environment variable: ${envEndpoint}`, true);
68
70
  if (!envEndpoint || envEndpoint.trim().toLowerCase() === exports.PUBLIC_RESERVED_KEYWORD) {
@@ -92,11 +94,23 @@ class Registry {
92
94
  throw new Error(`Registry address length is too long! Maximum allowed is 100.`);
93
95
  }
94
96
  this._axiosInstance = (0, commons_1.getAxiosInstance)({
95
- baseURL: this.endpoint
97
+ baseURL: this.endpoint,
98
+ headers: this.getDefaultAxiosHeaders()
96
99
  }, AXIOS_CTX);
97
100
  }
101
+ getDefaultAxiosHeaders() {
102
+ var axiosHeaders = new axios_1.AxiosHeaders();
103
+ if (!this._userAgent) {
104
+ try {
105
+ this._userAgent = `trm-core v${(0, commons_1.getNodePackage)().version}`;
106
+ }
107
+ catch (_a) { }
108
+ }
109
+ axiosHeaders.setUserAgent(this._userAgent || `trm-core`);
110
+ return axiosHeaders;
111
+ }
98
112
  compare(registry) {
99
- if (registry instanceof Registry) {
113
+ if (registry instanceof RegistryV2) {
100
114
  return this.endpoint === registry.endpoint;
101
115
  }
102
116
  else {
@@ -110,25 +124,25 @@ class Registry {
110
124
  return __awaiter(this, arguments, void 0, function* (defaultData = {}) {
111
125
  trm_commons_1.Logger.log(`Registry authentication request`, true);
112
126
  const ping = yield this.ping();
113
- trm_commons_1.Logger.log(`Registry authentication type is: ${ping.authenticationType}`, true);
114
- if (ping.authenticationType !== trm_registry_types_1.AuthenticationType.NO_AUTH) {
115
- if (ping.authenticationType === trm_registry_types_1.AuthenticationType.BASIC) {
127
+ trm_commons_1.Logger.log(`Registry authentication type is: ${ping.authentication_type}`, true);
128
+ if (ping.authentication_type !== trm_registry_types_1.AuthenticationType.NO_AUTH) {
129
+ if (ping.authentication_type === trm_registry_types_1.AuthenticationType.BASIC) {
116
130
  yield this._basicAuth(defaultData);
117
131
  }
118
- if (ping.authenticationType === trm_registry_types_1.AuthenticationType.OAUTH2) {
132
+ if (ping.authentication_type === trm_registry_types_1.AuthenticationType.OAUTH2) {
119
133
  yield this._oauth2(defaultData);
120
134
  }
121
- if (ping.authenticationType === trm_registry_types_1.AuthenticationType.TOKEN) {
135
+ if (ping.authentication_type === trm_registry_types_1.AuthenticationType.TOKEN) {
122
136
  yield this._tokenAuth(defaultData);
123
137
  }
124
138
  }
125
- this._whoami = null;
139
+ this._cache.flushAll();
126
140
  return this;
127
141
  });
128
142
  }
129
143
  _basicAuth() {
130
144
  return __awaiter(this, arguments, void 0, function* (defaultData = {}) {
131
- var axiosHeaders = new axios_1.AxiosHeaders();
145
+ var axiosHeaders = this.getDefaultAxiosHeaders();
132
146
  var axiosDefaults = {
133
147
  baseURL: this.endpoint,
134
148
  headers: axiosHeaders
@@ -166,7 +180,7 @@ class Registry {
166
180
  }
167
181
  _tokenAuth() {
168
182
  return __awaiter(this, arguments, void 0, function* (defaultData = {}) {
169
- var axiosHeaders = new axios_1.AxiosHeaders();
183
+ var axiosHeaders = this.getDefaultAxiosHeaders();
170
184
  var axiosDefaults = {
171
185
  baseURL: this.endpoint,
172
186
  headers: axiosHeaders
@@ -186,7 +200,7 @@ class Registry {
186
200
  when: !token
187
201
  }]);
188
202
  token = token || inq1.token;
189
- axiosHeaders.setAuthorization(`token ${token}`);
203
+ axiosHeaders.setAuthorization(`Bearer ${token}`);
190
204
  this._axiosInstance = (0, commons_1.getAxiosInstance)(axiosDefaults, AXIOS_CTX);
191
205
  this._authData = {
192
206
  token
@@ -248,13 +262,13 @@ class Registry {
248
262
  runAuthFlow = true;
249
263
  }
250
264
  if (runAuthFlow) {
251
- const oAuth2 = ping.authenticationData;
265
+ const oAuth2 = ping.authentication_data;
252
266
  const oAuth2ProtocolPath = "//oauth2";
253
267
  const sRedirectUri = `trm:${oAuth2ProtocolPath}`;
254
- const oAuth2Url = new URL(oAuth2.authorizationUrl);
268
+ const oAuth2Url = new URL(oAuth2.authorization_url);
255
269
  const oAuth2State = (0, crypto_1.randomUUID)();
256
- oAuth2Url.searchParams.append("client_id", oAuth2.clientId);
257
- oAuth2Url.searchParams.append("response_type", oAuth2.responseType);
270
+ oAuth2Url.searchParams.append("client_id", oAuth2.client_id);
271
+ oAuth2Url.searchParams.append("response_type", oAuth2.response_type);
258
272
  oAuth2Url.searchParams.append("redirect_uri", sRedirectUri);
259
273
  oAuth2Url.searchParams.append("state", oAuth2State);
260
274
  var sAuth2Url = oAuth2Url.toString();
@@ -291,7 +305,7 @@ class Registry {
291
305
  }
292
306
  }
293
307
  this._authData = authData;
294
- var axiosHeaders = new axios_1.AxiosHeaders();
308
+ var axiosHeaders = this.getDefaultAxiosHeaders();
295
309
  var axiosDefaults = {
296
310
  baseURL: this.endpoint,
297
311
  headers: axiosHeaders
@@ -305,97 +319,155 @@ class Registry {
305
319
  }
306
320
  ping() {
307
321
  return __awaiter(this, void 0, void 0, function* () {
308
- if (!this._ping) {
322
+ var data = this._cache.get('ping');
323
+ if (!data) {
309
324
  try {
310
- this._ping = (yield this._axiosInstance.get('/')).data;
325
+ data = (yield this._axiosInstance.get('/', {
326
+ headers: {}
327
+ })).data;
311
328
  }
312
329
  catch (e) {
313
- throw new Error('Registry cannot be reached.');
330
+ if (e.errors) {
331
+ e.errors.forEach(err => trm_commons_1.Logger.error(err.message));
332
+ }
333
+ data = new Error(`Registry "${this.name}" cannot be reached.`);
314
334
  }
335
+ this._cache.set('ping', data);
336
+ }
337
+ if (data instanceof Error) {
338
+ throw data;
339
+ }
340
+ else {
341
+ return data;
315
342
  }
316
- return this._ping;
317
343
  });
318
344
  }
319
345
  whoAmI() {
320
346
  return __awaiter(this, void 0, void 0, function* () {
321
- if (!this._whoami) {
322
- this._whoami = (yield this._axiosInstance.get('/whoami')).data;
347
+ var data = this._cache.get('whoami');
348
+ if (!data) {
349
+ try {
350
+ data = (yield this._axiosInstance.get('/whoami')).data;
351
+ }
352
+ catch (e) {
353
+ data = e;
354
+ }
355
+ this._cache.set('whoami', data);
356
+ }
357
+ if (data instanceof Error) {
358
+ throw data;
359
+ }
360
+ else {
361
+ return data;
323
362
  }
324
- return this._whoami;
325
363
  });
326
364
  }
327
- packageExists(name, version) {
328
- return __awaiter(this, void 0, void 0, function* () {
329
- var responseStatus;
330
- try {
331
- responseStatus = (yield this._axiosInstance.get('/view', {
332
- params: {
333
- name,
334
- version
365
+ getPackage(fullName_1) {
366
+ return __awaiter(this, arguments, void 0, function* (fullName, version = 'latest') {
367
+ var data = this._cache.get(`package-${fullName}-${version}`);
368
+ if (!data) {
369
+ var ttl;
370
+ try {
371
+ data = (yield this._axiosInstance.get(`/package/${fullName}`, {
372
+ params: {
373
+ version
374
+ }
375
+ })).data;
376
+ if (data.download_link_expiry) {
377
+ try {
378
+ ttl = Math.max(0, Math.floor((data.download_link_expiry - Date.now()) / 1000));
379
+ }
380
+ catch (_a) { }
335
381
  }
336
- })).status;
382
+ }
383
+ catch (e) {
384
+ data = e;
385
+ }
386
+ this._cache.set(`package-${fullName}-${version}`, data, ttl);
387
+ }
388
+ if (data instanceof Error) {
389
+ throw data;
390
+ }
391
+ else {
392
+ return data;
393
+ }
394
+ });
395
+ }
396
+ downloadArtifact(fullName_1) {
397
+ return __awaiter(this, arguments, void 0, function* (fullName, version = 'latest') {
398
+ var buffer;
399
+ const packageData = yield this.getPackage(fullName, version);
400
+ try {
401
+ buffer = (yield this._axiosInstance.get(packageData.download_link, {
402
+ headers: {
403
+ 'Accept': 'application/octet-stream',
404
+ },
405
+ maxRedirects: 10,
406
+ responseType: 'arraybuffer',
407
+ validateStatus: s => s >= 200 && s < 400,
408
+ })).data;
337
409
  }
338
410
  catch (e) {
339
- responseStatus = 404;
411
+ trm_commons_1.Logger.error(e.toString(), true);
412
+ trm_commons_1.Logger.error(`Failed to fetch package at ${packageData.download_link}: ${e.message}`);
413
+ throw e;
340
414
  }
341
- return responseStatus === 200;
415
+ return new TrmArtifact_1.TrmArtifact(buffer);
342
416
  });
343
417
  }
344
- view(name_1) {
345
- return __awaiter(this, arguments, void 0, function* (name, version = 'latest') {
346
- const response = (yield this._axiosInstance.get('/view', {
418
+ validatePublish(fullName_1) {
419
+ return __awaiter(this, arguments, void 0, function* (fullName, version = 'latest') {
420
+ const status = (yield this._axiosInstance.get(`/publish/check/${fullName}`, {
347
421
  params: {
348
- name,
349
422
  version
350
423
  }
351
- })).data;
352
- return response;
424
+ })).status;
425
+ if (status !== 204) {
426
+ throw new Error(`Package cannot be published`);
427
+ }
353
428
  });
354
429
  }
355
- getArtifact(name_1) {
356
- return __awaiter(this, arguments, void 0, function* (name, version = 'latest') {
357
- const response = (yield this._axiosInstance.get('/install', {
430
+ publish(fullName, version, artifact, readme) {
431
+ return __awaiter(this, void 0, void 0, function* () {
432
+ const fileName = `${fullName}_v${version}`.replace('.', '_') + '.trm';
433
+ const formData = new FormData.default();
434
+ formData.append('artifact', artifact.binary, {
435
+ filename: fileName,
436
+ contentType: 'application/octet-stream'
437
+ });
438
+ if (readme) {
439
+ formData.append('readme', Buffer.from(readme), {
440
+ filename: 'readme.md',
441
+ contentType: 'text/markdown'
442
+ });
443
+ }
444
+ return (yield this._axiosInstance.post(`/publish/${fullName}`, formData, {
358
445
  params: {
359
- name,
360
446
  version
361
447
  },
362
- headers: {
363
- 'Accept': 'application/octet-stream'
364
- },
365
- responseType: 'arraybuffer'
366
- })).data;
367
- return new TrmArtifact_1.TrmArtifact(response);
368
- });
369
- }
370
- publishArtifact(packageName, version, artifact, readme) {
371
- return __awaiter(this, void 0, void 0, function* () {
372
- const fileName = `${packageName}@${version}`.replace('.', '_') + '.trm';
373
- const formData = new FormData.default();
374
- formData.append('artifact', artifact.binary, fileName);
375
- formData.append('readme', readme);
376
- yield this._axiosInstance.post('/publish', formData, {
377
448
  headers: formData.getHeaders()
378
- });
449
+ })).data;
379
450
  });
380
451
  }
381
- unpublish(packageName, version) {
452
+ unpublish(fullName, version) {
382
453
  return __awaiter(this, void 0, void 0, function* () {
383
- yield this._axiosInstance.post('/unpublish', {
384
- package: packageName,
385
- version
454
+ yield this._axiosInstance.post(`/unpublish/${fullName}`, null, {
455
+ params: {
456
+ version
457
+ }
386
458
  });
387
459
  });
388
460
  }
389
- getReleases(packageName, versionRange) {
461
+ deprecate(fullName, version, reason) {
390
462
  return __awaiter(this, void 0, void 0, function* () {
391
- const response = (yield this._axiosInstance.get('/releases', {
463
+ yield this._axiosInstance.post(`/deprecate/${fullName}`, {
464
+ deprecate_note: reason
465
+ }, {
392
466
  params: {
393
- name: packageName,
394
- version: versionRange
467
+ version
395
468
  }
396
- })).data;
397
- return response;
469
+ });
398
470
  });
399
471
  }
400
472
  }
401
- exports.Registry = Registry;
473
+ exports.RegistryV2 = RegistryV2;
@@ -1,4 +1,4 @@
1
- export * from "./Registry";
1
+ export * from "./RegistryV2";
2
2
  export * from "./RegistryType";
3
3
  export * from "./AbstractRegistry";
4
4
  export * from "./FileSystem";
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Registry"), exports);
17
+ __exportStar(require("./RegistryV2"), exports);
18
18
  __exportStar(require("./RegistryType"), exports);
19
19
  __exportStar(require("./AbstractRegistry"), exports);
20
20
  __exportStar(require("./FileSystem"), exports);
@@ -6,7 +6,7 @@ import { TrmPackage } from "../trmPackage";
6
6
  import { InstallPackage } from "./InstallPackage";
7
7
  export interface ISystemConnectorBase {
8
8
  getTransportStatus: (trkorr: components.TRKORR) => Promise<string>;
9
- getPackageWorkbenchTransport: (oPackage: TrmPackage) => Promise<Transport>;
9
+ getWbTransports: (trmPackage?: string | TrmPackage) => Promise<Transport[]>;
10
10
  getSourceTrkorr: () => Promise<components.TRKORR[]>;
11
11
  getIgnoredTrkorr: () => Promise<components.TRKORR[]>;
12
12
  getObject: (pgmid: components.PGMID, object: components.TROBJTYPE, objName: components.SOBJ_NAME) => Promise<struct.TADIR>;
@@ -19,7 +19,7 @@ export declare namespace SystemConnector {
19
19
  function closeConnection(): Promise<void>;
20
20
  function checkConnection(): Promise<boolean>;
21
21
  function getTransportStatus(trkorr: TRKORR): Promise<string>;
22
- function getPackageWorkbenchTransport(oPackage: TrmPackage): Promise<Transport>;
22
+ function getWbTransports(trmPackage?: string | TrmPackage): Promise<Transport[]>;
23
23
  function getInstalledPackages(includeSources: boolean, refresh?: boolean, includeLocals?: boolean): Promise<TrmPackage[]>;
24
24
  function getDevclass(devclass: DEVCLASS): Promise<TDEVC>;
25
25
  function getTransportTargets(): Promise<TMSCSYS[]>;
@@ -79,13 +79,13 @@ var SystemConnector;
79
79
  });
80
80
  }
81
81
  SystemConnector.getTransportStatus = getTransportStatus;
82
- function getPackageWorkbenchTransport(oPackage) {
82
+ function getWbTransports(trmPackage) {
83
83
  return __awaiter(this, void 0, void 0, function* () {
84
84
  yield checkSystemConnector();
85
- return SystemConnector.systemConnector.getPackageWorkbenchTransport(oPackage);
85
+ return SystemConnector.systemConnector.getWbTransports(trmPackage);
86
86
  });
87
87
  }
88
- SystemConnector.getPackageWorkbenchTransport = getPackageWorkbenchTransport;
88
+ SystemConnector.getWbTransports = getWbTransports;
89
89
  function getInstalledPackages(includeSources, refresh, includeLocals) {
90
90
  return __awaiter(this, void 0, void 0, function* () {
91
91
  yield checkSystemConnector();
@@ -29,7 +29,7 @@ export declare abstract class SystemConnectorBase implements ISystemConnectorBas
29
29
  protected abstract getInstalledPackagesBackend(): Promise<struct.ZTY_TRM_PACKAGE[]>;
30
30
  constructor();
31
31
  getTransportStatus(trkorr: TRKORR): Promise<string>;
32
- getPackageWorkbenchTransport(oPackage: TrmPackage): Promise<Transport>;
32
+ getWbTransports(trmPackage?: string | TrmPackage): Promise<Transport[]>;
33
33
  getSourceTrkorr(refresh?: boolean): Promise<TRKORR[]>;
34
34
  getObject(pgmid: PGMID, object: TROBJTYPE, objName: SOBJ_NAME): Promise<TADIR>;
35
35
  getIgnoredTrkorr(refresh?: boolean): Promise<TRKORR[]>;