pdfjs-dist 2.6.347 → 2.7.570

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 (158) hide show
  1. package/README.md +3 -3
  2. package/bower.json +1 -1
  3. package/build/pdf.js +2050 -1087
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +18219 -10436
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/es5/build/pdf.d.ts +1 -0
  10. package/es5/build/pdf.js +6623 -6654
  11. package/es5/build/pdf.js.map +1 -1
  12. package/es5/build/pdf.min.js +1 -1
  13. package/es5/build/pdf.worker.js +20815 -13888
  14. package/es5/build/pdf.worker.js.map +1 -1
  15. package/es5/build/pdf.worker.min.js +1 -1
  16. package/es5/image_decoders/pdf.image_decoders.js +3817 -4946
  17. package/es5/image_decoders/pdf.image_decoders.js.map +1 -1
  18. package/es5/image_decoders/pdf.image_decoders.min.js +1 -1
  19. package/es5/web/pdf_viewer.css +18 -15
  20. package/es5/web/pdf_viewer.js +1094 -514
  21. package/es5/web/pdf_viewer.js.map +1 -1
  22. package/image_decoders/pdf.image_decoders.js +774 -168
  23. package/image_decoders/pdf.image_decoders.js.map +1 -1
  24. package/image_decoders/pdf.image_decoders.min.js +1 -1
  25. package/lib/core/annotation.js +556 -108
  26. package/lib/core/cff_parser.js +7 -1
  27. package/lib/core/charsets.js +1 -1
  28. package/lib/core/cmap.js +20 -1
  29. package/lib/core/core_utils.js +162 -3
  30. package/lib/core/crypto.js +1 -1
  31. package/lib/core/default_appearance.js +132 -0
  32. package/lib/core/document.js +115 -9
  33. package/lib/core/encodings.js +1 -1
  34. package/lib/core/evaluator.js +168 -74
  35. package/lib/core/fonts.js +97 -11
  36. package/lib/core/function.js +5 -10
  37. package/lib/core/glyphlist.js +11 -4529
  38. package/lib/core/image_utils.js +30 -1
  39. package/lib/core/jpg.js +1 -1
  40. package/lib/core/jpx.js +5 -5
  41. package/lib/core/murmurhash3.js +1 -1
  42. package/lib/core/obj.js +123 -39
  43. package/lib/core/pattern.js +4 -4
  44. package/lib/core/primitives.js +24 -5
  45. package/lib/core/standard_fonts.js +1 -1
  46. package/lib/core/stream.js +5 -1
  47. package/lib/core/unicode.js +15 -1387
  48. package/lib/core/worker.js +58 -17
  49. package/lib/core/writer.js +68 -4
  50. package/lib/display/annotation_layer.js +712 -119
  51. package/lib/display/annotation_storage.js +21 -4
  52. package/lib/display/api.js +88 -18
  53. package/lib/display/canvas.js +414 -375
  54. package/lib/display/display_utils.js +11 -4
  55. package/lib/display/fetch_stream.js +3 -3
  56. package/lib/display/font_loader.js +2 -3
  57. package/lib/display/metadata.js +54 -20
  58. package/lib/display/node_stream.js +1 -1
  59. package/lib/display/optional_content_config.js +1 -1
  60. package/lib/display/pattern_helper.js +109 -113
  61. package/lib/display/svg.js +5 -5
  62. package/lib/display/text_layer.js +54 -54
  63. package/lib/display/transport_stream.js +4 -4
  64. package/lib/display/webgl.js +65 -68
  65. package/lib/examples/node/domstubs.js +9 -4
  66. package/lib/pdf.js +2 -2
  67. package/lib/pdf.sandbox.js +311 -0
  68. package/lib/pdf.worker.js +2 -2
  69. package/lib/shared/scripting_utils.js +84 -0
  70. package/lib/shared/util.js +129 -14
  71. package/lib/{display → shared}/xml_parser.js +112 -4
  72. package/lib/test/unit/annotation_spec.js +831 -109
  73. package/lib/test/unit/annotation_storage_spec.js +28 -10
  74. package/lib/test/unit/api_spec.js +190 -160
  75. package/lib/test/unit/bidi_spec.js +6 -6
  76. package/lib/test/unit/cff_parser_spec.js +73 -73
  77. package/lib/test/unit/clitests_helper.js +2 -0
  78. package/lib/test/unit/cmap_spec.js +48 -74
  79. package/lib/test/unit/core_utils_spec.js +34 -0
  80. package/lib/test/unit/crypto_spec.js +162 -199
  81. package/lib/test/unit/custom_spec.js +7 -18
  82. package/lib/test/unit/default_appearance_spec.js +54 -0
  83. package/lib/test/unit/display_svg_spec.js +24 -19
  84. package/lib/test/unit/display_utils_spec.js +1 -1
  85. package/lib/test/unit/document_spec.js +187 -20
  86. package/lib/test/unit/evaluator_spec.js +30 -30
  87. package/lib/test/unit/function_spec.js +165 -165
  88. package/lib/test/unit/jasmine-boot.js +52 -53
  89. package/lib/test/unit/metadata_spec.js +2 -2
  90. package/lib/test/unit/murmurhash3_spec.js +29 -16
  91. package/lib/test/unit/network_spec.js +21 -21
  92. package/lib/test/unit/pdf_find_controller_spec.js +131 -69
  93. package/lib/test/unit/pdf_find_utils_spec.js +10 -10
  94. package/lib/test/unit/scripting_spec.js +1104 -0
  95. package/lib/test/unit/stream_spec.js +8 -8
  96. package/lib/test/unit/test_utils.js +16 -19
  97. package/lib/test/unit/testreporter.js +11 -4
  98. package/lib/test/unit/type1_parser_spec.js +23 -23
  99. package/lib/test/unit/ui_utils_spec.js +78 -35
  100. package/lib/test/unit/unicode_spec.js +7 -7
  101. package/lib/test/unit/util_spec.js +26 -3
  102. package/lib/test/unit/writer_spec.js +16 -1
  103. package/lib/test/unit/xml_spec.js +117 -0
  104. package/lib/web/annotation_layer_builder.js +18 -6
  105. package/lib/web/app.js +579 -161
  106. package/lib/web/app_options.js +14 -0
  107. package/lib/web/base_tree_viewer.js +50 -0
  108. package/lib/web/base_viewer.js +350 -14
  109. package/lib/web/chromecom.js +9 -1
  110. package/lib/web/debugger.js +1 -2
  111. package/lib/web/download_manager.js +0 -15
  112. package/lib/web/firefox_print_service.js +6 -4
  113. package/lib/web/firefoxcom.js +84 -69
  114. package/lib/web/generic_scripting.js +55 -0
  115. package/lib/web/genericcom.js +9 -1
  116. package/lib/web/grab_to_pan.js +1 -1
  117. package/lib/web/interfaces.js +9 -3
  118. package/lib/web/pdf_attachment_viewer.js +1 -3
  119. package/lib/web/pdf_cursor_tools.js +20 -13
  120. package/lib/web/pdf_document_properties.js +48 -61
  121. package/lib/web/pdf_find_bar.js +1 -3
  122. package/lib/web/pdf_find_controller.js +58 -12
  123. package/lib/web/pdf_history.js +43 -21
  124. package/lib/web/pdf_layer_viewer.js +1 -9
  125. package/lib/web/pdf_link_service.js +108 -78
  126. package/lib/web/pdf_outline_viewer.js +166 -10
  127. package/lib/web/pdf_page_view.js +14 -14
  128. package/lib/web/pdf_presentation_mode.js +21 -31
  129. package/lib/web/pdf_rendering_queue.js +8 -1
  130. package/lib/web/pdf_sidebar.js +62 -107
  131. package/lib/web/pdf_sidebar_resizer.js +11 -21
  132. package/lib/web/pdf_single_page_viewer.js +8 -0
  133. package/lib/web/pdf_thumbnail_view.js +26 -26
  134. package/lib/web/pdf_thumbnail_viewer.js +13 -2
  135. package/lib/web/pdf_viewer.component.js +2 -2
  136. package/lib/web/pdf_viewer.js +3 -1
  137. package/lib/web/preferences.js +33 -44
  138. package/lib/web/text_layer_builder.js +2 -9
  139. package/lib/web/ui_utils.js +78 -46
  140. package/lib/web/viewer_compatibility.js +1 -2
  141. package/package.json +4 -1
  142. package/types/display/annotation_layer.d.ts +18 -3
  143. package/types/display/api.d.ts +110 -54
  144. package/types/display/canvas.d.ts +1 -1
  145. package/types/display/display_utils.d.ts +96 -95
  146. package/types/display/fetch_stream.d.ts +2 -2
  147. package/types/display/metadata.d.ts +4 -0
  148. package/types/display/pattern_helper.d.ts +1 -1
  149. package/types/display/text_layer.d.ts +7 -7
  150. package/types/display/transport_stream.d.ts +1 -1
  151. package/types/shared/scripting_utils.d.ts +12 -0
  152. package/types/shared/util.d.ts +281 -250
  153. package/types/shared/xml_parser.d.ts +64 -0
  154. package/web/pdf_viewer.css +18 -15
  155. package/web/pdf_viewer.js +809 -408
  156. package/web/pdf_viewer.js.map +1 -1
  157. package/webpack.js +1 -1
  158. package/types/display/xml_parser.d.ts +0 -35
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @licstart The following is the entire license notice for the
3
+ * Javascript code in this page
4
+ *
5
+ * Copyright 2020 Mozilla Foundation
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ * @licend The above is the entire license notice for the
20
+ * Javascript code in this page
21
+ */
22
+ "use strict";
23
+
24
+ var _core_utils = require("../../core/core_utils.js");
25
+
26
+ var _xml_parser = require("../../shared/xml_parser.js");
27
+
28
+ describe("XML", function () {
29
+ describe("searchNode", function () {
30
+ it("should search a node with a given path in xml tree", function () {
31
+ const xml = `
32
+ <a>
33
+ <b>
34
+ <c a="123"/>
35
+ <d/>
36
+ <e>
37
+ <f>
38
+ <g a="321"/>
39
+ </f>
40
+ </e>
41
+ <c a="456"/>
42
+ <c a="789"/>
43
+ <h/>
44
+ <c a="101112"/>
45
+ </b>
46
+ <h>
47
+ <i/>
48
+ <j/>
49
+ <k>
50
+ <g a="654"/>
51
+ </k>
52
+ </h>
53
+ <b>
54
+ <g a="987"/>
55
+ <h/>
56
+ <g a="121110"/>
57
+ </b>
58
+ </a>`;
59
+ const root = new _xml_parser.SimpleXMLParser({
60
+ hasAttributes: true
61
+ }).parseFromString(xml).documentElement;
62
+
63
+ function getAttr(path) {
64
+ return root.searchNode((0, _core_utils.parseXFAPath)(path), 0).attributes[0].value;
65
+ }
66
+
67
+ expect(getAttr("b.g")).toEqual("321");
68
+ expect(getAttr("e.f.g")).toEqual("321");
69
+ expect(getAttr("e.g")).toEqual("321");
70
+ expect(getAttr("g")).toEqual("321");
71
+ expect(getAttr("h.g")).toEqual("654");
72
+ expect(getAttr("b[0].g")).toEqual("321");
73
+ expect(getAttr("b[1].g")).toEqual("987");
74
+ expect(getAttr("b[1].g[0]")).toEqual("987");
75
+ expect(getAttr("b[1].g[1]")).toEqual("121110");
76
+ expect(getAttr("c")).toEqual("123");
77
+ expect(getAttr("c[1]")).toEqual("456");
78
+ expect(getAttr("c[2]")).toEqual("789");
79
+ expect(getAttr("c[3]")).toEqual("101112");
80
+ });
81
+ it("should dump a xml tree", function () {
82
+ const xml = `
83
+ <a>
84
+ <b>
85
+ <c a="123"/>
86
+ <d>hello</d>
87
+ <e>
88
+ <f>
89
+ <g a="321"/>
90
+ </f>
91
+ </e>
92
+ <c a="456"/>
93
+ <c a="789"/>
94
+ <h/>
95
+ <c a="101112"/>
96
+ </b>
97
+ <h>
98
+ <i/>
99
+ <j/>
100
+ <k>&#xA;W&#x1F602;rld&#xA;<g a="654"/>
101
+ </k>
102
+ </h>
103
+ <b>
104
+ <g a="987"/>
105
+ <h/>
106
+ <g a="121110"/>
107
+ </b>
108
+ </a>`;
109
+ const root = new _xml_parser.SimpleXMLParser({
110
+ hasAttributes: true
111
+ }).parseFromString(xml).documentElement;
112
+ const buffer = [];
113
+ root.dump(buffer);
114
+ expect(buffer.join("").replace(/\s+/g, "")).toEqual(xml.replace(/\s+/g, ""));
115
+ });
116
+ });
117
+ });
@@ -41,7 +41,10 @@ class AnnotationLayerBuilder {
41
41
  annotationStorage = null,
42
42
  imageResourcesPath = "",
43
43
  renderInteractiveForms = true,
44
- l10n = _ui_utils.NullL10n
44
+ l10n = _ui_utils.NullL10n,
45
+ enableScripting = false,
46
+ hasJSActionsPromise = null,
47
+ mouseState = null
45
48
  }) {
46
49
  this.pageDiv = pageDiv;
47
50
  this.pdfPage = pdfPage;
@@ -51,14 +54,17 @@ class AnnotationLayerBuilder {
51
54
  this.renderInteractiveForms = renderInteractiveForms;
52
55
  this.l10n = l10n;
53
56
  this.annotationStorage = annotationStorage;
57
+ this.enableScripting = enableScripting;
58
+ this._hasJSActionsPromise = hasJSActionsPromise;
59
+ this._mouseState = mouseState;
54
60
  this.div = null;
55
61
  this._cancelled = false;
56
62
  }
57
63
 
58
64
  render(viewport, intent = "display") {
59
- return this.pdfPage.getAnnotations({
65
+ return Promise.all([this.pdfPage.getAnnotations({
60
66
  intent
61
- }).then(annotations => {
67
+ }), this._hasJSActionsPromise]).then(([annotations, hasJSActions = false]) => {
62
68
  if (this._cancelled) {
63
69
  return;
64
70
  }
@@ -78,7 +84,10 @@ class AnnotationLayerBuilder {
78
84
  renderInteractiveForms: this.renderInteractiveForms,
79
85
  linkService: this.linkService,
80
86
  downloadManager: this.downloadManager,
81
- annotationStorage: this.annotationStorage
87
+ annotationStorage: this.annotationStorage,
88
+ enableScripting: this.enableScripting,
89
+ hasJSActions,
90
+ mouseState: this._mouseState
82
91
  };
83
92
 
84
93
  if (this.div) {
@@ -113,7 +122,7 @@ class AnnotationLayerBuilder {
113
122
  exports.AnnotationLayerBuilder = AnnotationLayerBuilder;
114
123
 
115
124
  class DefaultAnnotationLayerFactory {
116
- createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = _ui_utils.NullL10n) {
125
+ createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = _ui_utils.NullL10n, enableScripting = false, hasJSActionsPromise = null, mouseState = null) {
117
126
  return new AnnotationLayerBuilder({
118
127
  pageDiv,
119
128
  pdfPage,
@@ -121,7 +130,10 @@ class DefaultAnnotationLayerFactory {
121
130
  renderInteractiveForms,
122
131
  linkService: new _pdf_link_service.SimpleLinkService(),
123
132
  l10n,
124
- annotationStorage
133
+ annotationStorage,
134
+ enableScripting,
135
+ hasJSActionsPromise,
136
+ mouseState
125
137
  });
126
138
  }
127
139