@pokash/n8n-nodes-ksef 0.2.12 → 0.2.16

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.
Files changed (645) hide show
  1. package/node_modules/@oozcitak/dom/LICENSE +21 -0
  2. package/node_modules/@oozcitak/dom/README.md +32 -0
  3. package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.d.ts +21 -0
  4. package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.js +79 -0
  5. package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.js.map +1 -0
  6. package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.d.ts +8 -0
  7. package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.js +23 -0
  8. package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.js.map +1 -0
  9. package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.d.ts +8 -0
  10. package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.js +76 -0
  11. package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.js.map +1 -0
  12. package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.d.ts +19 -0
  13. package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.js +140 -0
  14. package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.js.map +1 -0
  15. package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.d.ts +192 -0
  16. package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.js +303 -0
  17. package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.js.map +1 -0
  18. package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.d.ts +61 -0
  19. package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.js +108 -0
  20. package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.js.map +1 -0
  21. package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.d.ts +72 -0
  22. package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.js +288 -0
  23. package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.js.map +1 -0
  24. package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.d.ts +21 -0
  25. package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.js +61 -0
  26. package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.js.map +1 -0
  27. package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.d.ts +29 -0
  28. package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.js +161 -0
  29. package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.js.map +1 -0
  30. package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.d.ts +121 -0
  31. package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.js +608 -0
  32. package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.js.map +1 -0
  33. package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.d.ts +146 -0
  34. package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.js +995 -0
  35. package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.js.map +1 -0
  36. package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.d.ts +33 -0
  37. package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.js +142 -0
  38. package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.js.map +1 -0
  39. package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.d.ts +66 -0
  40. package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.js +1173 -0
  41. package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.js.map +1 -0
  42. package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.d.ts +43 -0
  43. package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.js +276 -0
  44. package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.js.map +1 -0
  45. package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.d.ts +25 -0
  46. package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.js +85 -0
  47. package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.js.map +1 -0
  48. package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.d.ts +68 -0
  49. package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.js +543 -0
  50. package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.js.map +1 -0
  51. package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.d.ts +15 -0
  52. package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.js +105 -0
  53. package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.js.map +1 -0
  54. package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.d.ts +27 -0
  55. package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.js +125 -0
  56. package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.js.map +1 -0
  57. package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.d.ts +9 -0
  58. package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.js +69 -0
  59. package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.js.map +1 -0
  60. package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.d.ts +82 -0
  61. package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.js +829 -0
  62. package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.js.map +1 -0
  63. package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.d.ts +8 -0
  64. package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.js +21 -0
  65. package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.js.map +1 -0
  66. package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.d.ts +57 -0
  67. package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.js +316 -0
  68. package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.js.map +1 -0
  69. package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.d.ts +30 -0
  70. package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.js +226 -0
  71. package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.js.map +1 -0
  72. package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.d.ts +8 -0
  73. package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.js +62 -0
  74. package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.js.map +1 -0
  75. package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.d.ts +268 -0
  76. package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.js +853 -0
  77. package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.js.map +1 -0
  78. package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.d.ts +17 -0
  79. package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.js +147 -0
  80. package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.js.map +1 -0
  81. package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.d.ts +8 -0
  82. package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.js +14 -0
  83. package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.js.map +1 -0
  84. package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.d.ts +25 -0
  85. package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.js +164 -0
  86. package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.js.map +1 -0
  87. package/node_modules/@oozcitak/dom/lib/algorithm/index.d.ts +28 -0
  88. package/node_modules/@oozcitak/dom/lib/algorithm/index.js +34 -0
  89. package/node_modules/@oozcitak/dom/lib/algorithm/index.js.map +1 -0
  90. package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.d.ts +15 -0
  91. package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.js +32 -0
  92. package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.js.map +1 -0
  93. package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.d.ts +23 -0
  94. package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.js +59 -0
  95. package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.js.map +1 -0
  96. package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.d.ts +23 -0
  97. package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.js +70 -0
  98. package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.js.map +1 -0
  99. package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.d.ts +45 -0
  100. package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.js +118 -0
  101. package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.js.map +1 -0
  102. package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.d.ts +21 -0
  103. package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.js +51 -0
  104. package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.js.map +1 -0
  105. package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.d.ts +35 -0
  106. package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.js +132 -0
  107. package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.js.map +1 -0
  108. package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.d.ts +16 -0
  109. package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.js +165 -0
  110. package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.js.map +1 -0
  111. package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.d.ts +21 -0
  112. package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.js +52 -0
  113. package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.js.map +1 -0
  114. package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.d.ts +16 -0
  115. package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.js +60 -0
  116. package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.js.map +1 -0
  117. package/node_modules/@oozcitak/dom/lib/dom/DOMException.d.ts +171 -0
  118. package/node_modules/@oozcitak/dom/lib/dom/DOMException.js +347 -0
  119. package/node_modules/@oozcitak/dom/lib/dom/DOMException.js.map +1 -0
  120. package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.d.ts +48 -0
  121. package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.js +100 -0
  122. package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.js.map +1 -0
  123. package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.d.ts +29 -0
  124. package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.js +149 -0
  125. package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.js.map +1 -0
  126. package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.d.ts +46 -0
  127. package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.js +312 -0
  128. package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.js.map +1 -0
  129. package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.d.ts +32 -0
  130. package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.js +103 -0
  131. package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.js.map +1 -0
  132. package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.d.ts +116 -0
  133. package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.js +545 -0
  134. package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.js.map +1 -0
  135. package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.d.ts +11 -0
  136. package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.js +17 -0
  137. package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.js.map +1 -0
  138. package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.d.ts +39 -0
  139. package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.js +109 -0
  140. package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.js.map +1 -0
  141. package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.d.ts +132 -0
  142. package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.js +714 -0
  143. package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.js.map +1 -0
  144. package/node_modules/@oozcitak/dom/lib/dom/EventImpl.d.ts +74 -0
  145. package/node_modules/@oozcitak/dom/lib/dom/EventImpl.js +313 -0
  146. package/node_modules/@oozcitak/dom/lib/dom/EventImpl.js.map +1 -0
  147. package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.d.ts +30 -0
  148. package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.js +133 -0
  149. package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.js.map +1 -0
  150. package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.d.ts +44 -0
  151. package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.js +157 -0
  152. package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.js.map +1 -0
  153. package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.d.ts +22 -0
  154. package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.js +184 -0
  155. package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.js.map +1 -0
  156. package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.d.ts +73 -0
  157. package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.js +116 -0
  158. package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.js.map +1 -0
  159. package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.d.ts +34 -0
  160. package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.js +112 -0
  161. package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.js.map +1 -0
  162. package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.d.ts +50 -0
  163. package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.js +64 -0
  164. package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.js.map +1 -0
  165. package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.d.ts +252 -0
  166. package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.js +891 -0
  167. package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.js.map +1 -0
  168. package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.d.ts +34 -0
  169. package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.js +86 -0
  170. package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.js.map +1 -0
  171. package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.d.ts +46 -0
  172. package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.js +198 -0
  173. package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.js.map +1 -0
  174. package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.d.ts +49 -0
  175. package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.js +188 -0
  176. package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.js.map +1 -0
  177. package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.d.ts +12 -0
  178. package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.js +53 -0
  179. package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.js.map +1 -0
  180. package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.d.ts +9 -0
  181. package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.js +31 -0
  182. package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.js.map +1 -0
  183. package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.d.ts +24 -0
  184. package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.js +158 -0
  185. package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.js.map +1 -0
  186. package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.d.ts +25 -0
  187. package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.js +59 -0
  188. package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.js.map +1 -0
  189. package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.d.ts +71 -0
  190. package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.js +649 -0
  191. package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.js.map +1 -0
  192. package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.d.ts +33 -0
  193. package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.js +82 -0
  194. package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.js.map +1 -0
  195. package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.d.ts +16 -0
  196. package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.js +35 -0
  197. package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.js.map +1 -0
  198. package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.d.ts +13 -0
  199. package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.js +48 -0
  200. package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.js.map +1 -0
  201. package/node_modules/@oozcitak/dom/lib/dom/TextImpl.d.ts +28 -0
  202. package/node_modules/@oozcitak/dom/lib/dom/TextImpl.js +109 -0
  203. package/node_modules/@oozcitak/dom/lib/dom/TextImpl.js.map +1 -0
  204. package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.d.ts +23 -0
  205. package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.js +41 -0
  206. package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.js.map +1 -0
  207. package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.d.ts +36 -0
  208. package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.js +249 -0
  209. package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.js.map +1 -0
  210. package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.d.ts +26 -0
  211. package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.js +57 -0
  212. package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.js.map +1 -0
  213. package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.d.ts +11 -0
  214. package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.js +31 -0
  215. package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.js.map +1 -0
  216. package/node_modules/@oozcitak/dom/lib/dom/index.d.ts +36 -0
  217. package/node_modules/@oozcitak/dom/lib/dom/index.js +102 -0
  218. package/node_modules/@oozcitak/dom/lib/dom/index.js.map +1 -0
  219. package/node_modules/@oozcitak/dom/lib/dom/interfaces.d.ts +2218 -0
  220. package/node_modules/@oozcitak/dom/lib/dom/interfaces.js +91 -0
  221. package/node_modules/@oozcitak/dom/lib/dom/interfaces.js.map +1 -0
  222. package/node_modules/@oozcitak/dom/lib/index.d.ts +3 -0
  223. package/node_modules/@oozcitak/dom/lib/index.js +11 -0
  224. package/node_modules/@oozcitak/dom/lib/index.js.map +1 -0
  225. package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.d.ts +11 -0
  226. package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.js +37 -0
  227. package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.js.map +1 -0
  228. package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.d.ts +26 -0
  229. package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.js +240 -0
  230. package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.js.map +1 -0
  231. package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.d.ts +159 -0
  232. package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.js +512 -0
  233. package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.js.map +1 -0
  234. package/node_modules/@oozcitak/dom/lib/parser/index.d.ts +1 -0
  235. package/node_modules/@oozcitak/dom/lib/parser/index.js +6 -0
  236. package/node_modules/@oozcitak/dom/lib/parser/index.js.map +1 -0
  237. package/node_modules/@oozcitak/dom/lib/parser/interfaces.d.ts +131 -0
  238. package/node_modules/@oozcitak/dom/lib/parser/interfaces.js +18 -0
  239. package/node_modules/@oozcitak/dom/lib/parser/interfaces.js.map +1 -0
  240. package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.d.ts +27 -0
  241. package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.js +56 -0
  242. package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.js.map +1 -0
  243. package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.d.ts +52 -0
  244. package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.js +151 -0
  245. package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.js.map +1 -0
  246. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.d.ts +166 -0
  247. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.js +1479 -0
  248. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.js.map +1 -0
  249. package/node_modules/@oozcitak/dom/lib/serializer/index.d.ts +1 -0
  250. package/node_modules/@oozcitak/dom/lib/serializer/index.js +6 -0
  251. package/node_modules/@oozcitak/dom/lib/serializer/index.js.map +1 -0
  252. package/node_modules/@oozcitak/dom/lib/serializer/interfaces.d.ts +15 -0
  253. package/node_modules/@oozcitak/dom/lib/serializer/interfaces.js +3 -0
  254. package/node_modules/@oozcitak/dom/lib/serializer/interfaces.js.map +1 -0
  255. package/node_modules/@oozcitak/dom/lib/util/Cast.d.ts +12 -0
  256. package/node_modules/@oozcitak/dom/lib/util/Cast.js +26 -0
  257. package/node_modules/@oozcitak/dom/lib/util/Cast.js.map +1 -0
  258. package/node_modules/@oozcitak/dom/lib/util/EmptySet.d.ts +13 -0
  259. package/node_modules/@oozcitak/dom/lib/util/EmptySet.js +61 -0
  260. package/node_modules/@oozcitak/dom/lib/util/EmptySet.js.map +1 -0
  261. package/node_modules/@oozcitak/dom/lib/util/Guard.d.ts +135 -0
  262. package/node_modules/@oozcitak/dom/lib/util/Guard.js +192 -0
  263. package/node_modules/@oozcitak/dom/lib/util/Guard.js.map +1 -0
  264. package/node_modules/@oozcitak/dom/lib/util/index.d.ts +3 -0
  265. package/node_modules/@oozcitak/dom/lib/util/index.js +9 -0
  266. package/node_modules/@oozcitak/dom/lib/util/index.js.map +1 -0
  267. package/node_modules/@oozcitak/dom/package.json +72 -0
  268. package/node_modules/@oozcitak/infra/LICENSE +21 -0
  269. package/node_modules/@oozcitak/infra/README.md +13 -0
  270. package/node_modules/@oozcitak/infra/lib/Base64.d.ts +12 -0
  271. package/node_modules/@oozcitak/infra/lib/Base64.js +82 -0
  272. package/node_modules/@oozcitak/infra/lib/Base64.js.map +1 -0
  273. package/node_modules/@oozcitak/infra/lib/Byte.d.ts +6 -0
  274. package/node_modules/@oozcitak/infra/lib/Byte.js +15 -0
  275. package/node_modules/@oozcitak/infra/lib/Byte.js.map +1 -0
  276. package/node_modules/@oozcitak/infra/lib/ByteSequence.d.ts +45 -0
  277. package/node_modules/@oozcitak/infra/lib/ByteSequence.js +171 -0
  278. package/node_modules/@oozcitak/infra/lib/ByteSequence.js.map +1 -0
  279. package/node_modules/@oozcitak/infra/lib/CodePoints.d.ts +82 -0
  280. package/node_modules/@oozcitak/infra/lib/CodePoints.js +85 -0
  281. package/node_modules/@oozcitak/infra/lib/CodePoints.js.map +1 -0
  282. package/node_modules/@oozcitak/infra/lib/JSON.d.ts +24 -0
  283. package/node_modules/@oozcitak/infra/lib/JSON.js +123 -0
  284. package/node_modules/@oozcitak/infra/lib/JSON.js.map +1 -0
  285. package/node_modules/@oozcitak/infra/lib/List.d.ts +101 -0
  286. package/node_modules/@oozcitak/infra/lib/List.js +325 -0
  287. package/node_modules/@oozcitak/infra/lib/List.js.map +1 -0
  288. package/node_modules/@oozcitak/infra/lib/Map.d.ts +87 -0
  289. package/node_modules/@oozcitak/infra/lib/Map.js +308 -0
  290. package/node_modules/@oozcitak/infra/lib/Map.js.map +1 -0
  291. package/node_modules/@oozcitak/infra/lib/Namespace.d.ts +6 -0
  292. package/node_modules/@oozcitak/infra/lib/Namespace.js +9 -0
  293. package/node_modules/@oozcitak/infra/lib/Namespace.js.map +1 -0
  294. package/node_modules/@oozcitak/infra/lib/Queue.d.ts +13 -0
  295. package/node_modules/@oozcitak/infra/lib/Queue.js +22 -0
  296. package/node_modules/@oozcitak/infra/lib/Queue.js.map +1 -0
  297. package/node_modules/@oozcitak/infra/lib/Set.d.ts +136 -0
  298. package/node_modules/@oozcitak/infra/lib/Set.js +467 -0
  299. package/node_modules/@oozcitak/infra/lib/Set.js.map +1 -0
  300. package/node_modules/@oozcitak/infra/lib/Stack.d.ts +13 -0
  301. package/node_modules/@oozcitak/infra/lib/Stack.js +22 -0
  302. package/node_modules/@oozcitak/infra/lib/Stack.js.map +1 -0
  303. package/node_modules/@oozcitak/infra/lib/String.d.ts +129 -0
  304. package/node_modules/@oozcitak/infra/lib/String.js +472 -0
  305. package/node_modules/@oozcitak/infra/lib/String.js.map +1 -0
  306. package/node_modules/@oozcitak/infra/lib/index.d.ts +13 -0
  307. package/node_modules/@oozcitak/infra/lib/index.js +34 -0
  308. package/node_modules/@oozcitak/infra/lib/index.js.map +1 -0
  309. package/node_modules/@oozcitak/infra/package.json +54 -0
  310. package/node_modules/@oozcitak/url/LICENSE +21 -0
  311. package/node_modules/@oozcitak/url/README.md +27 -0
  312. package/node_modules/@oozcitak/url/lib/URLAlgorithm.d.ts +267 -0
  313. package/node_modules/@oozcitak/url/lib/URLAlgorithm.js +2758 -0
  314. package/node_modules/@oozcitak/url/lib/URLAlgorithm.js.map +1 -0
  315. package/node_modules/@oozcitak/url/lib/URLImpl.d.ts +53 -0
  316. package/node_modules/@oozcitak/url/lib/URLImpl.js +377 -0
  317. package/node_modules/@oozcitak/url/lib/URLImpl.js.map +1 -0
  318. package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.d.ts +38 -0
  319. package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.js +303 -0
  320. package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.js.map +1 -0
  321. package/node_modules/@oozcitak/url/lib/index.d.ts +2 -0
  322. package/node_modules/@oozcitak/url/lib/index.js +7 -0
  323. package/node_modules/@oozcitak/url/lib/index.js.map +1 -0
  324. package/node_modules/@oozcitak/url/lib/interfaces.d.ts +195 -0
  325. package/node_modules/@oozcitak/url/lib/interfaces.js +31 -0
  326. package/node_modules/@oozcitak/url/lib/interfaces.js.map +1 -0
  327. package/node_modules/@oozcitak/url/package.json +55 -0
  328. package/node_modules/@oozcitak/util/LICENSE +21 -0
  329. package/node_modules/@oozcitak/util/README.md +10 -0
  330. package/node_modules/@oozcitak/util/lib/CompareCache.d.ts +32 -0
  331. package/node_modules/@oozcitak/util/lib/CompareCache.js +59 -0
  332. package/node_modules/@oozcitak/util/lib/CompareCache.js.map +1 -0
  333. package/node_modules/@oozcitak/util/lib/FixedSizeSet.d.ts +64 -0
  334. package/node_modules/@oozcitak/util/lib/FixedSizeSet.js +174 -0
  335. package/node_modules/@oozcitak/util/lib/FixedSizeSet.js.map +1 -0
  336. package/node_modules/@oozcitak/util/lib/Lazy.d.ts +18 -0
  337. package/node_modules/@oozcitak/util/lib/Lazy.js +34 -0
  338. package/node_modules/@oozcitak/util/lib/Lazy.js.map +1 -0
  339. package/node_modules/@oozcitak/util/lib/ObjectCache.d.ts +71 -0
  340. package/node_modules/@oozcitak/util/lib/ObjectCache.js +181 -0
  341. package/node_modules/@oozcitak/util/lib/ObjectCache.js.map +1 -0
  342. package/node_modules/@oozcitak/util/lib/StringWalker.d.ts +49 -0
  343. package/node_modules/@oozcitak/util/lib/StringWalker.js +105 -0
  344. package/node_modules/@oozcitak/util/lib/StringWalker.js.map +1 -0
  345. package/node_modules/@oozcitak/util/lib/index.d.ts +178 -0
  346. package/node_modules/@oozcitak/util/lib/index.js +439 -0
  347. package/node_modules/@oozcitak/util/lib/index.js.map +1 -0
  348. package/node_modules/@oozcitak/util/package.json +50 -0
  349. package/node_modules/@xmldom/is-dom-node/LICENSE.md +21 -0
  350. package/node_modules/@xmldom/is-dom-node/README.md +91 -0
  351. package/node_modules/@xmldom/is-dom-node/dist/index.d.ts +33 -0
  352. package/node_modules/@xmldom/is-dom-node/dist/index.js +91 -0
  353. package/node_modules/@xmldom/is-dom-node/dist/index.js.map +1 -0
  354. package/node_modules/@xmldom/is-dom-node/package.json +69 -0
  355. package/node_modules/@xmldom/xmldom/CHANGELOG.md +468 -0
  356. package/node_modules/@xmldom/xmldom/LICENSE +8 -0
  357. package/node_modules/@xmldom/xmldom/SECURITY.md +50 -0
  358. package/node_modules/@xmldom/xmldom/index.d.ts +43 -0
  359. package/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +2 -0
  360. package/node_modules/@xmldom/xmldom/lib/conventions.js +203 -0
  361. package/node_modules/@xmldom/xmldom/lib/dom-parser.js +322 -0
  362. package/node_modules/@xmldom/xmldom/lib/dom.js +1879 -0
  363. package/node_modules/@xmldom/xmldom/lib/entities.js +2166 -0
  364. package/node_modules/@xmldom/xmldom/lib/index.js +4 -0
  365. package/node_modules/@xmldom/xmldom/lib/sax.js +662 -0
  366. package/node_modules/@xmldom/xmldom/package.json +71 -0
  367. package/node_modules/@xmldom/xmldom/readme.md +356 -0
  368. package/node_modules/esprima/ChangeLog +235 -0
  369. package/node_modules/esprima/LICENSE.BSD +21 -0
  370. package/node_modules/esprima/README.md +46 -0
  371. package/node_modules/esprima/bin/esparse.js +139 -0
  372. package/node_modules/esprima/bin/esvalidate.js +236 -0
  373. package/node_modules/esprima/dist/esprima.js +6709 -0
  374. package/node_modules/esprima/package.json +112 -0
  375. package/node_modules/node-forge/LICENSE +331 -0
  376. package/node_modules/node-forge/README.md +2071 -0
  377. package/node_modules/node-forge/dist/forge.all.min.js +2 -0
  378. package/node_modules/node-forge/dist/forge.all.min.js.map +1 -0
  379. package/node_modules/node-forge/dist/forge.min.js +2 -0
  380. package/node_modules/node-forge/dist/forge.min.js.map +1 -0
  381. package/node_modules/node-forge/dist/prime.worker.min.js +2 -0
  382. package/node_modules/node-forge/dist/prime.worker.min.js.map +1 -0
  383. package/node_modules/node-forge/flash/swf/SocketPool.swf +0 -0
  384. package/node_modules/node-forge/lib/aes.js +1091 -0
  385. package/node_modules/node-forge/lib/aesCipherSuites.js +282 -0
  386. package/node_modules/node-forge/lib/asn1-validator.js +91 -0
  387. package/node_modules/node-forge/lib/asn1.js +1503 -0
  388. package/node_modules/node-forge/lib/baseN.js +186 -0
  389. package/node_modules/node-forge/lib/cipher.js +230 -0
  390. package/node_modules/node-forge/lib/cipherModes.js +999 -0
  391. package/node_modules/node-forge/lib/des.js +496 -0
  392. package/node_modules/node-forge/lib/ed25519.js +1072 -0
  393. package/node_modules/node-forge/lib/forge.js +13 -0
  394. package/node_modules/node-forge/lib/form.js +149 -0
  395. package/node_modules/node-forge/lib/hmac.js +146 -0
  396. package/node_modules/node-forge/lib/http.js +1346 -0
  397. package/node_modules/node-forge/lib/index.all.js +16 -0
  398. package/node_modules/node-forge/lib/index.js +33 -0
  399. package/node_modules/node-forge/lib/jsbn.js +1264 -0
  400. package/node_modules/node-forge/lib/kem.js +168 -0
  401. package/node_modules/node-forge/lib/log.js +319 -0
  402. package/node_modules/node-forge/lib/md.all.js +13 -0
  403. package/node_modules/node-forge/lib/md.js +11 -0
  404. package/node_modules/node-forge/lib/md5.js +289 -0
  405. package/node_modules/node-forge/lib/mgf.js +12 -0
  406. package/node_modules/node-forge/lib/mgf1.js +57 -0
  407. package/node_modules/node-forge/lib/oids.js +179 -0
  408. package/node_modules/node-forge/lib/pbe.js +1023 -0
  409. package/node_modules/node-forge/lib/pbkdf2.js +211 -0
  410. package/node_modules/node-forge/lib/pem.js +237 -0
  411. package/node_modules/node-forge/lib/pkcs1.js +276 -0
  412. package/node_modules/node-forge/lib/pkcs12.js +1078 -0
  413. package/node_modules/node-forge/lib/pkcs7.js +1260 -0
  414. package/node_modules/node-forge/lib/pkcs7asn1.js +410 -0
  415. package/node_modules/node-forge/lib/pki.js +102 -0
  416. package/node_modules/node-forge/lib/prime.js +297 -0
  417. package/node_modules/node-forge/lib/prime.worker.js +168 -0
  418. package/node_modules/node-forge/lib/prng.js +419 -0
  419. package/node_modules/node-forge/lib/pss.js +241 -0
  420. package/node_modules/node-forge/lib/random.js +191 -0
  421. package/node_modules/node-forge/lib/rc2.js +410 -0
  422. package/node_modules/node-forge/lib/rsa.js +1949 -0
  423. package/node_modules/node-forge/lib/sha1.js +319 -0
  424. package/node_modules/node-forge/lib/sha256.js +327 -0
  425. package/node_modules/node-forge/lib/sha512.js +561 -0
  426. package/node_modules/node-forge/lib/socket.js +287 -0
  427. package/node_modules/node-forge/lib/ssh.js +236 -0
  428. package/node_modules/node-forge/lib/tls.js +4282 -0
  429. package/node_modules/node-forge/lib/tlssocket.js +249 -0
  430. package/node_modules/node-forge/lib/util.js +2652 -0
  431. package/node_modules/node-forge/lib/x509.js +3242 -0
  432. package/node_modules/node-forge/lib/xhr.js +738 -0
  433. package/node_modules/node-forge/package.json +123 -0
  434. package/node_modules/sprintf-js/.npmignore +1 -0
  435. package/node_modules/sprintf-js/LICENSE +24 -0
  436. package/node_modules/sprintf-js/README.md +88 -0
  437. package/node_modules/sprintf-js/bower.json +14 -0
  438. package/node_modules/sprintf-js/demo/angular.html +20 -0
  439. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
  440. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
  441. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
  442. package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
  443. package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
  444. package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
  445. package/node_modules/sprintf-js/gruntfile.js +36 -0
  446. package/node_modules/sprintf-js/package.json +22 -0
  447. package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
  448. package/node_modules/sprintf-js/src/sprintf.js +208 -0
  449. package/node_modules/sprintf-js/test/test.js +82 -0
  450. package/node_modules/xml-crypto/LICENSE +22 -0
  451. package/node_modules/xml-crypto/README.md +557 -0
  452. package/node_modules/xml-crypto/lib/c14n-canonicalization.d.ts +39 -0
  453. package/node_modules/xml-crypto/lib/c14n-canonicalization.js +230 -0
  454. package/node_modules/xml-crypto/lib/c14n-canonicalization.js.map +1 -0
  455. package/node_modules/xml-crypto/lib/enveloped-signature.d.ts +7 -0
  456. package/node_modules/xml-crypto/lib/enveloped-signature.js +43 -0
  457. package/node_modules/xml-crypto/lib/enveloped-signature.js.map +1 -0
  458. package/node_modules/xml-crypto/lib/exclusive-canonicalization.d.ts +38 -0
  459. package/node_modules/xml-crypto/lib/exclusive-canonicalization.js +246 -0
  460. package/node_modules/xml-crypto/lib/exclusive-canonicalization.js.map +1 -0
  461. package/node_modules/xml-crypto/lib/hash-algorithms.d.ts +13 -0
  462. package/node_modules/xml-crypto/lib/hash-algorithms.js +47 -0
  463. package/node_modules/xml-crypto/lib/hash-algorithms.js.map +1 -0
  464. package/node_modules/xml-crypto/lib/index.d.ts +5 -0
  465. package/node_modules/xml-crypto/lib/index.js +28 -0
  466. package/node_modules/xml-crypto/lib/index.js.map +1 -0
  467. package/node_modules/xml-crypto/lib/signature-algorithms.d.ts +47 -0
  468. package/node_modules/xml-crypto/lib/signature-algorithms.js +86 -0
  469. package/node_modules/xml-crypto/lib/signature-algorithms.js.map +1 -0
  470. package/node_modules/xml-crypto/lib/signed-xml.d.ts +225 -0
  471. package/node_modules/xml-crypto/lib/signed-xml.js +960 -0
  472. package/node_modules/xml-crypto/lib/signed-xml.js.map +1 -0
  473. package/node_modules/xml-crypto/lib/types.d.ts +125 -0
  474. package/node_modules/xml-crypto/lib/types.js +57 -0
  475. package/node_modules/xml-crypto/lib/types.js.map +1 -0
  476. package/node_modules/xml-crypto/lib/utils.d.ts +65 -0
  477. package/node_modules/xml-crypto/lib/utils.js +256 -0
  478. package/node_modules/xml-crypto/lib/utils.js.map +1 -0
  479. package/node_modules/xml-crypto/node_modules/xpath/LICENSE +22 -0
  480. package/node_modules/xml-crypto/node_modules/xpath/README.md +133 -0
  481. package/node_modules/xml-crypto/node_modules/xpath/docs/XPathEvaluator.md +62 -0
  482. package/node_modules/xml-crypto/node_modules/xpath/docs/XPathResult.md +47 -0
  483. package/node_modules/xml-crypto/node_modules/xpath/docs/function resolvers.md +88 -0
  484. package/node_modules/xml-crypto/node_modules/xpath/docs/namespace resolvers.md +69 -0
  485. package/node_modules/xml-crypto/node_modules/xpath/docs/parsed expressions.md +21 -0
  486. package/node_modules/xml-crypto/node_modules/xpath/docs/variable resolvers.md +89 -0
  487. package/node_modules/xml-crypto/node_modules/xpath/docs/xpath methods.md +39 -0
  488. package/node_modules/xml-crypto/node_modules/xpath/package.json +39 -0
  489. package/node_modules/xml-crypto/node_modules/xpath/test.js +1186 -0
  490. package/node_modules/xml-crypto/node_modules/xpath/xpath.d.ts +51 -0
  491. package/node_modules/xml-crypto/node_modules/xpath/xpath.js +4938 -0
  492. package/node_modules/xml-crypto/package.json +73 -0
  493. package/node_modules/xmlbuilder2/CHANGELOG.md +309 -0
  494. package/node_modules/xmlbuilder2/LICENSE +21 -0
  495. package/node_modules/xmlbuilder2/README.md +183 -0
  496. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.d.ts +236 -0
  497. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.js +108 -0
  498. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.js.map +1 -0
  499. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.d.ts +17 -0
  500. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.js +26 -0
  501. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.js.map +1 -0
  502. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.d.ts +124 -0
  503. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.js +782 -0
  504. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.js.map +1 -0
  505. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.d.ts +143 -0
  506. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.js +841 -0
  507. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.js.map +1 -0
  508. package/node_modules/xmlbuilder2/lib/builder/dom.d.ts +8 -0
  509. package/node_modules/xmlbuilder2/lib/builder/dom.js +67 -0
  510. package/node_modules/xmlbuilder2/lib/builder/dom.js.map +1 -0
  511. package/node_modules/xmlbuilder2/lib/builder/index.d.ts +4 -0
  512. package/node_modules/xmlbuilder2/lib/builder/index.js +15 -0
  513. package/node_modules/xmlbuilder2/lib/builder/index.js.map +1 -0
  514. package/node_modules/xmlbuilder2/lib/constants.d.ts +1 -0
  515. package/node_modules/xmlbuilder2/lib/constants.js +4 -0
  516. package/node_modules/xmlbuilder2/lib/constants.js.map +1 -0
  517. package/node_modules/xmlbuilder2/lib/index.d.ts +1 -0
  518. package/node_modules/xmlbuilder2/lib/index.js +10 -0
  519. package/node_modules/xmlbuilder2/lib/index.js.map +1 -0
  520. package/node_modules/xmlbuilder2/lib/interfaces.d.ts +1355 -0
  521. package/node_modules/xmlbuilder2/lib/interfaces.js +76 -0
  522. package/node_modules/xmlbuilder2/lib/interfaces.js.map +1 -0
  523. package/node_modules/xmlbuilder2/lib/readers/BaseReader.d.ts +109 -0
  524. package/node_modules/xmlbuilder2/lib/readers/BaseReader.js +167 -0
  525. package/node_modules/xmlbuilder2/lib/readers/BaseReader.js.map +1 -0
  526. package/node_modules/xmlbuilder2/lib/readers/JSONReader.d.ts +14 -0
  527. package/node_modules/xmlbuilder2/lib/readers/JSONReader.js +38 -0
  528. package/node_modules/xmlbuilder2/lib/readers/JSONReader.js.map +1 -0
  529. package/node_modules/xmlbuilder2/lib/readers/ObjectReader.d.ts +15 -0
  530. package/node_modules/xmlbuilder2/lib/readers/ObjectReader.js +168 -0
  531. package/node_modules/xmlbuilder2/lib/readers/ObjectReader.js.map +1 -0
  532. package/node_modules/xmlbuilder2/lib/readers/XMLReader.d.ts +14 -0
  533. package/node_modules/xmlbuilder2/lib/readers/XMLReader.js +206 -0
  534. package/node_modules/xmlbuilder2/lib/readers/XMLReader.js.map +1 -0
  535. package/node_modules/xmlbuilder2/lib/readers/YAMLReader.d.ts +14 -0
  536. package/node_modules/xmlbuilder2/lib/readers/YAMLReader.js +44 -0
  537. package/node_modules/xmlbuilder2/lib/readers/YAMLReader.js.map +1 -0
  538. package/node_modules/xmlbuilder2/lib/readers/index.d.ts +4 -0
  539. package/node_modules/xmlbuilder2/lib/readers/index.js +11 -0
  540. package/node_modules/xmlbuilder2/lib/readers/index.js.map +1 -0
  541. package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.d.ts +110 -0
  542. package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.js +23 -0
  543. package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.js.map +1 -0
  544. package/node_modules/xmlbuilder2/lib/writers/BaseWriter.d.ts +276 -0
  545. package/node_modules/xmlbuilder2/lib/writers/BaseWriter.js +1603 -0
  546. package/node_modules/xmlbuilder2/lib/writers/BaseWriter.js.map +1 -0
  547. package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.d.ts +68 -0
  548. package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.js +172 -0
  549. package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.js.map +1 -0
  550. package/node_modules/xmlbuilder2/lib/writers/JSONWriter.d.ts +67 -0
  551. package/node_modules/xmlbuilder2/lib/writers/JSONWriter.js +222 -0
  552. package/node_modules/xmlbuilder2/lib/writers/JSONWriter.js.map +1 -0
  553. package/node_modules/xmlbuilder2/lib/writers/MapWriter.d.ts +27 -0
  554. package/node_modules/xmlbuilder2/lib/writers/MapWriter.js +84 -0
  555. package/node_modules/xmlbuilder2/lib/writers/MapWriter.js.map +1 -0
  556. package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.d.ts +56 -0
  557. package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.js +483 -0
  558. package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.js.map +1 -0
  559. package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.d.ts +51 -0
  560. package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.js +165 -0
  561. package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.js.map +1 -0
  562. package/node_modules/xmlbuilder2/lib/writers/XMLWriter.d.ts +60 -0
  563. package/node_modules/xmlbuilder2/lib/writers/XMLWriter.js +236 -0
  564. package/node_modules/xmlbuilder2/lib/writers/XMLWriter.js.map +1 -0
  565. package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.d.ts +61 -0
  566. package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.js +161 -0
  567. package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.js.map +1 -0
  568. package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.d.ts +55 -0
  569. package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.js +186 -0
  570. package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.js.map +1 -0
  571. package/node_modules/xmlbuilder2/lib/writers/index.d.ts +5 -0
  572. package/node_modules/xmlbuilder2/lib/writers/index.js +13 -0
  573. package/node_modules/xmlbuilder2/lib/writers/index.js.map +1 -0
  574. package/node_modules/xmlbuilder2/lib/xmlbuilder2.min.js +8 -0
  575. package/node_modules/xmlbuilder2/node_modules/argparse/CHANGELOG.md +185 -0
  576. package/node_modules/xmlbuilder2/node_modules/argparse/LICENSE +21 -0
  577. package/node_modules/xmlbuilder2/node_modules/argparse/README.md +257 -0
  578. package/node_modules/xmlbuilder2/node_modules/argparse/index.js +3 -0
  579. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/append/constant.js +47 -0
  580. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/append.js +53 -0
  581. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/count.js +40 -0
  582. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/help.js +47 -0
  583. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/store/constant.js +43 -0
  584. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/store/false.js +27 -0
  585. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/store/true.js +26 -0
  586. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/store.js +50 -0
  587. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/subparsers.js +149 -0
  588. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action/version.js +47 -0
  589. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action.js +146 -0
  590. package/node_modules/xmlbuilder2/node_modules/argparse/lib/action_container.js +482 -0
  591. package/node_modules/xmlbuilder2/node_modules/argparse/lib/argparse.js +14 -0
  592. package/node_modules/xmlbuilder2/node_modules/argparse/lib/argument/error.js +50 -0
  593. package/node_modules/xmlbuilder2/node_modules/argparse/lib/argument/exclusive.js +54 -0
  594. package/node_modules/xmlbuilder2/node_modules/argparse/lib/argument/group.js +75 -0
  595. package/node_modules/xmlbuilder2/node_modules/argparse/lib/argument_parser.js +1161 -0
  596. package/node_modules/xmlbuilder2/node_modules/argparse/lib/const.js +21 -0
  597. package/node_modules/xmlbuilder2/node_modules/argparse/lib/help/added_formatters.js +87 -0
  598. package/node_modules/xmlbuilder2/node_modules/argparse/lib/help/formatter.js +795 -0
  599. package/node_modules/xmlbuilder2/node_modules/argparse/lib/namespace.js +76 -0
  600. package/node_modules/xmlbuilder2/node_modules/argparse/lib/utils.js +57 -0
  601. package/node_modules/xmlbuilder2/node_modules/argparse/package.json +34 -0
  602. package/node_modules/xmlbuilder2/node_modules/js-yaml/CHANGELOG.md +557 -0
  603. package/node_modules/xmlbuilder2/node_modules/js-yaml/LICENSE +21 -0
  604. package/node_modules/xmlbuilder2/node_modules/js-yaml/README.md +299 -0
  605. package/node_modules/xmlbuilder2/node_modules/js-yaml/bin/js-yaml.js +132 -0
  606. package/node_modules/xmlbuilder2/node_modules/js-yaml/dist/js-yaml.js +3989 -0
  607. package/node_modules/xmlbuilder2/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  608. package/node_modules/xmlbuilder2/node_modules/js-yaml/index.js +7 -0
  609. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  610. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  611. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  612. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
  613. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  614. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  615. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  616. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  617. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  618. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  619. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  620. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  621. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  622. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  623. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  624. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  625. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  626. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  627. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  628. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  629. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  630. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  631. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  632. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  633. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  634. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  635. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  636. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  637. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml.js +39 -0
  638. package/node_modules/xmlbuilder2/node_modules/js-yaml/package.json +49 -0
  639. package/node_modules/xmlbuilder2/package.json +82 -0
  640. package/node_modules/xpath/LICENSE +22 -0
  641. package/node_modules/xpath/README.md +133 -0
  642. package/node_modules/xpath/package.json +43 -0
  643. package/node_modules/xpath/xpath.d.ts +51 -0
  644. package/node_modules/xpath/xpath.js +5041 -0
  645. package/package.json +9 -2
@@ -0,0 +1,1186 @@
1
+ const xpath = require('./xpath.js');
2
+ const dom = require('@xmldom/xmldom').DOMParser;
3
+ const assert = require('assert');
4
+
5
+ var xhtmlNs = 'http://www.w3.org/1999/xhtml';
6
+
7
+ const parser = new dom();
8
+
9
+ const parseXml = (xml, mimeType = 'text/xml') => parser.parseFromString(xml, mimeType);
10
+
11
+ describe('xpath', () => {
12
+ describe('api', () => {
13
+ it('should contain the correct methods', () => {
14
+ assert.ok(xpath.evaluate, 'evaluate api ok.');
15
+ assert.ok(xpath.select, 'select api ok.');
16
+ assert.ok(xpath.parse, 'parse api ok.');
17
+ });
18
+
19
+ it('should support .evaluate()', () => {
20
+ var xml = '<book><title>Harry Potter</title></book>';
21
+ var doc = parseXml(xml);
22
+ var nodes = xpath.evaluate('//title', doc, null, xpath.XPathResult.ANY_TYPE, null).nodes;
23
+
24
+ assert.strictEqual('title', nodes[0].localName);
25
+ assert.strictEqual('Harry Potter', nodes[0].firstChild.data);
26
+ assert.strictEqual('<title>Harry Potter</title>', nodes[0].toString());
27
+ });
28
+
29
+ it('should support .select()', () => {
30
+ var xml = '<?book title="Harry Potter"?><?series title="Harry Potter"?><?series books="7"?><book><!-- This is a great book --><title>Harry Potter</title></book>';
31
+ var doc = parseXml(xml);
32
+ var nodes = xpath.select('//title', doc);
33
+ assert.strictEqual('title', nodes[0].localName);
34
+ assert.strictEqual('Harry Potter', nodes[0].firstChild.data);
35
+ assert.strictEqual('<title>Harry Potter</title>', nodes[0].toString());
36
+
37
+ var nodes2 = xpath.select('//node()', doc);
38
+ assert.strictEqual(7, nodes2.length);
39
+
40
+ var pis = xpath.select("/processing-instruction('series')", doc);
41
+ assert.strictEqual(2, pis.length);
42
+ assert.strictEqual('books="7"', pis[1].data);
43
+ });
44
+ });
45
+
46
+ describe('parsing', () => {
47
+ it('should detect unterminated string literals', () => {
48
+ function testUnterminated(path) {
49
+ assert.throws(function () {
50
+ xpath.evaluate('"hello');
51
+ }, function (err) {
52
+ return err.message.indexOf('Unterminated') !== -1;
53
+ });
54
+ }
55
+
56
+ testUnterminated('"Hello');
57
+ testUnterminated("'Hello");
58
+ testUnterminated('self::text() = "\""');
59
+ testUnterminated('"\""');
60
+ });
61
+ });
62
+
63
+ describe('.select()', () => {
64
+ it('should select single nodes', () => {
65
+ var xml = '<book><title>Harry Potter</title></book>';
66
+ var doc = parseXml(xml);
67
+
68
+ assert.strictEqual('title', xpath.select('//title[1]', doc)[0].localName);
69
+ });
70
+
71
+ it('should select text nodes', () => {
72
+ var xml = '<book><title>Harry</title><title>Potter</title></book>';
73
+ var doc = parseXml(xml);
74
+
75
+ assert.deepEqual('book', xpath.select('local-name(/book)', doc));
76
+ assert.deepEqual('Harry,Potter', xpath.select('//title/text()', doc).toString());
77
+ });
78
+
79
+ it('should select number values', () => {
80
+ var xml = '<book><title>Harry</title><title>Potter</title></book>';
81
+ var doc = parseXml(xml);
82
+
83
+ assert.deepEqual(2, xpath.select('count(//title)', doc));
84
+ });
85
+
86
+ it('should select with namespaces', () => {
87
+ var xml = '<book><title xmlns="myns">Harry Potter</title></book>';
88
+ var doc = parseXml(xml);
89
+
90
+ var nodes = xpath.select('//*[local-name(.)="title" and namespace-uri(.)="myns"]', doc);
91
+ assert.strictEqual('title', nodes[0].localName);
92
+ assert.strictEqual('myns', nodes[0].namespaceURI);
93
+
94
+ var nodes2 = xpath.select('/*/title', doc);
95
+
96
+ assert.strictEqual(0, nodes2.length);
97
+ });
98
+
99
+ it('should select with namespaces, using a resolver', () => {
100
+ var xml = '<book xmlns:testns="http://example.com/test" xmlns:otherns="http://example.com/other"><otherns:title>Narnia</otherns:title><testns:title>Harry Potter</testns:title><testns:field testns:type="author">JKR</testns:field></book>';
101
+ var doc = parseXml(xml);
102
+
103
+ var resolver = {
104
+ mappings: {
105
+ 'testns': 'http://example.com/test'
106
+ },
107
+ lookupNamespaceURI: function (prefix) {
108
+ return this.mappings[prefix];
109
+ }
110
+ };
111
+
112
+ var nodes = xpath.selectWithResolver('//testns:title/text()', doc, resolver);
113
+ assert.strictEqual('Harry Potter', nodes[0].nodeValue);
114
+
115
+ assert.strictEqual('JKR', xpath.selectWithResolver('//testns:field[@testns:type="author"]/text()', doc, resolver)[0].nodeValue);
116
+
117
+ var nodes2 = xpath.selectWithResolver('/*/testns:*', doc, resolver);
118
+
119
+ assert.strictEqual(2, nodes2.length);
120
+ });
121
+
122
+ it('should select from xml with a default namespace, using a resolver', () => {
123
+ var xml = '<book xmlns="http://example.com/test"><title>Harry Potter</title><field type="author">JKR</field></book>';
124
+ var doc = parseXml(xml);
125
+
126
+ var resolver = {
127
+ mappings: {
128
+ 'testns': 'http://example.com/test'
129
+ },
130
+ lookupNamespaceURI: function (prefix) {
131
+ return this.mappings[prefix];
132
+ }
133
+ }
134
+
135
+ var nodes = xpath.selectWithResolver('//testns:title/text()', doc, resolver);
136
+ assert.strictEqual('Harry Potter', xpath.selectWithResolver('//testns:title/text()', doc, resolver)[0].nodeValue);
137
+ assert.strictEqual('JKR', xpath.selectWithResolver('//testns:field[@type="author"]/text()', doc, resolver)[0].nodeValue);
138
+ });
139
+
140
+ it('should select with namespaces, prefixes different in xml and xpath, using a resolver', () => {
141
+ var xml = '<book xmlns:testns="http://example.com/test"><testns:title>Harry Potter</testns:title><testns:field testns:type="author">JKR</testns:field></book>';
142
+ var doc = parseXml(xml);
143
+
144
+ var resolver = {
145
+ mappings: {
146
+ 'ns': 'http://example.com/test'
147
+ },
148
+ lookupNamespaceURI: function (prefix) {
149
+ return this.mappings[prefix];
150
+ }
151
+ }
152
+
153
+ var nodes = xpath.selectWithResolver('//ns:title/text()', doc, resolver);
154
+ assert.strictEqual('Harry Potter', nodes[0].nodeValue);
155
+
156
+ assert.strictEqual('JKR', xpath.selectWithResolver('//ns:field[@ns:type="author"]/text()', doc, resolver)[0].nodeValue);
157
+ });
158
+
159
+ it('should select with namespaces, using namespace mappings', () => {
160
+ var xml = '<book xmlns:testns="http://example.com/test"><testns:title>Harry Potter</testns:title><testns:field testns:type="author">JKR</testns:field></book>';
161
+ var doc = parseXml(xml);
162
+ var select = xpath.useNamespaces({ 'testns': 'http://example.com/test' });
163
+
164
+ assert.strictEqual('Harry Potter', select('//testns:title/text()', doc)[0].nodeValue);
165
+ assert.strictEqual('JKR', select('//testns:field[@testns:type="author"]/text()', doc)[0].nodeValue);
166
+ });
167
+
168
+ it('should select attributes', () => {
169
+ var xml = '<author name="J. K. Rowling"></author>';
170
+ var doc = parseXml(xml);
171
+
172
+ var author = xpath.select1('/author/@name', doc).value;
173
+ assert.strictEqual('J. K. Rowling', author);
174
+ });
175
+ });
176
+
177
+ describe('selection', () => {
178
+ it('should select with multiple predicates', () => {
179
+ var xml = '<characters><character name="Snape" sex="M" age="50" /><character name="McGonnagal" sex="F" age="65" /><character name="Harry" sex="M" age="14" /></characters>';
180
+ var doc = parseXml(xml);
181
+
182
+ var characters = xpath.select('/*/character[@sex = "M"][@age > 40]/@name', doc);
183
+
184
+ assert.strictEqual(1, characters.length);
185
+ assert.strictEqual('Snape', characters[0].textContent);
186
+ });
187
+
188
+ // https://github.com/goto100/xpath/issues/37
189
+ it('should select multiple attributes', () => {
190
+ var xml = '<authors><author name="J. K. Rowling" /><author name="Saeed Akl" /></authors>';
191
+ var doc = parseXml(xml);
192
+
193
+ var authors = xpath.select('/authors/author/@name', doc);
194
+ assert.strictEqual(2, authors.length);
195
+ assert.strictEqual('J. K. Rowling', authors[0].value);
196
+
197
+ // https://github.com/goto100/xpath/issues/41
198
+ doc = parseXml('<chapters><chapter v="1"/><chapter v="2"/><chapter v="3"/></chapters>');
199
+ var nodes = xpath.select("/chapters/chapter/@v", doc);
200
+ var values = nodes.map(function (n) { return n.value; });
201
+
202
+ assert.strictEqual(3, values.length);
203
+ assert.strictEqual("1", values[0]);
204
+ assert.strictEqual("2", values[1]);
205
+ assert.strictEqual("3", values[2]);
206
+ });
207
+
208
+ it('should compare string values of numbers with numbers', () => {
209
+ assert.ok(xpath.select1('"000" = 0'), '000');
210
+ assert.ok(xpath.select1('"45.0" = 45'), '45');
211
+ });
212
+
213
+ it('should correctly compare strings with booleans', () => {
214
+ // string should downcast to boolean
215
+ assert.strictEqual(false, xpath.select1('"false" = false()'), '"false" = false()');
216
+ assert.strictEqual(true, xpath.select1('"a" = true()'), '"a" = true()');
217
+ assert.strictEqual(true, xpath.select1('"" = false()'), '"" = false()');
218
+ });
219
+
220
+ it('should evaluate local-name() and name() on processing instructions', () => {
221
+ var xml = '<?book-record added="2015-01-16" author="J.K. Rowling" ?><book>Harry Potter</book>';
222
+ var doc = parseXml(xml);
223
+ var expectedName = 'book-record';
224
+ var localName = xpath.select('local-name(/processing-instruction())', doc);
225
+ var name = xpath.select('name(/processing-instruction())', doc);
226
+
227
+ assert.deepEqual(expectedName, localName, 'local-name() - "' + expectedName + '" !== "' + localName + '"');
228
+ assert.deepEqual(expectedName, name, 'name() - "' + expectedName + '" !== "' + name + '"');
229
+ });
230
+
231
+ it('should support substring-after()', () => {
232
+ var xml = '<classmate>Hermione</classmate>';
233
+ var doc = parseXml(xml);
234
+
235
+ var part = xpath.select('substring-after(/classmate, "Her")', doc);
236
+ assert.deepEqual('mione', part);
237
+ });
238
+
239
+ it('should support preceding:: on document fragments', () => {
240
+ var doc = parseXml('<n />'),
241
+ df = doc.createDocumentFragment(),
242
+ root = doc.createElement('book');
243
+
244
+ df.appendChild(root);
245
+
246
+ for (var i = 0; i < 10; i += 1) {
247
+ root.appendChild(doc.createElement('chapter'));
248
+ }
249
+
250
+ var chapter = xpath.select1("book/chapter[5]", df);
251
+
252
+ assert.ok(chapter, 'chapter');
253
+
254
+ assert.strictEqual(xpath.select("count(preceding::chapter)", chapter), 4);
255
+ });
256
+
257
+ it('should allow getting sorted and unsorted arrays from nodesets', () => {
258
+ const doc = parseXml('<book><character>Harry</character><character>Ron</character><character>Hermione</character></book>');
259
+ const path = xpath.parse("/*/*[3] | /*/*[2] | /*/*[1]");
260
+ const nset = path.evaluateNodeSet({ node: doc });
261
+ const sorted = nset.toArray();
262
+ const unsorted = nset.toUnsortedArray();
263
+
264
+ assert.strictEqual(sorted.length, 3);
265
+ assert.strictEqual(unsorted.length, 3);
266
+
267
+ assert.strictEqual(sorted[0].textContent, 'Harry');
268
+ assert.strictEqual(sorted[1].textContent, 'Ron');
269
+ assert.strictEqual(sorted[2].textContent, 'Hermione');
270
+
271
+ assert.notEqual(sorted[0], unsorted[0], "first nodeset element equal");
272
+ });
273
+
274
+ it('should compare nodesets to nodesets (=)', () => {
275
+ var xml = '<school><houses>' +
276
+ '<house name="Gryffindor"><student>Harry</student><student>Hermione</student></house>' +
277
+ '<house name="Slytherin"><student>Draco</student><student>Crabbe</student></house>' +
278
+ '<house name="Ravenclaw"><student>Luna</student><student>Cho</student></house>' +
279
+ '</houses>' +
280
+ '<honorStudents><student>Hermione</student><student>Luna</student></honorStudents></school>';
281
+
282
+ var doc = parseXml(xml);
283
+ var houses = xpath.parse('/school/houses/house[student = /school/honorStudents/student]').select({ node: doc });
284
+
285
+ assert.strictEqual(houses.length, 2);
286
+
287
+ var houseNames = houses.map(function (node) { return node.getAttribute('name'); }).sort();
288
+
289
+ assert.strictEqual(houseNames[0], 'Gryffindor');
290
+ assert.strictEqual(houseNames[1], 'Ravenclaw');
291
+ });
292
+
293
+ it('should compare nodesets to nodesets (>=)', () => {
294
+ var xml = '<school><houses>' +
295
+ '<house name="Gryffindor"><student level="5">Harry</student><student level="9">Hermione</student></house>' +
296
+ '<house name="Slytherin"><student level="1">Goyle</student><student level="1">Crabbe</student></house>' +
297
+ '<house name="Ravenclaw"><student level="4">Luna</student><student level="3">Cho</student></house>' +
298
+ '</houses>' +
299
+ '<courses><course minLevel="9">DADA</course><course minLevel="4">Charms</course></courses>' +
300
+ '</school>';
301
+
302
+ var doc = parseXml(xml);
303
+ var houses = xpath.parse('/school/houses/house[student/@level >= /school/courses/course/@minLevel]').select({ node: doc });
304
+
305
+ assert.strictEqual(houses.length, 2);
306
+
307
+ var houseNames = houses.map(function (node) { return node.getAttribute('name'); }).sort();
308
+
309
+ assert.strictEqual(houseNames[0], 'Gryffindor');
310
+ assert.strictEqual(houseNames[1], 'Ravenclaw');
311
+ });
312
+
313
+ it('should support various inequality expressions on nodesets', () => {
314
+ var xml = "<books><book num='1' title='PS' /><book num='2' title='CoS' /><book num='3' title='PoA' /><book num='4' title='GoF' /><book num='5' title='OotP' /><book num='6' title='HBP' /><book num='7' title='DH' /></books>";
315
+ var doc = parseXml(xml);
316
+
317
+ var options = { node: doc, variables: { theNumber: 3, theString: '3', theBoolean: true } };
318
+
319
+ var numberPaths = [
320
+ '/books/book[$theNumber <= @num]',
321
+ '/books/book[$theNumber < @num]',
322
+ '/books/book[$theNumber >= @num]',
323
+ '/books/book[$theNumber > @num]'
324
+ ];
325
+
326
+ var stringPaths = [
327
+ '/books/book[$theString <= @num]',
328
+ '/books/book[$theString < @num]',
329
+ '/books/book[$theString >= @num]',
330
+ '/books/book[$theString > @num]'
331
+ ];
332
+
333
+ var booleanPaths = [
334
+ '/books/book[$theBoolean <= @num]',
335
+ '/books/book[$theBoolean < @num]',
336
+ '/books/book[$theBoolean >= @num]',
337
+ '/books/book[$theBoolean > @num]'
338
+ ];
339
+
340
+ var lhsPaths = [
341
+ '/books/book[@num <= $theNumber]',
342
+ '/books/book[@num < $theNumber]'
343
+ ];
344
+
345
+ function countNodes(paths) {
346
+ return paths
347
+ .map(xpath.parse)
348
+ .map(function (path) { return path.select(options) })
349
+ .map(function (arr) { return arr.length; });
350
+ }
351
+
352
+ assert.deepEqual(countNodes(numberPaths), [5, 4, 3, 2], 'numbers');
353
+ assert.deepEqual(countNodes(stringPaths), [5, 4, 3, 2], 'strings');
354
+ assert.deepEqual(countNodes(booleanPaths), [7, 6, 1, 0], 'numbers');
355
+ assert.deepEqual(countNodes(lhsPaths), [3, 2], 'lhs');
356
+ });
357
+
358
+ it('should correctly evaluate context position', () => {
359
+ var doc = parseXml("<books><book><chapter>The boy who lived</chapter><chapter>The vanishing glass</chapter></book><book><chapter>The worst birthday</chapter><chapter>Dobby's warning</chapter><chapter>The burrow</chapter></book></books>");
360
+
361
+ var chapters = xpath.parse('/books/book/chapter[2]').select({ node: doc });
362
+
363
+ assert.strictEqual(2, chapters.length);
364
+ assert.strictEqual('The vanishing glass', chapters[0].textContent);
365
+ assert.strictEqual("Dobby's warning", chapters[1].textContent);
366
+
367
+ var lastChapters = xpath.parse('/books/book/chapter[last()]').select({ node: doc });
368
+
369
+ assert.strictEqual(2, lastChapters.length);
370
+ assert.strictEqual('The vanishing glass', lastChapters[0].textContent);
371
+ assert.strictEqual("The burrow", lastChapters[1].textContent);
372
+
373
+ var secondChapter = xpath.parse('(/books/book/chapter)[2]').select({ node: doc });
374
+
375
+ assert.strictEqual(1, secondChapter.length);
376
+ assert.strictEqual('The vanishing glass', chapters[0].textContent);
377
+
378
+ var lastChapter = xpath.parse('(/books/book/chapter)[last()]').select({ node: doc });
379
+
380
+ assert.strictEqual(1, lastChapter.length);
381
+ assert.strictEqual("The burrow", lastChapter[0].textContent);
382
+ });
383
+ });
384
+
385
+ describe('string()', () => {
386
+ it('should work with no arguments', () => {
387
+ var doc = parseXml('<book>Harry Potter</book>');
388
+
389
+ var rootElement = xpath.select1('/book', doc);
390
+ assert.ok(rootElement, 'rootElement is null');
391
+
392
+ assert.strictEqual('Harry Potter', xpath.select1('string()', doc));
393
+ });
394
+
395
+ it('should work on document fragments', () => {
396
+ var doc = parseXml('<n />');
397
+ var docFragment = doc.createDocumentFragment();
398
+
399
+ var el = doc.createElement("book");
400
+ docFragment.appendChild(el);
401
+
402
+ var testValue = "Harry Potter";
403
+
404
+ el.appendChild(doc.createTextNode(testValue));
405
+
406
+ assert.strictEqual(testValue, xpath.select1("string()", docFragment));
407
+ });
408
+
409
+ it('should work correctly on boolean values', () => {
410
+ assert.strictEqual('string', typeof xpath.select1('string(true())'));
411
+ assert.strictEqual('string', typeof xpath.select1('string(false())'));
412
+ assert.strictEqual('string', typeof xpath.select1('string(1 = 2)'));
413
+ assert.ok(xpath.select1('"true" = string(true())'), '"true" = string(true())');
414
+ });
415
+
416
+ it('should work correctly on numbers', () => {
417
+ assert.strictEqual('string', typeof xpath.select1('string(45)'));
418
+ assert.ok(xpath.select1('"45" = string(45)'), '"45" = string(45)');
419
+ });
420
+ });
421
+
422
+ describe('type conversion', () => {
423
+ it('should convert strings to numbers correctly', () => {
424
+ assert.strictEqual(45.2, xpath.select1('number("45.200")'));
425
+ assert.strictEqual(55.0, xpath.select1('number("000055")'));
426
+ assert.strictEqual(65.0, xpath.select1('number(" 65 ")'));
427
+
428
+ assert.strictEqual(true, xpath.select1('"" != 0'), '"" != 0');
429
+ assert.strictEqual(false, xpath.select1('"" = 0'), '"" = 0');
430
+ assert.strictEqual(false, xpath.select1('0 = ""'), '0 = ""');
431
+ assert.strictEqual(false, xpath.select1('0 = " "'), '0 = " "');
432
+
433
+ assert.ok(Number.isNaN(xpath.select('number("")')), 'number("")');
434
+ assert.ok(Number.isNaN(xpath.select('number("45.8g")')), 'number("45.8g")');
435
+ assert.ok(Number.isNaN(xpath.select('number("2e9")')), 'number("2e9")');
436
+ assert.ok(Number.isNaN(xpath.select('number("+33")')), 'number("+33")');
437
+ });
438
+
439
+ it('should convert numbers to strings correctly', () => {
440
+ assert.strictEqual('0.0000000000000000000000005250000000000001', xpath.parse('0.525 div 1000000 div 1000000 div 1000000 div 1000000').evaluateString());
441
+ assert.strictEqual('525000000000000000000000', xpath.parse('0.525 * 1000000 * 1000000 * 1000000 * 1000000').evaluateString());
442
+ });
443
+
444
+ it('should provide correct string value for cdata sections', () => {
445
+ const xml = "<people><person><![CDATA[Harry Potter]]></person><person>Ron <![CDATA[Weasley]]></person></people>";
446
+ const doc = parseXml(xml);
447
+
448
+ const person1 = xpath.parse("/people/person").evaluateString({ node: doc });
449
+ const person2 = xpath.parse("/people/person/text()").evaluateString({ node: doc });
450
+ const person3 = xpath.select("string(/people/person/text())", doc);
451
+ const person4 = xpath.parse("/people/person[2]").evaluateString({ node: doc });
452
+
453
+ assert.strictEqual(person1, 'Harry Potter');
454
+ assert.strictEqual(person2, 'Harry Potter');
455
+ assert.strictEqual(person3, 'Harry Potter');
456
+ assert.strictEqual(person4, 'Ron Weasley');
457
+ });
458
+
459
+ it('should convert various node types to string values', () => {
460
+ var xml = "<book xmlns:hp='http://harry'><!-- This describes the Harry Potter Book --><?author name='J.K. Rowling' ?><title lang='en'><![CDATA[Harry Potter & the Philosopher's Stone]]></title><character>Harry Potter</character></book>",
461
+ doc = parseXml(xml),
462
+ allText = xpath.parse('.').evaluateString({ node: doc }),
463
+ ns = xpath.parse('*/namespace::*[name() = "hp"]').evaluateString({ node: doc }),
464
+ title = xpath.parse('*/title').evaluateString({ node: doc }),
465
+ child = xpath.parse('*/*').evaluateString({ node: doc }),
466
+ titleLang = xpath.parse('*/*/@lang').evaluateString({ node: doc }),
467
+ pi = xpath.parse('*/processing-instruction()').evaluateString({ node: doc }),
468
+ comment = xpath.parse('*/comment()').evaluateString({ node: doc });
469
+
470
+ assert.strictEqual(allText, "Harry Potter & the Philosopher's StoneHarry Potter");
471
+ assert.strictEqual(ns, 'http://harry');
472
+ assert.strictEqual(title, "Harry Potter & the Philosopher's Stone");
473
+ assert.strictEqual(child, "Harry Potter & the Philosopher's Stone");
474
+ assert.strictEqual(titleLang, 'en');
475
+ assert.strictEqual(pi.trim(), "name='J.K. Rowling'");
476
+ assert.strictEqual(comment, ' This describes the Harry Potter Book ');
477
+ });
478
+
479
+ it('should convert booleans to numbers correctly', () => {
480
+ var num = xpath.parse('"a" = "b"').evaluateNumber();
481
+
482
+ assert.strictEqual(num, 0);
483
+
484
+ var str = xpath.select('substring("expelliarmus", 1, "a" = "a")');
485
+
486
+ assert.strictEqual(str, 'e');
487
+ });
488
+ });
489
+
490
+ describe('parsed expressions', () => {
491
+ it('should work with no options', () => {
492
+ var parsed = xpath.parse('5 + 7');
493
+
494
+ assert.strictEqual(typeof parsed, "object", "parse() should return an object");
495
+ assert.strictEqual(typeof parsed.evaluate, "function", "parsed.evaluate should be a function");
496
+ assert.strictEqual(typeof parsed.evaluateNumber, "function", "parsed.evaluateNumber should be a function");
497
+
498
+ assert.strictEqual(parsed.evaluateNumber(), 12);
499
+
500
+ // evaluating twice should yield the same result
501
+ assert.strictEqual(parsed.evaluateNumber(), 12);
502
+ });
503
+
504
+ it('should support select1()', () => {
505
+ var xml = '<book><title>Harry Potter</title></book>';
506
+ var doc = parseXml(xml);
507
+ var parsed = xpath.parse('/*/title');
508
+
509
+ assert.strictEqual(typeof parsed, 'object', 'parse() should return an object');
510
+
511
+ assert.strictEqual(typeof parsed.select1, 'function', 'parsed.select1 should be a function');
512
+
513
+ var single = parsed.select1({ node: doc });
514
+
515
+ assert.strictEqual('title', single.localName);
516
+ assert.strictEqual('Harry Potter', single.firstChild.data);
517
+ assert.strictEqual('<title>Harry Potter</title>', single.toString());
518
+ });
519
+
520
+ it('should support select()', () => {
521
+ var xml = '<book><title>Harry Potter</title></book>';
522
+ var doc = parseXml(xml);
523
+ var parsed = xpath.parse('/*/title');
524
+
525
+ assert.strictEqual(typeof parsed, 'object', 'parse() should return an object');
526
+
527
+ assert.strictEqual(typeof parsed.select, 'function', 'parsed.select should be a function');
528
+
529
+ var nodes = parsed.select({ node: doc });
530
+
531
+ assert.ok(nodes, 'parsed.select() should return a value');
532
+ assert.strictEqual(1, nodes.length);
533
+ assert.strictEqual('title', nodes[0].localName);
534
+ assert.strictEqual('Harry Potter', nodes[0].firstChild.data);
535
+ assert.strictEqual('<title>Harry Potter</title>', nodes[0].toString());
536
+ });
537
+
538
+ it('should support .evaluateString() and .evaluateNumber()', () => {
539
+ var xml = '<book><title>Harry Potter</title><numVolumes>7</numVolumes></book>';
540
+ var doc = parseXml(xml);
541
+ var parsed = xpath.parse('/*/numVolumes');
542
+
543
+ assert.strictEqual(typeof parsed, 'object', 'parse() should return an object');
544
+
545
+ assert.strictEqual(typeof parsed.evaluateString, 'function', 'parsed.evaluateString should be a function');
546
+ assert.strictEqual('7', parsed.evaluateString({ node: doc }));
547
+
548
+ assert.strictEqual(typeof parsed.evaluateBoolean, 'function', 'parsed.evaluateBoolean should be a function');
549
+ assert.strictEqual(true, parsed.evaluateBoolean({ node: doc }));
550
+
551
+ assert.strictEqual(typeof parsed.evaluateNumber, 'function', 'parsed.evaluateNumber should be a function');
552
+ assert.strictEqual(7, parsed.evaluateNumber({ node: doc }));
553
+ });
554
+
555
+ it('should support .evaluateBoolean()', () => {
556
+ var xml = '<book><title>Harry Potter</title></book>';
557
+ var doc = parseXml(xml);
558
+ var context = { node: doc };
559
+
560
+ function evaluate(path) {
561
+ return xpath.parse(path).evaluateBoolean(context);
562
+ }
563
+
564
+ assert.strictEqual(false, evaluate('/*/myrtle'), 'boolean value of empty node set should be false');
565
+
566
+ assert.strictEqual(true, evaluate('not(/*/myrtle)'), 'not() of empty nodeset should be true');
567
+
568
+ assert.strictEqual(true, evaluate('/*/title'), 'boolean value of non-empty nodeset should be true');
569
+
570
+ assert.strictEqual(true, evaluate('/*/title = "Harry Potter"'), 'title equals Harry Potter');
571
+
572
+ assert.strictEqual(false, evaluate('/*/title != "Harry Potter"'), 'title != Harry Potter should be false');
573
+
574
+ assert.strictEqual(false, evaluate('/*/title = "Percy Jackson"'), 'title should not equal Percy Jackson');
575
+ });
576
+
577
+ it('should support namespaces', () => {
578
+ var xml = '<characters xmlns:ps="http://philosophers-stone.com" xmlns:cs="http://chamber-secrets.com">' +
579
+ '<ps:character>Quirrell</ps:character><ps:character>Fluffy</ps:character>' +
580
+ '<cs:character>Myrtle</cs:character><cs:character>Tom Riddle</cs:character>' +
581
+ '</characters>';
582
+ var doc = parseXml(xml);
583
+
584
+ var expr = xpath.parse('/characters/c:character');
585
+ var countExpr = xpath.parse('count(/characters/c:character)');
586
+ var csns = 'http://chamber-secrets.com';
587
+
588
+ function resolve(prefix) {
589
+ if (prefix === 'c') {
590
+ return csns;
591
+ }
592
+ }
593
+
594
+ function testContext(context, description) {
595
+ try {
596
+ var value = expr.evaluateString(context);
597
+ var count = countExpr.evaluateNumber(context);
598
+
599
+ assert.strictEqual('Myrtle', value, description + ' - string value - ' + value);
600
+ assert.strictEqual(2, count, description + ' map - count - ' + count);
601
+ } catch (e) {
602
+ e.message = description + ': ' + (e.message || '');
603
+ throw e;
604
+ }
605
+ }
606
+
607
+ testContext({
608
+ node: doc,
609
+ namespaces: {
610
+ c: csns
611
+ }
612
+ }, 'Namespace map');
613
+
614
+ testContext({
615
+ node: doc,
616
+ namespaces: resolve
617
+ }, 'Namespace function');
618
+
619
+ testContext({
620
+ node: doc,
621
+ namespaces: {
622
+ getNamespace: resolve
623
+ }
624
+ }, 'Namespace object');
625
+ });
626
+
627
+ it('should support custom functions', () => {
628
+ var xml = '<book><title>Harry Potter</title></book>';
629
+ var doc = parseXml(xml);
630
+
631
+ var parsed = xpath.parse('concat(double(/*/title), " is cool")');
632
+
633
+ function doubleString(context, value) {
634
+ assert.strictEqual(2, arguments.length);
635
+ var str = value.stringValue();
636
+ return str + str;
637
+ }
638
+
639
+ function functions(name, namespace) {
640
+ if (name === 'double') {
641
+ return doubleString;
642
+ }
643
+ return null;
644
+ }
645
+
646
+ function testContext(context, description) {
647
+ try {
648
+ var actual = parsed.evaluateString(context);
649
+ var expected = 'Harry PotterHarry Potter is cool';
650
+ assert.strictEqual(expected, actual, description + ' - ' + expected + ' != ' + actual);
651
+ } catch (e) {
652
+ e.message = description + ": " + (e.message || '');
653
+ throw e;
654
+ }
655
+ }
656
+
657
+ testContext({
658
+ node: doc,
659
+ functions: functions
660
+ }, 'Functions function');
661
+
662
+ testContext({
663
+ node: doc,
664
+ functions: {
665
+ getFunction: functions
666
+ }
667
+ }, 'Functions object');
668
+
669
+ testContext({
670
+ node: doc,
671
+ functions: {
672
+ double: doubleString
673
+ }
674
+ }, 'Functions map');
675
+ });
676
+
677
+ it('should support custom functions in namespaces', () => {
678
+ var xml = '<book><title>Harry Potter</title><friend>Ron</friend><friend>Hermione</friend><friend>Neville</friend></book>';
679
+ var doc = parseXml(xml);
680
+
681
+ var parsed = xpath.parse('concat(hp:double(/*/title), " is 2 cool ", hp:square(2), " school")');
682
+ var hpns = 'http://harry-potter.com';
683
+
684
+ var namespaces = {
685
+ hp: hpns
686
+ };
687
+
688
+ var context = {
689
+ node: doc,
690
+ namespaces: {
691
+ hp: hpns
692
+ },
693
+ functions: function (name, namespace) {
694
+ if (namespace === hpns) {
695
+ switch (name) {
696
+ case "double":
697
+ return function (context, value) {
698
+ assert.strictEqual(2, arguments.length);
699
+ var str = value.stringValue();
700
+ return str + str;
701
+ };
702
+ case "square":
703
+ return function (context, value) {
704
+ var num = value.numberValue();
705
+ return num * num;
706
+ };
707
+
708
+ case "xor":
709
+ return function (context, l, r) {
710
+ assert.strictEqual(3, arguments.length);
711
+ var lbool = l.booleanValue();
712
+ var rbool = r.booleanValue();
713
+ return (lbool || rbool) && !(lbool && rbool);
714
+ };
715
+
716
+ case "second":
717
+ return function (context, nodes) {
718
+ var nodesArr = nodes.toArray();
719
+ var second = nodesArr[1];
720
+ return second ? [second] : [];
721
+ };
722
+ }
723
+ }
724
+ return null;
725
+ }
726
+ };
727
+
728
+ assert.strictEqual('Harry PotterHarry Potter is 2 cool 4 school', parsed.evaluateString(context));
729
+
730
+ assert.strictEqual(false, xpath.parse('hp:xor(false(), false())').evaluateBoolean(context));
731
+ assert.strictEqual(true, xpath.parse('hp:xor(false(), true())').evaluateBoolean(context));
732
+ assert.strictEqual(true, xpath.parse('hp:xor(true(), false())').evaluateBoolean(context));
733
+ assert.strictEqual(false, xpath.parse('hp:xor(true(), true())').evaluateBoolean(context));
734
+
735
+ assert.strictEqual('Hermione', xpath.parse('hp:second(/*/friend)').evaluateString(context));
736
+ assert.strictEqual(1, xpath.parse('count(hp:second(/*/friend))').evaluateNumber(context));
737
+ assert.strictEqual(0, xpath.parse('count(hp:second(/*/friendz))').evaluateNumber(context));
738
+ });
739
+
740
+ it('should support xpath variables', () => {
741
+ var xml = '<book><title>Harry Potter</title><volumes>7</volumes></book>';
742
+ var doc = parseXml(xml);
743
+
744
+ var variables = {
745
+ title: 'Harry Potter',
746
+ notTitle: 'Percy Jackson',
747
+ houses: 4
748
+ };
749
+
750
+ function variableFunction(name) {
751
+ return variables[name];
752
+ }
753
+
754
+ function testContext(context, description) {
755
+ try {
756
+ assert.strictEqual(true, xpath.parse('$title = /*/title').evaluateBoolean(context));
757
+ assert.strictEqual(false, xpath.parse('$notTitle = /*/title').evaluateBoolean(context));
758
+ assert.strictEqual(11, xpath.parse('$houses + /*/volumes').evaluateNumber(context));
759
+ } catch (e) {
760
+ e.message = description + ": " + (e.message || '');
761
+ throw e;
762
+ }
763
+ }
764
+
765
+ testContext({
766
+ node: doc,
767
+ variables: variableFunction
768
+ }, 'Variables function');
769
+
770
+ testContext({
771
+ node: doc,
772
+ variables: {
773
+ getVariable: variableFunction
774
+ }
775
+ }, 'Variables object');
776
+
777
+ testContext({
778
+ node: doc,
779
+ variables: variables
780
+ }, 'Variables map');
781
+
782
+ });
783
+
784
+ it('should support variables with namespaces', () => {
785
+ var xml = '<book><title>Harry Potter</title><volumes>7</volumes></book>';
786
+ var doc = parseXml(xml);
787
+ var hpns = 'http://harry-potter.com';
788
+
789
+ var context = {
790
+ node: doc,
791
+ namespaces: {
792
+ hp: hpns
793
+ },
794
+ variables: function (name, namespace) {
795
+ if (namespace === hpns) {
796
+ switch (name) {
797
+ case 'title': return 'Harry Potter';
798
+ case 'houses': return 4;
799
+ case 'false': return false;
800
+ case 'falseStr': return 'false';
801
+ }
802
+ } else if (namespace === '') {
803
+ switch (name) {
804
+ case 'title': return 'World';
805
+ }
806
+ }
807
+
808
+ return null;
809
+ }
810
+ };
811
+
812
+ assert.strictEqual(true, xpath.parse('$hp:title = /*/title').evaluateBoolean(context));
813
+ assert.strictEqual(false, xpath.parse('$title = /*/title').evaluateBoolean(context));
814
+ assert.strictEqual('World', xpath.parse('$title').evaluateString(context));
815
+ assert.strictEqual(false, xpath.parse('$hp:false').evaluateBoolean(context));
816
+ assert.notEqual(false, xpath.parse('$hp:falseStr').evaluateBoolean(context));
817
+ assert.throws(function () {
818
+ xpath.parse('$hp:hello').evaluateString(context);
819
+ }, function (err) {
820
+ return err.message === 'Undeclared variable: $hp:hello';
821
+ });
822
+ });
823
+
824
+ it('should support .toString()', () => {
825
+ var parser = new xpath.XPathParser();
826
+
827
+ var simpleStep = parser.parse('my:book');
828
+
829
+ assert.strictEqual(simpleStep.toString(), 'child::my:book');
830
+
831
+ var precedingSib = parser.parse('preceding-sibling::my:chapter');
832
+
833
+ assert.strictEqual(precedingSib.toString(), 'preceding-sibling::my:chapter');
834
+
835
+ var withPredicates = parser.parse('book[number > 3][contains(title, "and the")]');
836
+
837
+ assert.strictEqual(withPredicates.toString(), "child::book[(child::number > 3)][contains(child::title, 'and the')]");
838
+
839
+ var parenthesisWithPredicate = parser.parse('(/books/book/chapter)[7]');
840
+
841
+ assert.strictEqual(parenthesisWithPredicate.toString(), '(/child::books/child::book/child::chapter)[7]');
842
+
843
+ var charactersOver20 = parser.parse('heroes[age > 20] | villains[age > 20]');
844
+
845
+ assert.strictEqual(charactersOver20.toString(), 'child::heroes[(child::age > 20)] | child::villains[(child::age > 20)]');
846
+ });
847
+ });
848
+
849
+ describe('html-mode support', () => {
850
+ it('should allow null namespaces for nodes with no prefix', () => {
851
+ var markup = `<html>
852
+ <head></head>
853
+ <body>
854
+ <p>Hi Ron!</p>
855
+ <my:p xmlns:my="http://www.example.com/my">Hi Draco!</p>
856
+ <p>Hi Hermione!</p>
857
+ </body>
858
+ </html>`;
859
+
860
+ var docHtml = parseXml(markup, 'text/html');
861
+
862
+ var noPrefixPath = xpath.parse('/html/body/p[2]');
863
+
864
+ var greetings1 = noPrefixPath.select({ node: docHtml, allowAnyNamespaceForNoPrefix: false });
865
+
866
+ assert.strictEqual(0, greetings1.length);
867
+
868
+ var allowAnyNamespaceOptions = { node: docHtml, allowAnyNamespaceForNoPrefix: true };
869
+
870
+ // if allowAnyNamespaceForNoPrefix specified, allow using prefix-less node tests to match nodes with no prefix
871
+ var greetings2 = noPrefixPath.select(allowAnyNamespaceOptions);
872
+
873
+ assert.strictEqual(1, greetings2.length);
874
+ assert.strictEqual('Hi Hermione!', greetings2[0].textContent);
875
+
876
+ var allGreetings = xpath.parse('/html/body/p').select(allowAnyNamespaceOptions);
877
+
878
+ assert.strictEqual(2, allGreetings.length);
879
+
880
+ var nsm = { html: xhtmlNs, other: 'http://www.example.com/other' };
881
+
882
+ var prefixPath = xpath.parse('/html:html/body/html:p');
883
+ var optionsWithNamespaces = { node: docHtml, allowAnyNamespaceForNoPrefix: true, namespaces: nsm };
884
+
885
+ // if the path uses prefixes, they have to match
886
+ var greetings3 = prefixPath.select(optionsWithNamespaces);
887
+
888
+ assert.strictEqual(2, greetings3.length);
889
+
890
+ var badPrefixPath = xpath.parse('/html:html/other:body/html:p');
891
+
892
+ var greetings4 = badPrefixPath.select(optionsWithNamespaces);
893
+
894
+ assert.strictEqual(0, greetings4.length);
895
+ });
896
+
897
+ it('should support the isHtml option', () => {
898
+ var markup = '<html><head></head><body><p>Hi Ron!</p><my:p xmlns:my="http://www.example.com/my">Hi Draco!</p><p>Hi Hermione!</p></body></html>';
899
+ var docHtml = parseXml(markup, 'text/html');
900
+
901
+ var ns = { h: xhtmlNs };
902
+
903
+ // allow matching on unprefixed nodes
904
+ var greetings1 = xpath.parse('/html/body/p').select({ node: docHtml, isHtml: true });
905
+
906
+ assert.strictEqual(2, greetings1.length);
907
+
908
+ // allow case insensitive match
909
+ var greetings2 = xpath.parse('/h:html/h:bOdY/h:p').select({ node: docHtml, namespaces: ns, isHtml: true });
910
+
911
+ assert.strictEqual(2, greetings2.length);
912
+
913
+ // non-html mode: allow select if case and namespaces match
914
+ var greetings3 = xpath.parse('/h:html/h:body/h:p').select({ node: docHtml, namespaces: ns });
915
+
916
+ assert.strictEqual(2, greetings3.length);
917
+
918
+ // non-html mode: require namespaces
919
+ var greetings4 = xpath.parse('/html/body/p').select({ node: docHtml, namespaces: ns });
920
+
921
+ assert.strictEqual(0, greetings4.length);
922
+
923
+ // non-html mode: require case to match
924
+ var greetings5 = xpath.parse('/h:html/h:bOdY/h:p').select({ node: docHtml, namespaces: ns });
925
+
926
+ assert.strictEqual(0, greetings5.length);
927
+ });
928
+ });
929
+
930
+ describe('functions', () => {
931
+ it('should provide a meaningful error for invalid functions', () => {
932
+ var path = xpath.parse('invalidFunc()');
933
+
934
+ assert.throws(function () {
935
+ path.evaluateString();
936
+ }, function (err) {
937
+ return err.message.indexOf('invalidFunc') !== -1;
938
+ });
939
+
940
+ var path2 = xpath.parse('funcs:invalidFunc()');
941
+
942
+ assert.throws(function () {
943
+ path2.evaluateString({
944
+ namespaces: {
945
+ funcs: 'myfunctions'
946
+ }
947
+ });
948
+ }, function (err) {
949
+ return err.message.indexOf('invalidFunc') !== -1;
950
+ });
951
+ });
952
+
953
+ // https://github.com/goto100/xpath/issues/32
954
+ it('should support the contains() function on attributes', () => {
955
+ var doc = parseXml("<books><book title='Harry Potter and the Philosopher\"s Stone' /><book title='Harry Potter and the Chamber of Secrets' /></books>"),
956
+ andTheBooks = xpath.select("/books/book[contains(@title, ' ')]", doc),
957
+ secretBooks = xpath.select("/books/book[contains(@title, 'Secrets')]", doc);
958
+
959
+ assert.strictEqual(andTheBooks.length, 2);
960
+ assert.strictEqual(secretBooks.length, 1);
961
+ });
962
+
963
+ it('should support builtin functions', () => {
964
+ var translated = xpath.parse('translate("hello", "lhho", "yHb")').evaluateString();
965
+
966
+ assert.strictEqual('Heyy', translated);
967
+
968
+ var characters = parseXml('<characters><character>Harry</character><character>Ron</character><character>Hermione</character></characters>');
969
+
970
+ var firstTwo = xpath.parse('/characters/character[position() <= 2]').select({ node: characters });
971
+
972
+ assert.strictEqual(2, firstTwo.length);
973
+ assert.strictEqual('Harry', firstTwo[0].textContent);
974
+ assert.strictEqual('Ron', firstTwo[1].textContent);
975
+
976
+ var last = xpath.parse('/characters/character[last()]').select({ node: characters });
977
+
978
+ assert.strictEqual(1, last.length);
979
+ assert.strictEqual('Hermione', last[0].textContent);
980
+ });
981
+ });
982
+
983
+ describe('.parse()', () => {
984
+ it('should correctly set types on path steps', () => {
985
+ const parsed = xpath.parse('./my:*/my:name');
986
+
987
+ const steps = parsed.expression.expression.locationPath.steps;
988
+
989
+ const step0 = steps[0];
990
+
991
+ assert.strictEqual(xpath.NodeTest.NODE, step0.nodeTest.type);
992
+
993
+ const step1 = steps[1];
994
+
995
+ assert.strictEqual(xpath.NodeTest.NAMETESTPREFIXANY, step1.nodeTest.type);
996
+ assert.strictEqual('my', step1.nodeTest.prefix);
997
+
998
+ const step2 = steps[2];
999
+
1000
+ assert.strictEqual(xpath.NodeTest.NAMETESTQNAME, step2.nodeTest.type);
1001
+ assert.strictEqual('my', step2.nodeTest.prefix);
1002
+ assert.strictEqual('name', step2.nodeTest.localName);
1003
+ assert.strictEqual('my:name', step2.nodeTest.name);
1004
+ });
1005
+ })
1006
+
1007
+ describe('miscellaneous', () => {
1008
+ it('should create XPathExceptions that act like Errors', () => {
1009
+ try {
1010
+ xpath.evaluate('1', null, null, null);
1011
+ assert.fail(null, null, 'evaluate() should throw exception');
1012
+ } catch (e) {
1013
+ assert.ok('code' in e, 'must have a code');
1014
+ assert.ok('stack' in e, 'must have a stack');
1015
+ }
1016
+ });
1017
+
1018
+ it('should expose custom types', () => {
1019
+ assert.ok(xpath.XPath, "xpath.XPath");
1020
+ assert.ok(xpath.XPathParser, "xpath.XPathParser");
1021
+ assert.ok(xpath.XPathResult, "xpath.XPathResult");
1022
+
1023
+ assert.ok(xpath.Step, "xpath.Step");
1024
+ assert.ok(xpath.NodeTest, "xpath.NodeTest");
1025
+
1026
+ assert.ok(xpath.OrOperation, "xpath.OrOperation");
1027
+ assert.ok(xpath.AndOperation, "xpath.AndOperation");
1028
+
1029
+ assert.ok(xpath.BarOperation, "xpath.BarOperation");
1030
+
1031
+ assert.ok(xpath.NamespaceResolver, "xpath.NamespaceResolver");
1032
+ assert.ok(xpath.FunctionResolver, "xpath.FunctionResolver");
1033
+ assert.ok(xpath.VariableResolver, "xpath.VariableResolver");
1034
+
1035
+ assert.ok(xpath.Utilities, "xpath.Utilities");
1036
+
1037
+ assert.ok(xpath.XPathContext, "xpath.XPathContext");
1038
+ assert.ok(xpath.XNodeSet, "xpath.XNodeSet");
1039
+ assert.ok(xpath.XBoolean, "xpath.XBoolean");
1040
+ assert.ok(xpath.XString, "xpath.XString");
1041
+ assert.ok(xpath.XNumber, "xpath.XNumber");
1042
+ });
1043
+
1044
+ it('should work with nodes created using DOM1 createElement()', () => {
1045
+ var doc = parseXml('<book />');
1046
+
1047
+ doc.documentElement.appendChild(doc.createElement('characters'));
1048
+
1049
+ assert.ok(xpath.select1('/book/characters', doc));
1050
+
1051
+ assert.strictEqual(xpath.select1('local-name(/book/characters)', doc), 'characters');
1052
+ });
1053
+ });
1054
+
1055
+ describe('Node type tests', () => {
1056
+ it('should correctly identify a Node of type Element', () => {
1057
+ var doc = parseXml('<book />');
1058
+ var element = doc.createElement('characters');
1059
+
1060
+ assert.ok(xpath.isNodeLike(element));
1061
+ assert.ok(xpath.isElement(element));
1062
+ assert.ok(!xpath.isAttribute(doc));
1063
+ });
1064
+
1065
+ it('should correctly identify a Node of type Attribute', () => {
1066
+ var doc = parseXml('<book />');
1067
+ var attribute = doc.createAttribute('name');
1068
+
1069
+ assert.ok(xpath.isNodeLike(attribute));
1070
+ assert.ok(xpath.isAttribute(attribute));
1071
+ assert.ok(!xpath.isTextNode(attribute));
1072
+ });
1073
+
1074
+ it('should correctly identify a Node of type Text', () => {
1075
+ var doc = parseXml('<book />');
1076
+ var text = doc.createTextNode('Harry Potter');
1077
+
1078
+ assert.ok(xpath.isNodeLike(text));
1079
+ assert.ok(xpath.isTextNode(text));
1080
+ assert.ok(!xpath.isCDATASection(text));
1081
+ });
1082
+
1083
+ it('should correctly identify a Node of type CDATASection', () => {
1084
+ var doc = parseXml('<book />');
1085
+ var cdata = doc.createCDATASection('Harry Potter');
1086
+
1087
+ assert.ok(xpath.isNodeLike(cdata));
1088
+ assert.ok(xpath.isCDATASection(cdata));
1089
+ assert.ok(!xpath.isProcessingInstruction(cdata));
1090
+ });
1091
+
1092
+ it('should correctly identify a Node of type ProcessingInstruction', () => {
1093
+ var doc = parseXml('<book />');
1094
+ var pi = doc.createProcessingInstruction('xml-stylesheet', 'href="mycss.css" type="text/css"');
1095
+
1096
+ // This test fails due to a bug in @xmldom/xmldom@0.8.8
1097
+ // assert.ok(xpath.isNodeLike(pi));
1098
+ assert.ok(xpath.isProcessingInstruction(pi));
1099
+ assert.ok(!xpath.isComment(pi));
1100
+ });
1101
+
1102
+ it('should correctly identify a Node of type Comment', () => {
1103
+ var doc = parseXml('<book />');
1104
+ var comment = doc.createComment('Harry Potter');
1105
+
1106
+ assert.ok(xpath.isNodeLike(comment));
1107
+ assert.ok(xpath.isComment(comment));
1108
+ assert.ok(!xpath.isDocumentNode(comment));
1109
+ });
1110
+
1111
+ it('should correctly identify a Node of type Document', () => {
1112
+ var doc = parseXml('<book />');
1113
+
1114
+ assert.ok(xpath.isNodeLike(doc));
1115
+ assert.ok(xpath.isDocumentNode(doc));
1116
+ assert.ok(!xpath.isDocumentTypeNode(doc));
1117
+ });
1118
+
1119
+ it('should correctly identify a Node of type DocumentType', () => {
1120
+ var doc = parseXml('<book />');
1121
+ var doctype = doc.implementation.createDocumentType('book', null, null);
1122
+
1123
+ assert.ok(xpath.isNodeLike(doctype));
1124
+ assert.ok(xpath.isDocumentTypeNode(doctype));
1125
+ assert.ok(!xpath.isDocumentFragment(doctype));
1126
+ });
1127
+
1128
+ it('should correctly identify a Node of type DocumentFragment', () => {
1129
+ var doc = parseXml('<book />');
1130
+ var fragment = doc.createDocumentFragment();
1131
+
1132
+ assert.ok(xpath.isNodeLike(fragment));
1133
+ assert.ok(xpath.isDocumentFragment(fragment));
1134
+ assert.ok(!xpath.isElement(fragment));
1135
+ });
1136
+
1137
+ it('should not identify a string as a Node', () => {
1138
+ assert.ok(!xpath.isNodeLike('Harry Potter'));
1139
+ });
1140
+
1141
+ it('should not identify a number as a Node', () => {
1142
+ assert.ok(!xpath.isNodeLike(45));
1143
+ });
1144
+
1145
+ it('should not identify a boolean as a Node', () => {
1146
+ assert.ok(!xpath.isNodeLike(true));
1147
+ });
1148
+
1149
+ it('should not identify null as a Node', () => {
1150
+ assert.ok(!xpath.isNodeLike(null));
1151
+ });
1152
+
1153
+ it('should not identify undefined as a Node', () => {
1154
+ assert.ok(!xpath.isNodeLike(undefined));
1155
+ });
1156
+
1157
+ it('should not identify an array as a Node', () => {
1158
+ assert.ok(!xpath.isNodeLike([]));
1159
+ });
1160
+
1161
+ it('should identify an array of Nodes as such', () => {
1162
+ var doc = parseXml('<book />');
1163
+ var fragment = doc.createDocumentFragment();
1164
+ var nodes = [doc, fragment];
1165
+
1166
+ assert.ok(xpath.isArrayOfNodes(nodes));
1167
+ assert.ok(!xpath.isNodeLike(nodes));
1168
+ });
1169
+
1170
+ it('should not identify an array of non-Nodes as an array of Nodes', () => {
1171
+ var nodes = ['Harry Potter', 45];
1172
+
1173
+ assert.ok(!xpath.isArrayOfNodes(nodes));
1174
+ assert.ok(!xpath.isNodeLike(nodes));
1175
+ });
1176
+
1177
+ it('should not identify an array of mixed Nodes and non-Nodes as an array of Nodes', () => {
1178
+ var doc = parseXml('<book />');
1179
+ var fragment = doc.createDocumentFragment();
1180
+ var nodes = [doc, fragment, 'Harry Potter'];
1181
+
1182
+ assert.ok(!xpath.isArrayOfNodes(nodes));
1183
+ assert.ok(!xpath.isNodeLike(nodes));
1184
+ });
1185
+ });
1186
+ });