pdfjs-dist 2.0.943 → 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 (192) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8286 -14230
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +57878 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
package/lib/core/cmap.js CHANGED
@@ -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 2018 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.
@@ -19,368 +19,375 @@
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.CMapFactory = exports.IdentityCMap = exports.CMap = undefined;
27
+ exports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;
28
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; }; }();
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _util = require('../shared/util');
31
+ var _primitives = require("./primitives.js");
32
32
 
33
- var _primitives = require('./primitives');
33
+ var _parser = require("./parser.js");
34
34
 
35
- var _parser = require('./parser');
35
+ var _core_utils = require("./core_utils.js");
36
36
 
37
- var _stream = require('./stream');
37
+ var _stream = require("./stream.js");
38
38
 
39
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
40
-
41
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
42
-
43
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
44
-
45
- var BUILT_IN_CMAPS = ['Adobe-GB1-UCS2', 'Adobe-CNS1-UCS2', 'Adobe-Japan1-UCS2', 'Adobe-Korea1-UCS2', '78-EUC-H', '78-EUC-V', '78-H', '78-RKSJ-H', '78-RKSJ-V', '78-V', '78ms-RKSJ-H', '78ms-RKSJ-V', '83pv-RKSJ-H', '90ms-RKSJ-H', '90ms-RKSJ-V', '90msp-RKSJ-H', '90msp-RKSJ-V', '90pv-RKSJ-H', '90pv-RKSJ-V', 'Add-H', 'Add-RKSJ-H', 'Add-RKSJ-V', 'Add-V', 'Adobe-CNS1-0', 'Adobe-CNS1-1', 'Adobe-CNS1-2', 'Adobe-CNS1-3', 'Adobe-CNS1-4', 'Adobe-CNS1-5', 'Adobe-CNS1-6', 'Adobe-GB1-0', 'Adobe-GB1-1', 'Adobe-GB1-2', 'Adobe-GB1-3', 'Adobe-GB1-4', 'Adobe-GB1-5', 'Adobe-Japan1-0', 'Adobe-Japan1-1', 'Adobe-Japan1-2', 'Adobe-Japan1-3', 'Adobe-Japan1-4', 'Adobe-Japan1-5', 'Adobe-Japan1-6', 'Adobe-Korea1-0', 'Adobe-Korea1-1', 'Adobe-Korea1-2', 'B5-H', 'B5-V', 'B5pc-H', 'B5pc-V', 'CNS-EUC-H', 'CNS-EUC-V', 'CNS1-H', 'CNS1-V', 'CNS2-H', 'CNS2-V', 'ETHK-B5-H', 'ETHK-B5-V', 'ETen-B5-H', 'ETen-B5-V', 'ETenms-B5-H', 'ETenms-B5-V', 'EUC-H', 'EUC-V', 'Ext-H', 'Ext-RKSJ-H', 'Ext-RKSJ-V', 'Ext-V', 'GB-EUC-H', 'GB-EUC-V', 'GB-H', 'GB-V', 'GBK-EUC-H', 'GBK-EUC-V', 'GBK2K-H', 'GBK2K-V', 'GBKp-EUC-H', 'GBKp-EUC-V', 'GBT-EUC-H', 'GBT-EUC-V', 'GBT-H', 'GBT-V', 'GBTpc-EUC-H', 'GBTpc-EUC-V', 'GBpc-EUC-H', 'GBpc-EUC-V', 'H', 'HKdla-B5-H', 'HKdla-B5-V', 'HKdlb-B5-H', 'HKdlb-B5-V', 'HKgccs-B5-H', 'HKgccs-B5-V', 'HKm314-B5-H', 'HKm314-B5-V', 'HKm471-B5-H', 'HKm471-B5-V', 'HKscs-B5-H', 'HKscs-B5-V', 'Hankaku', 'Hiragana', 'KSC-EUC-H', 'KSC-EUC-V', 'KSC-H', 'KSC-Johab-H', 'KSC-Johab-V', 'KSC-V', 'KSCms-UHC-H', 'KSCms-UHC-HW-H', 'KSCms-UHC-HW-V', 'KSCms-UHC-V', 'KSCpc-EUC-H', 'KSCpc-EUC-V', 'Katakana', 'NWP-H', 'NWP-V', 'RKSJ-H', 'RKSJ-V', 'Roman', 'UniCNS-UCS2-H', 'UniCNS-UCS2-V', 'UniCNS-UTF16-H', 'UniCNS-UTF16-V', 'UniCNS-UTF32-H', 'UniCNS-UTF32-V', 'UniCNS-UTF8-H', 'UniCNS-UTF8-V', 'UniGB-UCS2-H', 'UniGB-UCS2-V', 'UniGB-UTF16-H', 'UniGB-UTF16-V', 'UniGB-UTF32-H', 'UniGB-UTF32-V', 'UniGB-UTF8-H', 'UniGB-UTF8-V', 'UniJIS-UCS2-H', 'UniJIS-UCS2-HW-H', 'UniJIS-UCS2-HW-V', 'UniJIS-UCS2-V', 'UniJIS-UTF16-H', 'UniJIS-UTF16-V', 'UniJIS-UTF32-H', 'UniJIS-UTF32-V', 'UniJIS-UTF8-H', 'UniJIS-UTF8-V', 'UniJIS2004-UTF16-H', 'UniJIS2004-UTF16-V', 'UniJIS2004-UTF32-H', 'UniJIS2004-UTF32-V', 'UniJIS2004-UTF8-H', 'UniJIS2004-UTF8-V', 'UniJISPro-UCS2-HW-V', 'UniJISPro-UCS2-V', 'UniJISPro-UTF8-V', 'UniJISX0213-UTF32-H', 'UniJISX0213-UTF32-V', 'UniJISX02132004-UTF32-H', 'UniJISX02132004-UTF32-V', 'UniKS-UCS2-H', 'UniKS-UCS2-V', 'UniKS-UTF16-H', 'UniKS-UTF16-V', 'UniKS-UTF32-H', 'UniKS-UTF32-V', 'UniKS-UTF8-H', 'UniKS-UTF8-V', 'V', 'WP-Symbol'];
46
-
47
- var CMap = function () {
48
- function CMap() {
49
- var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
50
-
51
- _classCallCheck(this, CMap);
39
+ var BUILT_IN_CMAPS = ["Adobe-GB1-UCS2", "Adobe-CNS1-UCS2", "Adobe-Japan1-UCS2", "Adobe-Korea1-UCS2", "78-EUC-H", "78-EUC-V", "78-H", "78-RKSJ-H", "78-RKSJ-V", "78-V", "78ms-RKSJ-H", "78ms-RKSJ-V", "83pv-RKSJ-H", "90ms-RKSJ-H", "90ms-RKSJ-V", "90msp-RKSJ-H", "90msp-RKSJ-V", "90pv-RKSJ-H", "90pv-RKSJ-V", "Add-H", "Add-RKSJ-H", "Add-RKSJ-V", "Add-V", "Adobe-CNS1-0", "Adobe-CNS1-1", "Adobe-CNS1-2", "Adobe-CNS1-3", "Adobe-CNS1-4", "Adobe-CNS1-5", "Adobe-CNS1-6", "Adobe-GB1-0", "Adobe-GB1-1", "Adobe-GB1-2", "Adobe-GB1-3", "Adobe-GB1-4", "Adobe-GB1-5", "Adobe-Japan1-0", "Adobe-Japan1-1", "Adobe-Japan1-2", "Adobe-Japan1-3", "Adobe-Japan1-4", "Adobe-Japan1-5", "Adobe-Japan1-6", "Adobe-Korea1-0", "Adobe-Korea1-1", "Adobe-Korea1-2", "B5-H", "B5-V", "B5pc-H", "B5pc-V", "CNS-EUC-H", "CNS-EUC-V", "CNS1-H", "CNS1-V", "CNS2-H", "CNS2-V", "ETHK-B5-H", "ETHK-B5-V", "ETen-B5-H", "ETen-B5-V", "ETenms-B5-H", "ETenms-B5-V", "EUC-H", "EUC-V", "Ext-H", "Ext-RKSJ-H", "Ext-RKSJ-V", "Ext-V", "GB-EUC-H", "GB-EUC-V", "GB-H", "GB-V", "GBK-EUC-H", "GBK-EUC-V", "GBK2K-H", "GBK2K-V", "GBKp-EUC-H", "GBKp-EUC-V", "GBT-EUC-H", "GBT-EUC-V", "GBT-H", "GBT-V", "GBTpc-EUC-H", "GBTpc-EUC-V", "GBpc-EUC-H", "GBpc-EUC-V", "H", "HKdla-B5-H", "HKdla-B5-V", "HKdlb-B5-H", "HKdlb-B5-V", "HKgccs-B5-H", "HKgccs-B5-V", "HKm314-B5-H", "HKm314-B5-V", "HKm471-B5-H", "HKm471-B5-V", "HKscs-B5-H", "HKscs-B5-V", "Hankaku", "Hiragana", "KSC-EUC-H", "KSC-EUC-V", "KSC-H", "KSC-Johab-H", "KSC-Johab-V", "KSC-V", "KSCms-UHC-H", "KSCms-UHC-HW-H", "KSCms-UHC-HW-V", "KSCms-UHC-V", "KSCpc-EUC-H", "KSCpc-EUC-V", "Katakana", "NWP-H", "NWP-V", "RKSJ-H", "RKSJ-V", "Roman", "UniCNS-UCS2-H", "UniCNS-UCS2-V", "UniCNS-UTF16-H", "UniCNS-UTF16-V", "UniCNS-UTF32-H", "UniCNS-UTF32-V", "UniCNS-UTF8-H", "UniCNS-UTF8-V", "UniGB-UCS2-H", "UniGB-UCS2-V", "UniGB-UTF16-H", "UniGB-UTF16-V", "UniGB-UTF32-H", "UniGB-UTF32-V", "UniGB-UTF8-H", "UniGB-UTF8-V", "UniJIS-UCS2-H", "UniJIS-UCS2-HW-H", "UniJIS-UCS2-HW-V", "UniJIS-UCS2-V", "UniJIS-UTF16-H", "UniJIS-UTF16-V", "UniJIS-UTF32-H", "UniJIS-UTF32-V", "UniJIS-UTF8-H", "UniJIS-UTF8-V", "UniJIS2004-UTF16-H", "UniJIS2004-UTF16-V", "UniJIS2004-UTF32-H", "UniJIS2004-UTF32-V", "UniJIS2004-UTF8-H", "UniJIS2004-UTF8-V", "UniJISPro-UCS2-HW-V", "UniJISPro-UCS2-V", "UniJISPro-UTF8-V", "UniJISX0213-UTF32-H", "UniJISX0213-UTF32-V", "UniJISX02132004-UTF32-H", "UniJISX02132004-UTF32-V", "UniKS-UCS2-H", "UniKS-UCS2-V", "UniKS-UTF16-H", "UniKS-UTF16-V", "UniKS-UTF32-H", "UniKS-UTF32-V", "UniKS-UTF8-H", "UniKS-UTF8-V", "V", "WP-Symbol"];
52
40
 
41
+ class CMap {
42
+ constructor(builtInCMap = false) {
53
43
  this.codespaceRanges = [[], [], [], []];
54
44
  this.numCodespaceRanges = 0;
55
45
  this._map = [];
56
- this.name = '';
46
+ this.name = "";
57
47
  this.vertical = false;
58
48
  this.useCMap = null;
59
49
  this.builtInCMap = builtInCMap;
60
50
  }
61
51
 
62
- _createClass(CMap, [{
63
- key: 'addCodespaceRange',
64
- value: function addCodespaceRange(n, low, high) {
65
- this.codespaceRanges[n - 1].push(low, high);
66
- this.numCodespaceRanges++;
67
- }
68
- }, {
69
- key: 'mapCidRange',
70
- value: function mapCidRange(low, high, dstLow) {
71
- while (low <= high) {
72
- this._map[low++] = dstLow++;
73
- }
52
+ addCodespaceRange(n, low, high) {
53
+ this.codespaceRanges[n - 1].push(low, high);
54
+ this.numCodespaceRanges++;
55
+ }
56
+
57
+ mapCidRange(low, high, dstLow) {
58
+ while (low <= high) {
59
+ this._map[low++] = dstLow++;
74
60
  }
75
- }, {
76
- key: 'mapBfRange',
77
- value: function mapBfRange(low, high, dstLow) {
78
- var lastByte = dstLow.length - 1;
79
- while (low <= high) {
80
- this._map[low++] = dstLow;
81
- dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);
82
- }
61
+ }
62
+
63
+ mapBfRange(low, high, dstLow) {
64
+ var lastByte = dstLow.length - 1;
65
+
66
+ while (low <= high) {
67
+ this._map[low++] = dstLow;
68
+ dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);
83
69
  }
84
- }, {
85
- key: 'mapBfRangeToArray',
86
- value: function mapBfRangeToArray(low, high, array) {
87
- var i = 0,
88
- ii = array.length;
89
- while (low <= high && i < ii) {
90
- this._map[low] = array[i++];
91
- ++low;
92
- }
70
+ }
71
+
72
+ mapBfRangeToArray(low, high, array) {
73
+ const ii = array.length;
74
+ let i = 0;
75
+
76
+ while (low <= high && i < ii) {
77
+ this._map[low] = array[i++];
78
+ ++low;
93
79
  }
94
- }, {
95
- key: 'mapOne',
96
- value: function mapOne(src, dst) {
97
- this._map[src] = dst;
98
- }
99
- }, {
100
- key: 'lookup',
101
- value: function lookup(code) {
102
- return this._map[code];
103
- }
104
- }, {
105
- key: 'contains',
106
- value: function contains(code) {
107
- return this._map[code] !== undefined;
108
- }
109
- }, {
110
- key: 'forEach',
111
- value: function forEach(callback) {
112
- var map = this._map;
113
- var length = map.length;
114
- if (length <= 0x10000) {
115
- for (var i = 0; i < length; i++) {
116
- if (map[i] !== undefined) {
117
- callback(i, map[i]);
118
- }
119
- }
120
- } else {
121
- for (var _i in map) {
122
- callback(_i, map[_i]);
80
+ }
81
+
82
+ mapOne(src, dst) {
83
+ this._map[src] = dst;
84
+ }
85
+
86
+ lookup(code) {
87
+ return this._map[code];
88
+ }
89
+
90
+ contains(code) {
91
+ return this._map[code] !== undefined;
92
+ }
93
+
94
+ forEach(callback) {
95
+ const map = this._map;
96
+ const length = map.length;
97
+
98
+ if (length <= 0x10000) {
99
+ for (let i = 0; i < length; i++) {
100
+ if (map[i] !== undefined) {
101
+ callback(i, map[i]);
123
102
  }
124
103
  }
125
- }
126
- }, {
127
- key: 'charCodeOf',
128
- value: function charCodeOf(value) {
129
- var map = this._map;
130
- if (map.length <= 0x10000) {
131
- return map.indexOf(value);
104
+ } else {
105
+ for (const i in map) {
106
+ callback(i, map[i]);
132
107
  }
133
- for (var charCode in map) {
134
- if (map[charCode] === value) {
135
- return charCode | 0;
136
- }
137
- }
138
- return -1;
139
108
  }
140
- }, {
141
- key: 'getMap',
142
- value: function getMap() {
143
- return this._map;
109
+ }
110
+
111
+ charCodeOf(value) {
112
+ const map = this._map;
113
+
114
+ if (map.length <= 0x10000) {
115
+ return map.indexOf(value);
144
116
  }
145
- }, {
146
- key: 'readCharCode',
147
- value: function readCharCode(str, offset, out) {
148
- var c = 0;
149
- var codespaceRanges = this.codespaceRanges;
150
- for (var n = 0, nn = codespaceRanges.length; n < nn; n++) {
151
- c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;
152
- var codespaceRange = codespaceRanges[n];
153
- for (var k = 0, kk = codespaceRange.length; k < kk;) {
154
- var low = codespaceRange[k++];
155
- var high = codespaceRange[k++];
156
- if (c >= low && c <= high) {
157
- out.charcode = c;
158
- out.length = n + 1;
159
- return;
160
- }
161
- }
162
- }
163
- out.charcode = 0;
164
- out.length = 1;
165
- }
166
- }, {
167
- key: 'length',
168
- get: function get() {
169
- return this._map.length;
170
- }
171
- }, {
172
- key: 'isIdentityCMap',
173
- get: function get() {
174
- if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {
175
- return false;
176
- }
177
- if (this._map.length !== 0x10000) {
178
- return false;
179
- }
180
- for (var i = 0; i < 0x10000; i++) {
181
- if (this._map[i] !== i) {
182
- return false;
183
- }
117
+
118
+ for (const charCode in map) {
119
+ if (map[charCode] === value) {
120
+ return charCode | 0;
184
121
  }
185
- return true;
186
122
  }
187
- }]);
188
123
 
189
- return CMap;
190
- }();
124
+ return -1;
125
+ }
191
126
 
192
- var IdentityCMap = function (_CMap) {
193
- _inherits(IdentityCMap, _CMap);
127
+ getMap() {
128
+ return this._map;
129
+ }
194
130
 
195
- function IdentityCMap(vertical, n) {
196
- _classCallCheck(this, IdentityCMap);
131
+ readCharCode(str, offset, out) {
132
+ let c = 0;
133
+ const codespaceRanges = this.codespaceRanges;
197
134
 
198
- var _this = _possibleConstructorReturn(this, (IdentityCMap.__proto__ || Object.getPrototypeOf(IdentityCMap)).call(this));
135
+ for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {
136
+ c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;
137
+ const codespaceRange = codespaceRanges[n];
199
138
 
200
- _this.vertical = vertical;
201
- _this.addCodespaceRange(n, 0, 0xffff);
202
- return _this;
203
- }
139
+ for (let k = 0, kk = codespaceRange.length; k < kk;) {
140
+ const low = codespaceRange[k++];
141
+ const high = codespaceRange[k++];
204
142
 
205
- _createClass(IdentityCMap, [{
206
- key: 'mapCidRange',
207
- value: function mapCidRange(low, high, dstLow) {
208
- (0, _util.unreachable)('should not call mapCidRange');
209
- }
210
- }, {
211
- key: 'mapBfRange',
212
- value: function mapBfRange(low, high, dstLow) {
213
- (0, _util.unreachable)('should not call mapBfRange');
214
- }
215
- }, {
216
- key: 'mapBfRangeToArray',
217
- value: function mapBfRangeToArray(low, high, array) {
218
- (0, _util.unreachable)('should not call mapBfRangeToArray');
219
- }
220
- }, {
221
- key: 'mapOne',
222
- value: function mapOne(src, dst) {
223
- (0, _util.unreachable)('should not call mapCidOne');
224
- }
225
- }, {
226
- key: 'lookup',
227
- value: function lookup(code) {
228
- return Number.isInteger(code) && code <= 0xffff ? code : undefined;
143
+ if (c >= low && c <= high) {
144
+ out.charcode = c;
145
+ out.length = n + 1;
146
+ return;
147
+ }
148
+ }
229
149
  }
230
- }, {
231
- key: 'contains',
232
- value: function contains(code) {
233
- return Number.isInteger(code) && code <= 0xffff;
150
+
151
+ out.charcode = 0;
152
+ out.length = 1;
153
+ }
154
+
155
+ get length() {
156
+ return this._map.length;
157
+ }
158
+
159
+ get isIdentityCMap() {
160
+ if (!(this.name === "Identity-H" || this.name === "Identity-V")) {
161
+ return false;
234
162
  }
235
- }, {
236
- key: 'forEach',
237
- value: function forEach(callback) {
238
- for (var i = 0; i <= 0xffff; i++) {
239
- callback(i, i);
240
- }
163
+
164
+ if (this._map.length !== 0x10000) {
165
+ return false;
241
166
  }
242
- }, {
243
- key: 'charCodeOf',
244
- value: function charCodeOf(value) {
245
- return Number.isInteger(value) && value <= 0xffff ? value : -1;
246
- }
247
- }, {
248
- key: 'getMap',
249
- value: function getMap() {
250
- var map = new Array(0x10000);
251
- for (var i = 0; i <= 0xffff; i++) {
252
- map[i] = i;
167
+
168
+ for (let i = 0; i < 0x10000; i++) {
169
+ if (this._map[i] !== i) {
170
+ return false;
253
171
  }
254
- return map;
255
172
  }
256
- }, {
257
- key: 'length',
258
- get: function get() {
259
- return 0x10000;
173
+
174
+ return true;
175
+ }
176
+
177
+ }
178
+
179
+ exports.CMap = CMap;
180
+
181
+ class IdentityCMap extends CMap {
182
+ constructor(vertical, n) {
183
+ super();
184
+ this.vertical = vertical;
185
+ this.addCodespaceRange(n, 0, 0xffff);
186
+ }
187
+
188
+ mapCidRange(low, high, dstLow) {
189
+ (0, _util.unreachable)("should not call mapCidRange");
190
+ }
191
+
192
+ mapBfRange(low, high, dstLow) {
193
+ (0, _util.unreachable)("should not call mapBfRange");
194
+ }
195
+
196
+ mapBfRangeToArray(low, high, array) {
197
+ (0, _util.unreachable)("should not call mapBfRangeToArray");
198
+ }
199
+
200
+ mapOne(src, dst) {
201
+ (0, _util.unreachable)("should not call mapCidOne");
202
+ }
203
+
204
+ lookup(code) {
205
+ return Number.isInteger(code) && code <= 0xffff ? code : undefined;
206
+ }
207
+
208
+ contains(code) {
209
+ return Number.isInteger(code) && code <= 0xffff;
210
+ }
211
+
212
+ forEach(callback) {
213
+ for (let i = 0; i <= 0xffff; i++) {
214
+ callback(i, i);
260
215
  }
261
- }, {
262
- key: 'isIdentityCMap',
263
- get: function get() {
264
- (0, _util.unreachable)('should not access .isIdentityCMap');
216
+ }
217
+
218
+ charCodeOf(value) {
219
+ return Number.isInteger(value) && value <= 0xffff ? value : -1;
220
+ }
221
+
222
+ getMap() {
223
+ const map = new Array(0x10000);
224
+
225
+ for (let i = 0; i <= 0xffff; i++) {
226
+ map[i] = i;
265
227
  }
266
- }]);
267
228
 
268
- return IdentityCMap;
269
- }(CMap);
229
+ return map;
230
+ }
231
+
232
+ get length() {
233
+ return 0x10000;
234
+ }
235
+
236
+ get isIdentityCMap() {
237
+ (0, _util.unreachable)("should not access .isIdentityCMap");
238
+ }
239
+
240
+ }
241
+
242
+ exports.IdentityCMap = IdentityCMap;
270
243
 
271
244
  var BinaryCMapReader = function BinaryCMapReaderClosure() {
272
245
  function hexToInt(a, size) {
273
246
  var n = 0;
247
+
274
248
  for (var i = 0; i <= size; i++) {
275
249
  n = n << 8 | a[i];
276
250
  }
251
+
277
252
  return n >>> 0;
278
253
  }
254
+
279
255
  function hexToStr(a, size) {
280
256
  if (size === 1) {
281
257
  return String.fromCharCode(a[0], a[1]);
282
258
  }
259
+
283
260
  if (size === 3) {
284
261
  return String.fromCharCode(a[0], a[1], a[2], a[3]);
285
262
  }
263
+
286
264
  return String.fromCharCode.apply(null, a.subarray(0, size + 1));
287
265
  }
266
+
288
267
  function addHex(a, b, size) {
289
268
  var c = 0;
269
+
290
270
  for (var i = size; i >= 0; i--) {
291
271
  c += a[i] + b[i];
292
272
  a[i] = c & 255;
293
273
  c >>= 8;
294
274
  }
295
275
  }
276
+
296
277
  function incHex(a, size) {
297
278
  var c = 1;
279
+
298
280
  for (var i = size; i >= 0 && c > 0; i--) {
299
281
  c += a[i];
300
282
  a[i] = c & 255;
301
283
  c >>= 8;
302
284
  }
303
285
  }
286
+
304
287
  var MAX_NUM_SIZE = 16;
305
288
  var MAX_ENCODED_NUM_SIZE = 19;
289
+
306
290
  function BinaryCMapStream(data) {
307
291
  this.buffer = data;
308
292
  this.pos = 0;
309
293
  this.end = data.length;
310
294
  this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);
311
295
  }
296
+
312
297
  BinaryCMapStream.prototype = {
313
- readByte: function readByte() {
298
+ readByte() {
314
299
  if (this.pos >= this.end) {
315
300
  return -1;
316
301
  }
302
+
317
303
  return this.buffer[this.pos++];
318
304
  },
319
- readNumber: function readNumber() {
305
+
306
+ readNumber() {
320
307
  var n = 0;
321
308
  var last;
309
+
322
310
  do {
323
311
  var b = this.readByte();
312
+
324
313
  if (b < 0) {
325
- throw new _util.FormatError('unexpected EOF in bcmap');
314
+ throw new _util.FormatError("unexpected EOF in bcmap");
326
315
  }
316
+
327
317
  last = !(b & 0x80);
328
- n = n << 7 | b & 0x7F;
318
+ n = n << 7 | b & 0x7f;
329
319
  } while (!last);
320
+
330
321
  return n;
331
322
  },
332
- readSigned: function readSigned() {
323
+
324
+ readSigned() {
333
325
  var n = this.readNumber();
334
326
  return n & 1 ? ~(n >>> 1) : n >>> 1;
335
327
  },
336
- readHex: function readHex(num, size) {
328
+
329
+ readHex(num, size) {
337
330
  num.set(this.buffer.subarray(this.pos, this.pos + size + 1));
338
331
  this.pos += size + 1;
339
332
  },
340
- readHexNumber: function readHexNumber(num, size) {
333
+
334
+ readHexNumber(num, size) {
341
335
  var last;
342
336
  var stack = this.tmpBuf,
343
337
  sp = 0;
338
+
344
339
  do {
345
340
  var b = this.readByte();
341
+
346
342
  if (b < 0) {
347
- throw new _util.FormatError('unexpected EOF in bcmap');
343
+ throw new _util.FormatError("unexpected EOF in bcmap");
348
344
  }
345
+
349
346
  last = !(b & 0x80);
350
- stack[sp++] = b & 0x7F;
347
+ stack[sp++] = b & 0x7f;
351
348
  } while (!last);
349
+
352
350
  var i = size,
353
351
  buffer = 0,
354
352
  bufferSize = 0;
353
+
355
354
  while (i >= 0) {
356
355
  while (bufferSize < 8 && stack.length > 0) {
357
356
  buffer = stack[--sp] << bufferSize | buffer;
358
357
  bufferSize += 7;
359
358
  }
359
+
360
360
  num[i] = buffer & 255;
361
361
  i--;
362
362
  buffer >>= 8;
363
363
  bufferSize -= 8;
364
364
  }
365
365
  },
366
- readHexSigned: function readHexSigned(num, size) {
366
+
367
+ readHexSigned(num, size) {
367
368
  this.readHexNumber(num, size);
368
369
  var sign = num[size] & 1 ? 255 : 0;
369
370
  var c = 0;
371
+
370
372
  for (var i = 0; i <= size; i++) {
371
373
  c = (c & 1) << 8 | num[i];
372
374
  num[i] = c >> 1 ^ sign;
373
375
  }
374
376
  },
375
- readString: function readString() {
377
+
378
+ readString() {
376
379
  var len = this.readNumber();
377
- var s = '';
380
+ var s = "";
381
+
378
382
  for (var i = 0; i < len; i++) {
379
383
  s += String.fromCharCode(this.readNumber());
380
384
  }
385
+
381
386
  return s;
382
387
  }
388
+
383
389
  };
390
+
384
391
  function processBinaryCMap(data, cMap, extend) {
385
392
  return new Promise(function (resolve, reject) {
386
393
  var stream = new BinaryCMapStream(data);
@@ -394,33 +401,42 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
394
401
  var tmp = new Uint8Array(MAX_NUM_SIZE);
395
402
  var code;
396
403
  var b;
404
+
397
405
  while ((b = stream.readByte()) >= 0) {
398
406
  var type = b >> 5;
407
+
399
408
  if (type === 7) {
400
- switch (b & 0x1F) {
409
+ switch (b & 0x1f) {
401
410
  case 0:
402
411
  stream.readString();
403
412
  break;
413
+
404
414
  case 1:
405
415
  useCMap = stream.readString();
406
416
  break;
407
417
  }
418
+
408
419
  continue;
409
420
  }
421
+
410
422
  var sequence = !!(b & 0x10);
411
423
  var dataSize = b & 15;
424
+
412
425
  if (dataSize + 1 > MAX_NUM_SIZE) {
413
- throw new Error('processBinaryCMap: Invalid dataSize.');
426
+ throw new Error("processBinaryCMap: Invalid dataSize.");
414
427
  }
428
+
415
429
  var ucs2DataSize = 1;
416
430
  var subitemsCount = stream.readNumber();
417
431
  var i;
432
+
418
433
  switch (type) {
419
434
  case 0:
420
435
  stream.readHex(start, dataSize);
421
436
  stream.readHexNumber(end, dataSize);
422
437
  addHex(end, start, dataSize);
423
438
  cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));
439
+
424
440
  for (i = 1; i < subitemsCount; i++) {
425
441
  incHex(end, dataSize);
426
442
  stream.readHexNumber(start, dataSize);
@@ -429,12 +445,15 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
429
445
  addHex(end, start, dataSize);
430
446
  cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));
431
447
  }
448
+
432
449
  break;
450
+
433
451
  case 1:
434
452
  stream.readHex(start, dataSize);
435
453
  stream.readHexNumber(end, dataSize);
436
454
  addHex(end, start, dataSize);
437
455
  stream.readNumber();
456
+
438
457
  for (i = 1; i < subitemsCount; i++) {
439
458
  incHex(end, dataSize);
440
459
  stream.readHexNumber(start, dataSize);
@@ -443,120 +462,157 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
443
462
  addHex(end, start, dataSize);
444
463
  stream.readNumber();
445
464
  }
465
+
446
466
  break;
467
+
447
468
  case 2:
448
469
  stream.readHex(char, dataSize);
449
470
  code = stream.readNumber();
450
471
  cMap.mapOne(hexToInt(char, dataSize), code);
472
+
451
473
  for (i = 1; i < subitemsCount; i++) {
452
474
  incHex(char, dataSize);
475
+
453
476
  if (!sequence) {
454
477
  stream.readHexNumber(tmp, dataSize);
455
478
  addHex(char, tmp, dataSize);
456
479
  }
480
+
457
481
  code = stream.readSigned() + (code + 1);
458
482
  cMap.mapOne(hexToInt(char, dataSize), code);
459
483
  }
484
+
460
485
  break;
486
+
461
487
  case 3:
462
488
  stream.readHex(start, dataSize);
463
489
  stream.readHexNumber(end, dataSize);
464
490
  addHex(end, start, dataSize);
465
491
  code = stream.readNumber();
466
492
  cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);
493
+
467
494
  for (i = 1; i < subitemsCount; i++) {
468
495
  incHex(end, dataSize);
496
+
469
497
  if (!sequence) {
470
498
  stream.readHexNumber(start, dataSize);
471
499
  addHex(start, end, dataSize);
472
500
  } else {
473
501
  start.set(end);
474
502
  }
503
+
475
504
  stream.readHexNumber(end, dataSize);
476
505
  addHex(end, start, dataSize);
477
506
  code = stream.readNumber();
478
507
  cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);
479
508
  }
509
+
480
510
  break;
511
+
481
512
  case 4:
482
513
  stream.readHex(char, ucs2DataSize);
483
514
  stream.readHex(charCode, dataSize);
484
515
  cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));
516
+
485
517
  for (i = 1; i < subitemsCount; i++) {
486
518
  incHex(char, ucs2DataSize);
519
+
487
520
  if (!sequence) {
488
521
  stream.readHexNumber(tmp, ucs2DataSize);
489
522
  addHex(char, tmp, ucs2DataSize);
490
523
  }
524
+
491
525
  incHex(charCode, dataSize);
492
526
  stream.readHexSigned(tmp, dataSize);
493
527
  addHex(charCode, tmp, dataSize);
494
528
  cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));
495
529
  }
530
+
496
531
  break;
532
+
497
533
  case 5:
498
534
  stream.readHex(start, ucs2DataSize);
499
535
  stream.readHexNumber(end, ucs2DataSize);
500
536
  addHex(end, start, ucs2DataSize);
501
537
  stream.readHex(charCode, dataSize);
502
538
  cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));
539
+
503
540
  for (i = 1; i < subitemsCount; i++) {
504
541
  incHex(end, ucs2DataSize);
542
+
505
543
  if (!sequence) {
506
544
  stream.readHexNumber(start, ucs2DataSize);
507
545
  addHex(start, end, ucs2DataSize);
508
546
  } else {
509
547
  start.set(end);
510
548
  }
549
+
511
550
  stream.readHexNumber(end, ucs2DataSize);
512
551
  addHex(end, start, ucs2DataSize);
513
552
  stream.readHex(charCode, dataSize);
514
553
  cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));
515
554
  }
555
+
516
556
  break;
557
+
517
558
  default:
518
- reject(new Error('processBinaryCMap: Unknown type: ' + type));
559
+ reject(new Error("processBinaryCMap: Unknown type: " + type));
519
560
  return;
520
561
  }
521
562
  }
563
+
522
564
  if (useCMap) {
523
565
  resolve(extend(useCMap));
524
566
  return;
525
567
  }
568
+
526
569
  resolve(cMap);
527
570
  });
528
571
  }
572
+
529
573
  function BinaryCMapReader() {}
530
- BinaryCMapReader.prototype = { process: processBinaryCMap };
574
+
575
+ BinaryCMapReader.prototype = {
576
+ process: processBinaryCMap
577
+ };
531
578
  return BinaryCMapReader;
532
579
  }();
580
+
533
581
  var CMapFactory = function CMapFactoryClosure() {
534
582
  function strToInt(str) {
535
583
  var a = 0;
584
+
536
585
  for (var i = 0; i < str.length; i++) {
537
586
  a = a << 8 | str.charCodeAt(i);
538
587
  }
588
+
539
589
  return a >>> 0;
540
590
  }
591
+
541
592
  function expectString(obj) {
542
593
  if (!(0, _util.isString)(obj)) {
543
- throw new _util.FormatError('Malformed CMap: expected string.');
594
+ throw new _util.FormatError("Malformed CMap: expected string.");
544
595
  }
545
596
  }
597
+
546
598
  function expectInt(obj) {
547
599
  if (!Number.isInteger(obj)) {
548
- throw new _util.FormatError('Malformed CMap: expected int.');
600
+ throw new _util.FormatError("Malformed CMap: expected int.");
549
601
  }
550
602
  }
603
+
551
604
  function parseBfChar(cMap, lexer) {
552
605
  while (true) {
553
606
  var obj = lexer.getObj();
607
+
554
608
  if ((0, _primitives.isEOF)(obj)) {
555
609
  break;
556
610
  }
557
- if ((0, _primitives.isCmd)(obj, 'endbfchar')) {
611
+
612
+ if ((0, _primitives.isCmd)(obj, "endbfchar")) {
558
613
  return;
559
614
  }
615
+
560
616
  expectString(obj);
561
617
  var src = strToInt(obj);
562
618
  obj = lexer.getObj();
@@ -565,47 +621,59 @@ var CMapFactory = function CMapFactoryClosure() {
565
621
  cMap.mapOne(src, dst);
566
622
  }
567
623
  }
624
+
568
625
  function parseBfRange(cMap, lexer) {
569
626
  while (true) {
570
627
  var obj = lexer.getObj();
628
+
571
629
  if ((0, _primitives.isEOF)(obj)) {
572
630
  break;
573
631
  }
574
- if ((0, _primitives.isCmd)(obj, 'endbfrange')) {
632
+
633
+ if ((0, _primitives.isCmd)(obj, "endbfrange")) {
575
634
  return;
576
635
  }
636
+
577
637
  expectString(obj);
578
638
  var low = strToInt(obj);
579
639
  obj = lexer.getObj();
580
640
  expectString(obj);
581
641
  var high = strToInt(obj);
582
642
  obj = lexer.getObj();
643
+
583
644
  if (Number.isInteger(obj) || (0, _util.isString)(obj)) {
584
645
  var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;
585
646
  cMap.mapBfRange(low, high, dstLow);
586
- } else if ((0, _primitives.isCmd)(obj, '[')) {
647
+ } else if ((0, _primitives.isCmd)(obj, "[")) {
587
648
  obj = lexer.getObj();
588
649
  var array = [];
589
- while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {
650
+
651
+ while (!(0, _primitives.isCmd)(obj, "]") && !(0, _primitives.isEOF)(obj)) {
590
652
  array.push(obj);
591
653
  obj = lexer.getObj();
592
654
  }
655
+
593
656
  cMap.mapBfRangeToArray(low, high, array);
594
657
  } else {
595
658
  break;
596
659
  }
597
660
  }
598
- throw new _util.FormatError('Invalid bf range.');
661
+
662
+ throw new _util.FormatError("Invalid bf range.");
599
663
  }
664
+
600
665
  function parseCidChar(cMap, lexer) {
601
666
  while (true) {
602
667
  var obj = lexer.getObj();
668
+
603
669
  if ((0, _primitives.isEOF)(obj)) {
604
670
  break;
605
671
  }
606
- if ((0, _primitives.isCmd)(obj, 'endcidchar')) {
672
+
673
+ if ((0, _primitives.isCmd)(obj, "endcidchar")) {
607
674
  return;
608
675
  }
676
+
609
677
  expectString(obj);
610
678
  var src = strToInt(obj);
611
679
  obj = lexer.getObj();
@@ -614,15 +682,19 @@ var CMapFactory = function CMapFactoryClosure() {
614
682
  cMap.mapOne(src, dst);
615
683
  }
616
684
  }
685
+
617
686
  function parseCidRange(cMap, lexer) {
618
687
  while (true) {
619
688
  var obj = lexer.getObj();
689
+
620
690
  if ((0, _primitives.isEOF)(obj)) {
621
691
  break;
622
692
  }
623
- if ((0, _primitives.isCmd)(obj, 'endcidrange')) {
693
+
694
+ if ((0, _primitives.isCmd)(obj, "endcidrange")) {
624
695
  return;
625
696
  }
697
+
626
698
  expectString(obj);
627
699
  var low = strToInt(obj);
628
700
  obj = lexer.getObj();
@@ -634,107 +706,139 @@ var CMapFactory = function CMapFactoryClosure() {
634
706
  cMap.mapCidRange(low, high, dstLow);
635
707
  }
636
708
  }
709
+
637
710
  function parseCodespaceRange(cMap, lexer) {
638
711
  while (true) {
639
712
  var obj = lexer.getObj();
713
+
640
714
  if ((0, _primitives.isEOF)(obj)) {
641
715
  break;
642
716
  }
643
- if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {
717
+
718
+ if ((0, _primitives.isCmd)(obj, "endcodespacerange")) {
644
719
  return;
645
720
  }
721
+
646
722
  if (!(0, _util.isString)(obj)) {
647
723
  break;
648
724
  }
725
+
649
726
  var low = strToInt(obj);
650
727
  obj = lexer.getObj();
728
+
651
729
  if (!(0, _util.isString)(obj)) {
652
730
  break;
653
731
  }
732
+
654
733
  var high = strToInt(obj);
655
734
  cMap.addCodespaceRange(obj.length, low, high);
656
735
  }
657
- throw new _util.FormatError('Invalid codespace range.');
736
+
737
+ throw new _util.FormatError("Invalid codespace range.");
658
738
  }
739
+
659
740
  function parseWMode(cMap, lexer) {
660
741
  var obj = lexer.getObj();
742
+
661
743
  if (Number.isInteger(obj)) {
662
744
  cMap.vertical = !!obj;
663
745
  }
664
746
  }
747
+
665
748
  function parseCMapName(cMap, lexer) {
666
749
  var obj = lexer.getObj();
750
+
667
751
  if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {
668
752
  cMap.name = obj.name;
669
753
  }
670
754
  }
755
+
671
756
  function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {
672
757
  var previous;
673
758
  var embeddedUseCMap;
759
+
674
760
  objLoop: while (true) {
675
761
  try {
676
762
  var obj = lexer.getObj();
763
+
677
764
  if ((0, _primitives.isEOF)(obj)) {
678
765
  break;
679
766
  } else if ((0, _primitives.isName)(obj)) {
680
- if (obj.name === 'WMode') {
767
+ if (obj.name === "WMode") {
681
768
  parseWMode(cMap, lexer);
682
- } else if (obj.name === 'CMapName') {
769
+ } else if (obj.name === "CMapName") {
683
770
  parseCMapName(cMap, lexer);
684
771
  }
772
+
685
773
  previous = obj;
686
774
  } else if ((0, _primitives.isCmd)(obj)) {
687
775
  switch (obj.cmd) {
688
- case 'endcmap':
776
+ case "endcmap":
689
777
  break objLoop;
690
- case 'usecmap':
778
+
779
+ case "usecmap":
691
780
  if ((0, _primitives.isName)(previous)) {
692
781
  embeddedUseCMap = previous.name;
693
782
  }
783
+
694
784
  break;
695
- case 'begincodespacerange':
785
+
786
+ case "begincodespacerange":
696
787
  parseCodespaceRange(cMap, lexer);
697
788
  break;
698
- case 'beginbfchar':
789
+
790
+ case "beginbfchar":
699
791
  parseBfChar(cMap, lexer);
700
792
  break;
701
- case 'begincidchar':
793
+
794
+ case "begincidchar":
702
795
  parseCidChar(cMap, lexer);
703
796
  break;
704
- case 'beginbfrange':
797
+
798
+ case "beginbfrange":
705
799
  parseBfRange(cMap, lexer);
706
800
  break;
707
- case 'begincidrange':
801
+
802
+ case "begincidrange":
708
803
  parseCidRange(cMap, lexer);
709
804
  break;
710
805
  }
711
806
  }
712
807
  } catch (ex) {
713
- if (ex instanceof _util.MissingDataException) {
808
+ if (ex instanceof _core_utils.MissingDataException) {
714
809
  throw ex;
715
810
  }
716
- (0, _util.warn)('Invalid cMap data: ' + ex);
811
+
812
+ (0, _util.warn)("Invalid cMap data: " + ex);
717
813
  continue;
718
814
  }
719
815
  }
816
+
720
817
  if (!useCMap && embeddedUseCMap) {
721
818
  useCMap = embeddedUseCMap;
722
819
  }
820
+
723
821
  if (useCMap) {
724
822
  return extendCMap(cMap, fetchBuiltInCMap, useCMap);
725
823
  }
824
+
726
825
  return Promise.resolve(cMap);
727
826
  }
827
+
728
828
  function extendCMap(cMap, fetchBuiltInCMap, useCMap) {
729
829
  return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {
730
830
  cMap.useCMap = newCMap;
831
+
731
832
  if (cMap.numCodespaceRanges === 0) {
732
833
  var useCodespaceRanges = cMap.useCMap.codespaceRanges;
834
+
733
835
  for (var i = 0; i < useCodespaceRanges.length; i++) {
734
836
  cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();
735
837
  }
838
+
736
839
  cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;
737
840
  }
841
+
738
842
  cMap.useCMap.forEach(function (key, value) {
739
843
  if (!cMap.contains(key)) {
740
844
  cMap.mapOne(key, cMap.useCMap.lookup(key));
@@ -743,39 +847,48 @@ var CMapFactory = function CMapFactoryClosure() {
743
847
  return cMap;
744
848
  });
745
849
  }
850
+
746
851
  function createBuiltInCMap(name, fetchBuiltInCMap) {
747
- if (name === 'Identity-H') {
852
+ if (name === "Identity-H") {
748
853
  return Promise.resolve(new IdentityCMap(false, 2));
749
- } else if (name === 'Identity-V') {
854
+ } else if (name === "Identity-V") {
750
855
  return Promise.resolve(new IdentityCMap(true, 2));
751
856
  }
857
+
752
858
  if (!BUILT_IN_CMAPS.includes(name)) {
753
- return Promise.reject(new Error('Unknown CMap name: ' + name));
859
+ return Promise.reject(new Error("Unknown CMap name: " + name));
754
860
  }
861
+
755
862
  if (!fetchBuiltInCMap) {
756
- return Promise.reject(new Error('Built-in CMap parameters are not provided.'));
863
+ return Promise.reject(new Error("Built-in CMap parameters are not provided."));
757
864
  }
865
+
758
866
  return fetchBuiltInCMap(name).then(function (data) {
759
867
  var cMapData = data.cMapData,
760
868
  compressionType = data.compressionType;
761
869
  var cMap = new CMap(true);
870
+
762
871
  if (compressionType === _util.CMapCompressionType.BINARY) {
763
872
  return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {
764
873
  return extendCMap(cMap, fetchBuiltInCMap, useCMap);
765
874
  });
766
875
  }
876
+
767
877
  if (compressionType === _util.CMapCompressionType.NONE) {
768
878
  var lexer = new _parser.Lexer(new _stream.Stream(cMapData));
769
879
  return parseCMap(cMap, lexer, fetchBuiltInCMap, null);
770
880
  }
771
- return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));
881
+
882
+ return Promise.reject(new Error("TODO: Only BINARY/NONE CMap compression is currently supported."));
772
883
  });
773
884
  }
885
+
774
886
  return {
775
- create: function create(params) {
887
+ async create(params) {
776
888
  var encoding = params.encoding;
777
889
  var fetchBuiltInCMap = params.fetchBuiltInCMap;
778
890
  var useCMap = params.useCMap;
891
+
779
892
  if ((0, _primitives.isName)(encoding)) {
780
893
  return createBuiltInCMap(encoding.name, fetchBuiltInCMap);
781
894
  } else if ((0, _primitives.isStream)(encoding)) {
@@ -785,13 +898,15 @@ var CMapFactory = function CMapFactoryClosure() {
785
898
  if (parsedCMap.isIdentityCMap) {
786
899
  return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);
787
900
  }
901
+
788
902
  return parsedCMap;
789
903
  });
790
904
  }
791
- return Promise.reject(new Error('Encoding required.'));
905
+
906
+ throw new Error("Encoding required.");
792
907
  }
908
+
793
909
  };
794
910
  }();
795
- exports.CMap = CMap;
796
- exports.IdentityCMap = IdentityCMap;
911
+
797
912
  exports.CMapFactory = CMapFactory;