pdfjs-dist 2.3.200 → 2.4.456

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 (185) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +6499 -17971
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +19303 -29896
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +25473 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  13. package/es5/build/pdf.worker.js +57878 -0
  14. package/es5/build/pdf.worker.js.map +1 -0
  15. package/es5/web/images/annotation-check.svg +11 -0
  16. package/es5/web/images/annotation-comment.svg +16 -0
  17. package/es5/web/images/annotation-help.svg +26 -0
  18. package/es5/web/images/annotation-insert.svg +10 -0
  19. package/es5/web/images/annotation-key.svg +11 -0
  20. package/es5/web/images/annotation-newparagraph.svg +11 -0
  21. package/es5/web/images/annotation-noicon.svg +7 -0
  22. package/es5/web/images/annotation-note.svg +42 -0
  23. package/es5/web/images/annotation-paragraph.svg +16 -0
  24. package/es5/web/images/loading-icon.gif +0 -0
  25. package/es5/web/images/shadow.png +0 -0
  26. package/es5/web/images/texture.png +0 -0
  27. package/es5/web/pdf_viewer.css +407 -0
  28. package/es5/web/pdf_viewer.js +7757 -0
  29. package/es5/web/pdf_viewer.js.map +1 -0
  30. package/image_decoders/pdf.image_decoders.js +1333 -4839
  31. package/image_decoders/pdf.image_decoders.js.map +1 -1
  32. package/image_decoders/pdf.image_decoders.min.js +22 -1
  33. package/lib/README.md +7 -0
  34. package/lib/core/annotation.js +683 -1066
  35. package/lib/core/arithmetic_decoder.js +81 -97
  36. package/lib/core/bidi.js +54 -46
  37. package/lib/core/ccitt.js +88 -81
  38. package/lib/core/ccitt_stream.js +15 -14
  39. package/lib/core/cff_parser.js +196 -193
  40. package/lib/core/charsets.js +4 -4
  41. package/lib/core/chunked_stream.js +441 -569
  42. package/lib/core/cmap.js +220 -279
  43. package/lib/core/colorspace.js +699 -863
  44. package/lib/core/core_utils.js +59 -80
  45. package/lib/core/crypto.js +379 -437
  46. package/lib/core/document.js +564 -673
  47. package/lib/core/encodings.js +15 -15
  48. package/lib/core/evaluator.js +983 -889
  49. package/lib/core/font_renderer.js +128 -171
  50. package/lib/core/fonts.js +451 -400
  51. package/lib/core/function.js +289 -285
  52. package/lib/core/glyphlist.js +4527 -4527
  53. package/lib/core/image.js +138 -117
  54. package/lib/core/image_utils.js +46 -63
  55. package/lib/core/jbig2.js +324 -332
  56. package/lib/core/jbig2_stream.js +18 -17
  57. package/lib/core/jpeg_stream.js +133 -24
  58. package/lib/core/jpg.js +238 -210
  59. package/lib/core/jpx.js +158 -157
  60. package/lib/core/jpx_stream.js +28 -28
  61. package/lib/core/metrics.js +2928 -2928
  62. package/lib/core/murmurhash3.js +87 -102
  63. package/lib/core/obj.js +1111 -1302
  64. package/lib/core/operator_list.js +55 -42
  65. package/lib/core/parser.js +956 -987
  66. package/lib/core/pattern.js +69 -69
  67. package/lib/core/pdf_manager.js +149 -316
  68. package/lib/core/primitives.js +45 -77
  69. package/lib/core/ps_parser.js +175 -214
  70. package/lib/core/standard_fonts.js +237 -236
  71. package/lib/core/stream.js +83 -77
  72. package/lib/core/type1_parser.js +78 -68
  73. package/lib/core/unicode.js +1654 -1654
  74. package/lib/core/worker.js +148 -196
  75. package/lib/core/worker_stream.js +101 -210
  76. package/lib/display/annotation_layer.js +733 -1155
  77. package/lib/display/api.js +1539 -1928
  78. package/lib/display/api_compatibility.js +10 -8
  79. package/lib/display/canvas.js +159 -158
  80. package/lib/display/content_disposition.js +36 -55
  81. package/lib/display/display_utils.js +298 -551
  82. package/lib/display/fetch_stream.js +181 -305
  83. package/lib/display/font_loader.js +273 -416
  84. package/lib/display/metadata.js +86 -98
  85. package/lib/display/network.js +376 -511
  86. package/lib/display/network_utils.js +20 -19
  87. package/lib/display/node_stream.js +276 -460
  88. package/lib/display/pattern_helper.js +76 -44
  89. package/lib/display/svg.js +1137 -1405
  90. package/lib/display/text_layer.js +75 -82
  91. package/lib/display/transport_stream.js +236 -374
  92. package/lib/display/webgl.js +70 -83
  93. package/lib/display/worker_options.js +3 -3
  94. package/lib/display/xml_parser.js +303 -392
  95. package/lib/examples/node/domstubs.js +37 -37
  96. package/lib/pdf.js +22 -21
  97. package/lib/pdf.worker.js +5 -5
  98. package/lib/shared/compatibility.js +2 -251
  99. package/lib/shared/is_node.js +7 -6
  100. package/lib/shared/message_handler.js +222 -194
  101. package/lib/shared/util.js +269 -405
  102. package/lib/test/unit/annotation_spec.js +1089 -1014
  103. package/lib/test/unit/api_spec.js +617 -544
  104. package/lib/test/unit/bidi_spec.js +7 -7
  105. package/lib/test/unit/cff_parser_spec.js +63 -62
  106. package/lib/test/unit/clitests_helper.js +7 -9
  107. package/lib/test/unit/cmap_spec.js +84 -86
  108. package/lib/test/unit/colorspace_spec.js +154 -154
  109. package/lib/test/unit/core_utils_spec.js +125 -105
  110. package/lib/test/unit/crypto_spec.js +181 -181
  111. package/lib/test/unit/custom_spec.js +22 -24
  112. package/lib/test/unit/display_svg_spec.js +35 -36
  113. package/lib/test/unit/display_utils_spec.js +139 -149
  114. package/lib/test/unit/document_spec.js +16 -16
  115. package/lib/test/unit/encodings_spec.js +12 -34
  116. package/lib/test/unit/evaluator_spec.js +81 -95
  117. package/lib/test/unit/fetch_stream_spec.js +30 -30
  118. package/lib/test/unit/function_spec.js +206 -204
  119. package/lib/test/unit/jasmine-boot.js +48 -32
  120. package/lib/test/unit/message_handler_spec.js +172 -162
  121. package/lib/test/unit/metadata_spec.js +69 -69
  122. package/lib/test/unit/murmurhash3_spec.js +12 -12
  123. package/lib/test/unit/network_spec.js +12 -12
  124. package/lib/test/unit/network_utils_spec.js +152 -152
  125. package/lib/test/unit/node_stream_spec.js +74 -90
  126. package/lib/test/unit/parser_spec.js +107 -113
  127. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  128. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  129. package/lib/test/unit/pdf_history_spec.js +32 -32
  130. package/lib/test/unit/primitives_spec.js +117 -115
  131. package/lib/test/unit/stream_spec.js +16 -14
  132. package/lib/test/unit/test_utils.js +119 -285
  133. package/lib/test/unit/testreporter.js +19 -19
  134. package/lib/test/unit/type1_parser_spec.js +41 -41
  135. package/lib/test/unit/ui_utils_spec.js +318 -426
  136. package/lib/test/unit/unicode_spec.js +42 -42
  137. package/lib/test/unit/util_spec.js +122 -143
  138. package/lib/web/annotation_layer_builder.js +66 -103
  139. package/lib/web/app.js +1166 -1196
  140. package/lib/web/app_options.js +61 -77
  141. package/lib/web/base_viewer.js +804 -850
  142. package/lib/web/chromecom.js +164 -249
  143. package/lib/web/debugger.js +149 -205
  144. package/lib/web/download_manager.js +38 -57
  145. package/lib/web/firefox_print_service.js +35 -30
  146. package/lib/web/firefoxcom.js +175 -374
  147. package/lib/web/genericcom.js +26 -108
  148. package/lib/web/genericl10n.js +24 -153
  149. package/lib/web/grab_to_pan.js +30 -30
  150. package/lib/web/interfaces.js +80 -258
  151. package/lib/web/overlay_manager.js +70 -246
  152. package/lib/web/password_prompt.js +38 -64
  153. package/lib/web/pdf_attachment_viewer.js +105 -130
  154. package/lib/web/pdf_cursor_tools.js +75 -102
  155. package/lib/web/pdf_document_properties.js +227 -376
  156. package/lib/web/pdf_find_bar.js +137 -171
  157. package/lib/web/pdf_find_controller.js +492 -549
  158. package/lib/web/pdf_find_utils.js +13 -13
  159. package/lib/web/pdf_history.js +395 -406
  160. package/lib/web/pdf_link_service.js +302 -349
  161. package/lib/web/pdf_outline_viewer.js +148 -209
  162. package/lib/web/pdf_page_view.js +449 -507
  163. package/lib/web/pdf_presentation_mode.js +304 -357
  164. package/lib/web/pdf_print_service.js +90 -104
  165. package/lib/web/pdf_rendering_queue.js +87 -108
  166. package/lib/web/pdf_sidebar.js +264 -304
  167. package/lib/web/pdf_sidebar_resizer.js +92 -119
  168. package/lib/web/pdf_single_page_viewer.js +77 -126
  169. package/lib/web/pdf_thumbnail_view.js +276 -297
  170. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  171. package/lib/web/pdf_viewer.component.js +20 -21
  172. package/lib/web/pdf_viewer.js +55 -115
  173. package/lib/web/preferences.js +66 -273
  174. package/lib/web/secondary_toolbar.js +164 -196
  175. package/lib/web/text_layer_builder.js +284 -317
  176. package/lib/web/toolbar.js +216 -211
  177. package/lib/web/ui_utils.js +303 -404
  178. package/lib/web/view_history.js +49 -222
  179. package/lib/web/viewer_compatibility.js +7 -5
  180. package/package.json +2 -9
  181. package/web/pdf_viewer.css +25 -18
  182. package/web/pdf_viewer.js +3481 -4764
  183. package/web/pdf_viewer.js.map +1 -1
  184. package/webpack.js +14 -5
  185. package/lib/shared/streams_polyfill.js +0 -43
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2019 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -31,341 +31,186 @@ exports.isValidFetchUrl = isValidFetchUrl;
31
31
  exports.loadScript = loadScript;
32
32
  exports.deprecated = deprecated;
33
33
  exports.releaseImageResources = releaseImageResources;
34
- exports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;
34
+ exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;
35
35
 
36
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
36
+ var _util = require("../shared/util.js");
37
37
 
38
- var _util = require("../shared/util");
39
-
40
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
41
-
42
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
43
-
44
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
45
-
46
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
38
+ const DEFAULT_LINK_REL = "noopener noreferrer nofollow";
39
+ exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
40
+ const SVG_NS = "http://www.w3.org/2000/svg";
47
41
 
48
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
42
+ class DOMCanvasFactory {
43
+ create(width, height) {
44
+ if (width <= 0 || height <= 0) {
45
+ throw new Error("Invalid canvas size");
46
+ }
49
47
 
50
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
48
+ const canvas = document.createElement("canvas");
49
+ const context = canvas.getContext("2d");
50
+ canvas.width = width;
51
+ canvas.height = height;
52
+ return {
53
+ canvas,
54
+ context
55
+ };
56
+ }
51
57
 
52
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
58
+ reset(canvasAndContext, width, height) {
59
+ if (!canvasAndContext.canvas) {
60
+ throw new Error("Canvas is not specified");
61
+ }
53
62
 
54
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
63
+ if (width <= 0 || height <= 0) {
64
+ throw new Error("Invalid canvas size");
65
+ }
55
66
 
56
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
67
+ canvasAndContext.canvas.width = width;
68
+ canvasAndContext.canvas.height = height;
69
+ }
57
70
 
58
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
71
+ destroy(canvasAndContext) {
72
+ if (!canvasAndContext.canvas) {
73
+ throw new Error("Canvas is not specified");
74
+ }
59
75
 
60
- 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); } }
76
+ canvasAndContext.canvas.width = 0;
77
+ canvasAndContext.canvas.height = 0;
78
+ canvasAndContext.canvas = null;
79
+ canvasAndContext.context = null;
80
+ }
61
81
 
62
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
82
+ }
63
83
 
64
- var DEFAULT_LINK_REL = 'noopener noreferrer nofollow';
65
- exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
66
- var SVG_NS = 'http://www.w3.org/2000/svg';
84
+ exports.DOMCanvasFactory = DOMCanvasFactory;
67
85
 
68
- var DOMCanvasFactory =
69
- /*#__PURE__*/
70
- function () {
71
- function DOMCanvasFactory() {
72
- _classCallCheck(this, DOMCanvasFactory);
86
+ class DOMCMapReaderFactory {
87
+ constructor({
88
+ baseUrl = null,
89
+ isCompressed = false
90
+ }) {
91
+ this.baseUrl = baseUrl;
92
+ this.isCompressed = isCompressed;
73
93
  }
74
94
 
75
- _createClass(DOMCanvasFactory, [{
76
- key: "create",
77
- value: function create(width, height) {
78
- if (width <= 0 || height <= 0) {
79
- throw new Error('Invalid canvas size');
80
- }
81
-
82
- var canvas = document.createElement('canvas');
83
- var context = canvas.getContext('2d');
84
- canvas.width = width;
85
- canvas.height = height;
86
- return {
87
- canvas: canvas,
88
- context: context
89
- };
95
+ async fetch({
96
+ name
97
+ }) {
98
+ if (!this.baseUrl) {
99
+ throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.');
90
100
  }
91
- }, {
92
- key: "reset",
93
- value: function reset(canvasAndContext, width, height) {
94
- if (!canvasAndContext.canvas) {
95
- throw new Error('Canvas is not specified');
96
- }
97
101
 
98
- if (width <= 0 || height <= 0) {
99
- throw new Error('Invalid canvas size');
100
- }
101
-
102
- canvasAndContext.canvas.width = width;
103
- canvasAndContext.canvas.height = height;
102
+ if (!name) {
103
+ throw new Error("CMap name must be specified.");
104
104
  }
105
- }, {
106
- key: "destroy",
107
- value: function destroy(canvasAndContext) {
108
- if (!canvasAndContext.canvas) {
109
- throw new Error('Canvas is not specified');
110
- }
111
105
 
112
- canvasAndContext.canvas.width = 0;
113
- canvasAndContext.canvas.height = 0;
114
- canvasAndContext.canvas = null;
115
- canvasAndContext.context = null;
116
- }
117
- }]);
106
+ const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
107
+ const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;
118
108
 
119
- return DOMCanvasFactory;
120
- }();
109
+ if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) {
110
+ return fetch(url).then(async response => {
111
+ if (!response.ok) {
112
+ throw new Error(response.statusText);
113
+ }
121
114
 
122
- exports.DOMCanvasFactory = DOMCanvasFactory;
115
+ let cMapData;
123
116
 
124
- var DOMCMapReaderFactory =
125
- /*#__PURE__*/
126
- function () {
127
- function DOMCMapReaderFactory(_ref) {
128
- var _ref$baseUrl = _ref.baseUrl,
129
- baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
130
- _ref$isCompressed = _ref.isCompressed,
131
- isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
117
+ if (this.isCompressed) {
118
+ cMapData = new Uint8Array((await response.arrayBuffer()));
119
+ } else {
120
+ cMapData = (0, _util.stringToBytes)((await response.text()));
121
+ }
132
122
 
133
- _classCallCheck(this, DOMCMapReaderFactory);
123
+ return {
124
+ cMapData,
125
+ compressionType
126
+ };
127
+ }).catch(reason => {
128
+ throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}` + `CMap at: ${url}`);
129
+ });
130
+ }
134
131
 
135
- this.baseUrl = baseUrl;
136
- this.isCompressed = isCompressed;
137
- }
132
+ return new Promise((resolve, reject) => {
133
+ const request = new XMLHttpRequest();
134
+ request.open("GET", url, true);
138
135
 
139
- _createClass(DOMCMapReaderFactory, [{
140
- key: "fetch",
141
- value: function (_fetch) {
142
- function fetch(_x) {
143
- return _fetch.apply(this, arguments);
136
+ if (this.isCompressed) {
137
+ request.responseType = "arraybuffer";
144
138
  }
145
139
 
146
- fetch.toString = function () {
147
- return _fetch.toString();
148
- };
140
+ request.onreadystatechange = () => {
141
+ if (request.readyState !== XMLHttpRequest.DONE) {
142
+ return;
143
+ }
149
144
 
150
- return fetch;
151
- }(
152
- /*#__PURE__*/
153
- function () {
154
- var _ref3 = _asyncToGenerator(
155
- /*#__PURE__*/
156
- _regenerator["default"].mark(function _callee2(_ref2) {
157
- var _this = this;
158
-
159
- var name, url, compressionType;
160
- return _regenerator["default"].wrap(function _callee2$(_context2) {
161
- while (1) {
162
- switch (_context2.prev = _context2.next) {
163
- case 0:
164
- name = _ref2.name;
165
-
166
- if (this.baseUrl) {
167
- _context2.next = 3;
168
- break;
169
- }
170
-
171
- throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.');
172
-
173
- case 3:
174
- if (name) {
175
- _context2.next = 5;
176
- break;
177
- }
178
-
179
- throw new Error('CMap name must be specified.');
180
-
181
- case 5:
182
- url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');
183
- compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;
184
-
185
- if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) {
186
- _context2.next = 9;
187
- break;
188
- }
189
-
190
- return _context2.abrupt("return", fetch(url).then(
191
- /*#__PURE__*/
192
- function () {
193
- var _ref4 = _asyncToGenerator(
194
- /*#__PURE__*/
195
- _regenerator["default"].mark(function _callee(response) {
196
- var cMapData;
197
- return _regenerator["default"].wrap(function _callee$(_context) {
198
- while (1) {
199
- switch (_context.prev = _context.next) {
200
- case 0:
201
- if (response.ok) {
202
- _context.next = 2;
203
- break;
204
- }
205
-
206
- throw new Error(response.statusText);
207
-
208
- case 2:
209
- if (!_this.isCompressed) {
210
- _context.next = 10;
211
- break;
212
- }
213
-
214
- _context.t0 = Uint8Array;
215
- _context.next = 6;
216
- return response.arrayBuffer();
217
-
218
- case 6:
219
- _context.t1 = _context.sent;
220
- cMapData = new _context.t0(_context.t1);
221
- _context.next = 15;
222
- break;
223
-
224
- case 10:
225
- _context.t2 = _util.stringToBytes;
226
- _context.next = 13;
227
- return response.text();
228
-
229
- case 13:
230
- _context.t3 = _context.sent;
231
- cMapData = (0, _context.t2)(_context.t3);
232
-
233
- case 15:
234
- return _context.abrupt("return", {
235
- cMapData: cMapData,
236
- compressionType: compressionType
237
- });
238
-
239
- case 16:
240
- case "end":
241
- return _context.stop();
242
- }
243
- }
244
- }, _callee);
245
- }));
246
-
247
- return function (_x3) {
248
- return _ref4.apply(this, arguments);
249
- };
250
- }())["catch"](function (reason) {
251
- throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url));
252
- }));
253
-
254
- case 9:
255
- return _context2.abrupt("return", new Promise(function (resolve, reject) {
256
- var request = new XMLHttpRequest();
257
- request.open('GET', url, true);
258
-
259
- if (_this.isCompressed) {
260
- request.responseType = 'arraybuffer';
261
- }
262
-
263
- request.onreadystatechange = function () {
264
- if (request.readyState !== XMLHttpRequest.DONE) {
265
- return;
266
- }
267
-
268
- if (request.status === 200 || request.status === 0) {
269
- var cMapData;
270
-
271
- if (_this.isCompressed && request.response) {
272
- cMapData = new Uint8Array(request.response);
273
- } else if (!_this.isCompressed && request.responseText) {
274
- cMapData = (0, _util.stringToBytes)(request.responseText);
275
- }
276
-
277
- if (cMapData) {
278
- resolve({
279
- cMapData: cMapData,
280
- compressionType: compressionType
281
- });
282
- return;
283
- }
284
- }
285
-
286
- reject(new Error(request.statusText));
287
- };
288
-
289
- request.send(null);
290
- })["catch"](function (reason) {
291
- throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url));
292
- }));
293
-
294
- case 10:
295
- case "end":
296
- return _context2.stop();
297
- }
145
+ if (request.status === 200 || request.status === 0) {
146
+ let cMapData;
147
+
148
+ if (this.isCompressed && request.response) {
149
+ cMapData = new Uint8Array(request.response);
150
+ } else if (!this.isCompressed && request.responseText) {
151
+ cMapData = (0, _util.stringToBytes)(request.responseText);
152
+ }
153
+
154
+ if (cMapData) {
155
+ resolve({
156
+ cMapData,
157
+ compressionType
158
+ });
159
+ return;
298
160
  }
299
- }, _callee2, this);
300
- }));
161
+ }
301
162
 
302
- return function (_x2) {
303
- return _ref3.apply(this, arguments);
163
+ reject(new Error(request.statusText));
304
164
  };
305
- }())
306
- }]);
307
165
 
308
- return DOMCMapReaderFactory;
309
- }();
166
+ request.send(null);
167
+ }).catch(reason => {
168
+ throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}` + `CMap at: ${url}`);
169
+ });
170
+ }
171
+
172
+ }
310
173
 
311
174
  exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
312
175
 
313
- var DOMSVGFactory =
314
- /*#__PURE__*/
315
- function () {
316
- function DOMSVGFactory() {
317
- _classCallCheck(this, DOMSVGFactory);
176
+ class DOMSVGFactory {
177
+ create(width, height) {
178
+ (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions");
179
+ const svg = document.createElementNS(SVG_NS, "svg:svg");
180
+ svg.setAttribute("version", "1.1");
181
+ svg.setAttribute("width", width + "px");
182
+ svg.setAttribute("height", height + "px");
183
+ svg.setAttribute("preserveAspectRatio", "none");
184
+ svg.setAttribute("viewBox", "0 0 " + width + " " + height);
185
+ return svg;
318
186
  }
319
187
 
320
- _createClass(DOMSVGFactory, [{
321
- key: "create",
322
- value: function create(width, height) {
323
- (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');
324
- var svg = document.createElementNS(SVG_NS, 'svg:svg');
325
- svg.setAttribute('version', '1.1');
326
- svg.setAttribute('width', width + 'px');
327
- svg.setAttribute('height', height + 'px');
328
- svg.setAttribute('preserveAspectRatio', 'none');
329
- svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);
330
- return svg;
331
- }
332
- }, {
333
- key: "createElement",
334
- value: function createElement(type) {
335
- (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');
336
- return document.createElementNS(SVG_NS, type);
337
- }
338
- }]);
188
+ createElement(type) {
189
+ (0, _util.assert)(typeof type === "string", "Invalid SVG element type");
190
+ return document.createElementNS(SVG_NS, type);
191
+ }
339
192
 
340
- return DOMSVGFactory;
341
- }();
193
+ }
342
194
 
343
195
  exports.DOMSVGFactory = DOMSVGFactory;
344
196
 
345
- var PageViewport =
346
- /*#__PURE__*/
347
- function () {
348
- function PageViewport(_ref5) {
349
- var viewBox = _ref5.viewBox,
350
- scale = _ref5.scale,
351
- rotation = _ref5.rotation,
352
- _ref5$offsetX = _ref5.offsetX,
353
- offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX,
354
- _ref5$offsetY = _ref5.offsetY,
355
- offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY,
356
- _ref5$dontFlip = _ref5.dontFlip,
357
- dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip;
358
-
359
- _classCallCheck(this, PageViewport);
360
-
197
+ class PageViewport {
198
+ constructor({
199
+ viewBox,
200
+ scale,
201
+ rotation,
202
+ offsetX = 0,
203
+ offsetY = 0,
204
+ dontFlip = false
205
+ }) {
361
206
  this.viewBox = viewBox;
362
207
  this.scale = scale;
363
208
  this.rotation = rotation;
364
209
  this.offsetX = offsetX;
365
210
  this.offsetY = offsetY;
366
- var centerX = (viewBox[2] + viewBox[0]) / 2;
367
- var centerY = (viewBox[3] + viewBox[1]) / 2;
368
- var rotateA, rotateB, rotateC, rotateD;
211
+ const centerX = (viewBox[2] + viewBox[0]) / 2;
212
+ const centerY = (viewBox[3] + viewBox[1]) / 2;
213
+ let rotateA, rotateB, rotateC, rotateD;
369
214
  rotation = rotation % 360;
370
215
  rotation = rotation < 0 ? rotation + 360 : rotation;
371
216
 
@@ -404,8 +249,8 @@ function () {
404
249
  rotateD = -rotateD;
405
250
  }
406
251
 
407
- var offsetCanvasX, offsetCanvasY;
408
- var width, height;
252
+ let offsetCanvasX, offsetCanvasY;
253
+ let width, height;
409
254
 
410
255
  if (rotateA === 0) {
411
256
  offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
@@ -424,72 +269,53 @@ function () {
424
269
  this.height = height;
425
270
  }
426
271
 
427
- _createClass(PageViewport, [{
428
- key: "clone",
429
- value: function clone() {
430
- var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
431
- _ref6$scale = _ref6.scale,
432
- scale = _ref6$scale === void 0 ? this.scale : _ref6$scale,
433
- _ref6$rotation = _ref6.rotation,
434
- rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation,
435
- _ref6$dontFlip = _ref6.dontFlip,
436
- dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip;
437
-
438
- return new PageViewport({
439
- viewBox: this.viewBox.slice(),
440
- scale: scale,
441
- rotation: rotation,
442
- offsetX: this.offsetX,
443
- offsetY: this.offsetY,
444
- dontFlip: dontFlip
445
- });
446
- }
447
- }, {
448
- key: "convertToViewportPoint",
449
- value: function convertToViewportPoint(x, y) {
450
- return _util.Util.applyTransform([x, y], this.transform);
451
- }
452
- }, {
453
- key: "convertToViewportRectangle",
454
- value: function convertToViewportRectangle(rect) {
455
- var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
272
+ clone({
273
+ scale = this.scale,
274
+ rotation = this.rotation,
275
+ offsetX = this.offsetX,
276
+ offsetY = this.offsetY,
277
+ dontFlip = false
278
+ } = {}) {
279
+ return new PageViewport({
280
+ viewBox: this.viewBox.slice(),
281
+ scale,
282
+ rotation,
283
+ offsetX,
284
+ offsetY,
285
+ dontFlip
286
+ });
287
+ }
456
288
 
457
- var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
289
+ convertToViewportPoint(x, y) {
290
+ return _util.Util.applyTransform([x, y], this.transform);
291
+ }
458
292
 
459
- return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
460
- }
461
- }, {
462
- key: "convertToPdfPoint",
463
- value: function convertToPdfPoint(x, y) {
464
- return _util.Util.applyInverseTransform([x, y], this.transform);
465
- }
466
- }]);
293
+ convertToViewportRectangle(rect) {
294
+ const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
467
295
 
468
- return PageViewport;
469
- }();
296
+ const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
470
297
 
471
- exports.PageViewport = PageViewport;
298
+ return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
299
+ }
472
300
 
473
- var RenderingCancelledException =
474
- /*#__PURE__*/
475
- function (_BaseException) {
476
- _inherits(RenderingCancelledException, _BaseException);
301
+ convertToPdfPoint(x, y) {
302
+ return _util.Util.applyInverseTransform([x, y], this.transform);
303
+ }
477
304
 
478
- function RenderingCancelledException(msg, type) {
479
- var _this2;
305
+ }
480
306
 
481
- _classCallCheck(this, RenderingCancelledException);
307
+ exports.PageViewport = PageViewport;
482
308
 
483
- _this2 = _possibleConstructorReturn(this, _getPrototypeOf(RenderingCancelledException).call(this, msg));
484
- _this2.type = type;
485
- return _this2;
309
+ class RenderingCancelledException extends _util.BaseException {
310
+ constructor(msg, type) {
311
+ super(msg);
312
+ this.type = type;
486
313
  }
487
314
 
488
- return RenderingCancelledException;
489
- }(_util.BaseException);
315
+ }
490
316
 
491
317
  exports.RenderingCancelledException = RenderingCancelledException;
492
- var LinkTarget = {
318
+ const LinkTarget = {
493
319
  NONE: 0,
494
320
  SELF: 1,
495
321
  BLANK: 2,
@@ -497,204 +323,135 @@ var LinkTarget = {
497
323
  TOP: 4
498
324
  };
499
325
  exports.LinkTarget = LinkTarget;
500
- var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];
501
326
 
502
- function addLinkAttributes(link) {
503
- var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
504
- url = _ref7.url,
505
- target = _ref7.target,
506
- rel = _ref7.rel,
507
- _ref7$enabled = _ref7.enabled,
508
- enabled = _ref7$enabled === void 0 ? true : _ref7$enabled;
509
-
510
- (0, _util.assert)(url && typeof url === 'string', 'addLinkAttributes: A valid "url" parameter must provided.');
511
- var urlNullRemoved = (0, _util.removeNullCharacters)(url);
327
+ function addLinkAttributes(link, {
328
+ url,
329
+ target,
330
+ rel,
331
+ enabled = true
332
+ } = {}) {
333
+ (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must provided.');
334
+ const urlNullRemoved = (0, _util.removeNullCharacters)(url);
512
335
 
513
336
  if (enabled) {
514
337
  link.href = link.title = urlNullRemoved;
515
338
  } else {
516
- link.href = '';
517
- link.title = "Disabled: ".concat(urlNullRemoved);
339
+ link.href = "";
340
+ link.title = `Disabled: ${urlNullRemoved}`;
518
341
 
519
- link.onclick = function () {
342
+ link.onclick = () => {
520
343
  return false;
521
344
  };
522
345
  }
523
346
 
524
- var LinkTargetValues = Object.values(LinkTarget);
525
- var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
526
- link.target = LinkTargetStringMap[targetIndex];
527
- link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;
347
+ let targetStr = "";
348
+
349
+ switch (target) {
350
+ case LinkTarget.NONE:
351
+ break;
352
+
353
+ case LinkTarget.SELF:
354
+ targetStr = "_self";
355
+ break;
356
+
357
+ case LinkTarget.BLANK:
358
+ targetStr = "_blank";
359
+ break;
360
+
361
+ case LinkTarget.PARENT:
362
+ targetStr = "_parent";
363
+ break;
364
+
365
+ case LinkTarget.TOP:
366
+ targetStr = "_top";
367
+ break;
368
+ }
369
+
370
+ link.target = targetStr;
371
+ link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL;
528
372
  }
529
373
 
530
374
  function getFilenameFromUrl(url) {
531
- var anchor = url.indexOf('#');
532
- var query = url.indexOf('?');
533
- var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
534
- return url.substring(url.lastIndexOf('/', end) + 1, end);
375
+ const anchor = url.indexOf("#");
376
+ const query = url.indexOf("?");
377
+ const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
378
+ return url.substring(url.lastIndexOf("/", end) + 1, end);
535
379
  }
536
380
 
537
- var StatTimer =
538
- /*#__PURE__*/
539
- function () {
540
- function StatTimer() {
541
- var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
542
-
543
- _classCallCheck(this, StatTimer);
544
-
545
- this.enabled = !!enable;
381
+ class StatTimer {
382
+ constructor() {
546
383
  this.started = Object.create(null);
547
384
  this.times = [];
548
385
  }
549
386
 
550
- _createClass(StatTimer, [{
551
- key: "time",
552
- value: function time(name) {
553
- if (!this.enabled) {
554
- return;
555
- }
387
+ time(name) {
388
+ if (name in this.started) {
389
+ (0, _util.warn)(`Timer is already running for ${name}`);
390
+ }
556
391
 
557
- if (name in this.started) {
558
- (0, _util.warn)('Timer is already running for ' + name);
559
- }
392
+ this.started[name] = Date.now();
393
+ }
560
394
 
561
- this.started[name] = Date.now();
395
+ timeEnd(name) {
396
+ if (!(name in this.started)) {
397
+ (0, _util.warn)(`Timer has not been started for ${name}`);
562
398
  }
563
- }, {
564
- key: "timeEnd",
565
- value: function timeEnd(name) {
566
- if (!this.enabled) {
567
- return;
568
- }
569
399
 
570
- if (!(name in this.started)) {
571
- (0, _util.warn)('Timer has not been started for ' + name);
572
- }
400
+ this.times.push({
401
+ name,
402
+ start: this.started[name],
403
+ end: Date.now()
404
+ });
405
+ delete this.started[name];
406
+ }
573
407
 
574
- this.times.push({
575
- 'name': name,
576
- 'start': this.started[name],
577
- 'end': Date.now()
578
- });
579
- delete this.started[name];
580
- }
581
- }, {
582
- key: "toString",
583
- value: function toString() {
584
- var out = '',
585
- longest = 0;
586
- var _iteratorNormalCompletion = true;
587
- var _didIteratorError = false;
588
- var _iteratorError = undefined;
589
-
590
- try {
591
- for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
592
- var time = _step.value;
593
- var name = time.name;
594
-
595
- if (name.length > longest) {
596
- longest = name.length;
597
- }
598
- }
599
- } catch (err) {
600
- _didIteratorError = true;
601
- _iteratorError = err;
602
- } finally {
603
- try {
604
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
605
- _iterator["return"]();
606
- }
607
- } finally {
608
- if (_didIteratorError) {
609
- throw _iteratorError;
610
- }
611
- }
612
- }
408
+ toString() {
409
+ const outBuf = [];
410
+ let longest = 0;
613
411
 
614
- var _iteratorNormalCompletion2 = true;
615
- var _didIteratorError2 = false;
616
- var _iteratorError2 = undefined;
412
+ for (const time of this.times) {
413
+ const name = time.name;
617
414
 
618
- try {
619
- for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
620
- var _time = _step2.value;
621
- var duration = _time.end - _time.start;
622
- out += "".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n");
623
- }
624
- } catch (err) {
625
- _didIteratorError2 = true;
626
- _iteratorError2 = err;
627
- } finally {
628
- try {
629
- if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
630
- _iterator2["return"]();
631
- }
632
- } finally {
633
- if (_didIteratorError2) {
634
- throw _iteratorError2;
635
- }
636
- }
415
+ if (name.length > longest) {
416
+ longest = name.length;
637
417
  }
638
-
639
- return out;
640
418
  }
641
- }]);
642
-
643
- return StatTimer;
644
- }();
645
419
 
646
- exports.StatTimer = StatTimer;
647
-
648
- var DummyStatTimer =
649
- /*#__PURE__*/
650
- function () {
651
- function DummyStatTimer() {
652
- _classCallCheck(this, DummyStatTimer);
420
+ for (const time of this.times) {
421
+ const duration = time.end - time.start;
422
+ outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`);
423
+ }
653
424
 
654
- (0, _util.unreachable)('Cannot initialize DummyStatTimer.');
425
+ return outBuf.join("");
655
426
  }
656
427
 
657
- _createClass(DummyStatTimer, null, [{
658
- key: "time",
659
- value: function time(name) {}
660
- }, {
661
- key: "timeEnd",
662
- value: function timeEnd(name) {}
663
- }, {
664
- key: "toString",
665
- value: function toString() {
666
- return '';
667
- }
668
- }]);
669
-
670
- return DummyStatTimer;
671
- }();
428
+ }
672
429
 
673
- exports.DummyStatTimer = DummyStatTimer;
430
+ exports.StatTimer = StatTimer;
674
431
 
675
432
  function isFetchSupported() {
676
- return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined';
433
+ return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && typeof ReadableStream !== "undefined";
677
434
  }
678
435
 
679
436
  function isValidFetchUrl(url, baseUrl) {
680
437
  try {
681
- var _ref8 = baseUrl ? new URL(url, baseUrl) : new URL(url),
682
- protocol = _ref8.protocol;
683
-
684
- return protocol === 'http:' || protocol === 'https:';
438
+ const {
439
+ protocol
440
+ } = baseUrl ? new URL(url, baseUrl) : new URL(url);
441
+ return protocol === "http:" || protocol === "https:";
685
442
  } catch (ex) {
686
443
  return false;
687
444
  }
688
445
  }
689
446
 
690
447
  function loadScript(src) {
691
- return new Promise(function (resolve, reject) {
692
- var script = document.createElement('script');
448
+ return new Promise((resolve, reject) => {
449
+ const script = document.createElement("script");
693
450
  script.src = src;
694
451
  script.onload = resolve;
695
452
 
696
453
  script.onerror = function () {
697
- reject(new Error("Cannot load script at: ".concat(script.src)));
454
+ reject(new Error(`Cannot load script at: ${script.src}`));
698
455
  };
699
456
 
700
457
  (document.head || document.documentElement).appendChild(script);
@@ -702,76 +459,66 @@ function loadScript(src) {
702
459
  }
703
460
 
704
461
  function deprecated(details) {
705
- console.log('Deprecated API usage: ' + details);
462
+ console.log("Deprecated API usage: " + details);
706
463
  }
707
464
 
708
465
  function releaseImageResources(img) {
709
- (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.');
710
- var url = img.src;
466
+ (0, _util.assert)(img instanceof Image, "Invalid `img` parameter.");
467
+ const url = img.src;
711
468
 
712
- if (typeof url === 'string' && url.startsWith('blob:') && URL.revokeObjectURL) {
469
+ if (typeof url === "string" && url.startsWith("blob:") && URL.revokeObjectURL) {
713
470
  URL.revokeObjectURL(url);
714
471
  }
715
472
 
716
- img.removeAttribute('src');
473
+ img.removeAttribute("src");
717
474
  }
718
475
 
719
- var pdfDateStringRegex;
720
-
721
- var PDFDateString =
722
- /*#__PURE__*/
723
- function () {
724
- function PDFDateString() {
725
- _classCallCheck(this, PDFDateString);
726
- }
476
+ let pdfDateStringRegex;
727
477
 
728
- _createClass(PDFDateString, null, [{
729
- key: "toDateObject",
730
- value: function toDateObject(input) {
731
- if (!input || !(0, _util.isString)(input)) {
732
- return null;
733
- }
734
-
735
- if (!pdfDateStringRegex) {
736
- pdfDateStringRegex = new RegExp('^D:' + '(\\d{4})' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '([Z|+|-])?' + '(\\d{2})?' + '\'?' + '(\\d{2})?' + '\'?');
737
- }
478
+ class PDFDateString {
479
+ static toDateObject(input) {
480
+ if (!input || !(0, _util.isString)(input)) {
481
+ return null;
482
+ }
738
483
 
739
- var matches = pdfDateStringRegex.exec(input);
484
+ if (!pdfDateStringRegex) {
485
+ pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
486
+ }
740
487
 
741
- if (!matches) {
742
- return null;
743
- }
488
+ const matches = pdfDateStringRegex.exec(input);
744
489
 
745
- var year = parseInt(matches[1], 10);
746
- var month = parseInt(matches[2], 10);
747
- month = month >= 1 && month <= 12 ? month - 1 : 0;
748
- var day = parseInt(matches[3], 10);
749
- day = day >= 1 && day <= 31 ? day : 1;
750
- var hour = parseInt(matches[4], 10);
751
- hour = hour >= 0 && hour <= 23 ? hour : 0;
752
- var minute = parseInt(matches[5], 10);
753
- minute = minute >= 0 && minute <= 59 ? minute : 0;
754
- var second = parseInt(matches[6], 10);
755
- second = second >= 0 && second <= 59 ? second : 0;
756
- var universalTimeRelation = matches[7] || 'Z';
757
- var offsetHour = parseInt(matches[8], 10);
758
- offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
759
- var offsetMinute = parseInt(matches[9], 10) || 0;
760
- offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
761
-
762
- if (universalTimeRelation === '-') {
763
- hour += offsetHour;
764
- minute += offsetMinute;
765
- } else if (universalTimeRelation === '+') {
766
- hour -= offsetHour;
767
- minute -= offsetMinute;
768
- }
490
+ if (!matches) {
491
+ return null;
492
+ }
769
493
 
770
- return new Date(Date.UTC(year, month, day, hour, minute, second));
494
+ const year = parseInt(matches[1], 10);
495
+ let month = parseInt(matches[2], 10);
496
+ month = month >= 1 && month <= 12 ? month - 1 : 0;
497
+ let day = parseInt(matches[3], 10);
498
+ day = day >= 1 && day <= 31 ? day : 1;
499
+ let hour = parseInt(matches[4], 10);
500
+ hour = hour >= 0 && hour <= 23 ? hour : 0;
501
+ let minute = parseInt(matches[5], 10);
502
+ minute = minute >= 0 && minute <= 59 ? minute : 0;
503
+ let second = parseInt(matches[6], 10);
504
+ second = second >= 0 && second <= 59 ? second : 0;
505
+ const universalTimeRelation = matches[7] || "Z";
506
+ let offsetHour = parseInt(matches[8], 10);
507
+ offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
508
+ let offsetMinute = parseInt(matches[9], 10) || 0;
509
+ offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
510
+
511
+ if (universalTimeRelation === "-") {
512
+ hour += offsetHour;
513
+ minute += offsetMinute;
514
+ } else if (universalTimeRelation === "+") {
515
+ hour -= offsetHour;
516
+ minute -= offsetMinute;
771
517
  }
772
- }]);
773
518
 
774
- return PDFDateString;
775
- }();
519
+ return new Date(Date.UTC(year, month, day, hour, minute, second));
520
+ }
521
+
522
+ }
776
523
 
777
524
  exports.PDFDateString = PDFDateString;