@ama-sdk/client-fetch 12.3.0-prerelease.8 → 12.3.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/api-fetch-client.js +18 -22
- package/cjs/plugins/abort/abort.spec.js +83 -81
- package/cjs/plugins/concurrent/concurrent.fetch.js +12 -20
- package/cjs/plugins/concurrent/concurrent.spec.js +99 -99
- package/cjs/plugins/keepalive/keepalive.request.js +7 -12
- package/cjs/plugins/keepalive/keepalive.spec.js +32 -34
- package/cjs/plugins/mock-intercept/mock-intercept.fetch.js +15 -22
- package/cjs/plugins/mock-intercept/mock-intercept.spec.js +247 -239
- package/cjs/plugins/perf-metric/perf-metric.fetch.js +11 -18
- package/cjs/plugins/retry/retry.fetch.js +18 -27
- package/cjs/plugins/retry/retry.spec.js +233 -225
- package/cjs/plugins/timeout/timeout.fetch.js +13 -19
- package/cjs/plugins/timeout/timeout.spec.js +211 -205
- package/cjs/plugins/wait-for/wait-for.fetch.js +19 -29
- package/cjs/plugins/wait-for/wait-for.spec.js +211 -203
- package/esm2015/api-fetch-client.js +18 -22
- package/esm2015/plugins/abort/abort.spec.js +83 -81
- package/esm2015/plugins/concurrent/concurrent.fetch.js +12 -20
- package/esm2015/plugins/concurrent/concurrent.spec.js +99 -99
- package/esm2015/plugins/keepalive/keepalive.request.js +7 -12
- package/esm2015/plugins/keepalive/keepalive.spec.js +32 -34
- package/esm2015/plugins/mock-intercept/mock-intercept.fetch.js +15 -22
- package/esm2015/plugins/mock-intercept/mock-intercept.spec.js +247 -239
- package/esm2015/plugins/perf-metric/perf-metric.fetch.js +11 -18
- package/esm2015/plugins/retry/retry.fetch.js +18 -27
- package/esm2015/plugins/retry/retry.spec.js +233 -225
- package/esm2015/plugins/timeout/timeout.fetch.js +13 -19
- package/esm2015/plugins/timeout/timeout.spec.js +211 -205
- package/esm2015/plugins/wait-for/wait-for.fetch.js +19 -29
- package/esm2015/plugins/wait-for/wait-for.spec.js +211 -203
- package/package.json +15 -15
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +11 -21
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/migration/import-map.js.map +1 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/src/api-fetch-client.d.ts +1 -1
- package/src/api-fetch-client.d.ts.map +1 -1
- package/src/api-fetch-client.js +2 -1
- package/src/api-fetch-client.js.map +1 -1
|
@@ -71,7 +71,7 @@ function _type_of(obj) {
|
|
|
71
71
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
72
72
|
}
|
|
73
73
|
function _ts_generator(thisArg, body) {
|
|
74
|
-
var f, y, t,
|
|
74
|
+
var f, y, t, _ = {
|
|
75
75
|
label: 0,
|
|
76
76
|
sent: function() {
|
|
77
77
|
if (t[0] & 1) throw t[1];
|
|
@@ -79,12 +79,8 @@ function _ts_generator(thisArg, body) {
|
|
|
79
79
|
},
|
|
80
80
|
trys: [],
|
|
81
81
|
ops: []
|
|
82
|
-
};
|
|
83
|
-
return g = {
|
|
84
|
-
next: verb(0),
|
|
85
|
-
"throw": verb(1),
|
|
86
|
-
"return": verb(2)
|
|
87
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
82
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
83
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
88
84
|
return this;
|
|
89
85
|
}), g;
|
|
90
86
|
function verb(n) {
|
|
@@ -97,7 +93,7 @@ function _ts_generator(thisArg, body) {
|
|
|
97
93
|
}
|
|
98
94
|
function step(op) {
|
|
99
95
|
if (f) throw new TypeError("Generator is already executing.");
|
|
100
|
-
while(_)try {
|
|
96
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
101
97
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
102
98
|
if (y = 0, t) op = [
|
|
103
99
|
op[0] & 2,
|
|
@@ -235,18 +231,19 @@ import { ResponseTimeoutError } from '@ama-sdk/core';
|
|
|
235
231
|
return {
|
|
236
232
|
transform: function(fetchCall) {
|
|
237
233
|
return(// eslint-disable-next-line no-async-promise-executor -- all await are handled with a try-catch block
|
|
238
|
-
new Promise(
|
|
239
|
-
|
|
240
|
-
var timeoutCallback, timer, timerCallback, response, ex;
|
|
234
|
+
new Promise(function(resolve, reject) {
|
|
235
|
+
return _async_to_generator(function() {
|
|
236
|
+
var _this, timeoutCallback, timer, timerCallback, response, ex;
|
|
241
237
|
return _ts_generator(this, function(_state) {
|
|
242
238
|
switch(_state.label){
|
|
243
239
|
case 0:
|
|
240
|
+
_this = this;
|
|
244
241
|
timeoutCallback = function() {
|
|
245
242
|
reject(new ResponseTimeoutError("in ".concat(_this.timeout, "ms")));
|
|
246
243
|
// Fetch abort controller is now supported by all modern browser and node 15+. It should always be defined
|
|
247
244
|
context.controller.abort();
|
|
248
245
|
};
|
|
249
|
-
timer =
|
|
246
|
+
timer = this.timerPauseState === 'timeoutStopped' ? undefined : setTimeout(timeoutCallback, this.timeout);
|
|
250
247
|
timerCallback = function(pauseStatus) {
|
|
251
248
|
if (timer && pauseStatus === 'timeoutStopped') {
|
|
252
249
|
clearTimeout(timer);
|
|
@@ -257,7 +254,7 @@ import { ResponseTimeoutError } from '@ama-sdk/core';
|
|
|
257
254
|
(context.logger || console).log('[SDK Plugins] Timeout restarted.');
|
|
258
255
|
}
|
|
259
256
|
};
|
|
260
|
-
|
|
257
|
+
this.timerSubscription.push(timerCallback);
|
|
261
258
|
_state.label = 1;
|
|
262
259
|
case 1:
|
|
263
260
|
_state.trys.push([
|
|
@@ -290,7 +287,7 @@ import { ResponseTimeoutError } from '@ama-sdk/core';
|
|
|
290
287
|
if (timer) {
|
|
291
288
|
clearTimeout(timer);
|
|
292
289
|
}
|
|
293
|
-
|
|
290
|
+
this.timerSubscription = this.timerSubscription.filter(function(callback) {
|
|
294
291
|
return timerCallback !== callback;
|
|
295
292
|
});
|
|
296
293
|
return [
|
|
@@ -302,11 +299,8 @@ import { ResponseTimeoutError } from '@ama-sdk/core';
|
|
|
302
299
|
];
|
|
303
300
|
}
|
|
304
301
|
});
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
return _ref.apply(this, arguments);
|
|
308
|
-
};
|
|
309
|
-
}()));
|
|
302
|
+
}).call(_this);
|
|
303
|
+
}));
|
|
310
304
|
}
|
|
311
305
|
};
|
|
312
306
|
}
|
|
@@ -32,7 +32,7 @@ function _type_of(obj) {
|
|
|
32
32
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
33
33
|
}
|
|
34
34
|
function _ts_generator(thisArg, body) {
|
|
35
|
-
var f, y, t,
|
|
35
|
+
var f, y, t, _ = {
|
|
36
36
|
label: 0,
|
|
37
37
|
sent: function() {
|
|
38
38
|
if (t[0] & 1) throw t[1];
|
|
@@ -40,12 +40,8 @@ function _ts_generator(thisArg, body) {
|
|
|
40
40
|
},
|
|
41
41
|
trys: [],
|
|
42
42
|
ops: []
|
|
43
|
-
};
|
|
44
|
-
return g = {
|
|
45
|
-
next: verb(0),
|
|
46
|
-
"throw": verb(1),
|
|
47
|
-
"return": verb(2)
|
|
48
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
43
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
44
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
49
45
|
return this;
|
|
50
46
|
}), g;
|
|
51
47
|
function verb(n) {
|
|
@@ -58,7 +54,7 @@ function _ts_generator(thisArg, body) {
|
|
|
58
54
|
}
|
|
59
55
|
function step(op) {
|
|
60
56
|
if (f) throw new TypeError("Generator is already executing.");
|
|
61
|
-
while(_)try {
|
|
57
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
62
58
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
63
59
|
if (y = 0, t) op = [
|
|
64
60
|
op[0] & 2,
|
|
@@ -130,203 +126,213 @@ var _this = this;
|
|
|
130
126
|
import { EmptyResponseError, ResponseTimeoutError } from '@ama-sdk/core';
|
|
131
127
|
import { impervaCaptchaEventHandlerFactory, TimeoutFetch } from './timeout.fetch';
|
|
132
128
|
describe('Timeout Fetch Plugin', function() {
|
|
133
|
-
it('should reject on timeout',
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
promise
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
129
|
+
it('should reject on timeout', function() {
|
|
130
|
+
return _async_to_generator(function() {
|
|
131
|
+
var plugin, runner, call, callback;
|
|
132
|
+
return _ts_generator(this, function(_state) {
|
|
133
|
+
switch(_state.label){
|
|
134
|
+
case 0:
|
|
135
|
+
plugin = new TimeoutFetch(100);
|
|
136
|
+
runner = plugin.load({
|
|
137
|
+
controller: new AbortController()
|
|
138
|
+
});
|
|
139
|
+
call = new Promise(function(resolve) {
|
|
140
|
+
return setTimeout(function() {
|
|
141
|
+
return resolve(undefined);
|
|
142
|
+
}, 1000);
|
|
143
|
+
});
|
|
144
|
+
callback = jest.fn();
|
|
145
|
+
runner.transform(call).catch(callback);
|
|
146
|
+
return [
|
|
147
|
+
4,
|
|
148
|
+
jest.advanceTimersByTimeAsync(99)
|
|
149
|
+
];
|
|
150
|
+
case 1:
|
|
151
|
+
_state.sent();
|
|
152
|
+
expect(callback).not.toHaveBeenCalled();
|
|
153
|
+
return [
|
|
154
|
+
4,
|
|
155
|
+
jest.advanceTimersByTimeAsync(1)
|
|
156
|
+
];
|
|
157
|
+
case 2:
|
|
158
|
+
_state.sent();
|
|
159
|
+
expect(callback).toHaveBeenCalledWith(new ResponseTimeoutError('in 100ms'));
|
|
160
|
+
return [
|
|
161
|
+
2
|
|
162
|
+
];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
})();
|
|
166
|
+
});
|
|
167
|
+
it('should not reject on fetch rejection', function() {
|
|
168
|
+
return _async_to_generator(function() {
|
|
169
|
+
var plugin, runner, call, callback;
|
|
170
|
+
return _ts_generator(this, function(_state) {
|
|
171
|
+
switch(_state.label){
|
|
172
|
+
case 0:
|
|
173
|
+
plugin = new TimeoutFetch(6000);
|
|
174
|
+
runner = plugin.load({
|
|
175
|
+
controller: new AbortController()
|
|
176
|
+
});
|
|
177
|
+
call = new Promise(function(_resolve, reject) {
|
|
178
|
+
return setTimeout(function() {
|
|
179
|
+
return reject(new EmptyResponseError(''));
|
|
180
|
+
}, 100);
|
|
181
|
+
});
|
|
182
|
+
callback = jest.fn();
|
|
183
|
+
runner.transform(call).catch(callback);
|
|
184
|
+
return [
|
|
185
|
+
4,
|
|
186
|
+
jest.advanceTimersByTimeAsync(6000)
|
|
187
|
+
];
|
|
188
|
+
case 1:
|
|
189
|
+
_state.sent();
|
|
190
|
+
expect(callback).toHaveBeenCalledWith(new EmptyResponseError(''));
|
|
191
|
+
return [
|
|
192
|
+
2
|
|
193
|
+
];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
})();
|
|
197
|
+
});
|
|
198
|
+
it('should forward the fetch response', function() {
|
|
199
|
+
return _async_to_generator(function() {
|
|
200
|
+
var plugin, runner, call, promise;
|
|
201
|
+
return _ts_generator(this, function(_state) {
|
|
202
|
+
switch(_state.label){
|
|
203
|
+
case 0:
|
|
204
|
+
plugin = new TimeoutFetch(2000);
|
|
205
|
+
runner = plugin.load({
|
|
206
|
+
controller: new AbortController()
|
|
207
|
+
});
|
|
208
|
+
call = new Promise(function(resolve) {
|
|
209
|
+
return setTimeout(function() {
|
|
210
|
+
return resolve({
|
|
211
|
+
test: true
|
|
212
|
+
});
|
|
213
|
+
}, 100);
|
|
214
|
+
});
|
|
215
|
+
promise = runner.transform(call);
|
|
216
|
+
return [
|
|
217
|
+
4,
|
|
218
|
+
jest.runAllTimersAsync()
|
|
219
|
+
];
|
|
220
|
+
case 1:
|
|
221
|
+
_state.sent();
|
|
222
|
+
return [
|
|
223
|
+
4,
|
|
224
|
+
promise
|
|
225
|
+
];
|
|
226
|
+
case 2:
|
|
227
|
+
expect.apply(void 0, [
|
|
228
|
+
_state.sent()
|
|
229
|
+
]).toEqual({
|
|
230
|
+
test: true
|
|
231
|
+
});
|
|
232
|
+
return [
|
|
233
|
+
2
|
|
234
|
+
];
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
})();
|
|
238
|
+
});
|
|
239
|
+
it('should not reject if the timeout has been paused and reject if restarted', function() {
|
|
240
|
+
return _async_to_generator(function() {
|
|
241
|
+
var timeoutPauseEvent, plugin, runner, call, callback;
|
|
242
|
+
return _ts_generator(this, function(_state) {
|
|
243
|
+
switch(_state.label){
|
|
244
|
+
case 0:
|
|
245
|
+
timeoutPauseEvent = {
|
|
246
|
+
emitEvent: function(_status) {},
|
|
247
|
+
handler: function(timeoutPauseCallback) {
|
|
248
|
+
timeoutPauseEvent.emitEvent = timeoutPauseCallback;
|
|
249
|
+
return function() {};
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
plugin = new TimeoutFetch(100, timeoutPauseEvent.handler);
|
|
253
|
+
runner = plugin.load({
|
|
254
|
+
controller: new AbortController()
|
|
255
|
+
});
|
|
256
|
+
call = new Promise(function(resolve) {
|
|
257
|
+
return setTimeout(function() {
|
|
258
|
+
return resolve({
|
|
259
|
+
test: true
|
|
260
|
+
});
|
|
261
|
+
}, 500);
|
|
262
|
+
});
|
|
263
|
+
callback = jest.fn();
|
|
264
|
+
runner.transform(call).catch(callback);
|
|
265
|
+
timeoutPauseEvent.emitEvent('timeoutStopped');
|
|
266
|
+
return [
|
|
267
|
+
4,
|
|
268
|
+
jest.advanceTimersByTimeAsync(200)
|
|
269
|
+
];
|
|
270
|
+
case 1:
|
|
271
|
+
_state.sent();
|
|
272
|
+
timeoutPauseEvent.emitEvent('timeoutStarted');
|
|
273
|
+
return [
|
|
274
|
+
4,
|
|
275
|
+
jest.advanceTimersByTimeAsync(200)
|
|
276
|
+
];
|
|
277
|
+
case 2:
|
|
278
|
+
_state.sent();
|
|
279
|
+
expect(callback).toHaveBeenCalledWith(new ResponseTimeoutError('in 100ms'));
|
|
280
|
+
return [
|
|
281
|
+
2
|
|
282
|
+
];
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
})();
|
|
286
|
+
});
|
|
287
|
+
it('should take into account pause events triggered before the call', function() {
|
|
288
|
+
return _async_to_generator(function() {
|
|
289
|
+
var timeoutPauseEvent, plugin, runner, call, promise;
|
|
290
|
+
return _ts_generator(this, function(_state) {
|
|
291
|
+
switch(_state.label){
|
|
292
|
+
case 0:
|
|
293
|
+
timeoutPauseEvent = {
|
|
294
|
+
emitEvent: function(_status) {},
|
|
295
|
+
handler: function(timeoutPauseCallback) {
|
|
296
|
+
timeoutPauseEvent.emitEvent = timeoutPauseCallback;
|
|
297
|
+
return function() {};
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
plugin = new TimeoutFetch(250, timeoutPauseEvent.handler);
|
|
301
|
+
runner = plugin.load({
|
|
302
|
+
controller: new AbortController()
|
|
303
|
+
});
|
|
304
|
+
call = new Promise(function(resolve) {
|
|
305
|
+
return setTimeout(function() {
|
|
306
|
+
return resolve({
|
|
307
|
+
test: true
|
|
308
|
+
});
|
|
309
|
+
}, 500);
|
|
310
|
+
});
|
|
311
|
+
timeoutPauseEvent.emitEvent('timeoutStopped');
|
|
312
|
+
promise = runner.transform(call);
|
|
313
|
+
return [
|
|
314
|
+
4,
|
|
315
|
+
jest.runAllTimersAsync()
|
|
316
|
+
];
|
|
317
|
+
case 1:
|
|
318
|
+
_state.sent();
|
|
319
|
+
return [
|
|
320
|
+
4,
|
|
321
|
+
promise
|
|
322
|
+
];
|
|
323
|
+
case 2:
|
|
324
|
+
expect.apply(void 0, [
|
|
325
|
+
_state.sent()
|
|
326
|
+
]).toEqual({
|
|
327
|
+
test: true
|
|
328
|
+
});
|
|
329
|
+
return [
|
|
330
|
+
2
|
|
331
|
+
];
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
})();
|
|
335
|
+
});
|
|
330
336
|
});
|
|
331
337
|
describe('impervaCaptchaEventHandlerFactory', function() {
|
|
332
338
|
var postMessageTemp;
|