@api-client/core 0.8.15 → 0.8.17
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/build/browser.d.ts +3 -1
- package/build/browser.js.map +1 -1
- package/build/index.d.ts +3 -1
- package/build/index.js.map +1 -1
- package/build/src/authorization/lib/SecurityProcessor.d.ts +9 -1
- package/build/src/authorization/lib/SecurityProcessor.js +19 -2
- package/build/src/authorization/lib/SecurityProcessor.js.map +1 -1
- package/build/src/models/HttpProject.js +19 -4
- package/build/src/models/HttpProject.js.map +1 -1
- package/build/src/models/ProjectRequest.d.ts +40 -0
- package/build/src/models/ProjectRequest.js +134 -0
- package/build/src/models/ProjectRequest.js.map +1 -1
- package/build/src/runtime/http-runner/HttpRequestRunner.js +3 -3
- package/build/src/runtime/http-runner/HttpRequestRunner.js.map +1 -1
- package/build/src/runtime/node/ProjectRequestRunner.js +6 -1
- package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
- package/data/model.js +4 -3
- package/package.json +1 -1
- package/src/authorization/lib/SecurityProcessor.ts +23 -4
- package/src/models/HttpProject.ts +18 -4
- package/src/models/ProjectRequest.ts +166 -0
- package/src/runtime/http-runner/HttpRequestRunner.ts +3 -3
- package/src/runtime/node/ProjectRequestRunner.ts +6 -1
- package/build/src/runtime/http-runner/RequestAuthorizationProcessor.d.ts +0 -56
- package/build/src/runtime/http-runner/RequestAuthorizationProcessor.js +0 -143
- package/build/src/runtime/http-runner/RequestAuthorizationProcessor.js.map +0 -1
- package/src/runtime/http-runner/RequestAuthorizationProcessor.ts +0 -144
|
@@ -2,6 +2,8 @@ import { Kind as ThingKind } from './Thing.js';
|
|
|
2
2
|
import { Kind as HttpRequestKind } from './HttpRequest.js';
|
|
3
3
|
import v4 from '../lib/uuid.js';
|
|
4
4
|
import { Request } from './Request.js';
|
|
5
|
+
import { Property } from './Property.js';
|
|
6
|
+
import { UriTemplate } from '../lib/parsers/UriTemplate.js';
|
|
5
7
|
export const Kind = 'Core#ProjectRequest';
|
|
6
8
|
/**
|
|
7
9
|
* **Note about the payload.**
|
|
@@ -22,6 +24,8 @@ export class ProjectRequest extends Request {
|
|
|
22
24
|
project;
|
|
23
25
|
/**
|
|
24
26
|
* The key of an environment defined on the project to apply to this request.
|
|
27
|
+
* When not set it inherits environments from parents.
|
|
28
|
+
* However, when this is set, it makes sure that server/variables from this environment are always applied.
|
|
25
29
|
*/
|
|
26
30
|
environment;
|
|
27
31
|
/**
|
|
@@ -268,5 +272,135 @@ export class ProjectRequest extends Request {
|
|
|
268
272
|
}
|
|
269
273
|
return this.project.readEnvironments({ parent: parent?.key });
|
|
270
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* It reads the URL from an environment defined for the request..
|
|
277
|
+
* The environment servers and variables are applies for all environments defined on each folder down to this request.
|
|
278
|
+
* This respects the `encapsulate` flag defined on an environment.
|
|
279
|
+
*
|
|
280
|
+
* By default it applies variables collected from the environments to the url. You can configure this behavior
|
|
281
|
+
* by passing a configuration option.
|
|
282
|
+
*
|
|
283
|
+
* Note on performance.
|
|
284
|
+
* This is a heave computing operation so use it sparingly. For best performance only compute the URL when
|
|
285
|
+
* environments, environment selection or variables change.
|
|
286
|
+
*
|
|
287
|
+
* @param opts Read URL options
|
|
288
|
+
* @returns the read URL or undefined when the URL/environments are not defined.
|
|
289
|
+
*/
|
|
290
|
+
readUrl(opts = {}) {
|
|
291
|
+
const { environment } = this;
|
|
292
|
+
const expects = this.getExpects();
|
|
293
|
+
// note, this list respects the `encapsulate` flag.
|
|
294
|
+
const environments = this.readEnvironments();
|
|
295
|
+
let requestUrl = opts.baseUrl ? undefined : expects.url;
|
|
296
|
+
if (!environments) {
|
|
297
|
+
if (requestUrl && opts.variables) {
|
|
298
|
+
return this.evaluateUri(requestUrl, opts.variables);
|
|
299
|
+
}
|
|
300
|
+
return requestUrl || undefined;
|
|
301
|
+
}
|
|
302
|
+
// we assume that absolute URL has a scheme with a delimiter (://). However, the scheme value can be an URL.
|
|
303
|
+
// When the request starts with `/` is obviously a relative (no domain) URL
|
|
304
|
+
// The edge case is `{` because it may mean a variable with a domain or a path to be appended to the base URI
|
|
305
|
+
// defined in an environment. However, we choose to use `/` as the indicator of being a "relative" URL.
|
|
306
|
+
const isAbsolute = !!requestUrl && !requestUrl.startsWith('/') && requestUrl.includes('://');
|
|
307
|
+
if (isAbsolute && opts.noVariables) {
|
|
308
|
+
// we know the URL exists, it is absolute (server wouldn't be applied anyway), and we don't
|
|
309
|
+
// want to apply variables. We return what we have so far.
|
|
310
|
+
return requestUrl;
|
|
311
|
+
}
|
|
312
|
+
const flatProperties = [];
|
|
313
|
+
let effectiveServer;
|
|
314
|
+
for (const env of environments) {
|
|
315
|
+
if (env.server && env.server.uri) {
|
|
316
|
+
effectiveServer = env.server;
|
|
317
|
+
}
|
|
318
|
+
if (!opts.noVariables && !opts.variables && env.variables) {
|
|
319
|
+
for (const prop of env.variables) {
|
|
320
|
+
// environments are listed from the project's root down to the folder where the request
|
|
321
|
+
// exists. When a folder has a variable that was already defined it is replaced.
|
|
322
|
+
this.addProperty(prop, flatProperties);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
if (env.key === environment) {
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
if (!requestUrl) {
|
|
330
|
+
// we return whatever we have in the server.
|
|
331
|
+
if (effectiveServer) {
|
|
332
|
+
// flatProperties is be empty if `noVariables` option is passed.
|
|
333
|
+
const uri = effectiveServer.readUri();
|
|
334
|
+
if (opts.variables) {
|
|
335
|
+
return this.evaluateUri(uri, opts.variables);
|
|
336
|
+
}
|
|
337
|
+
return this.evaluateUri(uri, flatProperties);
|
|
338
|
+
}
|
|
339
|
+
return undefined;
|
|
340
|
+
}
|
|
341
|
+
if (isAbsolute) {
|
|
342
|
+
// ignore server reading and just apply variables to the request URL
|
|
343
|
+
if (opts.variables) {
|
|
344
|
+
return this.evaluateUri(requestUrl, opts.variables);
|
|
345
|
+
}
|
|
346
|
+
return this.evaluateUri(requestUrl, flatProperties);
|
|
347
|
+
}
|
|
348
|
+
let serverUrl = '';
|
|
349
|
+
if (effectiveServer) {
|
|
350
|
+
serverUrl = effectiveServer.readUri();
|
|
351
|
+
}
|
|
352
|
+
if (!serverUrl.endsWith('/')) {
|
|
353
|
+
serverUrl += '/';
|
|
354
|
+
}
|
|
355
|
+
if (requestUrl.startsWith('/')) {
|
|
356
|
+
requestUrl = requestUrl.substring(1);
|
|
357
|
+
}
|
|
358
|
+
const url = serverUrl + requestUrl;
|
|
359
|
+
if (opts.variables) {
|
|
360
|
+
return this.evaluateUri(url, opts.variables);
|
|
361
|
+
}
|
|
362
|
+
return this.evaluateUri(url, flatProperties);
|
|
363
|
+
}
|
|
364
|
+
addProperty(item, list) {
|
|
365
|
+
const index = list.findIndex(i => i.name === item.name);
|
|
366
|
+
if (index >= 0) {
|
|
367
|
+
list.splice(index, 1);
|
|
368
|
+
}
|
|
369
|
+
list.push(item);
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Evaluates the URI against variables.
|
|
373
|
+
*
|
|
374
|
+
* Note, this doesn't throw errors. When error occurs it returns the input string.
|
|
375
|
+
*
|
|
376
|
+
* @param uri The URI to process
|
|
377
|
+
* @param variables The list of variables to use
|
|
378
|
+
* @returns Expanded URI.
|
|
379
|
+
*/
|
|
380
|
+
evaluateUri(uri, variables) {
|
|
381
|
+
if (!variables) {
|
|
382
|
+
return uri;
|
|
383
|
+
}
|
|
384
|
+
let vars;
|
|
385
|
+
if (Array.isArray(variables)) {
|
|
386
|
+
if (variables.length) {
|
|
387
|
+
vars = Property.toMap(variables);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
vars = variables;
|
|
392
|
+
}
|
|
393
|
+
if (!vars) {
|
|
394
|
+
return uri;
|
|
395
|
+
}
|
|
396
|
+
let result = uri;
|
|
397
|
+
try {
|
|
398
|
+
result = new UriTemplate(uri).expand(vars, { ignoreMissing: true });
|
|
399
|
+
}
|
|
400
|
+
catch (e) {
|
|
401
|
+
//
|
|
402
|
+
}
|
|
403
|
+
return result;
|
|
404
|
+
}
|
|
271
405
|
}
|
|
272
406
|
//# sourceMappingURL=ProjectRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRequest.js","sourceRoot":"","sources":["../../../src/models/ProjectRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAgB,IAAI,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChC,OAAO,EAAY,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectRequest.js","sourceRoot":"","sources":["../../../src/models/ProjectRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VariablesProcessor } from '../variables/VariablesProcessor.js';
|
|
2
2
|
import { CoreEngine } from '../http-engine/CoreEngine.js';
|
|
3
|
-
import {
|
|
3
|
+
import { SecurityProcessor } from '../../authorization/lib/SecurityProcessor.js';
|
|
4
4
|
import { RequestCookiesProcessor } from './RequestCookiesProcessor.js';
|
|
5
5
|
import { HttpFlowRunner } from './HttpFlowRunner.js';
|
|
6
6
|
/**
|
|
@@ -144,7 +144,7 @@ export class HttpRequestRunner {
|
|
|
144
144
|
}
|
|
145
145
|
async applyAuthorization(request) {
|
|
146
146
|
const auth = await this.readAuthorization();
|
|
147
|
-
|
|
147
|
+
SecurityProcessor.applyAuthorization(request, auth);
|
|
148
148
|
return request;
|
|
149
149
|
}
|
|
150
150
|
async applyCookies(request) {
|
|
@@ -228,7 +228,7 @@ export class HttpRequestRunner {
|
|
|
228
228
|
const { logger, signal } = this;
|
|
229
229
|
const auth = await this.readAuthorization();
|
|
230
230
|
const config = await this.readConfig();
|
|
231
|
-
const cert =
|
|
231
|
+
const cert = SecurityProcessor.readCertificate(auth);
|
|
232
232
|
const opts = {};
|
|
233
233
|
if (cert) {
|
|
234
234
|
opts.certificates = [cert];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRequestRunner.js","sourceRoot":"","sources":["../../../../src/runtime/http-runner/HttpRequestRunner.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HttpRequestRunner.js","sourceRoot":"","sources":["../../../../src/runtime/http-runner/HttpRequestRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -204,11 +204,16 @@ export class ProjectRequestRunner extends EventEmitter {
|
|
|
204
204
|
const info = {
|
|
205
205
|
key: request.key,
|
|
206
206
|
};
|
|
207
|
+
let url;
|
|
208
|
+
const typedProject = request;
|
|
209
|
+
if (typeof typedProject.readUrl === 'function') {
|
|
210
|
+
url = typedProject.readUrl({ variables });
|
|
211
|
+
}
|
|
207
212
|
const requestData = request.expects.toJSON();
|
|
208
213
|
try {
|
|
209
214
|
// Below replaces the single call to the `run()` function of the factory to
|
|
210
215
|
// report via the events a request object that has evaluated with the Jexl library.
|
|
211
|
-
requestData.url = factory.prepareRequestUrl(requestData.url, variables);
|
|
216
|
+
requestData.url = url || factory.prepareRequestUrl(requestData.url, variables);
|
|
212
217
|
const requestCopy = await factory.applyVariables(requestData);
|
|
213
218
|
await factory.applyAuthorization(requestCopy);
|
|
214
219
|
await factory.applyCookies(requestCopy);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRequestRunner.js","sourceRoot":"","sources":["../../../../src/runtime/node/ProjectRequestRunner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProjectRequestRunner.js","sourceRoot":"","sources":["../../../../src/runtime/node/ProjectRequestRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAe,IAAI,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAe,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAiB,IAAI,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAkB,IAAI,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAG5F,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAgC,oBAAoB,EAAqC,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AA8B1J;;;;;;GAMG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,MAAM,CAAU;IAChB,OAAO,CAA2B;IAClC;;OAEG;IACH,OAAO,CAAa;IAEV,iBAAiB,CAAe;IAChC,cAAc,CAA0B;IAElD;;OAEG;IACO,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAE9C,MAAM,GAAU,KAAK,CAAC,IAAI,CAAC;IAErC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,YAAY,OAAiC,EAAE,OAA8B,EAAE;QAC7E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,UAAoC,EAAE;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACpE;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;YAC/D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;QACD,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,CAAE,WAAW,CAAC,UAAoC,EAAE,EAAE,SAAkC;QACtG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAgB,CAAC;QACrC,MAAM,YAAY,GAAG,SAAS,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,EAAE,EAAE;YAC9B,MAAM,OAAO,CAAC;SACf;IACH,CAAC;IAES,KAAK,CAAC,CAAE,YAAY,CAAC,KAAuC,EAAE,SAAiC,EAAE,OAAiC;QAC1I,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE;gBACZ,SAAS;aACV;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE;gBACjF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACzE,SAAS;iBACV;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;oBACrI,SAAS;iBACV;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAA6C,EAAE,SAAS,CAAC,CAAC;gBAC3F,MAAM,IAAI,CAAC;aACZ;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,EAAE;gBACtF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;oBACtB,SAAS;iBACV;gBACD,MAAM,MAAM,GAAG,OAA2C,CAAC;gBAC3D,mHAAmH;gBACnH,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,qDAAqD;gBACrD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;gBACtC,MAAM,OAAO,GAAI,WAAgD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;gBACxG,IAAI,eAAe,GAA2B,EAAE,CAAC;gBACjD,IAAI,cAAc,GAAG,SAAS,CAAC;gBAC/B,IAAI,OAAO,EAAE;oBACX,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAA6B,CAAC;oBAC/D,IAAI,SAAS,EAAE;wBACb,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;wBACtC,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;wBACzD,IAAI,YAAY,EAAE;4BAChB,cAAc,GAAG,eAAe,CAAC;yBAClC;6BAAM;4BACL,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,eAAe,EAAE,CAAC;yBAC5D;qBACF;iBACF;gBAED,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,EAAE,EAAE;oBAC9B,MAAM,OAAO,CAAC;iBACf;gBACD,IAAI,CAAC,YAAY,EAAE;oBACjB,0FAA0F;oBAC1F,4EAA4E;oBAC5E,gGAAgG;oBAChG,MAAM,MAAM,GAAa,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACtD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;4BACzB,SAAS,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;yBACrC;oBACH,CAAC,CAAC,CAAC;iBACJ;gBACD,SAAS,CAAC,OAAO,GAAG,cAAc,CAAC;aACpC;SACF;IACH,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAA,CAAE,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;YAChE,MAAM,MAAM,CAAC;SACd;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,OAA2C,EAAE,SAAiC;QACnG,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,OAA2C,EAAE,SAAiC;QACpG,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACxC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACpE;QACD,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SAC/B;QACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,OAAO,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;SAC7D;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAC9B;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAChC;QACD,MAAM,IAAI,GAAe;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QACF,IAAI,GAAuB,CAAC;QAC5B,MAAM,YAAY,GAAG,OAAyB,CAAC;QAC/C,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,UAAU,EAAE;YAC9C,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;SAC3C;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAE7C,IAAI;YACF,4EAA4E;YAC5E,mFAAmF;YACnF,WAAW,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC9D,MAAM,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;YAC/B,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;SACnD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,GAAG,CAAU,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACzD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAmE;QAC9F,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtD;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,MAAmE;QACnG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,gBAAgB,CAAC,MAAmE;QAClG,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAE,MAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,cAAc,CAAC,YAA2B;QACxD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACnC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;YACxD,IAAI,MAAM,EAAE;gBACV,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;aAC5B;YACD,IAAI,YAAY,CAAC,MAAM,EAAE;gBACvB,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/D,IAAI,OAAO,IAAI,CAAC,EAAE;wBAChB,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;qBAC3B;yBAAM;wBACL,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACtB;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,GAAG,GAAG,kBAAkB,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1C,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;QACD,2EAA2E;QAC3E,GAAG,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;CACF"}
|
package/data/model.js
CHANGED
|
@@ -52,8 +52,8 @@ config.set('APIC-483/APIC-483.raml', { type: "RAML 1.0" });
|
|
|
52
52
|
config.set('oas-3-api/oas-3-api.yaml', { type: "OAS 3.0" });
|
|
53
53
|
config.set('secured-api/secured-api.raml', { type: "RAML 1.0" });
|
|
54
54
|
|
|
55
|
-
const srcFolder =
|
|
56
|
-
const descFolder =
|
|
55
|
+
const srcFolder = 'data/apis/';
|
|
56
|
+
const descFolder = 'data/models/';
|
|
57
57
|
|
|
58
58
|
class ApiParser {
|
|
59
59
|
/**
|
|
@@ -89,7 +89,7 @@ class ApiParser {
|
|
|
89
89
|
if (destFile.indexOf('/') !== -1) {
|
|
90
90
|
destFile = destFile.substring(destFile.lastIndexOf('/'));
|
|
91
91
|
}
|
|
92
|
-
const location =
|
|
92
|
+
const location = `${srcFolder}/${file}`;
|
|
93
93
|
const content = await this.parse(vendor, location);
|
|
94
94
|
const destination = path.join(descFolder, destFile);
|
|
95
95
|
await writeFile(destination, content);
|
|
@@ -105,6 +105,7 @@ class ApiParser {
|
|
|
105
105
|
// const ro = new RenderOptions().withoutAmfJsonLdSerialization().withoutCompactUris().withoutCompactedEmission().withPrettyPrint();
|
|
106
106
|
const apiConfiguration = this.getConfiguration(vendor).withRenderOptions(ro);
|
|
107
107
|
const client = apiConfiguration.baseUnitClient();
|
|
108
|
+
console.log(`file://${location}`);
|
|
108
109
|
const result = await client.parse(`file://${location}`);
|
|
109
110
|
const transformed = client.transform(result.baseUnit, PipelineId.Editing);
|
|
110
111
|
return client.render(transformed.baseUnit, 'application/ld+json');
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { IApiKeyAuthorization, IBasicAuthorization, IBearerAuthorization, IOAuth2Authorization, IOidcAuthorization, IOidcTokenInfo, IPassThroughAuthorization, IRamlCustomAuthorization } from "../../models/Authorization.js";
|
|
1
|
+
import { IApiKeyAuthorization, IBasicAuthorization, IBearerAuthorization, ICCAuthorization, IOAuth2Authorization, IOidcAuthorization, IOidcTokenInfo, IPassThroughAuthorization, IRamlCustomAuthorization } from "../../models/Authorization.js";
|
|
2
2
|
import { IRequestAuthorization, RequestAuthorization } from "../../models/RequestAuthorization.js";
|
|
3
3
|
import { IHttpRequest } from "../../models/HttpRequest.js";
|
|
4
4
|
import { IProperty } from "../../models/Property.js";
|
|
5
5
|
import { Headers } from '../../lib/headers/Headers.js';
|
|
6
|
+
import { HttpCertificate } from "../../models/ClientCertificate.js";
|
|
6
7
|
import { UrlProcessor } from "../../lib/parsers/UrlProcessor.js";
|
|
7
8
|
import { UrlEncoder } from "../../lib/parsers/UrlEncoder.js";
|
|
8
9
|
import { hasBuffer } from '../../Platform.js';
|
|
@@ -30,7 +31,7 @@ export class SecurityProcessor {
|
|
|
30
31
|
/**
|
|
31
32
|
* Applies authorization configuration to the request object.
|
|
32
33
|
*/
|
|
33
|
-
static applyAuthorization(request: IHttpRequest, authorization
|
|
34
|
+
static applyAuthorization(request: IHttpRequest, authorization?: (IRequestAuthorization | RequestAuthorization)[], opts: IAuthApplyOptions = {}): void {
|
|
34
35
|
if (!Array.isArray(authorization) || !authorization.length) {
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
@@ -92,11 +93,11 @@ export class SecurityProcessor {
|
|
|
92
93
|
* Injects basic auth header into the request headers.
|
|
93
94
|
*/
|
|
94
95
|
static applyBasicAuth(request: IHttpRequest, config: IBasicAuthorization): void {
|
|
95
|
-
const { username, password } = config;
|
|
96
|
+
const { username, password = '' } = config;
|
|
96
97
|
if (!username) {
|
|
97
98
|
return;
|
|
98
99
|
}
|
|
99
|
-
const hash = `${username}:${password
|
|
100
|
+
const hash = `${username}:${password}`;
|
|
100
101
|
const value = hasBuffer ? Buffer.from(hash).toString('base64') : btoa(hash);
|
|
101
102
|
this.applyHeader(request, 'authorization', `Basic ${value}`);
|
|
102
103
|
}
|
|
@@ -254,4 +255,22 @@ export class SecurityProcessor {
|
|
|
254
255
|
request.headers = parser.toString();
|
|
255
256
|
}
|
|
256
257
|
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Reads the client certificate from the authorization configuration.
|
|
261
|
+
*
|
|
262
|
+
* @param authorization The HTTP request authorization configuration.
|
|
263
|
+
* @returns The certificate to use with the HTTP request or undefined when not configured.
|
|
264
|
+
*/
|
|
265
|
+
static readCertificate(authorization?: IRequestAuthorization[]): HttpCertificate | undefined {
|
|
266
|
+
if (!Array.isArray(authorization) || !authorization.length) {
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
const item = authorization.find(i => i.enabled !== false && i.type === 'client certificate');
|
|
270
|
+
if (!item || !item.config) {
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
const init = item.config as ICCAuthorization;
|
|
274
|
+
return init.certificate;
|
|
275
|
+
}
|
|
257
276
|
}
|
|
@@ -1535,10 +1535,24 @@ export class HttpProject extends ProjectParent {
|
|
|
1535
1535
|
while (current) {
|
|
1536
1536
|
const environments = current.getEnvironments();
|
|
1537
1537
|
if (environments.length) {
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1538
|
+
if (nameOrKey) {
|
|
1539
|
+
const selected = environments.find(i => i.key === nameOrKey || i.info.name === nameOrKey);
|
|
1540
|
+
if (selected) {
|
|
1541
|
+
result.push(selected);
|
|
1542
|
+
if (selected.encapsulated) {
|
|
1543
|
+
break;
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
} else {
|
|
1547
|
+
let finished = false;
|
|
1548
|
+
for (const item of environments) {
|
|
1549
|
+
result.push(item);
|
|
1550
|
+
if (item.encapsulated) {
|
|
1551
|
+
finished = true;
|
|
1552
|
+
break;
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
if (finished) {
|
|
1542
1556
|
break;
|
|
1543
1557
|
}
|
|
1544
1558
|
}
|
|
@@ -7,9 +7,29 @@ import v4 from '../lib/uuid.js';
|
|
|
7
7
|
import { IRequest, Request } from './Request.js';
|
|
8
8
|
import { IAppProjectRequest } from './AppProject.js';
|
|
9
9
|
import { Environment } from './Environment.js';
|
|
10
|
+
import { Property } from './Property.js';
|
|
11
|
+
import { Server } from './Server.js';
|
|
12
|
+
import { UriTemplate } from '../lib/parsers/UriTemplate.js';
|
|
10
13
|
|
|
11
14
|
export const Kind = 'Core#ProjectRequest';
|
|
12
15
|
|
|
16
|
+
export interface RequestUrlReadOptions {
|
|
17
|
+
/**
|
|
18
|
+
* When set it won't apply variables to the URL.
|
|
19
|
+
*/
|
|
20
|
+
noVariables?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* When set is returns the only the base URL defined in the environment without
|
|
23
|
+
* adding the `url` defined on the request object. *
|
|
24
|
+
*/
|
|
25
|
+
baseUrl?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* When set it uses these variables instead one the onces defined on the project.
|
|
28
|
+
* When this is defined then `noVariables` has no effect.
|
|
29
|
+
*/
|
|
30
|
+
variables?: Record<string, string>;
|
|
31
|
+
}
|
|
32
|
+
|
|
13
33
|
export interface IProjectRequest extends IProjectDefinitionProperty, IRequest {
|
|
14
34
|
kind: typeof Kind;
|
|
15
35
|
/**
|
|
@@ -18,6 +38,8 @@ export interface IProjectRequest extends IProjectDefinitionProperty, IRequest {
|
|
|
18
38
|
key: string;
|
|
19
39
|
/**
|
|
20
40
|
* The key of an environment defined on the project to apply to this request.
|
|
41
|
+
* When not set it inherits environments from parents.
|
|
42
|
+
* However, when this is set, it makes sure that server/variables from this environment are always applied.
|
|
21
43
|
*/
|
|
22
44
|
environment?: string;
|
|
23
45
|
}
|
|
@@ -58,6 +80,8 @@ export class ProjectRequest extends Request implements ProjectDefinitionProperty
|
|
|
58
80
|
|
|
59
81
|
/**
|
|
60
82
|
* The key of an environment defined on the project to apply to this request.
|
|
83
|
+
* When not set it inherits environments from parents.
|
|
84
|
+
* However, when this is set, it makes sure that server/variables from this environment are always applied.
|
|
61
85
|
*/
|
|
62
86
|
environment?: string;
|
|
63
87
|
|
|
@@ -320,4 +344,146 @@ export class ProjectRequest extends Request implements ProjectDefinitionProperty
|
|
|
320
344
|
}
|
|
321
345
|
return this.project.readEnvironments({ parent: parent?.key });
|
|
322
346
|
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* It reads the URL from an environment defined for the request..
|
|
350
|
+
* The environment servers and variables are applies for all environments defined on each folder down to this request.
|
|
351
|
+
* This respects the `encapsulate` flag defined on an environment.
|
|
352
|
+
*
|
|
353
|
+
* By default it applies variables collected from the environments to the url. You can configure this behavior
|
|
354
|
+
* by passing a configuration option.
|
|
355
|
+
*
|
|
356
|
+
* Note on performance.
|
|
357
|
+
* This is a heave computing operation so use it sparingly. For best performance only compute the URL when
|
|
358
|
+
* environments, environment selection or variables change.
|
|
359
|
+
*
|
|
360
|
+
* @param opts Read URL options
|
|
361
|
+
* @returns the read URL or undefined when the URL/environments are not defined.
|
|
362
|
+
*/
|
|
363
|
+
readUrl(opts: RequestUrlReadOptions = {}): string | undefined {
|
|
364
|
+
const { environment } = this;
|
|
365
|
+
const expects = this.getExpects();
|
|
366
|
+
// note, this list respects the `encapsulate` flag.
|
|
367
|
+
const environments = this.readEnvironments();
|
|
368
|
+
|
|
369
|
+
let requestUrl = opts.baseUrl ? undefined : expects.url;
|
|
370
|
+
if (!environments) {
|
|
371
|
+
if (requestUrl && opts.variables) {
|
|
372
|
+
return this.evaluateUri(requestUrl, opts.variables);
|
|
373
|
+
}
|
|
374
|
+
return requestUrl || undefined;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// we assume that absolute URL has a scheme with a delimiter (://). However, the scheme value can be an URL.
|
|
378
|
+
// When the request starts with `/` is obviously a relative (no domain) URL
|
|
379
|
+
// The edge case is `{` because it may mean a variable with a domain or a path to be appended to the base URI
|
|
380
|
+
// defined in an environment. However, we choose to use `/` as the indicator of being a "relative" URL.
|
|
381
|
+
const isAbsolute = !!requestUrl && !requestUrl.startsWith('/') && requestUrl.includes('://');
|
|
382
|
+
if (isAbsolute && opts.noVariables) {
|
|
383
|
+
// we know the URL exists, it is absolute (server wouldn't be applied anyway), and we don't
|
|
384
|
+
// want to apply variables. We return what we have so far.
|
|
385
|
+
return requestUrl;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
const flatProperties: Property[] = [];
|
|
389
|
+
let effectiveServer: Server | undefined;
|
|
390
|
+
for (const env of environments) {
|
|
391
|
+
if (env.server && env.server.uri) {
|
|
392
|
+
effectiveServer = env.server;
|
|
393
|
+
}
|
|
394
|
+
if (!opts.noVariables && !opts.variables && env.variables) {
|
|
395
|
+
for (const prop of env.variables) {
|
|
396
|
+
// environments are listed from the project's root down to the folder where the request
|
|
397
|
+
// exists. When a folder has a variable that was already defined it is replaced.
|
|
398
|
+
this.addProperty(prop, flatProperties)
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
if (env.key === environment) {
|
|
402
|
+
break;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
if (!requestUrl) {
|
|
407
|
+
// we return whatever we have in the server.
|
|
408
|
+
if (effectiveServer) {
|
|
409
|
+
// flatProperties is be empty if `noVariables` option is passed.
|
|
410
|
+
const uri = effectiveServer.readUri();
|
|
411
|
+
if (opts.variables) {
|
|
412
|
+
return this.evaluateUri(uri, opts.variables);
|
|
413
|
+
}
|
|
414
|
+
return this.evaluateUri(uri, flatProperties);
|
|
415
|
+
}
|
|
416
|
+
return undefined;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
if (isAbsolute) {
|
|
420
|
+
// ignore server reading and just apply variables to the request URL
|
|
421
|
+
if (opts.variables) {
|
|
422
|
+
return this.evaluateUri(requestUrl, opts.variables);
|
|
423
|
+
}
|
|
424
|
+
return this.evaluateUri(requestUrl, flatProperties);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
let serverUrl = '';
|
|
428
|
+
if (effectiveServer) {
|
|
429
|
+
serverUrl = effectiveServer.readUri();
|
|
430
|
+
}
|
|
431
|
+
if (!serverUrl.endsWith('/')) {
|
|
432
|
+
serverUrl += '/';
|
|
433
|
+
}
|
|
434
|
+
if (requestUrl.startsWith('/')) {
|
|
435
|
+
requestUrl = requestUrl.substring(1);
|
|
436
|
+
}
|
|
437
|
+
const url = serverUrl + requestUrl;
|
|
438
|
+
if (opts.variables) {
|
|
439
|
+
return this.evaluateUri(url, opts.variables);
|
|
440
|
+
}
|
|
441
|
+
return this.evaluateUri(url, flatProperties);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
protected addProperty(item: Property, list: Property[]): void {
|
|
445
|
+
const index = list.findIndex(i => i.name === item.name);
|
|
446
|
+
if (index >= 0) {
|
|
447
|
+
list.splice(index, 1);
|
|
448
|
+
}
|
|
449
|
+
list.push(item);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
protected evaluateUri(uri: string, variables?: Property[]): string;
|
|
453
|
+
|
|
454
|
+
protected evaluateUri(uri: string, variables?: Record<string, string>): string;
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Evaluates the URI against variables.
|
|
458
|
+
*
|
|
459
|
+
* Note, this doesn't throw errors. When error occurs it returns the input string.
|
|
460
|
+
*
|
|
461
|
+
* @param uri The URI to process
|
|
462
|
+
* @param variables The list of variables to use
|
|
463
|
+
* @returns Expanded URI.
|
|
464
|
+
*/
|
|
465
|
+
protected evaluateUri(uri: string, variables?: Property[] | Record<string, string>): string {
|
|
466
|
+
if (!variables) {
|
|
467
|
+
return uri;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
let vars: Record<string, string> | undefined;
|
|
471
|
+
if (Array.isArray(variables)) {
|
|
472
|
+
if (variables.length) {
|
|
473
|
+
vars = Property.toMap(variables);
|
|
474
|
+
}
|
|
475
|
+
} else {
|
|
476
|
+
vars = variables;
|
|
477
|
+
}
|
|
478
|
+
if (!vars) {
|
|
479
|
+
return uri;
|
|
480
|
+
}
|
|
481
|
+
let result = uri;
|
|
482
|
+
try {
|
|
483
|
+
result = new UriTemplate(uri).expand(vars, { ignoreMissing: true });
|
|
484
|
+
} catch (e) {
|
|
485
|
+
//
|
|
486
|
+
}
|
|
487
|
+
return result;
|
|
488
|
+
}
|
|
323
489
|
}
|