pdfjs-dist 1.8.430 → 1.8.432

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.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

@@ -0,0 +1,372 @@
1
+ /* Copyright 2017 Mozilla Foundation
2
+ *
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+ 'use strict';
16
+
17
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
18
+
19
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
20
+
21
+ var _util = require('../../shared/util');
22
+
23
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24
+
25
+ describe('util_stream', function () {
26
+ var FakePort = function () {
27
+ function FakePort() {
28
+ _classCallCheck(this, FakePort);
29
+
30
+ this._listeners = [];
31
+ this._deferred = Promise.resolve(undefined);
32
+ }
33
+
34
+ _createClass(FakePort, [{
35
+ key: 'postMessage',
36
+ value: function postMessage(obj) {
37
+ var _this = this;
38
+
39
+ var event = { data: obj };
40
+ this._deferred.then(function () {
41
+ _this._listeners.forEach(function (listener) {
42
+ listener.call(this, event);
43
+ }, _this);
44
+ });
45
+ }
46
+ }, {
47
+ key: 'addEventListener',
48
+ value: function addEventListener(name, listener) {
49
+ this._listeners.push(listener);
50
+ }
51
+ }, {
52
+ key: 'removeEventListener',
53
+ value: function removeEventListener(name, listener) {
54
+ var i = this._listeners.indexOf(listener);
55
+ this._listeners.splice(i, 1);
56
+ }
57
+ }, {
58
+ key: 'terminate',
59
+ value: function terminate() {
60
+ this._listeners = [];
61
+ }
62
+ }]);
63
+
64
+ return FakePort;
65
+ }();
66
+
67
+ function sleep(ticks) {
68
+ return Promise.resolve().then(function () {
69
+ return ticks && sleep(ticks - 1);
70
+ });
71
+ }
72
+ describe('sendWithStream', function () {
73
+ it('should return a ReadableStream', function () {
74
+ var port = new FakePort();
75
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
76
+ var readable = messageHandler1.sendWithStream('fakeHandler');
77
+ expect(typeof readable === 'undefined' ? 'undefined' : _typeof(readable)).toEqual('object');
78
+ expect(_typeof(readable.getReader)).toEqual('function');
79
+ });
80
+ it('should read using a reader', function (done) {
81
+ var log = '';
82
+ var port = new FakePort();
83
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
84
+ var messageHandler2 = new _util.MessageHandler('worker', 'main', port);
85
+ messageHandler2.on('fakeHandler', function (data, sink) {
86
+ sink.onPull = function () {
87
+ log += 'p';
88
+ };
89
+ sink.onCancel = function (reason) {
90
+ log += 'c';
91
+ };
92
+ sink.ready.then(function () {
93
+ sink.enqueue('hi');
94
+ return sink.ready;
95
+ }).then(function () {
96
+ sink.close();
97
+ });
98
+ return sleep(5);
99
+ });
100
+ var readable = messageHandler1.sendWithStream('fakeHandler', {}, {
101
+ highWaterMark: 1,
102
+ size: function size() {
103
+ return 1;
104
+ }
105
+ });
106
+ var reader = readable.getReader();
107
+ sleep(10).then(function () {
108
+ expect(log).toEqual('');
109
+ return reader.read();
110
+ }).then(function (result) {
111
+ expect(log).toEqual('p');
112
+ expect(result.value).toEqual('hi');
113
+ expect(result.done).toEqual(false);
114
+ return sleep(10);
115
+ }).then(function () {
116
+ return reader.read();
117
+ }).then(function (result) {
118
+ expect(result.value).toEqual(undefined);
119
+ expect(result.done).toEqual(true);
120
+ done();
121
+ });
122
+ });
123
+ it('should not read any data when cancelled', function (done) {
124
+ var log = '';
125
+ var port = new FakePort();
126
+ var messageHandler2 = new _util.MessageHandler('worker', 'main', port);
127
+ messageHandler2.on('fakeHandler', function (data, sink) {
128
+ sink.onPull = function () {
129
+ log += 'p';
130
+ };
131
+ sink.onCancel = function (reason) {
132
+ log += 'c';
133
+ };
134
+ log += '0';
135
+ sink.ready.then(function () {
136
+ log += '1';
137
+ sink.enqueue([1, 2, 3, 4], 4);
138
+ return sink.ready;
139
+ }).then(function () {
140
+ log += '2';
141
+ sink.enqueue([5, 6, 7, 8], 4);
142
+ return sink.ready;
143
+ }).then(function () {
144
+ log += '3';
145
+ sink.close();
146
+ }, function () {
147
+ log += '4';
148
+ });
149
+ });
150
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
151
+ var readable = messageHandler1.sendWithStream('fakeHandler', {}, {
152
+ highWaterMark: 4,
153
+ size: function size(arr) {
154
+ return arr.length;
155
+ }
156
+ });
157
+ var reader = readable.getReader();
158
+ sleep(10).then(function () {
159
+ expect(log).toEqual('01');
160
+ return reader.read();
161
+ }).then(function (result) {
162
+ expect(result.value).toEqual([1, 2, 3, 4]);
163
+ expect(result.done).toEqual(false);
164
+ return sleep(10);
165
+ }).then(function () {
166
+ expect(log).toEqual('01p2');
167
+ return reader.cancel();
168
+ }).then(function () {
169
+ expect(log).toEqual('01p2c');
170
+ done();
171
+ });
172
+ });
173
+ it('should not read when errored', function (done) {
174
+ var log = '';
175
+ var port = new FakePort();
176
+ var messageHandler2 = new _util.MessageHandler('worker', 'main', port);
177
+ messageHandler2.on('fakeHandler', function (data, sink) {
178
+ sink.onPull = function () {
179
+ log += 'p';
180
+ };
181
+ sink.onCancel = function (reason) {
182
+ log += 'c';
183
+ };
184
+ sink.ready.then(function () {
185
+ sink.enqueue([1, 2, 3, 4], 4);
186
+ return sink.ready;
187
+ }).then(function () {
188
+ log += 'error';
189
+ sink.error('error');
190
+ });
191
+ });
192
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
193
+ var readable = messageHandler1.sendWithStream('fakeHandler', {}, {
194
+ highWaterMark: 4,
195
+ size: function size(arr) {
196
+ return arr.length;
197
+ }
198
+ });
199
+ var reader = readable.getReader();
200
+ sleep(10).then(function () {
201
+ expect(log).toEqual('');
202
+ return reader.read();
203
+ }).then(function (result) {
204
+ expect(result.value).toEqual([1, 2, 3, 4]);
205
+ expect(result.done).toEqual(false);
206
+ return reader.read();
207
+ }).then(function () {}, function (reason) {
208
+ expect(reason).toEqual('error');
209
+ done();
210
+ });
211
+ });
212
+ it('should read data with blocking promise', function (done) {
213
+ var log = '';
214
+ var port = new FakePort();
215
+ var messageHandler2 = new _util.MessageHandler('worker', 'main', port);
216
+ messageHandler2.on('fakeHandler', function (data, sink) {
217
+ sink.onPull = function () {
218
+ log += 'p';
219
+ };
220
+ sink.onCancel = function (reason) {
221
+ log += 'c';
222
+ };
223
+ log += '0';
224
+ sink.ready.then(function () {
225
+ log += '1';
226
+ sink.enqueue([1, 2, 3, 4], 4);
227
+ return sink.ready;
228
+ }).then(function () {
229
+ log += '2';
230
+ sink.enqueue([5, 6, 7, 8], 4);
231
+ return sink.ready;
232
+ }).then(function () {
233
+ sink.close();
234
+ });
235
+ });
236
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
237
+ var readable = messageHandler1.sendWithStream('fakeHandler', {}, {
238
+ highWaterMark: 4,
239
+ size: function size(arr) {
240
+ return arr.length;
241
+ }
242
+ });
243
+ var reader = readable.getReader();
244
+ sleep(10).then(function () {
245
+ expect(log).toEqual('01');
246
+ return reader.read();
247
+ }).then(function (result) {
248
+ expect(result.value).toEqual([1, 2, 3, 4]);
249
+ expect(result.done).toEqual(false);
250
+ return sleep(10);
251
+ }).then(function () {
252
+ expect(log).toEqual('01p2');
253
+ return reader.read();
254
+ }).then(function (result) {
255
+ expect(result.value).toEqual([5, 6, 7, 8]);
256
+ expect(result.done).toEqual(false);
257
+ return sleep(10);
258
+ }).then(function () {
259
+ expect(log).toEqual('01p2p');
260
+ return reader.read();
261
+ }).then(function (result) {
262
+ expect(result.value).toEqual(undefined);
263
+ expect(result.done).toEqual(true);
264
+ done();
265
+ });
266
+ });
267
+ it('should read data with blocking promise and buffer whole data' + ' into stream', function (done) {
268
+ var log = '';
269
+ var port = new FakePort();
270
+ var messageHandler2 = new _util.MessageHandler('worker', 'main', port);
271
+ messageHandler2.on('fakeHandler', function (data, sink) {
272
+ sink.onPull = function () {
273
+ log += 'p';
274
+ };
275
+ sink.onCancel = function (reason) {
276
+ log += 'c';
277
+ };
278
+ log += '0';
279
+ sink.ready.then(function () {
280
+ log += '1';
281
+ sink.enqueue([1, 2, 3, 4], 4);
282
+ return sink.ready;
283
+ }).then(function () {
284
+ log += '2';
285
+ sink.enqueue([5, 6, 7, 8], 4);
286
+ return sink.ready;
287
+ }).then(function () {
288
+ sink.close();
289
+ });
290
+ return sleep(10);
291
+ });
292
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
293
+ var readable = messageHandler1.sendWithStream('fakeHandler', {}, {
294
+ highWaterMark: 8,
295
+ size: function size(arr) {
296
+ return arr.length;
297
+ }
298
+ });
299
+ var reader = readable.getReader();
300
+ sleep(10).then(function () {
301
+ expect(log).toEqual('012');
302
+ return reader.read();
303
+ }).then(function (result) {
304
+ expect(result.value).toEqual([1, 2, 3, 4]);
305
+ expect(result.done).toEqual(false);
306
+ return sleep(10);
307
+ }).then(function () {
308
+ expect(log).toEqual('012p');
309
+ return reader.read();
310
+ }).then(function (result) {
311
+ expect(result.value).toEqual([5, 6, 7, 8]);
312
+ expect(result.done).toEqual(false);
313
+ return sleep(10);
314
+ }).then(function () {
315
+ expect(log).toEqual('012p');
316
+ return reader.read();
317
+ }).then(function (result) {
318
+ expect(result.value).toEqual(undefined);
319
+ expect(result.done).toEqual(true);
320
+ done();
321
+ });
322
+ });
323
+ it('should ignore any pull after close is called', function (done) {
324
+ var log = '';
325
+ var port = new FakePort();
326
+ var capability = (0, _util.createPromiseCapability)();
327
+ var messageHandler2 = new _util.MessageHandler('worker', 'main', port);
328
+ messageHandler2.on('fakeHandler', function (data, sink) {
329
+ sink.onPull = function () {
330
+ log += 'p';
331
+ };
332
+ sink.onCancel = function (reason) {
333
+ log += 'c';
334
+ };
335
+ log += '0';
336
+ sink.ready.then(function () {
337
+ log += '1';
338
+ sink.enqueue([1, 2, 3, 4], 4);
339
+ });
340
+ return capability.promise.then(function () {
341
+ sink.close();
342
+ });
343
+ });
344
+ var messageHandler1 = new _util.MessageHandler('main', 'worker', port);
345
+ var readable = messageHandler1.sendWithStream('fakeHandler', {}, {
346
+ highWaterMark: 10,
347
+ size: function size(arr) {
348
+ return arr.length;
349
+ }
350
+ });
351
+ var reader = readable.getReader();
352
+ sleep(10).then(function () {
353
+ expect(log).toEqual('01');
354
+ capability.resolve();
355
+ return capability.promise.then(function () {
356
+ return reader.read();
357
+ });
358
+ }).then(function (result) {
359
+ expect(result.value).toEqual([1, 2, 3, 4]);
360
+ expect(result.done).toEqual(false);
361
+ return sleep(10);
362
+ }).then(function () {
363
+ expect(log).toEqual('01');
364
+ return reader.read();
365
+ }).then(function (result) {
366
+ expect(result.value).toEqual(undefined);
367
+ expect(result.done).toEqual(true);
368
+ done();
369
+ });
370
+ });
371
+ });
372
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdfjs-dist",
3
- "version": "1.8.430",
3
+ "version": "1.8.432",
4
4
  "main": "build/pdf.js",
5
5
  "description": "Generic build of Mozilla's PDF.js library.",
6
6
  "keywords": [