@shopgate/pwa-core 7.30.0-alpha.8 → 7.30.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/classes/AppCommand/index.js +17 -15
  2. package/classes/AppCommand/spec.js +11 -8
  3. package/classes/AppCommandRequest/index.js +38 -34
  4. package/classes/AppPermissionsRequest/AppPermissionsRequest.js +21 -15
  5. package/classes/AppPermissionsRequest/GetAppPermissionsRequest.js +12 -8
  6. package/classes/AppPermissionsRequest/RequestAppPermissionsRequest.js +12 -8
  7. package/classes/Bridge/index.js +7 -5
  8. package/classes/BrightnessRequest/index.js +7 -5
  9. package/classes/BrightnessRequest/spec.js +2 -2
  10. package/classes/BrowserConnector/index.js +98 -81
  11. package/classes/Conditioner/index.js +17 -14
  12. package/classes/DataRequest/index.js +25 -19
  13. package/classes/DevServerBridge/index.js +11 -10
  14. package/classes/DevServerBridge/spec.js +10 -11
  15. package/classes/ErrorManager/index.js +11 -9
  16. package/classes/Event/index.js +29 -24
  17. package/classes/HttpRequest/index.js +39 -33
  18. package/classes/PipelineDependencies/index.js +11 -9
  19. package/classes/PipelineDependencies/spec.js +2 -2
  20. package/classes/PipelineManager/index.js +48 -46
  21. package/classes/PipelineRequest/index.js +50 -44
  22. package/classes/PipelineRequest/mock.js +52 -39
  23. package/classes/PipelineRequest/spec.js +1 -1
  24. package/classes/PipelineSequence/index.js +11 -9
  25. package/classes/Request/index.js +15 -13
  26. package/classes/RequestBuffer/index.js +11 -9
  27. package/classes/RequestManager/index.js +20 -15
  28. package/classes/RequestManager/spec.js +40 -25
  29. package/classes/Scanner/index.js +218 -219
  30. package/classes/ScannerEvent/index.js +22 -22
  31. package/classes/ScannerEventHandler/index.js +35 -35
  32. package/classes/ScannerEventListener/index.js +77 -78
  33. package/classes/ScannerManager/ScanProcessingError.js +11 -5
  34. package/classes/ScannerManager/index.js +16 -14
  35. package/classes/WebStorageRequest/index.js +18 -12
  36. package/constants/AppEvents.js +1 -0
  37. package/helpers/index.js +8 -8
  38. package/package.json +1 -2
@@ -1,3 +1,4 @@
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
1
2
  import { logger } from "../../helpers";
2
3
  import logGroup from "../../helpers/logGroup";
3
4
  import event from "../Event";
@@ -9,22 +10,24 @@ import requestBuffer from "../RequestBuffer";
9
10
  * The http request class.
10
11
  * It sends a http request and returns a promise.
11
12
  */
12
- class HttpRequest extends Request {
13
+ let HttpRequest = /*#__PURE__*/function (_Request) {
13
14
  /**
14
15
  * Initializes the HttpRequest object
15
16
  * @param {string} url The url for the request
16
17
  */
17
- constructor(url) {
18
- super();
19
- this.url = url;
20
- this.method = 'GET';
21
- this.followRedirects = false;
22
- this.timeout = 30000;
23
- this.payload = null;
24
- this.contentType = null;
25
- this.headers = null;
26
- this.createSerial(this.url);
27
- this.createEventCallbackName('httpResponse');
18
+ function HttpRequest(url) {
19
+ var _this;
20
+ _this = _Request.call(this) || this;
21
+ _this.url = url;
22
+ _this.method = 'GET';
23
+ _this.followRedirects = false;
24
+ _this.timeout = 30000;
25
+ _this.payload = null;
26
+ _this.contentType = null;
27
+ _this.headers = null;
28
+ _this.createSerial(_this.url);
29
+ _this.createEventCallbackName('httpResponse');
30
+ return _this;
28
31
  }
29
32
 
30
33
  /**
@@ -32,7 +35,9 @@ class HttpRequest extends Request {
32
35
  * @param {Object|string} [payload={}] The payload to send with the request
33
36
  * @returns {HttpRequest}
34
37
  */
35
- setPayload(payload = {}) {
38
+ _inheritsLoose(HttpRequest, _Request);
39
+ var _proto = HttpRequest.prototype;
40
+ _proto.setPayload = function setPayload(payload = {}) {
36
41
  this.payload = payload;
37
42
  return this;
38
43
  }
@@ -42,8 +47,8 @@ class HttpRequest extends Request {
42
47
  * @param {string} type The contentType for request
43
48
  * @deprecated Not supported anymore by app version >= 11.0.0
44
49
  * @returns {HttpRequest}
45
- */
46
- setContentType(type) {
50
+ */;
51
+ _proto.setContentType = function setContentType(type) {
47
52
  this.contentType = type;
48
53
  return this;
49
54
  }
@@ -56,8 +61,8 @@ class HttpRequest extends Request {
56
61
  * Sets the headers for the HttpRequest.
57
62
  * @param {HeaderMap} headers - An object mapping header names to values.
58
63
  * @returns {HttpRequest} The current HttpRequest instance (for chaining).
59
- */
60
- setHeaders(headers) {
64
+ */;
65
+ _proto.setHeaders = function setHeaders(headers) {
61
66
  if (typeof headers !== 'object') {
62
67
  logger.error('HttpRequest: setHeaders expects an object as parameter');
63
68
  return this;
@@ -70,8 +75,8 @@ class HttpRequest extends Request {
70
75
  * Sets the request method
71
76
  * @param {string} method The method string
72
77
  * @return {HttpRequest}
73
- */
74
- setMethod(method) {
78
+ */;
79
+ _proto.setMethod = function setMethod(method) {
75
80
  if (['GET', 'POST', 'PUT', 'DELETE'].includes(method)) {
76
81
  this.method = method;
77
82
  } else {
@@ -84,8 +89,8 @@ class HttpRequest extends Request {
84
89
  * Tells if the redirects will be followed
85
90
  * @param {boolean} value The value
86
91
  * @return {HttpRequest}
87
- */
88
- setFollowRedirects(value) {
92
+ */;
93
+ _proto.setFollowRedirects = function setFollowRedirects(value) {
89
94
  this.followRedirects = value;
90
95
  return this;
91
96
  }
@@ -94,8 +99,8 @@ class HttpRequest extends Request {
94
99
  * Sets the timeout for the request
95
100
  * @param {number} timeout The timeout
96
101
  * @return {HttpRequest}
97
- */
98
- setTimeout(timeout) {
102
+ */;
103
+ _proto.setTimeout = function setTimeout(timeout) {
99
104
  this.timeout = timeout;
100
105
  return this;
101
106
  }
@@ -104,8 +109,8 @@ class HttpRequest extends Request {
104
109
  * Determines the right content type for the request payload
105
110
  * @private
106
111
  * @return {string} The content type
107
- */
108
- getContentType() {
112
+ */;
113
+ _proto.getContentType = function getContentType() {
109
114
  let contentType = 'text/plain';
110
115
  if (typeof this.payload === 'object') {
111
116
  contentType = 'application/x-www-form-urlencoded; charset=UTF-8';
@@ -116,8 +121,8 @@ class HttpRequest extends Request {
116
121
  /**
117
122
  * Determines the headers for the request
118
123
  * @returns {Object} The headers
119
- */
120
- getHeaders() {
124
+ */;
125
+ _proto.getHeaders = function getHeaders() {
121
126
  if (!this.headers) {
122
127
  return {};
123
128
  }
@@ -128,8 +133,8 @@ class HttpRequest extends Request {
128
133
  * Creates the data request body from the payload
129
134
  * @private
130
135
  * @return {string} The request body
131
- */
132
- getRequestBody() {
136
+ */;
137
+ _proto.getRequestBody = function getRequestBody() {
133
138
  /**
134
139
  * Serializes a javascript object for a data request body
135
140
  * @param {Object} obj The object that shall be serialized
@@ -169,8 +174,8 @@ class HttpRequest extends Request {
169
174
  /**
170
175
  * Sends the HttpRequest and returns a promise.
171
176
  * @returns {Promise}
172
- */
173
- dispatch() {
177
+ */;
178
+ _proto.dispatch = function dispatch() {
174
179
  return new Promise((resolve, reject) => {
175
180
  const requestCallbackName = this.getEventCallbackName();
176
181
  requestBuffer.add(this, this.serial);
@@ -220,6 +225,7 @@ class HttpRequest extends Request {
220
225
  const command = new AppCommand();
221
226
  command.setCommandName('sendHttpRequest').setLibVersion('13.0').dispatch(options);
222
227
  });
223
- }
224
- }
228
+ };
229
+ return HttpRequest;
230
+ }(Request);
225
231
  export default HttpRequest;
@@ -3,11 +3,11 @@ import logGroup from "../../helpers/logGroup";
3
3
  /**
4
4
  * Holds the pipeline dependencies.
5
5
  */
6
- class PipelineDependencies {
6
+ let PipelineDependencies = /*#__PURE__*/function () {
7
7
  /**
8
8
  * Constructor.
9
9
  */
10
- constructor() {
10
+ function PipelineDependencies() {
11
11
  this.dependencies = {};
12
12
  }
13
13
 
@@ -16,7 +16,8 @@ class PipelineDependencies {
16
16
  * @param {string} pipelineName The name of the pipeline request.
17
17
  * @param {Array|string} dependencies Pipeline names to set as a dependency.
18
18
  */
19
- set(pipelineName, dependencies = []) {
19
+ var _proto = PipelineDependencies.prototype;
20
+ _proto.set = function set(pipelineName, dependencies = []) {
20
21
  const newDependencies = [].concat(dependencies);
21
22
  if (!dependencies || !dependencies.length) {
22
23
  return;
@@ -33,8 +34,8 @@ class PipelineDependencies {
33
34
  * Returns a list of pipeline names that are a dependency of a pipeline request.
34
35
  * @param {string} pipelineName The name of the pipeline request.
35
36
  * @return {Set}
36
- */
37
- get(pipelineName) {
37
+ */;
38
+ _proto.get = function get(pipelineName) {
38
39
  if (!pipelineName || !this.has(pipelineName)) {
39
40
  return new Set();
40
41
  }
@@ -45,9 +46,10 @@ class PipelineDependencies {
45
46
  * Checks if a pipeline has dependencies registered
46
47
  * @param {string} pipelineName The pipeline name
47
48
  * @return {boolean}
48
- */
49
- has(pipelineName) {
49
+ */;
50
+ _proto.has = function has(pipelineName) {
50
51
  return this.dependencies.hasOwnProperty(pipelineName);
51
- }
52
- }
52
+ };
53
+ return PipelineDependencies;
54
+ }();
53
55
  export default new PipelineDependencies();
@@ -10,7 +10,7 @@ jest.mock("../../helpers/logGroup", () => (...args) => mockLogGroup(args));
10
10
  * @return {PipelineDependencies}
11
11
  */
12
12
  const getInstance = () => {
13
- const instance = require.requireActual("./index").default;
13
+ const instance = jest.requireActual("./index").default;
14
14
  return instance;
15
15
  };
16
16
  describe('PipelineDependencies', () => {
@@ -41,7 +41,7 @@ describe('PipelineDependencies', () => {
41
41
 
42
42
  // Add more
43
43
  pipelineDependencies.set(pipelineName, dependecies2);
44
- result = new Set([...dependecies1, ...dependecies2]);
44
+ result = new Set([].concat(dependecies1, dependecies2));
45
45
  expect(pipelineDependencies.get(pipelineName)).toEqual(result);
46
46
  expect(mockLogGroup).toHaveBeenCalledTimes(2);
47
47
  });
@@ -13,11 +13,11 @@ import logGroup from "../../helpers/logGroup";
13
13
  * The PipelineManager class.
14
14
  * Manages requests, retries responses and timeouts of PipelineRequest instances.
15
15
  */
16
- class PipelineManager {
16
+ let PipelineManager = /*#__PURE__*/function () {
17
17
  /**
18
18
  * Constructor.
19
19
  */
20
- constructor() {
20
+ function PipelineManager() {
21
21
  /**
22
22
  * Sanitizes error objects.
23
23
  * @param {Object} error An error object.
@@ -54,17 +54,18 @@ class PipelineManager {
54
54
  * Adds error code(s) to the suppressed collection.
55
55
  * @param {Array|string} code The code(s) of the errors to suppress.
56
56
  */
57
- addSuppressedErrors(code) {
57
+ var _proto = PipelineManager.prototype;
58
+ _proto.addSuppressedErrors = function addSuppressedErrors(code) {
58
59
  const codes = [].concat(code);
59
- this.suppressedErrors = [...this.suppressedErrors, ...codes];
60
+ this.suppressedErrors = [].concat(this.suppressedErrors, codes);
60
61
  }
61
62
 
62
63
  /**
63
64
  * Adds a new PipelineRequest instance.
64
65
  * @param {PipelineRequest} request The pipeline request instance.
65
66
  * @return {Promise}
66
- */
67
- add(request) {
67
+ */;
68
+ _proto.add = function add(request) {
68
69
  request.createSerial(`${request.name}.v${request.version}`);
69
70
  request.createEventCallbackName('pipelineResponse');
70
71
 
@@ -86,8 +87,8 @@ class PipelineManager {
86
87
  * Dispatches a PipelineRequest instance.
87
88
  * @param {string} serial The pipeline request serial.
88
89
  * @return {Promise}
89
- */
90
- dispatch(serial) {
90
+ */;
91
+ _proto.dispatch = function dispatch(serial) {
91
92
  return new Promise((resolve, reject) => {
92
93
  const entry = this.requests.get(serial);
93
94
  const {
@@ -114,8 +115,8 @@ class PipelineManager {
114
115
  * @param {string} serial The pipeline request serial.
115
116
  * @param {Function} resolve Resolves the promise.
116
117
  * @param {Function} reject Rejects the promise.
117
- */
118
- createRequestCallback(serial, resolve, reject) {
118
+ */;
119
+ _proto.createRequestCallback = function createRequestCallback(serial, resolve, reject) {
119
120
  const entry = this.requests.get(serial);
120
121
  const {
121
122
  request
@@ -156,8 +157,8 @@ class PipelineManager {
156
157
  * Checks whether a pipeline request has running dependencies.
157
158
  * @param {string} pipelineName The name of the pipeline.
158
159
  * @return {boolean}
159
- */
160
- hasRunningDependencies(pipelineName) {
160
+ */;
161
+ _proto.hasRunningDependencies = function hasRunningDependencies(pipelineName) {
161
162
  const dependencies = pipelineDependencies.get(pipelineName);
162
163
  let found = 0;
163
164
  dependencies.forEach(dependency => {
@@ -171,8 +172,8 @@ class PipelineManager {
171
172
 
172
173
  /**
173
174
  * Sends deferred requests when they don't have running dependencies anymore.
174
- */
175
- handleDeferredRequests() {
175
+ */;
176
+ _proto.handleDeferredRequests = function handleDeferredRequests() {
176
177
  this.requests.forEach(entry => {
177
178
  const {
178
179
  deferred,
@@ -195,8 +196,8 @@ class PipelineManager {
195
196
  /**
196
197
  * Handles the request timeout.
197
198
  * @param {string} serial The pipeline request serial.
198
- */
199
- handleTimeout(serial) {
199
+ */;
200
+ _proto.handleTimeout = function handleTimeout(serial) {
200
201
  const entry = this.requests.get(serial);
201
202
  const {
202
203
  request,
@@ -216,12 +217,12 @@ class PipelineManager {
216
217
  this.decrementRetries(serial);
217
218
  this.sendRequest(serial);
218
219
  }, request.timeout);
219
- }
220
+ };
220
221
  /**
221
222
  * Handles a pipeline error.
222
223
  * @param {string} serial The pipeline request serial.
223
224
  */
224
- handleError(serial) {
225
+ _proto.handleError = function handleError(serial) {
225
226
  const {
226
227
  request
227
228
  } = this.requests.get(serial);
@@ -277,8 +278,8 @@ class PipelineManager {
277
278
  /**
278
279
  * Handles the result of a dispatched PipelineRequest.
279
280
  * @param {string} serial The pipeline request serial.
280
- */
281
- handleResult(serial) {
281
+ */;
282
+ _proto.handleResult = function handleResult(serial) {
282
283
  const entry = this.requests.get(serial);
283
284
  const {
284
285
  request
@@ -323,8 +324,8 @@ class PipelineManager {
323
324
 
324
325
  /**
325
326
  * Handles the results sequentially.
326
- */
327
- handleResultSequence() {
327
+ */;
328
+ _proto.handleResultSequence = function handleResultSequence() {
328
329
  // Create a copy of the sequence, to avoid side effects when entries are removed.
329
330
  const [...sequence] = pipelineSequence.get();
330
331
  for (let i = 0; i < sequence.length; i += 1) {
@@ -345,8 +346,8 @@ class PipelineManager {
345
346
  /**
346
347
  * Handles only the last result of a list of calls to the same pipeline.
347
348
  * @param {string} serial The serial of the incoming response
348
- */
349
- handleResultLast(serial) {
349
+ */;
350
+ _proto.handleResultLast = function handleResultLast(serial) {
350
351
  const entry = this.requests.get(serial);
351
352
 
352
353
  // Requests which are queried later mark all previous ones to be bypassed ...
@@ -362,8 +363,8 @@ class PipelineManager {
362
363
  /**
363
364
  * Sends the actual request command.
364
365
  * @param {string} serial The pipeline request serial.
365
- */
366
- sendRequest(serial) {
366
+ */;
367
+ _proto.sendRequest = function sendRequest(serial) {
367
368
  const entry = this.requests.get(serial);
368
369
  if (!entry) {
369
370
  return;
@@ -394,8 +395,8 @@ class PipelineManager {
394
395
  /**
395
396
  * Adds sequentially processed requests to the pipeline sequence.
396
397
  * @param {string} serial The pipeline request serial.
397
- */
398
- addRequestToPipelineSequence(serial) {
398
+ */;
399
+ _proto.addRequestToPipelineSequence = function addRequestToPipelineSequence(serial) {
399
400
  const {
400
401
  request
401
402
  } = this.requests.get(serial);
@@ -409,8 +410,8 @@ class PipelineManager {
409
410
  * same pipeline name (with the flag being set as well) to be marked as bypassed.
410
411
  * When a response of a bypassed request comes in, it will be ignored.
411
412
  * @param {string} serial The pipeline request serial.
412
- */
413
- bypassOutdatedRequests(serial) {
413
+ */;
414
+ _proto.bypassOutdatedRequests = function bypassOutdatedRequests(serial) {
414
415
  const {
415
416
  request
416
417
  } = this.requests.get(serial);
@@ -450,13 +451,13 @@ class PipelineManager {
450
451
  const previousResolvers = Array.isArray(entry.request.resolve) ? entry.request.resolve : [entry.request.resolve];
451
452
 
452
453
  // Attach to current
453
- request.resolve = [...request.resolve, ...previousResolvers];
454
+ request.resolve = [].concat(request.resolve, previousResolvers);
454
455
 
455
456
  // Collect and move over all rejectors of the previous requests to the current one
456
457
  const previousRejectors = Array.isArray(entry.request.reject) ? entry.request.reject : [entry.request.reject];
457
458
 
458
459
  // Attach to current
459
- request.reject = [...request.reject, ...previousRejectors];
460
+ request.reject = [].concat(request.reject, previousRejectors);
460
461
 
461
462
  // Clear out retry mechanism on bypassed requests
462
463
  clearTimeout(entry.timer);
@@ -477,8 +478,8 @@ class PipelineManager {
477
478
  /**
478
479
  * Removes sequentially processed requests from the pipeline sequence.
479
480
  * @param {string} serial The pipeline request serial.
480
- */
481
- removeRequestFromPipelineSequence(serial) {
481
+ */;
482
+ _proto.removeRequestFromPipelineSequence = function removeRequestFromPipelineSequence(serial) {
482
483
  const {
483
484
  request
484
485
  } = this.requests.get(serial) || {};
@@ -492,8 +493,8 @@ class PipelineManager {
492
493
  /**
493
494
  * Increments the ongoing count for the pipeline of a request.
494
495
  * @param {string} serial The pipeline request serial.
495
- */
496
- incrementPipelineOngoing(serial) {
496
+ */;
497
+ _proto.incrementPipelineOngoing = function incrementPipelineOngoing(serial) {
497
498
  const pipelineName = this.getPipelineNameBySerial(serial, false);
498
499
  if (!pipelineName) {
499
500
  return;
@@ -508,8 +509,8 @@ class PipelineManager {
508
509
  /**
509
510
  * Decrements the ongoing count for the pipeline of a request.
510
511
  * @param {string} serial The pipeline request serial.
511
- */
512
- decrementPipelineOngoing(serial) {
512
+ */;
513
+ _proto.decrementPipelineOngoing = function decrementPipelineOngoing(serial) {
513
514
  const pipelineName = this.getPipelineNameBySerial(serial, false);
514
515
  if (!pipelineName) {
515
516
  return;
@@ -527,8 +528,8 @@ class PipelineManager {
527
528
  /**
528
529
  * Decrements the retries count.
529
530
  * @param {string} serial The pipeline request serial.
530
- */
531
- decrementRetries(serial) {
531
+ */;
532
+ _proto.decrementRetries = function decrementRetries(serial) {
532
533
  const entry = this.requests.get(serial);
533
534
  if (!entry) {
534
535
  return;
@@ -543,8 +544,8 @@ class PipelineManager {
543
544
  * @param {string} serial The pipeline request serial.
544
545
  * @param {boolean} [addVersion=true] Should the pipeline version be added.
545
546
  * @return {string}
546
- */
547
- getPipelineNameBySerial(serial, addVersion = true) {
547
+ */;
548
+ _proto.getPipelineNameBySerial = function getPipelineNameBySerial(serial, addVersion = true) {
548
549
  const entry = this.requests.get(serial);
549
550
  if (!entry) {
550
551
  return '';
@@ -559,14 +560,15 @@ class PipelineManager {
559
560
  * Returns the retries prefix for logs.
560
561
  * @param {string} serial The pipeline request serial.
561
562
  * @return {string}
562
- */
563
- getRetriesPrefix(serial) {
563
+ */;
564
+ _proto.getRetriesPrefix = function getRetriesPrefix(serial) {
564
565
  const {
565
566
  request,
566
567
  retries
567
568
  } = this.requests.get(serial);
568
569
  const numRetries = request.retries - retries;
569
570
  return numRetries ? `Retry ${numRetries}: ` : '';
570
- }
571
- }
571
+ };
572
+ return PipelineManager;
573
+ }();
572
574
  export default new PipelineManager();