@ama-sdk/client-fetch 12.5.0-prerelease.5 → 12.5.0-prerelease.7

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.
@@ -279,7 +279,7 @@ var ApiFetchClient = /*#__PURE__*/ function() {
279
279
  key: "getRequestOptions",
280
280
  value: /** @inheritdoc */ function getRequestOptions(requestOptionsParameters) {
281
281
  return _async_to_generator(function() {
282
- var opts, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, _requestOptionsParameters_api, err;
282
+ var opts, requestPlugins, _tmp, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, _requestOptionsParameters_api, err;
283
283
  return _ts_generator(this, function(_state) {
284
284
  switch(_state.label){
285
285
  case 0:
@@ -287,25 +287,40 @@ var ApiFetchClient = /*#__PURE__*/ function() {
287
287
  headers: new Headers((0, _core.filterUndefinedValues)(requestOptionsParameters.headers)),
288
288
  queryParams: (0, _core.filterUndefinedValues)(requestOptionsParameters.queryParams)
289
289
  });
290
- if (!this.options.requestPlugins) return [
290
+ if (!(typeof this.options.requestPlugins === 'function')) return [
291
291
  3,
292
- 8
292
+ 2
293
+ ];
294
+ return [
295
+ 4,
296
+ this.options.requestPlugins(opts)
293
297
  ];
294
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
295
- _state.label = 1;
296
298
  case 1:
299
+ _tmp = _state.sent();
300
+ return [
301
+ 3,
302
+ 3
303
+ ];
304
+ case 2:
305
+ _tmp = this.options.requestPlugins;
306
+ _state.label = 3;
307
+ case 3:
308
+ requestPlugins = _tmp;
309
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
310
+ _state.label = 4;
311
+ case 4:
297
312
  _state.trys.push([
298
- 1,
299
- 6,
300
- 7,
301
- 8
313
+ 4,
314
+ 9,
315
+ 10,
316
+ 11
302
317
  ]);
303
- _iterator = this.options.requestPlugins[Symbol.iterator]();
304
- _state.label = 2;
305
- case 2:
318
+ _iterator = requestPlugins[Symbol.iterator]();
319
+ _state.label = 5;
320
+ case 5:
306
321
  if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
307
322
  3,
308
- 5
323
+ 8
309
324
  ];
310
325
  plugin = _step.value;
311
326
  return [
@@ -315,29 +330,29 @@ var ApiFetchClient = /*#__PURE__*/ function() {
315
330
  apiName: (_requestOptionsParameters_api = requestOptionsParameters.api) === null || _requestOptionsParameters_api === void 0 ? void 0 : _requestOptionsParameters_api.apiName
316
331
  }).transform(opts)
317
332
  ];
318
- case 3:
333
+ case 6:
319
334
  opts = _state.sent();
320
- _state.label = 4;
321
- case 4:
335
+ _state.label = 7;
336
+ case 7:
322
337
  _iteratorNormalCompletion = true;
323
338
  return [
324
339
  3,
325
- 2
340
+ 5
326
341
  ];
327
- case 5:
342
+ case 8:
328
343
  return [
329
344
  3,
330
- 8
345
+ 11
331
346
  ];
332
- case 6:
347
+ case 9:
333
348
  err = _state.sent();
334
349
  _didIteratorError = true;
335
350
  _iteratorError = err;
336
351
  return [
337
352
  3,
338
- 8
353
+ 11
339
354
  ];
340
- case 7:
355
+ case 10:
341
356
  try {
342
357
  if (!_iteratorNormalCompletion && _iterator.return != null) {
343
358
  _iterator.return();
@@ -350,7 +365,7 @@ var ApiFetchClient = /*#__PURE__*/ function() {
350
365
  return [
351
366
  7
352
367
  ];
353
- case 8:
368
+ case 11:
354
369
  return [
355
370
  2,
356
371
  opts
@@ -401,7 +416,7 @@ var ApiFetchClient = /*#__PURE__*/ function() {
401
416
  key: "processCall",
402
417
  value: function processCall(url, options, apiType, apiName, revivers, operationId) {
403
418
  return _async_to_generator(function() {
404
- var _this, response, asyncResponse, root, body, exception, origin, _options_metadata, metadataSignal, controller, loadedPlugins, _loadedPlugins, canStart, isCanceledBy, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, e, reviver, replyPlugins, parsedData, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, pluginRunner, err;
419
+ var _this, response, asyncResponse, root, body, exception, origin, _loadedPlugins, _options_metadata, metadataSignal, controller, loadedPlugins, fetchPlugins, _tmp, canStart, isCanceledBy, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, e, reviver, replyPlugins, parsedData, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, pluginRunner, err;
405
420
  return _ts_generator(this, function(_state) {
406
421
  switch(_state.label){
407
422
  case 0:
@@ -411,9 +426,9 @@ var ApiFetchClient = /*#__PURE__*/ function() {
411
426
  case 1:
412
427
  _state.trys.push([
413
428
  1,
414
- 5,
429
+ 8,
415
430
  ,
416
- 6
431
+ 9
417
432
  ]);
418
433
  metadataSignal = (_options_metadata = options.metadata) === null || _options_metadata === void 0 ? void 0 : _options_metadata.signal;
419
434
  metadataSignal === null || metadataSignal === void 0 ? void 0 : metadataSignal.throwIfAborted();
@@ -423,29 +438,45 @@ var ApiFetchClient = /*#__PURE__*/ function() {
423
438
  return controller.abort();
424
439
  });
425
440
  loadedPlugins = [];
426
- if (this.options.fetchPlugins) {
427
- ;
428
- (_loadedPlugins = loadedPlugins).push.apply(_loadedPlugins, _to_consumable_array(this.options.fetchPlugins.map(function(plugin) {
429
- return plugin.load({
430
- url: url,
431
- options: options,
432
- fetchPlugins: loadedPlugins,
433
- controller: controller,
434
- apiClient: _this,
435
- logger: _this.options.logger
436
- });
437
- })));
438
- }
441
+ if (!(typeof this.options.fetchPlugins === 'function')) return [
442
+ 3,
443
+ 3
444
+ ];
445
+ return [
446
+ 4,
447
+ this.options.fetchPlugins(options)
448
+ ];
449
+ case 2:
450
+ _tmp = _state.sent();
451
+ return [
452
+ 3,
453
+ 4
454
+ ];
455
+ case 3:
456
+ _tmp = this.options.fetchPlugins;
457
+ _state.label = 4;
458
+ case 4:
459
+ fetchPlugins = _tmp;
460
+ (_loadedPlugins = loadedPlugins).push.apply(_loadedPlugins, _to_consumable_array(fetchPlugins.map(function(plugin) {
461
+ return plugin.load({
462
+ url: url,
463
+ options: options,
464
+ fetchPlugins: loadedPlugins,
465
+ controller: controller,
466
+ apiClient: _this,
467
+ logger: _this.options.logger
468
+ });
469
+ })));
439
470
  return [
440
471
  4,
441
472
  Promise.all(loadedPlugins.map(function(plugin) {
442
473
  return !plugin.canStart || plugin.canStart();
443
474
  }))
444
475
  ];
445
- case 2:
476
+ case 5:
446
477
  canStart = _state.sent();
447
478
  isCanceledBy = canStart.indexOf(false);
448
- asyncResponse = isCanceledBy === -1 ? fetch(url, options) : Promise.reject(new _core.CanceledCallError("Is canceled by the plugin ".concat(isCanceledBy), isCanceledBy, this.options.fetchPlugins[isCanceledBy], {
479
+ asyncResponse = isCanceledBy === -1 ? fetch(url, options) : Promise.reject(new _core.CanceledCallError("Is canceled by the plugin ".concat(isCanceledBy), isCanceledBy, fetchPlugins[isCanceledBy], {
449
480
  apiName: apiName,
450
481
  operationId: operationId,
451
482
  url: url,
@@ -475,19 +506,19 @@ var ApiFetchClient = /*#__PURE__*/ function() {
475
506
  4,
476
507
  asyncResponse
477
508
  ];
478
- case 3:
509
+ case 6:
479
510
  response = _state.sent();
480
511
  return [
481
512
  4,
482
513
  response.text()
483
514
  ];
484
- case 4:
515
+ case 7:
485
516
  body = _state.sent();
486
517
  return [
487
518
  3,
488
- 6
519
+ 9
489
520
  ];
490
- case 5:
521
+ case 8:
491
522
  e = _state.sent();
492
523
  if (_instanceof(e, _core.CanceledCallError)) {
493
524
  exception = e;
@@ -508,9 +539,9 @@ var ApiFetchClient = /*#__PURE__*/ function() {
508
539
  }
509
540
  return [
510
541
  3,
511
- 6
542
+ 9
512
543
  ];
513
- case 6:
544
+ case 9:
514
545
  try {
515
546
  root = body ? JSON.parse(body) : undefined;
516
547
  } catch (e) {
@@ -542,49 +573,49 @@ var ApiFetchClient = /*#__PURE__*/ function() {
542
573
  }) : [];
543
574
  parsedData = root;
544
575
  _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
545
- _state.label = 7;
546
- case 7:
576
+ _state.label = 10;
577
+ case 10:
547
578
  _state.trys.push([
548
- 7,
549
- 12,
550
- 13,
551
- 14
579
+ 10,
580
+ 15,
581
+ 16,
582
+ 17
552
583
  ]);
553
584
  _iterator1 = replyPlugins[Symbol.iterator]();
554
- _state.label = 8;
555
- case 8:
585
+ _state.label = 11;
586
+ case 11:
556
587
  if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
557
588
  3,
558
- 11
589
+ 14
559
590
  ];
560
591
  pluginRunner = _step1.value;
561
592
  return [
562
593
  4,
563
594
  pluginRunner.transform(parsedData)
564
595
  ];
565
- case 9:
596
+ case 12:
566
597
  parsedData = _state.sent();
567
- _state.label = 10;
568
- case 10:
598
+ _state.label = 13;
599
+ case 13:
569
600
  _iteratorNormalCompletion1 = true;
570
601
  return [
571
602
  3,
572
- 8
603
+ 11
573
604
  ];
574
- case 11:
605
+ case 14:
575
606
  return [
576
607
  3,
577
- 14
608
+ 17
578
609
  ];
579
- case 12:
610
+ case 15:
580
611
  err = _state.sent();
581
612
  _didIteratorError1 = true;
582
613
  _iteratorError1 = err;
583
614
  return [
584
615
  3,
585
- 14
616
+ 17
586
617
  ];
587
- case 13:
618
+ case 16:
588
619
  try {
589
620
  if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
590
621
  _iterator1.return();
@@ -597,7 +628,7 @@ var ApiFetchClient = /*#__PURE__*/ function() {
597
628
  return [
598
629
  7
599
630
  ];
600
- case 14:
631
+ case 17:
601
632
  if (exception) {
602
633
  throw exception;
603
634
  }
@@ -173,30 +173,52 @@ var MockInterceptFetch = /*#__PURE__*/ function() {
173
173
  function MockInterceptFetch(options) {
174
174
  _class_call_check(this, MockInterceptFetch);
175
175
  _define_property(this, "options", void 0);
176
+ _define_property(this, "checkMockInterceptFetchPlugin", void 0);
176
177
  this.options = options;
178
+ this.checkMockInterceptFetchPlugin = function(requestPlugins) {
179
+ if (!requestPlugins.some(function(plugin) {
180
+ return _instanceof(plugin, _core.MockInterceptRequest);
181
+ })) {
182
+ throw new Error('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin');
183
+ }
184
+ };
177
185
  }
178
186
  _create_class(MockInterceptFetch, [
179
187
  {
180
188
  key: "load",
181
189
  value: function load(context) {
182
190
  var _this = this;
183
- if (!context.apiClient.options.requestPlugins.some(function(plugin) {
184
- return _instanceof(plugin, _core.MockInterceptRequest);
185
- })) {
186
- throw new Error('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin');
191
+ var requestPlugins = typeof context.apiClient.options.requestPlugins === 'function' ? context.apiClient.options.requestPlugins(context.requestOptions) : context.apiClient.options.requestPlugins;
192
+ if (Array.isArray(requestPlugins)) {
193
+ this.checkMockInterceptFetchPlugin(requestPlugins);
187
194
  }
188
195
  return {
189
196
  transform: function(fetchCall) {
190
197
  return _async_to_generator(function() {
191
- var responsePromise, delay, _tmp, resp, operationId, mock, response;
198
+ var _, _1, responsePromise, delay, _tmp, resp, operationId, mock, response;
192
199
  return _ts_generator(this, function(_state) {
193
200
  switch(_state.label){
194
201
  case 0:
202
+ if (!!Array.isArray(requestPlugins)) return [
203
+ 3,
204
+ 2
205
+ ];
206
+ _1 = (_ = this).checkMockInterceptFetchPlugin;
195
207
  return [
196
208
  4,
197
- this.options.adapter.initialize()
209
+ requestPlugins
198
210
  ];
199
211
  case 1:
212
+ _1.apply(_, [
213
+ _state.sent()
214
+ ]);
215
+ _state.label = 2;
216
+ case 2:
217
+ return [
218
+ 4,
219
+ this.options.adapter.initialize()
220
+ ];
221
+ case 3:
200
222
  _state.sent();
201
223
  responsePromise = fetchCall;
202
224
  if (!context.options.headers || !_instanceof(context.options.headers, Headers) || !context.options.headers.has(_core.CUSTOM_MOCK_OPERATION_ID_HEADER)) {
@@ -207,40 +229,40 @@ var MockInterceptFetch = /*#__PURE__*/ function() {
207
229
  }
208
230
  if (!(typeof this.options.delayTiming !== 'undefined')) return [
209
231
  3,
210
- 6
232
+ 8
211
233
  ];
212
234
  if (!(typeof this.options.delayTiming === 'number')) return [
213
235
  3,
214
- 2
236
+ 4
215
237
  ];
216
238
  _tmp = this.options.delayTiming;
217
239
  return [
218
240
  3,
219
- 4
241
+ 6
220
242
  ];
221
- case 2:
243
+ case 4:
222
244
  return [
223
245
  4,
224
246
  this.options.delayTiming(context)
225
247
  ];
226
- case 3:
248
+ case 5:
227
249
  _tmp = _state.sent();
228
- _state.label = 4;
229
- case 4:
250
+ _state.label = 6;
251
+ case 6:
230
252
  delay = _tmp;
231
253
  return [
232
254
  4,
233
255
  responsePromise
234
256
  ];
235
- case 5:
257
+ case 7:
236
258
  resp = _state.sent();
237
259
  responsePromise = new Promise(function(resolve) {
238
260
  return setTimeout(resolve, delay);
239
261
  }).then(function() {
240
262
  return resp;
241
263
  });
242
- _state.label = 6;
243
- case 6:
264
+ _state.label = 8;
265
+ case 8:
244
266
  operationId = context.options.headers.get(_core.CUSTOM_MOCK_OPERATION_ID_HEADER);
245
267
  try {
246
268
  mock = this.options.adapter.getLatestMock(operationId);
@@ -348,6 +348,42 @@ describe('Mock intercept', function() {
348
348
  return plugin.load(config);
349
349
  }).toThrow();
350
350
  });
351
+ it('should throw if there is no request plugin when dynamic', function() {
352
+ return _async_to_generator(function() {
353
+ var config;
354
+ return _ts_generator(this, function(_state) {
355
+ switch(_state.label){
356
+ case 0:
357
+ config = {
358
+ controller: jest.fn(),
359
+ fetchPlugins: [],
360
+ url: 'myurl',
361
+ apiClient: {
362
+ options: {
363
+ requestPlugins: function() {
364
+ return Promise.resolve([]);
365
+ }
366
+ }
367
+ },
368
+ options: {
369
+ headers: new Headers(_define_property({}, _core.CUSTOM_MOCK_OPERATION_ID_HEADER, 'testOperation'))
370
+ }
371
+ };
372
+ return [
373
+ 4,
374
+ expect(function() {
375
+ return plugin.load(config).transform({});
376
+ }).rejects.toThrow('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin')
377
+ ];
378
+ case 1:
379
+ _state.sent();
380
+ return [
381
+ 2
382
+ ];
383
+ }
384
+ });
385
+ })();
386
+ });
351
387
  });
352
388
  });
353
389
  describe('with delay', function() {
@@ -269,7 +269,7 @@ var DEFAULT_OPTIONS = {
269
269
  key: "getRequestOptions",
270
270
  value: /** @inheritdoc */ function getRequestOptions(requestOptionsParameters) {
271
271
  return _async_to_generator(function() {
272
- var opts, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, _requestOptionsParameters_api, err;
272
+ var opts, requestPlugins, _tmp, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, _requestOptionsParameters_api, err;
273
273
  return _ts_generator(this, function(_state) {
274
274
  switch(_state.label){
275
275
  case 0:
@@ -277,25 +277,40 @@ var DEFAULT_OPTIONS = {
277
277
  headers: new Headers(filterUndefinedValues(requestOptionsParameters.headers)),
278
278
  queryParams: filterUndefinedValues(requestOptionsParameters.queryParams)
279
279
  });
280
- if (!this.options.requestPlugins) return [
280
+ if (!(typeof this.options.requestPlugins === 'function')) return [
281
281
  3,
282
- 8
282
+ 2
283
+ ];
284
+ return [
285
+ 4,
286
+ this.options.requestPlugins(opts)
283
287
  ];
284
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
285
- _state.label = 1;
286
288
  case 1:
289
+ _tmp = _state.sent();
290
+ return [
291
+ 3,
292
+ 3
293
+ ];
294
+ case 2:
295
+ _tmp = this.options.requestPlugins;
296
+ _state.label = 3;
297
+ case 3:
298
+ requestPlugins = _tmp;
299
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
300
+ _state.label = 4;
301
+ case 4:
287
302
  _state.trys.push([
288
- 1,
289
- 6,
290
- 7,
291
- 8
303
+ 4,
304
+ 9,
305
+ 10,
306
+ 11
292
307
  ]);
293
- _iterator = this.options.requestPlugins[Symbol.iterator]();
294
- _state.label = 2;
295
- case 2:
308
+ _iterator = requestPlugins[Symbol.iterator]();
309
+ _state.label = 5;
310
+ case 5:
296
311
  if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
297
312
  3,
298
- 5
313
+ 8
299
314
  ];
300
315
  plugin = _step.value;
301
316
  return [
@@ -305,29 +320,29 @@ var DEFAULT_OPTIONS = {
305
320
  apiName: (_requestOptionsParameters_api = requestOptionsParameters.api) === null || _requestOptionsParameters_api === void 0 ? void 0 : _requestOptionsParameters_api.apiName
306
321
  }).transform(opts)
307
322
  ];
308
- case 3:
323
+ case 6:
309
324
  opts = _state.sent();
310
- _state.label = 4;
311
- case 4:
325
+ _state.label = 7;
326
+ case 7:
312
327
  _iteratorNormalCompletion = true;
313
328
  return [
314
329
  3,
315
- 2
330
+ 5
316
331
  ];
317
- case 5:
332
+ case 8:
318
333
  return [
319
334
  3,
320
- 8
335
+ 11
321
336
  ];
322
- case 6:
337
+ case 9:
323
338
  err = _state.sent();
324
339
  _didIteratorError = true;
325
340
  _iteratorError = err;
326
341
  return [
327
342
  3,
328
- 8
343
+ 11
329
344
  ];
330
- case 7:
345
+ case 10:
331
346
  try {
332
347
  if (!_iteratorNormalCompletion && _iterator.return != null) {
333
348
  _iterator.return();
@@ -340,7 +355,7 @@ var DEFAULT_OPTIONS = {
340
355
  return [
341
356
  7
342
357
  ];
343
- case 8:
358
+ case 11:
344
359
  return [
345
360
  2,
346
361
  opts
@@ -391,7 +406,7 @@ var DEFAULT_OPTIONS = {
391
406
  key: "processCall",
392
407
  value: function processCall(url, options, apiType, apiName, revivers, operationId) {
393
408
  return _async_to_generator(function() {
394
- var _this, response, asyncResponse, root, body, exception, origin, _options_metadata, metadataSignal, controller, loadedPlugins, _loadedPlugins, canStart, isCanceledBy, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, e, reviver, replyPlugins, parsedData, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, pluginRunner, err;
409
+ var _this, response, asyncResponse, root, body, exception, origin, _loadedPlugins, _options_metadata, metadataSignal, controller, loadedPlugins, fetchPlugins, _tmp, canStart, isCanceledBy, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, plugin, e, reviver, replyPlugins, parsedData, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, pluginRunner, err;
395
410
  return _ts_generator(this, function(_state) {
396
411
  switch(_state.label){
397
412
  case 0:
@@ -401,9 +416,9 @@ var DEFAULT_OPTIONS = {
401
416
  case 1:
402
417
  _state.trys.push([
403
418
  1,
404
- 5,
419
+ 8,
405
420
  ,
406
- 6
421
+ 9
407
422
  ]);
408
423
  metadataSignal = (_options_metadata = options.metadata) === null || _options_metadata === void 0 ? void 0 : _options_metadata.signal;
409
424
  metadataSignal === null || metadataSignal === void 0 ? void 0 : metadataSignal.throwIfAborted();
@@ -413,29 +428,45 @@ var DEFAULT_OPTIONS = {
413
428
  return controller.abort();
414
429
  });
415
430
  loadedPlugins = [];
416
- if (this.options.fetchPlugins) {
417
- ;
418
- (_loadedPlugins = loadedPlugins).push.apply(_loadedPlugins, _to_consumable_array(this.options.fetchPlugins.map(function(plugin) {
419
- return plugin.load({
420
- url: url,
421
- options: options,
422
- fetchPlugins: loadedPlugins,
423
- controller: controller,
424
- apiClient: _this,
425
- logger: _this.options.logger
426
- });
427
- })));
428
- }
431
+ if (!(typeof this.options.fetchPlugins === 'function')) return [
432
+ 3,
433
+ 3
434
+ ];
435
+ return [
436
+ 4,
437
+ this.options.fetchPlugins(options)
438
+ ];
439
+ case 2:
440
+ _tmp = _state.sent();
441
+ return [
442
+ 3,
443
+ 4
444
+ ];
445
+ case 3:
446
+ _tmp = this.options.fetchPlugins;
447
+ _state.label = 4;
448
+ case 4:
449
+ fetchPlugins = _tmp;
450
+ (_loadedPlugins = loadedPlugins).push.apply(_loadedPlugins, _to_consumable_array(fetchPlugins.map(function(plugin) {
451
+ return plugin.load({
452
+ url: url,
453
+ options: options,
454
+ fetchPlugins: loadedPlugins,
455
+ controller: controller,
456
+ apiClient: _this,
457
+ logger: _this.options.logger
458
+ });
459
+ })));
429
460
  return [
430
461
  4,
431
462
  Promise.all(loadedPlugins.map(function(plugin) {
432
463
  return !plugin.canStart || plugin.canStart();
433
464
  }))
434
465
  ];
435
- case 2:
466
+ case 5:
436
467
  canStart = _state.sent();
437
468
  isCanceledBy = canStart.indexOf(false);
438
- asyncResponse = isCanceledBy === -1 ? fetch(url, options) : Promise.reject(new CanceledCallError("Is canceled by the plugin ".concat(isCanceledBy), isCanceledBy, this.options.fetchPlugins[isCanceledBy], {
469
+ asyncResponse = isCanceledBy === -1 ? fetch(url, options) : Promise.reject(new CanceledCallError("Is canceled by the plugin ".concat(isCanceledBy), isCanceledBy, fetchPlugins[isCanceledBy], {
439
470
  apiName: apiName,
440
471
  operationId: operationId,
441
472
  url: url,
@@ -465,19 +496,19 @@ var DEFAULT_OPTIONS = {
465
496
  4,
466
497
  asyncResponse
467
498
  ];
468
- case 3:
499
+ case 6:
469
500
  response = _state.sent();
470
501
  return [
471
502
  4,
472
503
  response.text()
473
504
  ];
474
- case 4:
505
+ case 7:
475
506
  body = _state.sent();
476
507
  return [
477
508
  3,
478
- 6
509
+ 9
479
510
  ];
480
- case 5:
511
+ case 8:
481
512
  e = _state.sent();
482
513
  if (_instanceof(e, CanceledCallError)) {
483
514
  exception = e;
@@ -498,9 +529,9 @@ var DEFAULT_OPTIONS = {
498
529
  }
499
530
  return [
500
531
  3,
501
- 6
532
+ 9
502
533
  ];
503
- case 6:
534
+ case 9:
504
535
  try {
505
536
  root = body ? JSON.parse(body) : undefined;
506
537
  } catch (e) {
@@ -532,49 +563,49 @@ var DEFAULT_OPTIONS = {
532
563
  }) : [];
533
564
  parsedData = root;
534
565
  _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
535
- _state.label = 7;
536
- case 7:
566
+ _state.label = 10;
567
+ case 10:
537
568
  _state.trys.push([
538
- 7,
539
- 12,
540
- 13,
541
- 14
569
+ 10,
570
+ 15,
571
+ 16,
572
+ 17
542
573
  ]);
543
574
  _iterator1 = replyPlugins[Symbol.iterator]();
544
- _state.label = 8;
545
- case 8:
575
+ _state.label = 11;
576
+ case 11:
546
577
  if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
547
578
  3,
548
- 11
579
+ 14
549
580
  ];
550
581
  pluginRunner = _step1.value;
551
582
  return [
552
583
  4,
553
584
  pluginRunner.transform(parsedData)
554
585
  ];
555
- case 9:
586
+ case 12:
556
587
  parsedData = _state.sent();
557
- _state.label = 10;
558
- case 10:
588
+ _state.label = 13;
589
+ case 13:
559
590
  _iteratorNormalCompletion1 = true;
560
591
  return [
561
592
  3,
562
- 8
593
+ 11
563
594
  ];
564
- case 11:
595
+ case 14:
565
596
  return [
566
597
  3,
567
- 14
598
+ 17
568
599
  ];
569
- case 12:
600
+ case 15:
570
601
  err = _state.sent();
571
602
  _didIteratorError1 = true;
572
603
  _iteratorError1 = err;
573
604
  return [
574
605
  3,
575
- 14
606
+ 17
576
607
  ];
577
- case 13:
608
+ case 16:
578
609
  try {
579
610
  if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
580
611
  _iterator1.return();
@@ -587,7 +618,7 @@ var DEFAULT_OPTIONS = {
587
618
  return [
588
619
  7
589
620
  ];
590
- case 14:
621
+ case 17:
591
622
  if (exception) {
592
623
  throw exception;
593
624
  }
@@ -168,30 +168,52 @@ import { CUSTOM_MOCK_OPERATION_ID_HEADER, MockInterceptRequest } from '@ama-sdk/
168
168
  function MockInterceptFetch(options) {
169
169
  _class_call_check(this, MockInterceptFetch);
170
170
  _define_property(this, "options", void 0);
171
+ _define_property(this, "checkMockInterceptFetchPlugin", void 0);
171
172
  this.options = options;
173
+ this.checkMockInterceptFetchPlugin = function(requestPlugins) {
174
+ if (!requestPlugins.some(function(plugin) {
175
+ return _instanceof(plugin, MockInterceptRequest);
176
+ })) {
177
+ throw new Error('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin');
178
+ }
179
+ };
172
180
  }
173
181
  _create_class(MockInterceptFetch, [
174
182
  {
175
183
  key: "load",
176
184
  value: function load(context) {
177
185
  var _this = this;
178
- if (!context.apiClient.options.requestPlugins.some(function(plugin) {
179
- return _instanceof(plugin, MockInterceptRequest);
180
- })) {
181
- throw new Error('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin');
186
+ var requestPlugins = typeof context.apiClient.options.requestPlugins === 'function' ? context.apiClient.options.requestPlugins(context.requestOptions) : context.apiClient.options.requestPlugins;
187
+ if (Array.isArray(requestPlugins)) {
188
+ this.checkMockInterceptFetchPlugin(requestPlugins);
182
189
  }
183
190
  return {
184
191
  transform: function(fetchCall) {
185
192
  return _async_to_generator(function() {
186
- var responsePromise, delay, _tmp, resp, operationId, mock, response;
193
+ var _, _1, responsePromise, delay, _tmp, resp, operationId, mock, response;
187
194
  return _ts_generator(this, function(_state) {
188
195
  switch(_state.label){
189
196
  case 0:
197
+ if (!!Array.isArray(requestPlugins)) return [
198
+ 3,
199
+ 2
200
+ ];
201
+ _1 = (_ = this).checkMockInterceptFetchPlugin;
190
202
  return [
191
203
  4,
192
- this.options.adapter.initialize()
204
+ requestPlugins
193
205
  ];
194
206
  case 1:
207
+ _1.apply(_, [
208
+ _state.sent()
209
+ ]);
210
+ _state.label = 2;
211
+ case 2:
212
+ return [
213
+ 4,
214
+ this.options.adapter.initialize()
215
+ ];
216
+ case 3:
195
217
  _state.sent();
196
218
  responsePromise = fetchCall;
197
219
  if (!context.options.headers || !_instanceof(context.options.headers, Headers) || !context.options.headers.has(CUSTOM_MOCK_OPERATION_ID_HEADER)) {
@@ -202,40 +224,40 @@ import { CUSTOM_MOCK_OPERATION_ID_HEADER, MockInterceptRequest } from '@ama-sdk/
202
224
  }
203
225
  if (!(typeof this.options.delayTiming !== 'undefined')) return [
204
226
  3,
205
- 6
227
+ 8
206
228
  ];
207
229
  if (!(typeof this.options.delayTiming === 'number')) return [
208
230
  3,
209
- 2
231
+ 4
210
232
  ];
211
233
  _tmp = this.options.delayTiming;
212
234
  return [
213
235
  3,
214
- 4
236
+ 6
215
237
  ];
216
- case 2:
238
+ case 4:
217
239
  return [
218
240
  4,
219
241
  this.options.delayTiming(context)
220
242
  ];
221
- case 3:
243
+ case 5:
222
244
  _tmp = _state.sent();
223
- _state.label = 4;
224
- case 4:
245
+ _state.label = 6;
246
+ case 6:
225
247
  delay = _tmp;
226
248
  return [
227
249
  4,
228
250
  responsePromise
229
251
  ];
230
- case 5:
252
+ case 7:
231
253
  resp = _state.sent();
232
254
  responsePromise = new Promise(function(resolve) {
233
255
  return setTimeout(resolve, delay);
234
256
  }).then(function() {
235
257
  return resp;
236
258
  });
237
- _state.label = 6;
238
- case 6:
259
+ _state.label = 8;
260
+ case 8:
239
261
  operationId = context.options.headers.get(CUSTOM_MOCK_OPERATION_ID_HEADER);
240
262
  try {
241
263
  mock = this.options.adapter.getLatestMock(operationId);
@@ -344,6 +344,42 @@ describe('Mock intercept', function() {
344
344
  return plugin.load(config);
345
345
  }).toThrow();
346
346
  });
347
+ it('should throw if there is no request plugin when dynamic', function() {
348
+ return _async_to_generator(function() {
349
+ var config;
350
+ return _ts_generator(this, function(_state) {
351
+ switch(_state.label){
352
+ case 0:
353
+ config = {
354
+ controller: jest.fn(),
355
+ fetchPlugins: [],
356
+ url: 'myurl',
357
+ apiClient: {
358
+ options: {
359
+ requestPlugins: function() {
360
+ return Promise.resolve([]);
361
+ }
362
+ }
363
+ },
364
+ options: {
365
+ headers: new Headers(_define_property({}, CUSTOM_MOCK_OPERATION_ID_HEADER, 'testOperation'))
366
+ }
367
+ };
368
+ return [
369
+ 4,
370
+ expect(function() {
371
+ return plugin.load(config).transform({});
372
+ }).rejects.toThrow('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin')
373
+ ];
374
+ case 1:
375
+ _state.sent();
376
+ return [
377
+ 2
378
+ ];
379
+ }
380
+ });
381
+ })();
382
+ });
347
383
  });
348
384
  });
349
385
  describe('with delay', function() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ama-sdk/client-fetch",
3
- "version": "12.5.0-prerelease.5",
3
+ "version": "12.5.0-prerelease.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -38,18 +38,18 @@
38
38
  "build:builders": "tsc -b tsconfig.builders.json --pretty && yarn generate-cjs-manifest"
39
39
  },
40
40
  "dependencies": {
41
- "@o3r/schematics": "^12.5.0-prerelease.5",
41
+ "@o3r/schematics": "^12.5.0-prerelease.7",
42
42
  "@swc/helpers": "~0.5.0",
43
43
  "ts-node": "~10.9.2",
44
44
  "tslib": "^2.6.2",
45
45
  "uuid": "^11.0.5"
46
46
  },
47
47
  "peerDependencies": {
48
- "@ama-sdk/core": "^12.5.0-prerelease.5",
48
+ "@ama-sdk/core": "^12.5.0-prerelease.7",
49
49
  "@angular-devkit/schematics": "^19.0.0",
50
50
  "@angular/cli": "^19.0.0",
51
51
  "@angular/common": "^19.0.0",
52
- "@o3r/schematics": "^12.5.0-prerelease.5",
52
+ "@o3r/schematics": "^12.5.0-prerelease.7",
53
53
  "@schematics/angular": "^19.0.0",
54
54
  "isomorphic-fetch": "^3.0.0",
55
55
  "typescript": "^5.5.4"
@@ -78,7 +78,7 @@
78
78
  }
79
79
  },
80
80
  "devDependencies": {
81
- "@ama-sdk/core": "^12.5.0-prerelease.5",
81
+ "@ama-sdk/core": "^12.5.0-prerelease.7",
82
82
  "@angular-devkit/core": "~19.2.0",
83
83
  "@angular-devkit/schematics": "~19.2.0",
84
84
  "@angular/common": "~19.2.0",
@@ -86,9 +86,9 @@
86
86
  "@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
87
87
  "@nx/eslint-plugin": "~20.8.0",
88
88
  "@nx/jest": "~20.8.0",
89
- "@o3r/build-helpers": "^12.5.0-prerelease.5",
90
- "@o3r/eslint-plugin": "^12.5.0-prerelease.5",
91
- "@o3r/test-helpers": "^12.5.0-prerelease.5",
89
+ "@o3r/build-helpers": "^12.5.0-prerelease.7",
90
+ "@o3r/eslint-plugin": "^12.5.0-prerelease.7",
91
+ "@o3r/test-helpers": "^12.5.0-prerelease.7",
92
92
  "@schematics/angular": "~19.2.0",
93
93
  "@stylistic/eslint-plugin": "~3.1.0",
94
94
  "@stylistic/eslint-plugin-ts": "~3.1.0",
@@ -3,7 +3,7 @@ import type { FetchPlugin } from './fetch-plugin';
3
3
  /** @see BaseApiClientOptions */
4
4
  export interface BaseApiFetchClientOptions extends BaseApiClientOptions {
5
5
  /** List of plugins to apply to the fetch call */
6
- fetchPlugins: FetchPlugin[];
6
+ fetchPlugins: FetchPlugin[] | ((requestOpts: RequestOptions) => FetchPlugin[] | Promise<FetchPlugin[]>);
7
7
  }
8
8
  /** @see BaseApiConstructor */
9
9
  export interface BaseApiFetchClientConstructor extends PartialExcept<BaseApiFetchClientOptions, 'basePath'> {
@@ -1 +1 @@
1
- {"version":3,"file":"api-fetch-client.d.ts","sourceRoot":"","sources":["../../src/api-fetch-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-fetch-client.d.ts","sourceRoot":"","sources":["../../src/api-fetch-client.ts"],"names":[],"mappings":"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"}
@@ -42,13 +42,14 @@ export class ApiFetchClient {
42
42
  headers: new Headers(filterUndefinedValues(requestOptionsParameters.headers)),
43
43
  queryParams: filterUndefinedValues(requestOptionsParameters.queryParams)
44
44
  };
45
- if (this.options.requestPlugins) {
46
- for (const plugin of this.options.requestPlugins) {
47
- opts = await plugin.load({
48
- logger: this.options.logger,
49
- apiName: requestOptionsParameters.api?.apiName
50
- }).transform(opts);
51
- }
45
+ const requestPlugins = typeof this.options.requestPlugins === 'function'
46
+ ? await this.options.requestPlugins(opts)
47
+ : this.options.requestPlugins;
48
+ for (const plugin of requestPlugins) {
49
+ opts = await plugin.load({
50
+ logger: this.options.logger,
51
+ apiName: requestOptionsParameters.api?.apiName
52
+ }).transform(opts);
52
53
  }
53
54
  return opts;
54
55
  }
@@ -93,15 +94,16 @@ export class ApiFetchClient {
93
94
  options.signal = controller.signal;
94
95
  metadataSignal?.addEventListener('abort', () => controller.abort());
95
96
  const loadedPlugins = [];
96
- if (this.options.fetchPlugins) {
97
- loadedPlugins.push(...this.options.fetchPlugins.map((plugin) => plugin.load({ url, options, fetchPlugins: loadedPlugins, controller, apiClient: this, logger: this.options.logger })));
98
- }
97
+ const fetchPlugins = typeof this.options.fetchPlugins === 'function'
98
+ ? await this.options.fetchPlugins(options)
99
+ : this.options.fetchPlugins;
100
+ loadedPlugins.push(...fetchPlugins.map((plugin) => plugin.load({ url, options, fetchPlugins: loadedPlugins, controller, apiClient: this, logger: this.options.logger })));
99
101
  const canStart = await Promise.all(loadedPlugins.map((plugin) => !plugin.canStart || plugin.canStart()));
100
102
  const isCanceledBy = canStart.indexOf(false);
101
103
  asyncResponse = isCanceledBy === -1
102
104
  // One of the fetch plugins cancelled the execution of the call
103
105
  ? fetch(url, options)
104
- : Promise.reject(new CanceledCallError(`Is canceled by the plugin ${isCanceledBy}`, isCanceledBy, this.options.fetchPlugins[isCanceledBy], { apiName, operationId, url, origin }));
106
+ : Promise.reject(new CanceledCallError(`Is canceled by the plugin ${isCanceledBy}`, isCanceledBy, fetchPlugins[isCanceledBy], { apiName, operationId, url, origin }));
105
107
  for (const plugin of loadedPlugins) {
106
108
  asyncResponse = plugin.transform(asyncResponse);
107
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-fetch-client.js","sourceRoot":"","sources":["../../src/api-fetch-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-fetch-client.js","sourceRoot":"","sources":["../../src/api-fetch-client.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { MockInterceptFetchParameters } from './mock-intercept.interface';
10
10
  export declare class MockInterceptFetch implements FetchPlugin {
11
11
  protected options: MockInterceptFetchParameters;
12
12
  constructor(options: MockInterceptFetchParameters);
13
+ private readonly checkMockInterceptFetchPlugin;
13
14
  load(context: FetchPluginContext): PluginAsyncRunner<Response, Promise<Response>> & PluginAsyncStarter;
14
15
  }
15
16
  //# sourceMappingURL=mock-intercept.fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-intercept.fetch.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACxC,SAAS,CAAC,OAAO,EAAE,4BAA4B;gBAArC,OAAO,EAAE,4BAA4B;IAEpD,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,kBAAkB;CAqC9G"}
1
+ {"version":3,"file":"mock-intercept.fetch.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACxC,SAAS,CAAC,OAAO,EAAE,4BAA4B;gBAArC,OAAO,EAAE,4BAA4B;IAE3D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAI5C;IAEK,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,kBAAkB;CA2C9G"}
@@ -8,13 +8,24 @@ import { CUSTOM_MOCK_OPERATION_ID_HEADER, MockInterceptRequest, } from '@ama-sdk
8
8
  export class MockInterceptFetch {
9
9
  constructor(options) {
10
10
  this.options = options;
11
+ this.checkMockInterceptFetchPlugin = (requestPlugins) => {
12
+ if (!requestPlugins.some((plugin) => plugin instanceof MockInterceptRequest)) {
13
+ throw new Error('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin');
14
+ }
15
+ };
11
16
  }
12
17
  load(context) {
13
- if (!context.apiClient.options.requestPlugins.some((plugin) => plugin instanceof MockInterceptRequest)) {
14
- throw new Error('MockInterceptFetch plugin should be used only with the MockInterceptRequest plugin');
18
+ const requestPlugins = typeof context.apiClient.options.requestPlugins === 'function'
19
+ ? context.apiClient.options.requestPlugins(context.requestOptions)
20
+ : context.apiClient.options.requestPlugins;
21
+ if (Array.isArray(requestPlugins)) {
22
+ this.checkMockInterceptFetchPlugin(requestPlugins);
15
23
  }
16
24
  return {
17
25
  transform: async (fetchCall) => {
26
+ if (!Array.isArray(requestPlugins)) {
27
+ this.checkMockInterceptFetchPlugin(await requestPlugins);
28
+ }
18
29
  await this.options.adapter.initialize();
19
30
  let responsePromise = fetchCall;
20
31
  if (!context.options.headers || !(context.options.headers instanceof Headers) || !context.options.headers.has(CUSTOM_MOCK_OPERATION_ID_HEADER)) {
@@ -1 +1 @@
1
- {"version":3,"file":"mock-intercept.fetch.js","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.fetch.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAWvB;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B,YAAsB,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;IAAG,CAAC;IAExD,IAAI,CAAC,OAA2B;QACrC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,YAAY,oBAAoB,CAAC,EAAE,CAAC;YACvG,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACxG,CAAC;QAED,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,SAAoB,EAAE,EAAE;gBACxC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAExC,IAAI,eAAe,GAAG,SAAS,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAC/I,OAAO,eAAe,CAAC;gBACzB,CAAC;gBAED,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;oBACpD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAChI,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;oBACnC,eAAe,GAAG,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACpG,CAAC;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAE,CAAC;gBAClF,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;oBAE7D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;wBACtB,OAAO,eAAe,CAAC;oBACzB,CAAC;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACpC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,uDAAuD,WAAW,4BAA4B,CAAC,CAAC;oBAClI,OAAO,eAAe,CAAC;gBACzB,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"mock-intercept.fetch.js","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.fetch.ts"],"names":[],"mappings":"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"}