@licensespring/node-sdk 1.2.0 → 1.3.1-alpha

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.
@@ -0,0 +1,432 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.FloatingAPI = void 0;
39
+ const typia_1 = __importDefault(require("typia"));
40
+ const service_1 = __importDefault(require("./service"));
41
+ const logger_1 = require("./logger");
42
+ const hwid_1 = require("../hwid");
43
+ const common_1 = require("./common");
44
+ const node_crypto_1 = require("node:crypto");
45
+ const asn1js = __importStar(require("asn1js"));
46
+ const pkijs_1 = require("pkijs");
47
+ class FloatingAPI {
48
+ constructor(config) {
49
+ var _a, _b;
50
+ this.certsVerified = false;
51
+ if ((_a = config.hardwareID) === null || _a === void 0 ? void 0 : _a.length) {
52
+ this.hardwareIDmanual = config.hardwareID;
53
+ }
54
+ (() => { const __is = input => true; let _errorFactory; return (input, errorFactory) => {
55
+ if (false === __is(input)) {
56
+ _errorFactory = errorFactory;
57
+ ((input, _path, _exceptionable = true) => true)(input, "$input", true);
58
+ }
59
+ return input;
60
+ }; })()(config);
61
+ this.setLogLevel((_b = config.logLevel) !== null && _b !== void 0 ? _b : 'off');
62
+ this.config = config;
63
+ this.service = new service_1.default(this.config);
64
+ }
65
+ verifyCertChain() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ var _a, _b, _c, _d, _e;
68
+ if (this.certsVerified)
69
+ return true;
70
+ const cryptoEngine = new pkijs_1.CryptoEngine({
71
+ name: 'node-webcrypto',
72
+ crypto: node_crypto_1.webcrypto,
73
+ subtle: node_crypto_1.webcrypto.subtle,
74
+ });
75
+ function pemToDer(pem) {
76
+ const b64 = pem.replace(/-----[^-]+-----/g, '').replace(/\s+/g, '');
77
+ return Uint8Array.from(Buffer.from(b64, 'base64')).buffer;
78
+ }
79
+ function certFromPem(pem) {
80
+ const der = pemToDer(pem);
81
+ const { result, offset } = asn1js.fromBER(der);
82
+ if (offset === -1)
83
+ throw new Error('Bad certificate ASN.1');
84
+ return new pkijs_1.Certificate({ schema: result });
85
+ }
86
+ const OID_RSA_ENC = '1.2.840.113549.1.1.1';
87
+ function parseCertFromPem(pemCert) {
88
+ const { result, offset } = asn1js.fromBER(pemToDer(pemCert));
89
+ if (offset === -1)
90
+ throw new Error('Bad certificate ASN.1');
91
+ return new pkijs_1.Certificate({ schema: result });
92
+ }
93
+ function wrapRsaPkcs1ToSpki(pkcs1Der) {
94
+ const rsaAlg = new asn1js.Sequence({
95
+ value: [
96
+ new asn1js.ObjectIdentifier({ value: OID_RSA_ENC }),
97
+ new asn1js.Null()
98
+ ]
99
+ });
100
+ const spkBitString = new asn1js.BitString({ valueHex: pkcs1Der });
101
+ const spki = new asn1js.Sequence({ value: [rsaAlg, spkBitString] });
102
+ return spki.toBER(false);
103
+ }
104
+ function normalizePublicKeyToSpkiDer(pubKeyInput) {
105
+ if (pubKeyInput.includes('BEGIN PUBLIC KEY')) {
106
+ return pemToDer(pubKeyInput);
107
+ }
108
+ if (pubKeyInput.includes('BEGIN RSA PUBLIC KEY')) {
109
+ const pkcs1 = pemToDer(pubKeyInput);
110
+ return wrapRsaPkcs1ToSpki(pkcs1);
111
+ }
112
+ throw new Error('Unsupported PEM type. Provide SPKI (BEGIN PUBLIC KEY) or RSA PKCS#1.');
113
+ }
114
+ function keyMatchesLeafCertPkijs(leafCertPem, publicKey) {
115
+ const cert = parseCertFromPem(leafCertPem);
116
+ const certSpkiDer = cert.subjectPublicKeyInfo.toSchema().toBER(false);
117
+ const keySpkiDer = normalizePublicKeyToSpkiDer(publicKey);
118
+ const a = new Uint8Array(certSpkiDer);
119
+ const b = new Uint8Array(keySpkiDer);
120
+ if (a.length !== b.length)
121
+ return false;
122
+ for (let i = 0; i < a.length; i++)
123
+ if (a[i] !== b[i])
124
+ return false;
125
+ return true;
126
+ }
127
+ const chainPem = this.config.certChain;
128
+ const [leafPem, intermPem, rootPem] = chainPem.split(/(?<=-----END CERTIFICATE-----)/g);
129
+ const root = certFromPem(rootPem);
130
+ const intermediate = certFromPem(intermPem);
131
+ const leaf = certFromPem(leafPem);
132
+ const certs = [leaf, intermediate];
133
+ const trustedCerts = [root];
134
+ const validationEngine = new pkijs_1.CertificateChainValidationEngine({
135
+ certs,
136
+ trustedCerts,
137
+ crls: [],
138
+ ocsps: [],
139
+ checkDate: new Date()
140
+ });
141
+ const { result, resultCode, resultMessage } = yield validationEngine.verify({}, cryptoEngine);
142
+ if (!result) {
143
+ throw new Error(`Chain validation failed [${resultCode}]: ${resultMessage}`);
144
+ }
145
+ const bc = (_a = leaf.extensions) === null || _a === void 0 ? void 0 : _a.find(e => e.extnID === '2.5.29.19');
146
+ if (bc && ((_b = bc.parsedValue) === null || _b === void 0 ? void 0 : _b.cA) === true) {
147
+ throw new Error('Leaf certificate is marked as a CA (cA=TRUE).');
148
+ }
149
+ const eku = (_c = leaf.extensions) === null || _c === void 0 ? void 0 : _c.find(e => e.extnID === '1.3.6.1.5.5.7.1.3' || e.extnID === '2.5.29.37');
150
+ const ekuOIDs = ((_d = eku === null || eku === void 0 ? void 0 : eku.parsedValue) === null || _d === void 0 ? void 0 : _d.extensions)
151
+ ? eku.parsedValue.extensions.map((x) => x.extnID)
152
+ : ((_e = eku === null || eku === void 0 ? void 0 : eku.parsedValue) === null || _e === void 0 ? void 0 : _e.keyPurposes) || [];
153
+ if (eku && !ekuOIDs.includes('1.3.6.1.5.5.7.3.1')) {
154
+ throw new Error('Leaf EKU does not include serverAuth.');
155
+ }
156
+ const pubKey = this.config.publicKey;
157
+ if (!keyMatchesLeafCertPkijs(leafPem, pubKey)) {
158
+ throw new Error('Provided public key does not belong to the leaf certificate');
159
+ }
160
+ this.certsVerified = true;
161
+ return true;
162
+ });
163
+ }
164
+ setLogLevel(level) {
165
+ logger_1.Logger.level = level;
166
+ }
167
+ getHardwareID(algorithm) {
168
+ var _a, _b;
169
+ if (algorithm === void 0) { algorithm = (_a = this.config.hardwareIDMethod) !== null && _a !== void 0 ? _a : 0; }
170
+ return String((_b = this.hardwareIDmanual) !== null && _b !== void 0 ? _b : (0, hwid_1.getHardwareId)(algorithm));
171
+ }
172
+ ping() {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ const { response } = yield this.service.getRequest('/ping', {});
175
+ return response.version == 'v5';
176
+ });
177
+ }
178
+ authAddUser(user) {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ const { response } = yield this.service.postRequest('/auth/add-user', user);
181
+ return response;
182
+ });
183
+ }
184
+ authChangePassword(body) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ const { response } = yield this.service.postRequest('/auth/change-password', body);
187
+ return typeof response == 'string';
188
+ });
189
+ }
190
+ authInitialPassword(body) {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ const { response } = yield this.service.postRequest('/auth/initial-password', body);
193
+ return typeof response == 'string';
194
+ });
195
+ }
196
+ authLogin(body) {
197
+ return __awaiter(this, void 0, void 0, function* () {
198
+ const { response } = yield this.service.postRequest('/auth/login', body);
199
+ return response;
200
+ });
201
+ }
202
+ authMe() {
203
+ return __awaiter(this, void 0, void 0, function* () {
204
+ const { response, headers } = yield this.service.getRequest('/auth/me', {});
205
+ const _headers = headers;
206
+ return response;
207
+ });
208
+ }
209
+ authUsersList() {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ const { response } = yield this.service.getRequest('/auth/users', {});
212
+ return response;
213
+ });
214
+ }
215
+ authUsersDelete() {
216
+ return __awaiter(this, void 0, void 0, function* () {
217
+ const { response } = yield this.service.deleteRequest('/auth/users', {});
218
+ return response;
219
+ });
220
+ }
221
+ getConfig() {
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ const { response } = yield this.service.getRequest('/config', {});
224
+ return response;
225
+ });
226
+ }
227
+ patchConfig(input) {
228
+ return __awaiter(this, void 0, void 0, function* () {
229
+ const { response } = yield this.service.patchRequest('/config', input);
230
+ return response;
231
+ });
232
+ }
233
+ bundleActivate(body) {
234
+ return __awaiter(this, void 0, void 0, function* () {
235
+ const { response } = yield this.service.postRequest('/bundle', body);
236
+ return response;
237
+ });
238
+ }
239
+ bundleDeactivate(id) {
240
+ return __awaiter(this, void 0, void 0, function* () {
241
+ const { response } = yield this.service.deleteRequest(`/bundle/${id}`);
242
+ return response;
243
+ });
244
+ }
245
+ bundleOfflineActivationGenerate(body) {
246
+ return __awaiter(this, void 0, void 0, function* () {
247
+ const { response } = yield this.service.postRequest('/bundle/offline/activation/generate', body);
248
+ return response;
249
+ });
250
+ }
251
+ bundleOfflineDeactivationGenerate(body) {
252
+ return __awaiter(this, void 0, void 0, function* () {
253
+ const { response } = yield this.service.postRequest('/bundle/offline/deactivation/generate', body);
254
+ return response;
255
+ });
256
+ }
257
+ bundleOfflineActivationUpload(product, file) {
258
+ return __awaiter(this, void 0, void 0, function* () {
259
+ const form = new FormData();
260
+ form.append('product', product);
261
+ form.append('file', file);
262
+ const { response } = yield this.service.postRequest('/bundle/offline/activation/upload', form);
263
+ return response;
264
+ });
265
+ }
266
+ listLicenses(params) {
267
+ return __awaiter(this, void 0, void 0, function* () {
268
+ const { response } = yield this.service.getRequest('license', { product: params === null || params === void 0 ? void 0 : params.product });
269
+ return response;
270
+ });
271
+ }
272
+ activateLicense(body) {
273
+ return __awaiter(this, void 0, void 0, function* () {
274
+ const { response } = yield this.service.postRequest('/license', body);
275
+ return response;
276
+ });
277
+ }
278
+ getLicenseById(id) {
279
+ return __awaiter(this, void 0, void 0, function* () {
280
+ const { response } = yield this.service.getRequest(`/license/${id}`, {});
281
+ return response;
282
+ });
283
+ }
284
+ deactivateLicense(id) {
285
+ return __awaiter(this, void 0, void 0, function* () {
286
+ const { response } = yield this.service.deleteRequest(`/license/${id}`);
287
+ return typeof response == 'string';
288
+ });
289
+ }
290
+ addLicenseConsumption(id, body) {
291
+ return __awaiter(this, void 0, void 0, function* () {
292
+ yield this.verifyCertChain();
293
+ const { response, headers } = yield this.service.postRequest(`/license/${id}/consumption/add`, body);
294
+ (0, common_1.checkSignatureV2)(this.config.publicKey, response, (0, common_1.getHeaderString)(headers, 'LicenseSignature'));
295
+ return response;
296
+ });
297
+ }
298
+ addFeatureConsumption(id, body) {
299
+ return __awaiter(this, void 0, void 0, function* () {
300
+ yield this.verifyCertChain();
301
+ const { response, headers } = yield this.service.postRequest(`/license/${id}/consumption/feature/add`, body);
302
+ (0, common_1.checkSignatureV2)(this.config.publicKey, response, (0, common_1.getHeaderString)(headers, 'LicenseSignature'));
303
+ return response;
304
+ });
305
+ }
306
+ listLicenseFeatureUsers(id) {
307
+ return __awaiter(this, void 0, void 0, function* () {
308
+ const { response } = yield this.service.getRequest(`/license/${id}/feature`, {});
309
+ return response;
310
+ });
311
+ }
312
+ registerFeatureForUser(id, body) {
313
+ return __awaiter(this, void 0, void 0, function* () {
314
+ const { response } = yield this.service.postRequest(`/license/${id}/feature/register`, body);
315
+ return response;
316
+ });
317
+ }
318
+ releaseFeatureForUser(id, body) {
319
+ return __awaiter(this, void 0, void 0, function* () {
320
+ yield this.service.postRequest(`/license/${id}/feature/release`, body);
321
+ return true;
322
+ });
323
+ }
324
+ releaseFeatureForAllUsers(id, body) {
325
+ return __awaiter(this, void 0, void 0, function* () {
326
+ const { response } = yield this.service.postRequest(`/license/${id}/feature/release_all`, body);
327
+ return response;
328
+ });
329
+ }
330
+ listLicenseUsers(id) {
331
+ return __awaiter(this, void 0, void 0, function* () {
332
+ const { response } = yield this.service.getRequest(`/license/${id}/user`, {});
333
+ return response;
334
+ });
335
+ }
336
+ registerUserToLicense(id, body) {
337
+ return __awaiter(this, void 0, void 0, function* () {
338
+ yield this.verifyCertChain();
339
+ const { response, headers } = yield this.service.postRequest(`/license/${id}/user/register`, body);
340
+ (0, common_1.checkSignatureV2)(this.config.publicKey, response, (0, common_1.getHeaderString)(headers, 'LicenseSignature'));
341
+ return response;
342
+ });
343
+ }
344
+ unregisterUserFromLicense(id, body) {
345
+ return __awaiter(this, void 0, void 0, function* () {
346
+ yield this.service.postRequest(`/license/${id}/user/unregister`, body);
347
+ return true;
348
+ });
349
+ }
350
+ unregisterAllUsersFromLicense(id) {
351
+ return __awaiter(this, void 0, void 0, function* () {
352
+ const { response } = yield this.service.postRequest(`/license/${id}/user/unregister_all`, {});
353
+ return response;
354
+ });
355
+ }
356
+ borrowLicenseForUser(id, body) {
357
+ return __awaiter(this, void 0, void 0, function* () {
358
+ yield this.verifyCertChain();
359
+ const { response, headers } = yield this.service.postRequest(`/license/${id}/user/borrow`, body);
360
+ (0, common_1.checkSignatureV2)(this.config.publicKey, response, (0, common_1.getHeaderString)(headers, 'LicenseSignature'));
361
+ return response;
362
+ });
363
+ }
364
+ offlineActivationGenerate(body) {
365
+ return __awaiter(this, void 0, void 0, function* () {
366
+ const { response } = yield this.service.postRequest('/license/offline/activation/generate', body);
367
+ return response;
368
+ });
369
+ }
370
+ offlineActivationUpload(product, file) {
371
+ return __awaiter(this, void 0, void 0, function* () {
372
+ const form = new FormData();
373
+ form.append('product', product);
374
+ form.append('file', file);
375
+ const { response } = yield this.service.postRequest('/license/offline/activation/upload', form);
376
+ return response;
377
+ });
378
+ }
379
+ offlineDeactivationGenerate(body) {
380
+ return __awaiter(this, void 0, void 0, function* () {
381
+ const { response } = yield this.service.postRequest('/license/offline/deactivation/generate', body);
382
+ return response;
383
+ });
384
+ }
385
+ airgapGenerateActivation(body) {
386
+ return __awaiter(this, void 0, void 0, function* () {
387
+ const { response } = yield this.service.postRequest('/license/airgap/generate', body);
388
+ return response;
389
+ });
390
+ }
391
+ airgapGenerateDeactivation(body) {
392
+ return __awaiter(this, void 0, void 0, function* () {
393
+ const { response } = yield this.service.postRequest('/license/airgap/deactivate/generate', body);
394
+ return response;
395
+ });
396
+ }
397
+ airgapDeactivate(body) {
398
+ return __awaiter(this, void 0, void 0, function* () {
399
+ const { response } = yield this.service.postRequest('/license/airgap/deactivate', body);
400
+ return response;
401
+ });
402
+ }
403
+ airgapActivate(file, jsonFile) {
404
+ return __awaiter(this, void 0, void 0, function* () {
405
+ const form = new FormData();
406
+ form.append('file', file);
407
+ form.append('json', jsonFile);
408
+ const { response } = yield this.service.postRequest('/license/airgap/activate', form);
409
+ return response;
410
+ });
411
+ }
412
+ getSyncConfig() {
413
+ return __awaiter(this, void 0, void 0, function* () {
414
+ const { response } = yield this.service.getRequest('/sync', {});
415
+ return response;
416
+ });
417
+ }
418
+ setSyncMode(body) {
419
+ return __awaiter(this, void 0, void 0, function* () {
420
+ const { response } = yield this.service.postRequest('/sync', body);
421
+ return typeof response == 'string';
422
+ });
423
+ }
424
+ triggerSync() {
425
+ return __awaiter(this, void 0, void 0, function* () {
426
+ const { response } = yield this.service.postRequest('/sync/trigger', {});
427
+ return typeof response == 'string';
428
+ });
429
+ }
430
+ }
431
+ exports.FloatingAPI = FloatingAPI;
432
+ //# sourceMappingURL=floating-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-api.js","sourceRoot":"","sources":["../../src/floating-api.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import LicenseAPI from './api';
2
2
  import BundleManager from './bundle-manager';
3
+ import { FloatingAPI } from './floating-api';
3
4
  import LicenseManager from './license-manager';
4
5
  import { Logger } from './logger';
5
6
  import { Watchdog } from './watchdog';
6
- export { LicenseAPI, LicenseManager, BundleManager, Watchdog, Logger };
7
+ export { LicenseAPI, FloatingAPI, LicenseManager, BundleManager, Watchdog, Logger };
package/dist/src/index.js CHANGED
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Logger = exports.Watchdog = exports.BundleManager = exports.LicenseManager = exports.LicenseAPI = void 0;
6
+ exports.Logger = exports.Watchdog = exports.BundleManager = exports.LicenseManager = exports.FloatingAPI = exports.LicenseAPI = void 0;
7
7
  const api_1 = __importDefault(require("./api"));
8
8
  exports.LicenseAPI = api_1.default;
9
9
  const bundle_manager_1 = __importDefault(require("./bundle-manager"));
10
10
  exports.BundleManager = bundle_manager_1.default;
11
+ const floating_api_1 = require("./floating-api");
12
+ Object.defineProperty(exports, "FloatingAPI", { enumerable: true, get: function () { return floating_api_1.FloatingAPI; } });
11
13
  const license_manager_1 = __importDefault(require("./license-manager"));
12
14
  exports.LicenseManager = license_manager_1.default;
13
15
  const logger_1 = require("./logger");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gDAA+B;AAMtB,qBANF,aAAU,CAME;AALnB,sEAA6C;AAKR,wBAL9B,wBAAa,CAK8B;AAJlD,wEAA+C;AAI1B,yBAJd,yBAAc,CAIc;AAHnC,qCAAkC;AAG4B,uFAHrD,eAAM,OAGqD;AAFpE,yCAAsC;AAEc,yFAF3C,mBAAQ,OAE2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gDAA+B;AAOtB,qBAPF,aAAU,CAOE;AANnB,sEAA6C;AAMK,wBAN3C,wBAAa,CAM2C;AAL/D,iDAA6C;AAKxB,4FALZ,0BAAW,OAKY;AAJhC,wEAA+C;AAIb,yBAJ3B,yBAAc,CAI2B;AAHhD,qCAAkC;AAGyC,uFAHlE,eAAM,OAGkE;AAFjF,yCAAsC;AAE2B,yFAFxD,mBAAQ,OAEwD"}
@@ -16,7 +16,7 @@ export default class LicenseManager extends AbstractManager {
16
16
  activateOffline(payload: string): import("./response-types").ActivateOfflineResponse;
17
17
  deactivateOffline(): void;
18
18
  getTrialKey(payload: Managed<FromSchema<(typeof trialKey)['querystring']>>): Promise<import("./response-types").TrialResponse>;
19
- getUserLicenses(payload: Managed<FromSchema<(typeof userLicenses)['querystring']>>): Promise<import("./response-types").GetUserLicensesResponse[]>;
19
+ getUserLicenses(payload: Managed<FromSchema<(typeof userLicenses)['querystring']>>): Promise<import("./response-types").GetUserLicensesResponse>;
20
20
  getCustomerLicenseUsers(payload: Managed<FromSchema<(typeof customerLicenseUsers)['querystring']>>): Promise<import("./response-types").CustomerLicenseUsersResponse>;
21
21
  checkLicenseFeature(payload: Managed<FromSchema<(typeof checkLicenseFeature)['querystring']>>): Promise<import("./response-types").CheckLicenseFeatureResponse>;
22
22
  addConsumption(payload: Managed<FromSchema<(typeof addConsumption)['body']>>): Promise<import("./response-types").AddConsumptionResponse>;
@@ -27,5 +27,17 @@ declare class RequestService {
27
27
  headers: AxiosHeaders;
28
28
  response: T;
29
29
  }>;
30
+ putRequest<T>(url: string, payload: any, headers?: Record<string, string>, licenseAPIAuth?: boolean): Promise<{
31
+ headers: AxiosHeaders;
32
+ response: T;
33
+ }>;
34
+ patchRequest<T>(url: string, payload: any, headers?: Record<string, string>, licenseAPIAuth?: boolean): Promise<{
35
+ headers: AxiosHeaders;
36
+ response: T;
37
+ }>;
38
+ deleteRequest<T>(url: string, headers?: Record<string, string>, licenseAPIAuth?: boolean): Promise<{
39
+ headers: AxiosHeaders;
40
+ response: T;
41
+ }>;
30
42
  }
31
43
  export default RequestService;
@@ -154,6 +154,105 @@ class RequestService {
154
154
  });
155
155
  }
156
156
  ;
157
+ putRequest(url_1, payload_1, headers_1) {
158
+ return __awaiter(this, arguments, void 0, function* (url, payload, headers, licenseAPIAuth = true) {
159
+ var _a;
160
+ const _headers = licenseAPIAuth ? yield this.generateLicenseAPIAuthHeaders() : {};
161
+ try {
162
+ const response = yield axios_1.default.put(this.createUrl(url), payload, this.createAxiosObject({
163
+ headers: Object.assign(Object.assign({}, _headers), (headers || {})),
164
+ }));
165
+ return {
166
+ headers: response.headers,
167
+ response: response.data
168
+ };
169
+ }
170
+ catch (error) {
171
+ if (error.code == 'ECONNREFUSED') {
172
+ throw {
173
+ status: 503,
174
+ code: 'cannot_connect_to_server',
175
+ message: 'Cannot connect to server',
176
+ };
177
+ }
178
+ else if (!((_a = error.response) === null || _a === void 0 ? void 0 : _a.data)) {
179
+ throw {
180
+ status: 500,
181
+ code: 'internal_server_error',
182
+ message: 'Internal server error',
183
+ };
184
+ }
185
+ throw error.response.data;
186
+ }
187
+ });
188
+ }
189
+ ;
190
+ patchRequest(url_1, payload_1, headers_1) {
191
+ return __awaiter(this, arguments, void 0, function* (url, payload, headers, licenseAPIAuth = true) {
192
+ var _a;
193
+ const _headers = licenseAPIAuth ? yield this.generateLicenseAPIAuthHeaders() : {};
194
+ try {
195
+ const response = yield axios_1.default.patch(this.createUrl(url), payload, this.createAxiosObject({
196
+ headers: Object.assign(Object.assign({}, _headers), (headers || {})),
197
+ }));
198
+ return {
199
+ headers: response.headers,
200
+ response: response.data
201
+ };
202
+ }
203
+ catch (error) {
204
+ if (error.code == 'ECONNREFUSED') {
205
+ throw {
206
+ status: 503,
207
+ code: 'cannot_connect_to_server',
208
+ message: 'Cannot connect to server',
209
+ };
210
+ }
211
+ else if (!((_a = error.response) === null || _a === void 0 ? void 0 : _a.data)) {
212
+ throw {
213
+ status: 500,
214
+ code: 'internal_server_error',
215
+ message: 'Internal server error',
216
+ };
217
+ }
218
+ throw error.response.data;
219
+ }
220
+ });
221
+ }
222
+ ;
223
+ deleteRequest(url_1, headers_1) {
224
+ return __awaiter(this, arguments, void 0, function* (url, headers, licenseAPIAuth = true) {
225
+ var _a;
226
+ const _headers = licenseAPIAuth ? yield this.generateLicenseAPIAuthHeaders() : {};
227
+ try {
228
+ const response = yield axios_1.default.delete(this.createUrl(url), this.createAxiosObject({
229
+ headers: Object.assign(Object.assign({}, _headers), (headers || {})),
230
+ }));
231
+ return {
232
+ headers: response.headers,
233
+ response: response.data
234
+ };
235
+ }
236
+ catch (error) {
237
+ if (error.code == 'ECONNREFUSED') {
238
+ throw {
239
+ status: 503,
240
+ code: 'cannot_connect_to_server',
241
+ message: 'Cannot connect to server',
242
+ };
243
+ }
244
+ else if (!((_a = error.response) === null || _a === void 0 ? void 0 : _a.data)) {
245
+ throw {
246
+ status: 500,
247
+ code: 'internal_server_error',
248
+ message: 'Internal server error',
249
+ };
250
+ }
251
+ throw error.response.data;
252
+ }
253
+ });
254
+ }
255
+ ;
157
256
  }
158
257
  exports.default = RequestService;
159
258
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"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"}