pdfjs-dist 2.0.489 → 2.2.228

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