pdfjs-dist 2.0.943 → 2.1.266

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.

Files changed (159) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +15329 -11095
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +12497 -4184
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/image_decoders/pdf.image_decoders.js +3438 -1209
  9. package/image_decoders/pdf.image_decoders.js.map +1 -1
  10. package/image_decoders/pdf.image_decoders.min.js +1 -1
  11. package/lib/core/annotation.js +335 -109
  12. package/lib/core/arithmetic_decoder.js +274 -244
  13. package/lib/core/bidi.js +64 -5
  14. package/lib/core/ccitt.js +172 -17
  15. package/lib/core/ccitt_stream.js +14 -5
  16. package/lib/core/cff_parser.js +304 -28
  17. package/lib/core/charsets.js +4 -3
  18. package/lib/core/chunked_stream.js +379 -149
  19. package/lib/core/cmap.js +210 -40
  20. package/lib/core/colorspace.js +332 -187
  21. package/lib/core/crypto.js +289 -44
  22. package/lib/core/document.js +508 -249
  23. package/lib/core/encodings.js +18 -9
  24. package/lib/core/evaluator.js +657 -119
  25. package/lib/core/font_renderer.js +217 -34
  26. package/lib/core/fonts.js +632 -41
  27. package/lib/core/function.js +252 -26
  28. package/lib/core/glyphlist.js +2 -1
  29. package/lib/core/image.js +124 -27
  30. package/lib/core/jbig2.js +425 -65
  31. package/lib/core/jbig2_stream.js +18 -7
  32. package/lib/core/jpeg_stream.js +24 -8
  33. package/lib/core/jpg.js +208 -16
  34. package/lib/core/jpx.js +395 -5
  35. package/lib/core/jpx_stream.js +17 -5
  36. package/lib/core/metrics.js +3 -3
  37. package/lib/core/murmurhash3.js +23 -5
  38. package/lib/core/obj.js +625 -132
  39. package/lib/core/operator_list.js +104 -3
  40. package/lib/core/parser.js +262 -25
  41. package/lib/core/pattern.js +144 -12
  42. package/lib/core/pdf_manager.js +104 -70
  43. package/lib/core/primitives.js +74 -21
  44. package/lib/core/ps_parser.js +133 -44
  45. package/lib/core/standard_fonts.js +9 -9
  46. package/lib/core/stream.js +283 -31
  47. package/lib/core/type1_parser.js +138 -6
  48. package/lib/core/unicode.js +28 -1
  49. package/lib/core/worker.js +192 -57
  50. package/lib/display/annotation_layer.js +303 -123
  51. package/lib/display/api.js +1073 -574
  52. package/lib/display/api_compatibility.js +4 -1
  53. package/lib/display/canvas.js +314 -18
  54. package/lib/display/content_disposition.js +70 -23
  55. package/lib/display/dom_utils.js +112 -59
  56. package/lib/display/fetch_stream.js +95 -50
  57. package/lib/display/font_loader.js +250 -132
  58. package/lib/display/metadata.js +37 -15
  59. package/lib/display/network.js +123 -34
  60. package/lib/display/network_utils.js +23 -10
  61. package/lib/display/node_stream.js +162 -65
  62. package/lib/display/pattern_helper.js +57 -6
  63. package/lib/display/svg.js +194 -18
  64. package/lib/display/text_layer.js +128 -14
  65. package/lib/display/transport_stream.js +83 -27
  66. package/lib/display/webgl.js +63 -17
  67. package/lib/display/worker_options.js +4 -3
  68. package/lib/display/xml_parser.js +162 -52
  69. package/lib/examples/node/domstubs.js +56 -3
  70. package/lib/pdf.js +15 -2
  71. package/lib/pdf.worker.js +4 -2
  72. package/lib/shared/compatibility.js +129 -26
  73. package/lib/shared/global_scope.js +1 -1
  74. package/lib/shared/is_node.js +3 -3
  75. package/lib/shared/message_handler.js +103 -45
  76. package/lib/shared/streams_polyfill.js +20 -16
  77. package/lib/shared/url_polyfill.js +8 -2
  78. package/lib/shared/util.js +246 -84
  79. package/lib/test/unit/annotation_spec.js +99 -73
  80. package/lib/test/unit/api_spec.js +347 -113
  81. package/lib/test/unit/bidi_spec.js +6 -6
  82. package/lib/test/unit/cff_parser_spec.js +17 -5
  83. package/lib/test/unit/clitests_helper.js +7 -8
  84. package/lib/test/unit/cmap_spec.js +79 -25
  85. package/lib/test/unit/colorspace_spec.js +65 -18
  86. package/lib/test/unit/crypto_spec.js +16 -4
  87. package/lib/test/unit/custom_spec.js +40 -52
  88. package/lib/test/unit/display_svg_spec.js +32 -16
  89. package/lib/test/unit/document_spec.js +2 -2
  90. package/lib/test/unit/dom_utils_spec.js +8 -8
  91. package/lib/test/unit/encodings_spec.js +24 -44
  92. package/lib/test/unit/evaluator_spec.js +15 -8
  93. package/lib/test/unit/function_spec.js +16 -4
  94. package/lib/test/unit/jasmine-boot.js +29 -16
  95. package/lib/test/unit/message_handler_spec.js +19 -6
  96. package/lib/test/unit/metadata_spec.js +64 -11
  97. package/lib/test/unit/murmurhash3_spec.js +2 -2
  98. package/lib/test/unit/network_spec.js +19 -4
  99. package/lib/test/unit/network_utils_spec.js +6 -4
  100. package/lib/test/unit/node_stream_spec.js +50 -26
  101. package/lib/test/unit/parser_spec.js +13 -29
  102. package/lib/test/unit/pdf_find_controller_spec.js +144 -32
  103. package/lib/test/unit/pdf_find_utils_spec.js +10 -9
  104. package/lib/test/unit/pdf_history_spec.js +20 -8
  105. package/lib/test/unit/primitives_spec.js +23 -3
  106. package/lib/test/unit/stream_spec.js +8 -3
  107. package/lib/test/unit/test_utils.js +89 -26
  108. package/lib/test/unit/testreporter.js +19 -1
  109. package/lib/test/unit/type1_parser_spec.js +7 -5
  110. package/lib/test/unit/ui_utils_spec.js +162 -38
  111. package/lib/test/unit/unicode_spec.js +13 -10
  112. package/lib/test/unit/util_spec.js +89 -9
  113. package/lib/web/annotation_layer_builder.js +38 -21
  114. package/lib/web/app.js +610 -245
  115. package/lib/web/app_options.js +54 -34
  116. package/lib/web/base_viewer.js +359 -162
  117. package/lib/web/chromecom.js +159 -80
  118. package/lib/web/debugger.js +161 -17
  119. package/lib/web/download_manager.js +29 -11
  120. package/lib/web/firefox_print_service.js +16 -8
  121. package/lib/web/firefoxcom.js +127 -91
  122. package/lib/web/genericcom.js +50 -31
  123. package/lib/web/genericl10n.js +46 -34
  124. package/lib/web/grab_to_pan.js +25 -3
  125. package/lib/web/interfaces.js +108 -61
  126. package/lib/web/overlay_manager.js +67 -45
  127. package/lib/web/password_prompt.js +20 -12
  128. package/lib/web/pdf_attachment_viewer.js +37 -17
  129. package/lib/web/pdf_cursor_tools.js +38 -15
  130. package/lib/web/pdf_document_properties.js +65 -24
  131. package/lib/web/pdf_find_bar.js +48 -20
  132. package/lib/web/pdf_find_controller.js +290 -89
  133. package/lib/web/pdf_find_utils.js +19 -3
  134. package/lib/web/pdf_history.js +186 -49
  135. package/lib/web/pdf_link_service.js +127 -52
  136. package/lib/web/pdf_outline_viewer.js +71 -21
  137. package/lib/web/pdf_page_view.js +188 -63
  138. package/lib/web/pdf_presentation_mode.js +98 -33
  139. package/lib/web/pdf_print_service.js +54 -10
  140. package/lib/web/pdf_rendering_queue.js +26 -4
  141. package/lib/web/pdf_sidebar.js +116 -62
  142. package/lib/web/pdf_sidebar_resizer.js +41 -15
  143. package/lib/web/pdf_single_page_viewer.js +65 -68
  144. package/lib/web/pdf_thumbnail_view.js +102 -31
  145. package/lib/web/pdf_thumbnail_viewer.js +62 -22
  146. package/lib/web/pdf_viewer.component.js +111 -31
  147. package/lib/web/pdf_viewer.js +80 -60
  148. package/lib/web/preferences.js +61 -39
  149. package/lib/web/secondary_toolbar.js +101 -82
  150. package/lib/web/text_layer_builder.js +124 -69
  151. package/lib/web/toolbar.js +67 -27
  152. package/lib/web/ui_utils.js +284 -128
  153. package/lib/web/view_history.js +75 -51
  154. package/lib/web/viewer_compatibility.js +2 -1
  155. package/package.json +1 -1
  156. package/web/pdf_viewer.css +1 -1
  157. package/web/pdf_viewer.js +2200 -973
  158. package/web/pdf_viewer.js.map +1 -1
  159. package/lib/web/dom_events.js +0 -140
@@ -19,36 +19,40 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.TEST_PDFS_PATH = exports.buildGetDocumentParams = exports.XRefMock = exports.NodeCMapReaderFactory = exports.NodeFileReaderFactory = undefined;
28
-
29
- 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; }; }();
30
-
31
- var _util = require('../../shared/util');
27
+ exports.buildGetDocumentParams = buildGetDocumentParams;
28
+ exports.TEST_PDFS_PATH = exports.XRefMock = exports.NodeCMapReaderFactory = exports.NodeCanvasFactory = exports.NodeFileReaderFactory = void 0;
32
29
 
33
- var _is_node = require('../../shared/is_node');
30
+ var _util = require("../../shared/util");
34
31
 
35
- var _is_node2 = _interopRequireDefault(_is_node);
32
+ var _is_node = _interopRequireDefault(require("../../shared/is_node"));
36
33
 
37
- var _primitives = require('../../core/primitives');
34
+ var _primitives = require("../../core/primitives");
38
35
 
39
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
37
 
41
38
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
39
 
43
- var NodeFileReaderFactory = function () {
40
+ 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); } }
41
+
42
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
43
+
44
+ var NodeFileReaderFactory =
45
+ /*#__PURE__*/
46
+ function () {
44
47
  function NodeFileReaderFactory() {
45
48
  _classCallCheck(this, NodeFileReaderFactory);
46
49
  }
47
50
 
48
51
  _createClass(NodeFileReaderFactory, null, [{
49
- key: 'fetch',
52
+ key: "fetch",
50
53
  value: function fetch(params) {
51
54
  var fs = require('fs');
55
+
52
56
  var file = fs.readFileSync(params.path);
53
57
  return new Uint8Array(file);
54
58
  }
@@ -57,29 +61,81 @@ var NodeFileReaderFactory = function () {
57
61
  return NodeFileReaderFactory;
58
62
  }();
59
63
 
64
+ exports.NodeFileReaderFactory = NodeFileReaderFactory;
60
65
  var TEST_PDFS_PATH = {
61
66
  dom: '../pdfs/',
62
67
  node: './test/pdfs/'
63
68
  };
69
+ exports.TEST_PDFS_PATH = TEST_PDFS_PATH;
70
+
64
71
  function buildGetDocumentParams(filename, options) {
65
72
  var params = Object.create(null);
66
- if ((0, _is_node2.default)()) {
73
+
74
+ if ((0, _is_node.default)()) {
67
75
  params.url = TEST_PDFS_PATH.node + filename;
68
76
  } else {
69
77
  params.url = new URL(TEST_PDFS_PATH.dom + filename, window.location).href;
70
78
  }
79
+
71
80
  for (var option in options) {
72
81
  params[option] = options[option];
73
82
  }
83
+
74
84
  return params;
75
85
  }
76
86
 
77
- var NodeCMapReaderFactory = function () {
87
+ var NodeCanvasFactory =
88
+ /*#__PURE__*/
89
+ function () {
90
+ function NodeCanvasFactory() {
91
+ _classCallCheck(this, NodeCanvasFactory);
92
+ }
93
+
94
+ _createClass(NodeCanvasFactory, [{
95
+ key: "create",
96
+ value: function create(width, height) {
97
+ (0, _util.assert)(width > 0 && height > 0, 'Invalid canvas size');
98
+
99
+ var Canvas = require('canvas');
100
+
101
+ var canvas = Canvas.createCanvas(width, height);
102
+ return {
103
+ canvas: canvas,
104
+ context: canvas.getContext('2d')
105
+ };
106
+ }
107
+ }, {
108
+ key: "reset",
109
+ value: function reset(canvasAndContext, width, height) {
110
+ (0, _util.assert)(canvasAndContext.canvas, 'Canvas is not specified');
111
+ (0, _util.assert)(width > 0 && height > 0, 'Invalid canvas size');
112
+ canvasAndContext.canvas.width = width;
113
+ canvasAndContext.canvas.height = height;
114
+ }
115
+ }, {
116
+ key: "destroy",
117
+ value: function destroy(canvasAndContext) {
118
+ (0, _util.assert)(canvasAndContext.canvas, 'Canvas is not specified');
119
+ canvasAndContext.canvas.width = 0;
120
+ canvasAndContext.canvas.height = 0;
121
+ canvasAndContext.canvas = null;
122
+ canvasAndContext.context = null;
123
+ }
124
+ }]);
125
+
126
+ return NodeCanvasFactory;
127
+ }();
128
+
129
+ exports.NodeCanvasFactory = NodeCanvasFactory;
130
+
131
+ var NodeCMapReaderFactory =
132
+ /*#__PURE__*/
133
+ function () {
78
134
  function NodeCMapReaderFactory(_ref) {
79
135
  var _ref$baseUrl = _ref.baseUrl,
80
- baseUrl = _ref$baseUrl === undefined ? null : _ref$baseUrl,
136
+ baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
81
137
  _ref$isCompressed = _ref.isCompressed,
82
- isCompressed = _ref$isCompressed === undefined ? false : _ref$isCompressed;
138
+ isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
83
139
 
84
140
  _classCallCheck(this, NodeCMapReaderFactory);
85
141
 
@@ -88,7 +144,7 @@ var NodeCMapReaderFactory = function () {
88
144
  }
89
145
 
90
146
  _createClass(NodeCMapReaderFactory, [{
91
- key: 'fetch',
147
+ key: "fetch",
92
148
  value: function fetch(_ref2) {
93
149
  var _this = this;
94
150
 
@@ -97,17 +153,22 @@ var NodeCMapReaderFactory = function () {
97
153
  if (!this.baseUrl) {
98
154
  return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'));
99
155
  }
156
+
100
157
  if (!name) {
101
158
  return Promise.reject(new Error('CMap name must be specified.'));
102
159
  }
160
+
103
161
  return new Promise(function (resolve, reject) {
104
162
  var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');
163
+
105
164
  var fs = require('fs');
165
+
106
166
  fs.readFile(url, function (error, data) {
107
167
  if (error || !data) {
108
168
  reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));
109
169
  return;
110
170
  }
171
+
111
172
  resolve({
112
173
  cMapData: new Uint8Array(data),
113
174
  compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE
@@ -120,11 +181,16 @@ var NodeCMapReaderFactory = function () {
120
181
  return NodeCMapReaderFactory;
121
182
  }();
122
183
 
123
- var XRefMock = function () {
184
+ exports.NodeCMapReaderFactory = NodeCMapReaderFactory;
185
+
186
+ var XRefMock =
187
+ /*#__PURE__*/
188
+ function () {
124
189
  function XRefMock(array) {
125
190
  _classCallCheck(this, XRefMock);
126
191
 
127
192
  this._map = Object.create(null);
193
+
128
194
  for (var key in array) {
129
195
  var obj = array[key];
130
196
  this._map[obj.ref.toString()] = obj.data;
@@ -132,25 +198,26 @@ var XRefMock = function () {
132
198
  }
133
199
 
134
200
  _createClass(XRefMock, [{
135
- key: 'fetch',
201
+ key: "fetch",
136
202
  value: function fetch(ref) {
137
203
  return this._map[ref.toString()];
138
204
  }
139
205
  }, {
140
- key: 'fetchAsync',
206
+ key: "fetchAsync",
141
207
  value: function fetchAsync(ref) {
142
208
  return Promise.resolve(this.fetch(ref));
143
209
  }
144
210
  }, {
145
- key: 'fetchIfRef',
211
+ key: "fetchIfRef",
146
212
  value: function fetchIfRef(obj) {
147
213
  if (!(0, _primitives.isRef)(obj)) {
148
214
  return obj;
149
215
  }
216
+
150
217
  return this.fetch(obj);
151
218
  }
152
219
  }, {
153
- key: 'fetchIfRefAsync',
220
+ key: "fetchIfRefAsync",
154
221
  value: function fetchIfRefAsync(obj) {
155
222
  return Promise.resolve(this.fetchIfRef(obj));
156
223
  }
@@ -159,8 +226,4 @@ var XRefMock = function () {
159
226
  return XRefMock;
160
227
  }();
161
228
 
162
- exports.NodeFileReaderFactory = NodeFileReaderFactory;
163
- exports.NodeCMapReaderFactory = NodeCMapReaderFactory;
164
- exports.XRefMock = XRefMock;
165
- exports.buildGetDocumentParams = buildGetDocumentParams;
166
- exports.TEST_PDFS_PATH = TEST_PDFS_PATH;
229
+ exports.XRefMock = XRefMock;
@@ -26,6 +26,7 @@ var TestReporter = function TestReporter(browser, appPath) {
26
26
  var r = new XMLHttpRequest();
27
27
  r.open('POST', action, true);
28
28
  r.setRequestHeader('Content-Type', 'application/json');
29
+
29
30
  r.onreadystatechange = function sendTaskResultOnreadystatechange(e) {
30
31
  if (r.readyState === 4) {
31
32
  if (r.status !== 200) {
@@ -37,47 +38,64 @@ var TestReporter = function TestReporter(browser, appPath) {
37
38
  }
38
39
  }
39
40
  };
41
+
40
42
  json['browser'] = browser;
41
43
  r.send(JSON.stringify(json));
42
44
  }
45
+
43
46
  function sendInfo(message) {
44
- send('/info', { message: message });
47
+ send('/info', {
48
+ message: message
49
+ });
45
50
  }
51
+
46
52
  function sendResult(status, description, error) {
47
53
  var message = {
48
54
  status: status,
49
55
  description: description
50
56
  };
57
+
51
58
  if (typeof error !== 'undefined') {
52
59
  message['error'] = error;
53
60
  }
61
+
54
62
  send('/submit_task_results', message);
55
63
  }
64
+
56
65
  function sendQuitRequest() {
57
66
  send('/tellMeToQuit?path=' + escape(appPath), {});
58
67
  }
68
+
59
69
  this.now = function () {
60
70
  return new Date().getTime();
61
71
  };
72
+
62
73
  this.jasmineStarted = function (suiteInfo) {
63
74
  this.runnerStartTime = this.now();
64
75
  sendInfo('Started tests for ' + browser + '.');
65
76
  };
77
+
66
78
  this.suiteStarted = function (result) {};
79
+
67
80
  this.specStarted = function (result) {};
81
+
68
82
  this.specDone = function (result) {
69
83
  if (result.failedExpectations.length === 0) {
70
84
  sendResult('TEST-PASSED', result.description);
71
85
  } else {
72
86
  var failedMessages = '';
73
87
  var items = result.failedExpectations;
88
+
74
89
  for (var i = 0, ii = items.length; i < ii; i++) {
75
90
  failedMessages += items[i].message + ' ';
76
91
  }
92
+
77
93
  sendResult('TEST-UNEXPECTED-FAIL', result.description, failedMessages);
78
94
  }
79
95
  };
96
+
80
97
  this.suiteDone = function (result) {};
98
+
81
99
  this.jasmineDone = function () {
82
100
  setTimeout(sendQuitRequest, 500);
83
101
  };
@@ -19,13 +19,13 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- var _fonts = require('../../core/fonts');
24
+ var _fonts = require("../../core/fonts");
25
25
 
26
- var _stream = require('../../core/stream');
26
+ var _stream = require("../../core/stream");
27
27
 
28
- var _type1_parser = require('../../core/type1_parser');
28
+ var _type1_parser = require("../../core/type1_parser");
29
29
 
30
30
  describe('Type1Parser', function () {
31
31
  it('splits tokens', function () {
@@ -95,7 +95,9 @@ describe('Type1Parser', function () {
95
95
  it('parses font header encoding', function () {
96
96
  var stream = new _stream.StringStream('/Encoding 256 array\n' + '0 1 255 {1 index exch /.notdef put} for\n' + 'dup 33 /arrowright put\n' + 'readonly def\n');
97
97
  var parser = new _type1_parser.Type1Parser(stream, false, _fonts.SEAC_ANALYSIS_ENABLED);
98
- var props = { overridableEncoding: true };
98
+ var props = {
99
+ overridableEncoding: true
100
+ };
99
101
  parser.extractFontHeader(props);
100
102
  expect(props.builtInEncoding[33]).toEqual('arrowright');
101
103
  });