@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,1346 @@
1
+ /**
2
+ * HTTP client-side implementation that uses forge.net sockets.
3
+ *
4
+ * @author Dave Longley
5
+ *
6
+ * Copyright (c) 2010-2014 Digital Bazaar, Inc. All rights reserved.
7
+ */
8
+ var forge = require('./forge');
9
+ require('./tls');
10
+ require('./util');
11
+
12
+ // define http namespace
13
+ var http = module.exports = forge.http = forge.http || {};
14
+
15
+ // logging category
16
+ var cat = 'forge.http';
17
+
18
+ // normalizes an http header field name
19
+ var _normalize = function(name) {
20
+ return name.toLowerCase().replace(/(^.)|(-.)/g,
21
+ function(a) {return a.toUpperCase();});
22
+ };
23
+
24
+ /**
25
+ * Gets the local storage ID for the given client.
26
+ *
27
+ * @param client the client to get the local storage ID for.
28
+ *
29
+ * @return the local storage ID to use.
30
+ */
31
+ var _getStorageId = function(client) {
32
+ // TODO: include browser in ID to avoid sharing cookies between
33
+ // browsers (if this is undesirable)
34
+ // navigator.userAgent
35
+ return 'forge.http.' +
36
+ client.url.protocol.slice(0, -1) + '.' +
37
+ client.url.hostname + '.' +
38
+ client.url.port;
39
+ };
40
+
41
+ /**
42
+ * Loads persistent cookies from disk for the given client.
43
+ *
44
+ * @param client the client.
45
+ */
46
+ var _loadCookies = function(client) {
47
+ if(client.persistCookies) {
48
+ try {
49
+ var cookies = forge.util.getItem(
50
+ client.socketPool.flashApi,
51
+ _getStorageId(client), 'cookies');
52
+ client.cookies = cookies || {};
53
+ } catch(ex) {
54
+ // no flash storage available, just silently fail
55
+ // TODO: i assume we want this logged somewhere or
56
+ // should it actually generate an error
57
+ //forge.log.error(cat, ex);
58
+ }
59
+ }
60
+ };
61
+
62
+ /**
63
+ * Saves persistent cookies on disk for the given client.
64
+ *
65
+ * @param client the client.
66
+ */
67
+ var _saveCookies = function(client) {
68
+ if(client.persistCookies) {
69
+ try {
70
+ forge.util.setItem(
71
+ client.socketPool.flashApi,
72
+ _getStorageId(client), 'cookies', client.cookies);
73
+ } catch(ex) {
74
+ // no flash storage available, just silently fail
75
+ // TODO: i assume we want this logged somewhere or
76
+ // should it actually generate an error
77
+ //forge.log.error(cat, ex);
78
+ }
79
+ }
80
+
81
+ // FIXME: remove me
82
+ _loadCookies(client);
83
+ };
84
+
85
+ /**
86
+ * Clears persistent cookies on disk for the given client.
87
+ *
88
+ * @param client the client.
89
+ */
90
+ var _clearCookies = function(client) {
91
+ if(client.persistCookies) {
92
+ try {
93
+ // only thing stored is 'cookies', so clear whole storage
94
+ forge.util.clearItems(
95
+ client.socketPool.flashApi,
96
+ _getStorageId(client));
97
+ } catch(ex) {
98
+ // no flash storage available, just silently fail
99
+ // TODO: i assume we want this logged somewhere or
100
+ // should it actually generate an error
101
+ //forge.log.error(cat, ex);
102
+ }
103
+ }
104
+ };
105
+
106
+ /**
107
+ * Connects and sends a request.
108
+ *
109
+ * @param client the http client.
110
+ * @param socket the socket to use.
111
+ */
112
+ var _doRequest = function(client, socket) {
113
+ if(socket.isConnected()) {
114
+ // already connected
115
+ socket.options.request.connectTime = +new Date();
116
+ socket.connected({
117
+ type: 'connect',
118
+ id: socket.id
119
+ });
120
+ } else {
121
+ // connect
122
+ socket.options.request.connectTime = +new Date();
123
+ socket.connect({
124
+ host: client.url.hostname,
125
+ port: client.url.port,
126
+ policyPort: client.policyPort,
127
+ policyUrl: client.policyUrl
128
+ });
129
+ }
130
+ };
131
+
132
+ /**
133
+ * Handles the next request or marks a socket as idle.
134
+ *
135
+ * @param client the http client.
136
+ * @param socket the socket.
137
+ */
138
+ var _handleNextRequest = function(client, socket) {
139
+ // clear buffer
140
+ socket.buffer.clear();
141
+
142
+ // get pending request
143
+ var pending = null;
144
+ while(pending === null && client.requests.length > 0) {
145
+ pending = client.requests.shift();
146
+ if(pending.request.aborted) {
147
+ pending = null;
148
+ }
149
+ }
150
+
151
+ // mark socket idle if no pending requests
152
+ if(pending === null) {
153
+ if(socket.options !== null) {
154
+ socket.options = null;
155
+ }
156
+ client.idle.push(socket);
157
+ } else {
158
+ // handle pending request, allow 1 retry
159
+ socket.retries = 1;
160
+ socket.options = pending;
161
+ _doRequest(client, socket);
162
+ }
163
+ };
164
+
165
+ /**
166
+ * Sets up a socket for use with an http client.
167
+ *
168
+ * @param client the parent http client.
169
+ * @param socket the socket to set up.
170
+ * @param tlsOptions if the socket must use TLS, the TLS options.
171
+ */
172
+ var _initSocket = function(client, socket, tlsOptions) {
173
+ // no socket options yet
174
+ socket.options = null;
175
+
176
+ // set up handlers
177
+ socket.connected = function(e) {
178
+ // socket primed by caching TLS session, handle next request
179
+ if(socket.options === null) {
180
+ _handleNextRequest(client, socket);
181
+ } else {
182
+ // socket in use
183
+ var request = socket.options.request;
184
+ request.connectTime = +new Date() - request.connectTime;
185
+ e.socket = socket;
186
+ socket.options.connected(e);
187
+ if(request.aborted) {
188
+ socket.close();
189
+ } else {
190
+ var out = request.toString();
191
+ if(request.body) {
192
+ out += request.body;
193
+ }
194
+ request.time = +new Date();
195
+ socket.send(out);
196
+ request.time = +new Date() - request.time;
197
+ socket.options.response.time = +new Date();
198
+ socket.sending = true;
199
+ }
200
+ }
201
+ };
202
+ socket.closed = function(e) {
203
+ if(socket.sending) {
204
+ socket.sending = false;
205
+ if(socket.retries > 0) {
206
+ --socket.retries;
207
+ _doRequest(client, socket);
208
+ } else {
209
+ // error, closed during send
210
+ socket.error({
211
+ id: socket.id,
212
+ type: 'ioError',
213
+ message: 'Connection closed during send. Broken pipe.',
214
+ bytesAvailable: 0
215
+ });
216
+ }
217
+ } else {
218
+ // handle unspecified content-length transfer
219
+ var response = socket.options.response;
220
+ if(response.readBodyUntilClose) {
221
+ response.time = +new Date() - response.time;
222
+ response.bodyReceived = true;
223
+ socket.options.bodyReady({
224
+ request: socket.options.request,
225
+ response: response,
226
+ socket: socket
227
+ });
228
+ }
229
+ socket.options.closed(e);
230
+ _handleNextRequest(client, socket);
231
+ }
232
+ };
233
+ socket.data = function(e) {
234
+ socket.sending = false;
235
+ var request = socket.options.request;
236
+ if(request.aborted) {
237
+ socket.close();
238
+ } else {
239
+ // receive all bytes available
240
+ var response = socket.options.response;
241
+ var bytes = socket.receive(e.bytesAvailable);
242
+ if(bytes !== null) {
243
+ // receive header and then body
244
+ socket.buffer.putBytes(bytes);
245
+ if(!response.headerReceived) {
246
+ response.readHeader(socket.buffer);
247
+ if(response.headerReceived) {
248
+ socket.options.headerReady({
249
+ request: socket.options.request,
250
+ response: response,
251
+ socket: socket
252
+ });
253
+ }
254
+ }
255
+ if(response.headerReceived && !response.bodyReceived) {
256
+ response.readBody(socket.buffer);
257
+ }
258
+ if(response.bodyReceived) {
259
+ socket.options.bodyReady({
260
+ request: socket.options.request,
261
+ response: response,
262
+ socket: socket
263
+ });
264
+ // close connection if requested or by default on http/1.0
265
+ var value = response.getField('Connection') || '';
266
+ if(value.indexOf('close') != -1 ||
267
+ (response.version === 'HTTP/1.0' &&
268
+ response.getField('Keep-Alive') === null)) {
269
+ socket.close();
270
+ } else {
271
+ _handleNextRequest(client, socket);
272
+ }
273
+ }
274
+ }
275
+ }
276
+ };
277
+ socket.error = function(e) {
278
+ // do error callback, include request
279
+ socket.options.error({
280
+ type: e.type,
281
+ message: e.message,
282
+ request: socket.options.request,
283
+ response: socket.options.response,
284
+ socket: socket
285
+ });
286
+ socket.close();
287
+ };
288
+
289
+ // wrap socket for TLS
290
+ if(tlsOptions) {
291
+ socket = forge.tls.wrapSocket({
292
+ sessionId: null,
293
+ sessionCache: {},
294
+ caStore: tlsOptions.caStore,
295
+ cipherSuites: tlsOptions.cipherSuites,
296
+ socket: socket,
297
+ virtualHost: tlsOptions.virtualHost,
298
+ verify: tlsOptions.verify,
299
+ getCertificate: tlsOptions.getCertificate,
300
+ getPrivateKey: tlsOptions.getPrivateKey,
301
+ getSignature: tlsOptions.getSignature,
302
+ deflate: tlsOptions.deflate || null,
303
+ inflate: tlsOptions.inflate || null
304
+ });
305
+
306
+ socket.options = null;
307
+ socket.buffer = forge.util.createBuffer();
308
+ client.sockets.push(socket);
309
+ if(tlsOptions.prime) {
310
+ // prime socket by connecting and caching TLS session, will do
311
+ // next request from there
312
+ socket.connect({
313
+ host: client.url.hostname,
314
+ port: client.url.port,
315
+ policyPort: client.policyPort,
316
+ policyUrl: client.policyUrl
317
+ });
318
+ } else {
319
+ // do not prime socket, just add as idle
320
+ client.idle.push(socket);
321
+ }
322
+ } else {
323
+ // no need to prime non-TLS sockets
324
+ socket.buffer = forge.util.createBuffer();
325
+ client.sockets.push(socket);
326
+ client.idle.push(socket);
327
+ }
328
+ };
329
+
330
+ /**
331
+ * Checks to see if the given cookie has expired. If the cookie's max-age
332
+ * plus its created time is less than the time now, it has expired, unless
333
+ * its max-age is set to -1 which indicates it will never expire.
334
+ *
335
+ * @param cookie the cookie to check.
336
+ *
337
+ * @return true if it has expired, false if not.
338
+ */
339
+ var _hasCookieExpired = function(cookie) {
340
+ var rval = false;
341
+
342
+ if(cookie.maxAge !== -1) {
343
+ var now = _getUtcTime(new Date());
344
+ var expires = cookie.created + cookie.maxAge;
345
+ if(expires <= now) {
346
+ rval = true;
347
+ }
348
+ }
349
+
350
+ return rval;
351
+ };
352
+
353
+ /**
354
+ * Adds cookies in the given client to the given request.
355
+ *
356
+ * @param client the client.
357
+ * @param request the request.
358
+ */
359
+ var _writeCookies = function(client, request) {
360
+ var expired = [];
361
+ var url = client.url;
362
+ var cookies = client.cookies;
363
+ for(var name in cookies) {
364
+ // get cookie paths
365
+ var paths = cookies[name];
366
+ for(var p in paths) {
367
+ var cookie = paths[p];
368
+ if(_hasCookieExpired(cookie)) {
369
+ // store for clean up
370
+ expired.push(cookie);
371
+ } else if(request.path.indexOf(cookie.path) === 0) {
372
+ // path or path's ancestor must match cookie.path
373
+ request.addCookie(cookie);
374
+ }
375
+ }
376
+ }
377
+
378
+ // clean up expired cookies
379
+ for(var i = 0; i < expired.length; ++i) {
380
+ var cookie = expired[i];
381
+ client.removeCookie(cookie.name, cookie.path);
382
+ }
383
+ };
384
+
385
+ /**
386
+ * Gets cookies from the given response and adds the to the given client.
387
+ *
388
+ * @param client the client.
389
+ * @param response the response.
390
+ */
391
+ var _readCookies = function(client, response) {
392
+ var cookies = response.getCookies();
393
+ for(var i = 0; i < cookies.length; ++i) {
394
+ try {
395
+ client.setCookie(cookies[i]);
396
+ } catch(ex) {
397
+ // ignore failure to add other-domain, etc. cookies
398
+ }
399
+ }
400
+ };
401
+
402
+ /**
403
+ * Creates an http client that uses forge.net sockets as a backend and
404
+ * forge.tls for security.
405
+ *
406
+ * @param options:
407
+ * url: the url to connect to (scheme://host:port).
408
+ * socketPool: the flash socket pool to use.
409
+ * policyPort: the flash policy port to use (if other than the
410
+ * socket pool default), use 0 for flash default.
411
+ * policyUrl: the flash policy file URL to use (if provided will
412
+ * be used instead of a policy port).
413
+ * connections: number of connections to use to handle requests.
414
+ * caCerts: an array of certificates to trust for TLS, certs may
415
+ * be PEM-formatted or cert objects produced via forge.pki.
416
+ * cipherSuites: an optional array of cipher suites to use,
417
+ * see forge.tls.CipherSuites.
418
+ * virtualHost: the virtual server name to use in a TLS SNI
419
+ * extension, if not provided the url host will be used.
420
+ * verify: a custom TLS certificate verify callback to use.
421
+ * getCertificate: an optional callback used to get a client-side
422
+ * certificate (see forge.tls for details).
423
+ * getPrivateKey: an optional callback used to get a client-side
424
+ * private key (see forge.tls for details).
425
+ * getSignature: an optional callback used to get a client-side
426
+ * signature (see forge.tls for details).
427
+ * persistCookies: true to use persistent cookies via flash local
428
+ * storage, false to only keep cookies in javascript.
429
+ * primeTlsSockets: true to immediately connect TLS sockets on
430
+ * their creation so that they will cache TLS sessions for reuse.
431
+ *
432
+ * @return the client.
433
+ */
434
+ http.createClient = function(options) {
435
+ // create CA store to share with all TLS connections
436
+ var caStore = null;
437
+ if(options.caCerts) {
438
+ caStore = forge.pki.createCaStore(options.caCerts);
439
+ }
440
+
441
+ // get scheme, host, and port from url
442
+ options.url = (options.url ||
443
+ window.location.protocol + '//' + window.location.host);
444
+ var url;
445
+ try {
446
+ url = new URL(options.url);
447
+ } catch(e) {
448
+ var error = new Error('Invalid url.');
449
+ error.details = {url: options.url};
450
+ throw error;
451
+ }
452
+
453
+ // default to 1 connection
454
+ options.connections = options.connections || 1;
455
+
456
+ // create client
457
+ var sp = options.socketPool;
458
+ var client = {
459
+ // url
460
+ url: url,
461
+ // socket pool
462
+ socketPool: sp,
463
+ // the policy port to use
464
+ policyPort: options.policyPort,
465
+ // policy url to use
466
+ policyUrl: options.policyUrl,
467
+ // queue of requests to service
468
+ requests: [],
469
+ // all sockets
470
+ sockets: [],
471
+ // idle sockets
472
+ idle: [],
473
+ // whether or not the connections are secure
474
+ secure: (url.protocol === 'https:'),
475
+ // cookie jar (key'd off of name and then path, there is only 1 domain
476
+ // and one setting for secure per client so name+path is unique)
477
+ cookies: {},
478
+ // default to flash storage of cookies
479
+ persistCookies: (typeof(options.persistCookies) === 'undefined') ?
480
+ true : options.persistCookies
481
+ };
482
+
483
+ // load cookies from disk
484
+ _loadCookies(client);
485
+
486
+ /**
487
+ * A default certificate verify function that checks a certificate common
488
+ * name against the client's URL host.
489
+ *
490
+ * @param c the TLS connection.
491
+ * @param verified true if cert is verified, otherwise alert number.
492
+ * @param depth the chain depth.
493
+ * @param certs the cert chain.
494
+ *
495
+ * @return true if verified and the common name matches the host, error
496
+ * otherwise.
497
+ */
498
+ var _defaultCertificateVerify = function(c, verified, depth, certs) {
499
+ if(depth === 0 && verified === true) {
500
+ // compare common name to url host
501
+ var cn = certs[depth].subject.getField('CN');
502
+ if(cn === null || client.url.hostname !== cn.value) {
503
+ verified = {
504
+ message: 'Certificate common name does not match url host.'
505
+ };
506
+ }
507
+ }
508
+ return verified;
509
+ };
510
+
511
+ // determine if TLS is used
512
+ var tlsOptions = null;
513
+ if(client.secure) {
514
+ tlsOptions = {
515
+ caStore: caStore,
516
+ cipherSuites: options.cipherSuites || null,
517
+ virtualHost: options.virtualHost || url.hostname,
518
+ verify: options.verify || _defaultCertificateVerify,
519
+ getCertificate: options.getCertificate || null,
520
+ getPrivateKey: options.getPrivateKey || null,
521
+ getSignature: options.getSignature || null,
522
+ prime: options.primeTlsSockets || false
523
+ };
524
+
525
+ // if socket pool uses a flash api, then add deflate support to TLS
526
+ if(sp.flashApi !== null) {
527
+ tlsOptions.deflate = function(bytes) {
528
+ // strip 2 byte zlib header and 4 byte trailer
529
+ return forge.util.deflate(sp.flashApi, bytes, true);
530
+ };
531
+ tlsOptions.inflate = function(bytes) {
532
+ return forge.util.inflate(sp.flashApi, bytes, true);
533
+ };
534
+ }
535
+ }
536
+
537
+ // create and initialize sockets
538
+ for(var i = 0; i < options.connections; ++i) {
539
+ _initSocket(client, sp.createSocket(), tlsOptions);
540
+ }
541
+
542
+ /**
543
+ * Sends a request. A method 'abort' will be set on the request that
544
+ * can be called to attempt to abort the request.
545
+ *
546
+ * @param options:
547
+ * request: the request to send.
548
+ * connected: a callback for when the connection is open.
549
+ * closed: a callback for when the connection is closed.
550
+ * headerReady: a callback for when the response header arrives.
551
+ * bodyReady: a callback for when the response body arrives.
552
+ * error: a callback for if an error occurs.
553
+ */
554
+ client.send = function(options) {
555
+ // add host header if not set
556
+ if(options.request.getField('Host') === null) {
557
+ options.request.setField('Host', client.url.origin);
558
+ }
559
+
560
+ // set default dummy handlers
561
+ var opts = {};
562
+ opts.request = options.request;
563
+ opts.connected = options.connected || function() {};
564
+ opts.closed = options.close || function() {};
565
+ opts.headerReady = function(e) {
566
+ // read cookies
567
+ _readCookies(client, e.response);
568
+ if(options.headerReady) {
569
+ options.headerReady(e);
570
+ }
571
+ };
572
+ opts.bodyReady = options.bodyReady || function() {};
573
+ opts.error = options.error || function() {};
574
+
575
+ // create response
576
+ opts.response = http.createResponse();
577
+ opts.response.time = 0;
578
+ opts.response.flashApi = client.socketPool.flashApi;
579
+ opts.request.flashApi = client.socketPool.flashApi;
580
+
581
+ // create abort function
582
+ opts.request.abort = function() {
583
+ // set aborted, clear handlers
584
+ opts.request.aborted = true;
585
+ opts.connected = function() {};
586
+ opts.closed = function() {};
587
+ opts.headerReady = function() {};
588
+ opts.bodyReady = function() {};
589
+ opts.error = function() {};
590
+ };
591
+
592
+ // add cookies to request
593
+ _writeCookies(client, opts.request);
594
+
595
+ // queue request options if there are no idle sockets
596
+ if(client.idle.length === 0) {
597
+ client.requests.push(opts);
598
+ } else {
599
+ // use an idle socket, prefer an idle *connected* socket first
600
+ var socket = null;
601
+ var len = client.idle.length;
602
+ for(var i = 0; socket === null && i < len; ++i) {
603
+ socket = client.idle[i];
604
+ if(socket.isConnected()) {
605
+ client.idle.splice(i, 1);
606
+ } else {
607
+ socket = null;
608
+ }
609
+ }
610
+ // no connected socket available, get unconnected socket
611
+ if(socket === null) {
612
+ socket = client.idle.pop();
613
+ }
614
+ socket.options = opts;
615
+ _doRequest(client, socket);
616
+ }
617
+ };
618
+
619
+ /**
620
+ * Destroys this client.
621
+ */
622
+ client.destroy = function() {
623
+ // clear pending requests, close and destroy sockets
624
+ client.requests = [];
625
+ for(var i = 0; i < client.sockets.length; ++i) {
626
+ client.sockets[i].close();
627
+ client.sockets[i].destroy();
628
+ }
629
+ client.socketPool = null;
630
+ client.sockets = [];
631
+ client.idle = [];
632
+ };
633
+
634
+ /**
635
+ * Sets a cookie for use with all connections made by this client. Any
636
+ * cookie with the same name will be replaced. If the cookie's value
637
+ * is undefined, null, or the blank string, the cookie will be removed.
638
+ *
639
+ * If the cookie's domain doesn't match this client's url host or the
640
+ * cookie's secure flag doesn't match this client's url scheme, then
641
+ * setting the cookie will fail with an exception.
642
+ *
643
+ * @param cookie the cookie with parameters:
644
+ * name: the name of the cookie.
645
+ * value: the value of the cookie.
646
+ * comment: an optional comment string.
647
+ * maxAge: the age of the cookie in seconds relative to created time.
648
+ * secure: true if the cookie must be sent over a secure protocol.
649
+ * httpOnly: true to restrict access to the cookie from javascript
650
+ * (inaffective since the cookies are stored in javascript).
651
+ * path: the path for the cookie.
652
+ * domain: optional domain the cookie belongs to (must start with dot).
653
+ * version: optional version of the cookie.
654
+ * created: creation time, in UTC seconds, of the cookie.
655
+ */
656
+ client.setCookie = function(cookie) {
657
+ var rval;
658
+ if(typeof(cookie.name) !== 'undefined') {
659
+ if(cookie.value === null || typeof(cookie.value) === 'undefined' ||
660
+ cookie.value === '') {
661
+ // remove cookie
662
+ rval = client.removeCookie(cookie.name, cookie.path);
663
+ } else {
664
+ // set cookie defaults
665
+ cookie.comment = cookie.comment || '';
666
+ cookie.maxAge = cookie.maxAge || 0;
667
+ cookie.secure = (typeof(cookie.secure) === 'undefined') ?
668
+ true : cookie.secure;
669
+ cookie.httpOnly = cookie.httpOnly || true;
670
+ cookie.path = cookie.path || '/';
671
+ cookie.domain = cookie.domain || null;
672
+ cookie.version = cookie.version || null;
673
+ cookie.created = _getUtcTime(new Date());
674
+
675
+ // do secure check
676
+ if(cookie.secure !== client.secure) {
677
+ var error = new Error('Http client url scheme is incompatible ' +
678
+ 'with cookie secure flag.');
679
+ error.url = client.url;
680
+ error.cookie = cookie;
681
+ throw error;
682
+ }
683
+ // make sure url host is within cookie.domain
684
+ if(!http.withinCookieDomain(client.url, cookie)) {
685
+ var error = new Error('Http client url scheme is incompatible ' +
686
+ 'with cookie secure flag.');
687
+ error.url = client.url;
688
+ error.cookie = cookie;
689
+ throw error;
690
+ }
691
+
692
+ // add new cookie
693
+ if(!(cookie.name in client.cookies)) {
694
+ client.cookies[cookie.name] = {};
695
+ }
696
+ client.cookies[cookie.name][cookie.path] = cookie;
697
+ rval = true;
698
+
699
+ // save cookies
700
+ _saveCookies(client);
701
+ }
702
+ }
703
+
704
+ return rval;
705
+ };
706
+
707
+ /**
708
+ * Gets a cookie by its name.
709
+ *
710
+ * @param name the name of the cookie to retrieve.
711
+ * @param path an optional path for the cookie (if there are multiple
712
+ * cookies with the same name but different paths).
713
+ *
714
+ * @return the cookie or null if not found.
715
+ */
716
+ client.getCookie = function(name, path) {
717
+ var rval = null;
718
+ if(name in client.cookies) {
719
+ var paths = client.cookies[name];
720
+
721
+ // get path-specific cookie
722
+ if(path) {
723
+ if(path in paths) {
724
+ rval = paths[path];
725
+ }
726
+ } else {
727
+ // get first cookie
728
+ for(var p in paths) {
729
+ rval = paths[p];
730
+ break;
731
+ }
732
+ }
733
+ }
734
+ return rval;
735
+ };
736
+
737
+ /**
738
+ * Removes a cookie.
739
+ *
740
+ * @param name the name of the cookie to remove.
741
+ * @param path an optional path for the cookie (if there are multiple
742
+ * cookies with the same name but different paths).
743
+ *
744
+ * @return true if a cookie was removed, false if not.
745
+ */
746
+ client.removeCookie = function(name, path) {
747
+ var rval = false;
748
+ if(name in client.cookies) {
749
+ // delete the specific path
750
+ if(path) {
751
+ var paths = client.cookies[name];
752
+ if(path in paths) {
753
+ rval = true;
754
+ delete client.cookies[name][path];
755
+ // clean up entry if empty
756
+ var empty = true;
757
+ for(var i in client.cookies[name]) {
758
+ empty = false;
759
+ break;
760
+ }
761
+ if(empty) {
762
+ delete client.cookies[name];
763
+ }
764
+ }
765
+ } else {
766
+ // delete all cookies with the given name
767
+ rval = true;
768
+ delete client.cookies[name];
769
+ }
770
+ }
771
+ if(rval) {
772
+ // save cookies
773
+ _saveCookies(client);
774
+ }
775
+ return rval;
776
+ };
777
+
778
+ /**
779
+ * Clears all cookies stored in this client.
780
+ */
781
+ client.clearCookies = function() {
782
+ client.cookies = {};
783
+ _clearCookies(client);
784
+ };
785
+
786
+ if(forge.log) {
787
+ forge.log.debug('forge.http', 'created client', options);
788
+ }
789
+
790
+ return client;
791
+ };
792
+
793
+ /**
794
+ * Trims the whitespace off of the beginning and end of a string.
795
+ *
796
+ * @param str the string to trim.
797
+ *
798
+ * @return the trimmed string.
799
+ */
800
+ var _trimString = function(str) {
801
+ return str.replace(/^\s*/, '').replace(/\s*$/, '');
802
+ };
803
+
804
+ /**
805
+ * Creates an http header object.
806
+ *
807
+ * @return the http header object.
808
+ */
809
+ var _createHeader = function() {
810
+ var header = {
811
+ fields: {},
812
+ setField: function(name, value) {
813
+ // normalize field name, trim value
814
+ header.fields[_normalize(name)] = [_trimString('' + value)];
815
+ },
816
+ appendField: function(name, value) {
817
+ name = _normalize(name);
818
+ if(!(name in header.fields)) {
819
+ header.fields[name] = [];
820
+ }
821
+ header.fields[name].push(_trimString('' + value));
822
+ },
823
+ getField: function(name, index) {
824
+ var rval = null;
825
+ name = _normalize(name);
826
+ if(name in header.fields) {
827
+ index = index || 0;
828
+ rval = header.fields[name][index];
829
+ }
830
+ return rval;
831
+ }
832
+ };
833
+ return header;
834
+ };
835
+
836
+ /**
837
+ * Gets the time in utc seconds given a date.
838
+ *
839
+ * @param d the date to use.
840
+ *
841
+ * @return the time in utc seconds.
842
+ */
843
+ var _getUtcTime = function(d) {
844
+ var utc = +d + d.getTimezoneOffset() * 60000;
845
+ return Math.floor(+new Date() / 1000);
846
+ };
847
+
848
+ /**
849
+ * Creates an http request.
850
+ *
851
+ * @param options:
852
+ * version: the version.
853
+ * method: the method.
854
+ * path: the path.
855
+ * body: the body.
856
+ * headers: custom header fields to add,
857
+ * eg: [{'Content-Length': 0}].
858
+ *
859
+ * @return the http request.
860
+ */
861
+ http.createRequest = function(options) {
862
+ options = options || {};
863
+ var request = _createHeader();
864
+ request.version = options.version || 'HTTP/1.1';
865
+ request.method = options.method || null;
866
+ request.path = options.path || null;
867
+ request.body = options.body || null;
868
+ request.bodyDeflated = false;
869
+ request.flashApi = null;
870
+
871
+ // add custom headers
872
+ var headers = options.headers || [];
873
+ if(!forge.util.isArray(headers)) {
874
+ headers = [headers];
875
+ }
876
+ for(var i = 0; i < headers.length; ++i) {
877
+ for(var name in headers[i]) {
878
+ request.appendField(name, headers[i][name]);
879
+ }
880
+ }
881
+
882
+ /**
883
+ * Adds a cookie to the request 'Cookie' header.
884
+ *
885
+ * @param cookie a cookie to add.
886
+ */
887
+ request.addCookie = function(cookie) {
888
+ var value = '';
889
+ var field = request.getField('Cookie');
890
+ if(field !== null) {
891
+ // separate cookies by semi-colons
892
+ value = field + '; ';
893
+ }
894
+
895
+ // get current time in utc seconds
896
+ var now = _getUtcTime(new Date());
897
+
898
+ // output cookie name and value
899
+ value += cookie.name + '=' + cookie.value;
900
+ request.setField('Cookie', value);
901
+ };
902
+
903
+ /**
904
+ * Converts an http request into a string that can be sent as an
905
+ * HTTP request. Does not include any data.
906
+ *
907
+ * @return the string representation of the request.
908
+ */
909
+ request.toString = function() {
910
+ /* Sample request header:
911
+ GET /some/path/?query HTTP/1.1
912
+ Host: www.someurl.com
913
+ Connection: close
914
+ Accept-Encoding: deflate
915
+ Accept: image/gif, text/html
916
+ User-Agent: Mozilla 4.0
917
+ */
918
+
919
+ // set default headers
920
+ if(request.getField('User-Agent') === null) {
921
+ request.setField('User-Agent', 'forge.http 1.0');
922
+ }
923
+ if(request.getField('Accept') === null) {
924
+ request.setField('Accept', '*/*');
925
+ }
926
+ if(request.getField('Connection') === null) {
927
+ request.setField('Connection', 'keep-alive');
928
+ request.setField('Keep-Alive', '115');
929
+ }
930
+
931
+ // add Accept-Encoding if not specified
932
+ if(request.flashApi !== null &&
933
+ request.getField('Accept-Encoding') === null) {
934
+ request.setField('Accept-Encoding', 'deflate');
935
+ }
936
+
937
+ // if the body isn't null, deflate it if its larger than 100 bytes
938
+ if(request.flashApi !== null && request.body !== null &&
939
+ request.getField('Content-Encoding') === null &&
940
+ !request.bodyDeflated && request.body.length > 100) {
941
+ // use flash to compress data
942
+ request.body = forge.util.deflate(request.flashApi, request.body);
943
+ request.bodyDeflated = true;
944
+ request.setField('Content-Encoding', 'deflate');
945
+ request.setField('Content-Length', request.body.length);
946
+ } else if(request.body !== null) {
947
+ // set content length for body
948
+ request.setField('Content-Length', request.body.length);
949
+ }
950
+
951
+ // build start line
952
+ var rval =
953
+ request.method.toUpperCase() + ' ' + request.path + ' ' +
954
+ request.version + '\r\n';
955
+
956
+ // add each header
957
+ for(var name in request.fields) {
958
+ var fields = request.fields[name];
959
+ for(var i = 0; i < fields.length; ++i) {
960
+ rval += name + ': ' + fields[i] + '\r\n';
961
+ }
962
+ }
963
+ // final terminating CRLF
964
+ rval += '\r\n';
965
+
966
+ return rval;
967
+ };
968
+
969
+ return request;
970
+ };
971
+
972
+ /**
973
+ * Creates an empty http response header.
974
+ *
975
+ * @return the empty http response header.
976
+ */
977
+ http.createResponse = function() {
978
+ // private vars
979
+ var _first = true;
980
+ var _chunkSize = 0;
981
+ var _chunksFinished = false;
982
+
983
+ // create response
984
+ var response = _createHeader();
985
+ response.version = null;
986
+ response.code = 0;
987
+ response.message = null;
988
+ response.body = null;
989
+ response.headerReceived = false;
990
+ response.bodyReceived = false;
991
+ response.flashApi = null;
992
+
993
+ /**
994
+ * Reads a line that ends in CRLF from a byte buffer.
995
+ *
996
+ * @param b the byte buffer.
997
+ *
998
+ * @return the line or null if none was found.
999
+ */
1000
+ var _readCrlf = function(b) {
1001
+ var line = null;
1002
+ var i = b.data.indexOf('\r\n', b.read);
1003
+ if(i != -1) {
1004
+ // read line, skip CRLF
1005
+ line = b.getBytes(i - b.read);
1006
+ b.getBytes(2);
1007
+ }
1008
+ return line;
1009
+ };
1010
+
1011
+ /**
1012
+ * Parses a header field and appends it to the response.
1013
+ *
1014
+ * @param line the header field line.
1015
+ */
1016
+ var _parseHeader = function(line) {
1017
+ var tmp = line.indexOf(':');
1018
+ var name = line.substring(0, tmp++);
1019
+ response.appendField(
1020
+ name, (tmp < line.length) ? line.substring(tmp) : '');
1021
+ };
1022
+
1023
+ /**
1024
+ * Reads an http response header from a buffer of bytes.
1025
+ *
1026
+ * @param b the byte buffer to parse the header from.
1027
+ *
1028
+ * @return true if the whole header was read, false if not.
1029
+ */
1030
+ response.readHeader = function(b) {
1031
+ // read header lines (each ends in CRLF)
1032
+ var line = '';
1033
+ while(!response.headerReceived && line !== null) {
1034
+ line = _readCrlf(b);
1035
+ if(line !== null) {
1036
+ // parse first line
1037
+ if(_first) {
1038
+ _first = false;
1039
+ var tmp = line.split(' ');
1040
+ if(tmp.length >= 3) {
1041
+ response.version = tmp[0];
1042
+ response.code = parseInt(tmp[1], 10);
1043
+ response.message = tmp.slice(2).join(' ');
1044
+ } else {
1045
+ // invalid header
1046
+ var error = new Error('Invalid http response header.');
1047
+ error.details = {'line': line};
1048
+ throw error;
1049
+ }
1050
+ } else if(line.length === 0) {
1051
+ // handle final line, end of header
1052
+ response.headerReceived = true;
1053
+ } else {
1054
+ _parseHeader(line);
1055
+ }
1056
+ }
1057
+ }
1058
+
1059
+ return response.headerReceived;
1060
+ };
1061
+
1062
+ /**
1063
+ * Reads some chunked http response entity-body from the given buffer of
1064
+ * bytes.
1065
+ *
1066
+ * @param b the byte buffer to read from.
1067
+ *
1068
+ * @return true if the whole body was read, false if not.
1069
+ */
1070
+ var _readChunkedBody = function(b) {
1071
+ /* Chunked transfer-encoding sends data in a series of chunks,
1072
+ followed by a set of 0-N http trailers.
1073
+ The format is as follows:
1074
+
1075
+ chunk-size (in hex) CRLF
1076
+ chunk data (with "chunk-size" many bytes) CRLF
1077
+ ... (N many chunks)
1078
+ chunk-size (of 0 indicating the last chunk) CRLF
1079
+ N many http trailers followed by CRLF
1080
+ blank line + CRLF (terminates the trailers)
1081
+
1082
+ If there are no http trailers, then after the chunk-size of 0,
1083
+ there is still a single CRLF (indicating the blank line + CRLF
1084
+ that terminates the trailers). In other words, you always terminate
1085
+ the trailers with blank line + CRLF, regardless of 0-N trailers. */
1086
+
1087
+ /* From RFC-2616, section 3.6.1, here is the pseudo-code for
1088
+ implementing chunked transfer-encoding:
1089
+
1090
+ length := 0
1091
+ read chunk-size, chunk-extension (if any) and CRLF
1092
+ while (chunk-size > 0) {
1093
+ read chunk-data and CRLF
1094
+ append chunk-data to entity-body
1095
+ length := length + chunk-size
1096
+ read chunk-size and CRLF
1097
+ }
1098
+ read entity-header
1099
+ while (entity-header not empty) {
1100
+ append entity-header to existing header fields
1101
+ read entity-header
1102
+ }
1103
+ Content-Length := length
1104
+ Remove "chunked" from Transfer-Encoding
1105
+ */
1106
+
1107
+ var line = '';
1108
+ while(line !== null && b.length() > 0) {
1109
+ // if in the process of reading a chunk
1110
+ if(_chunkSize > 0) {
1111
+ // if there are not enough bytes to read chunk and its
1112
+ // trailing CRLF, we must wait for more data to be received
1113
+ if(_chunkSize + 2 > b.length()) {
1114
+ break;
1115
+ }
1116
+
1117
+ // read chunk data, skip CRLF
1118
+ response.body += b.getBytes(_chunkSize);
1119
+ b.getBytes(2);
1120
+ _chunkSize = 0;
1121
+ } else if(!_chunksFinished) {
1122
+ // more chunks, read next chunk-size line
1123
+ line = _readCrlf(b);
1124
+ if(line !== null) {
1125
+ // parse chunk-size (ignore any chunk extension)
1126
+ _chunkSize = parseInt(line.split(';', 1)[0], 16);
1127
+ _chunksFinished = (_chunkSize === 0);
1128
+ }
1129
+ } else {
1130
+ // chunks finished, read next trailer
1131
+ line = _readCrlf(b);
1132
+ while(line !== null) {
1133
+ if(line.length > 0) {
1134
+ // parse trailer
1135
+ _parseHeader(line);
1136
+ // read next trailer
1137
+ line = _readCrlf(b);
1138
+ } else {
1139
+ // body received
1140
+ response.bodyReceived = true;
1141
+ line = null;
1142
+ }
1143
+ }
1144
+ }
1145
+ }
1146
+
1147
+ return response.bodyReceived;
1148
+ };
1149
+
1150
+ /**
1151
+ * Reads an http response body from a buffer of bytes.
1152
+ *
1153
+ * @param b the byte buffer to read from.
1154
+ *
1155
+ * @return true if the whole body was read, false if not.
1156
+ */
1157
+ response.readBody = function(b) {
1158
+ var contentLength = response.getField('Content-Length');
1159
+ var transferEncoding = response.getField('Transfer-Encoding');
1160
+ if(contentLength !== null) {
1161
+ contentLength = parseInt(contentLength);
1162
+ }
1163
+
1164
+ // read specified length
1165
+ if(contentLength !== null && contentLength >= 0) {
1166
+ response.body = response.body || '';
1167
+ response.body += b.getBytes(contentLength);
1168
+ response.bodyReceived = (response.body.length === contentLength);
1169
+ } else if(transferEncoding !== null) {
1170
+ // read chunked encoding
1171
+ if(transferEncoding.indexOf('chunked') != -1) {
1172
+ response.body = response.body || '';
1173
+ _readChunkedBody(b);
1174
+ } else {
1175
+ var error = new Error('Unknown Transfer-Encoding.');
1176
+ error.details = {'transferEncoding': transferEncoding};
1177
+ throw error;
1178
+ }
1179
+ } else if((contentLength !== null && contentLength < 0) ||
1180
+ (contentLength === null &&
1181
+ response.getField('Content-Type') !== null)) {
1182
+ // read all data in the buffer
1183
+ response.body = response.body || '';
1184
+ response.body += b.getBytes();
1185
+ response.readBodyUntilClose = true;
1186
+ } else {
1187
+ // no body
1188
+ response.body = null;
1189
+ response.bodyReceived = true;
1190
+ }
1191
+
1192
+ if(response.bodyReceived) {
1193
+ response.time = +new Date() - response.time;
1194
+ }
1195
+
1196
+ if(response.flashApi !== null &&
1197
+ response.bodyReceived && response.body !== null &&
1198
+ response.getField('Content-Encoding') === 'deflate') {
1199
+ // inflate using flash api
1200
+ response.body = forge.util.inflate(
1201
+ response.flashApi, response.body);
1202
+ }
1203
+
1204
+ return response.bodyReceived;
1205
+ };
1206
+
1207
+ /**
1208
+ * Parses an array of cookies from the 'Set-Cookie' field, if present.
1209
+ *
1210
+ * @return the array of cookies.
1211
+ */
1212
+ response.getCookies = function() {
1213
+ var rval = [];
1214
+
1215
+ // get Set-Cookie field
1216
+ if('Set-Cookie' in response.fields) {
1217
+ var field = response.fields['Set-Cookie'];
1218
+
1219
+ // get current local time in seconds
1220
+ var now = +new Date() / 1000;
1221
+
1222
+ // regex for parsing 'name1=value1; name2=value2; name3'
1223
+ var regex = /\s*([^=]*)=?([^;]*)(;|$)/g;
1224
+
1225
+ // examples:
1226
+ // Set-Cookie: cookie1_name=cookie1_value; max-age=0; path=/
1227
+ // Set-Cookie: c2=v2; expires=Thu, 21-Aug-2008 23:47:25 GMT; path=/
1228
+ for(var i = 0; i < field.length; ++i) {
1229
+ var fv = field[i];
1230
+ var m;
1231
+ regex.lastIndex = 0;
1232
+ var first = true;
1233
+ var cookie = {};
1234
+ do {
1235
+ m = regex.exec(fv);
1236
+ if(m !== null) {
1237
+ var name = _trimString(m[1]);
1238
+ var value = _trimString(m[2]);
1239
+
1240
+ // cookie_name=value
1241
+ if(first) {
1242
+ cookie.name = name;
1243
+ cookie.value = value;
1244
+ first = false;
1245
+ } else {
1246
+ // property_name=value
1247
+ name = name.toLowerCase();
1248
+ switch(name) {
1249
+ case 'expires':
1250
+ // replace hyphens w/spaces so date will parse
1251
+ value = value.replace(/-/g, ' ');
1252
+ var secs = Date.parse(value) / 1000;
1253
+ cookie.maxAge = Math.max(0, secs - now);
1254
+ break;
1255
+ case 'max-age':
1256
+ cookie.maxAge = parseInt(value, 10);
1257
+ break;
1258
+ case 'secure':
1259
+ cookie.secure = true;
1260
+ break;
1261
+ case 'httponly':
1262
+ cookie.httpOnly = true;
1263
+ break;
1264
+ default:
1265
+ if(name !== '') {
1266
+ cookie[name] = value;
1267
+ }
1268
+ }
1269
+ }
1270
+ }
1271
+ } while(m !== null && m[0] !== '');
1272
+ rval.push(cookie);
1273
+ }
1274
+ }
1275
+
1276
+ return rval;
1277
+ };
1278
+
1279
+ /**
1280
+ * Converts an http response into a string that can be sent as an
1281
+ * HTTP response. Does not include any data.
1282
+ *
1283
+ * @return the string representation of the response.
1284
+ */
1285
+ response.toString = function() {
1286
+ /* Sample response header:
1287
+ HTTP/1.0 200 OK
1288
+ Host: www.someurl.com
1289
+ Connection: close
1290
+ */
1291
+
1292
+ // build start line
1293
+ var rval =
1294
+ response.version + ' ' + response.code + ' ' + response.message + '\r\n';
1295
+
1296
+ // add each header
1297
+ for(var name in response.fields) {
1298
+ var fields = response.fields[name];
1299
+ for(var i = 0; i < fields.length; ++i) {
1300
+ rval += name + ': ' + fields[i] + '\r\n';
1301
+ }
1302
+ }
1303
+ // final terminating CRLF
1304
+ rval += '\r\n';
1305
+
1306
+ return rval;
1307
+ };
1308
+
1309
+ return response;
1310
+ };
1311
+
1312
+ /**
1313
+ * Returns true if the given url is within the given cookie's domain.
1314
+ *
1315
+ * @param url the url to check.
1316
+ * @param cookie the cookie or cookie domain to check.
1317
+ */
1318
+ http.withinCookieDomain = function(url, cookie) {
1319
+ var rval = false;
1320
+
1321
+ // cookie may be null, a cookie object, or a domain string
1322
+ var domain = (cookie === null || typeof cookie === 'string') ?
1323
+ cookie : cookie.domain;
1324
+
1325
+ // any domain will do
1326
+ if(domain === null) {
1327
+ rval = true;
1328
+ } else if(domain.charAt(0) === '.') {
1329
+ // ensure domain starts with a '.'
1330
+ // parse URL as necessary
1331
+ if(typeof url === 'string') {
1332
+ url = new URL(url);
1333
+ }
1334
+
1335
+ // add '.' to front of URL hostname to match against domain
1336
+ var host = '.' + url.hostname;
1337
+
1338
+ // if the host ends with domain then it falls within it
1339
+ var idx = host.lastIndexOf(domain);
1340
+ if(idx !== -1 && (idx + domain.length === host.length)) {
1341
+ rval = true;
1342
+ }
1343
+ }
1344
+
1345
+ return rval;
1346
+ };