@zowe/cics-for-zowe-cli 5.0.0 → 5.0.4

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 (573) hide show
  1. package/lib/{cli/-strings- → -strings-}/en.d.ts +10 -0
  2. package/lib/{cli/-strings- → -strings-}/en.js +10 -10
  3. package/lib/-strings-/en.js.map +1 -0
  4. package/lib/{cli/-strings- → -strings-}/es.d.ts +10 -0
  5. package/lib/{cli/-strings- → -strings-}/es.js +10 -10
  6. package/lib/-strings-/es.js.map +1 -0
  7. package/lib/CicsBaseHandler.d.ts +38 -0
  8. package/lib/CicsBaseHandler.js +38 -0
  9. package/lib/CicsBaseHandler.js.map +1 -0
  10. package/lib/CicsSession.d.ts +71 -0
  11. package/lib/CicsSession.js +161 -0
  12. package/lib/CicsSession.js.map +1 -0
  13. package/lib/PluginConstants.d.ts +24 -0
  14. package/lib/PluginConstants.js +29 -0
  15. package/lib/PluginConstants.js.map +1 -0
  16. package/lib/add-to-list/AddToList.definition.d.ts +16 -0
  17. package/lib/{cli/add-to-list → add-to-list}/AddToList.definition.js +10 -10
  18. package/lib/add-to-list/AddToList.definition.js.map +1 -0
  19. package/lib/add-to-list/csdGroup/CSDGroup.definition.d.ts +12 -0
  20. package/lib/{cli/add-to-list → add-to-list}/csdGroup/CSDGroup.definition.js +10 -10
  21. package/lib/add-to-list/csdGroup/CSDGroup.definition.js.map +1 -0
  22. package/lib/{cli/add-to-list → add-to-list}/csdGroup/CSDGroup.handler.d.ts +11 -1
  23. package/lib/add-to-list/csdGroup/CSDGroup.handler.js +43 -0
  24. package/lib/add-to-list/csdGroup/CSDGroup.handler.js.map +1 -0
  25. package/lib/define/Define.definition.d.ts +16 -0
  26. package/lib/{cli/define → define}/Define.definition.js +10 -10
  27. package/lib/define/Define.definition.js.map +1 -0
  28. package/lib/define/program/Program.definition.d.ts +12 -0
  29. package/lib/{cli/define → define}/program/Program.definition.js +10 -10
  30. package/lib/define/program/Program.definition.js.map +1 -0
  31. package/lib/{cli/define → define}/program/Program.handler.d.ts +11 -1
  32. package/lib/define/program/Program.handler.js +43 -0
  33. package/lib/define/program/Program.handler.js.map +1 -0
  34. package/lib/define/transaction/Transaction.definition.d.ts +12 -0
  35. package/lib/{cli/define → define}/transaction/Transaction.definition.js +10 -10
  36. package/lib/define/transaction/Transaction.definition.js.map +1 -0
  37. package/lib/{cli/define → define}/transaction/Transaction.handler.d.ts +11 -1
  38. package/lib/define/transaction/Transaction.handler.js +44 -0
  39. package/lib/define/transaction/Transaction.handler.js.map +1 -0
  40. package/lib/define/urimap-client/UrimapClient.definition.d.ts +12 -0
  41. package/lib/{cli/define → define}/urimap-client/UrimapClient.definition.js +10 -10
  42. package/lib/define/urimap-client/UrimapClient.definition.js.map +1 -0
  43. package/lib/{cli/define → define}/urimap-client/UrimapClient.handler.d.ts +11 -1
  44. package/lib/define/urimap-client/UrimapClient.handler.js +50 -0
  45. package/lib/define/urimap-client/UrimapClient.handler.js.map +1 -0
  46. package/lib/define/urimap-pipeline/UrimapPipeline.definition.d.ts +12 -0
  47. package/lib/{cli/define → define}/urimap-pipeline/UrimapPipeline.definition.js +10 -10
  48. package/lib/define/urimap-pipeline/UrimapPipeline.definition.js.map +1 -0
  49. package/lib/{cli/define → define}/urimap-pipeline/UrimapPipeline.handler.d.ts +11 -1
  50. package/lib/define/urimap-pipeline/UrimapPipeline.handler.js +52 -0
  51. package/lib/define/urimap-pipeline/UrimapPipeline.handler.js.map +1 -0
  52. package/lib/define/urimap-server/UrimapServer.definition.d.ts +12 -0
  53. package/lib/{cli/define → define}/urimap-server/UrimapServer.definition.js +10 -10
  54. package/lib/define/urimap-server/UrimapServer.definition.js.map +1 -0
  55. package/lib/{cli/define → define}/urimap-server/UrimapServer.handler.d.ts +11 -1
  56. package/lib/define/urimap-server/UrimapServer.handler.js +50 -0
  57. package/lib/define/urimap-server/UrimapServer.handler.js.map +1 -0
  58. package/lib/define/webservice/Webservice.definition.d.ts +12 -0
  59. package/lib/{cli/define → define}/webservice/Webservice.definition.js +10 -10
  60. package/lib/define/webservice/Webservice.definition.js.map +1 -0
  61. package/lib/{cli/define → define}/webservice/Webservice.handler.d.ts +11 -1
  62. package/lib/define/webservice/Webservice.handler.js +60 -0
  63. package/lib/define/webservice/Webservice.handler.js.map +1 -0
  64. package/lib/delete/Delete.definition.d.ts +16 -0
  65. package/lib/{cli/delete → delete}/Delete.definition.js +10 -10
  66. package/lib/delete/Delete.definition.js.map +1 -0
  67. package/lib/delete/program/Program.definition.d.ts +12 -0
  68. package/lib/{cli/delete → delete}/program/Program.definition.js +10 -10
  69. package/lib/delete/program/Program.definition.js.map +1 -0
  70. package/lib/{cli/delete → delete}/program/Program.handler.d.ts +11 -1
  71. package/lib/delete/program/Program.handler.js +43 -0
  72. package/lib/delete/program/Program.handler.js.map +1 -0
  73. package/lib/delete/transaction/Transaction.definition.d.ts +12 -0
  74. package/lib/{cli/delete → delete}/transaction/Transaction.definition.js +10 -10
  75. package/lib/delete/transaction/Transaction.definition.js.map +1 -0
  76. package/lib/{cli/delete → delete}/transaction/Transaction.handler.d.ts +11 -1
  77. package/lib/delete/transaction/Transaction.handler.js +43 -0
  78. package/lib/delete/transaction/Transaction.handler.js.map +1 -0
  79. package/lib/delete/urimap/Urimap.definition.d.ts +12 -0
  80. package/lib/{cli/delete → delete}/urimap/Urimap.definition.js +10 -10
  81. package/lib/delete/urimap/Urimap.definition.js.map +1 -0
  82. package/lib/{cli/delete → delete}/urimap/Urimap.handler.d.ts +11 -1
  83. package/lib/delete/urimap/Urimap.handler.js +42 -0
  84. package/lib/delete/urimap/Urimap.handler.js.map +1 -0
  85. package/lib/delete/webservice/Webservice.definition.d.ts +12 -0
  86. package/lib/{cli/delete → delete}/webservice/Webservice.definition.js +10 -10
  87. package/lib/delete/webservice/Webservice.definition.js.map +1 -0
  88. package/lib/{cli/delete → delete}/webservice/Webservice.handler.d.ts +11 -1
  89. package/lib/delete/webservice/Webservice.handler.js +42 -0
  90. package/lib/delete/webservice/Webservice.handler.js.map +1 -0
  91. package/lib/disable/Disable.definition.d.ts +16 -0
  92. package/lib/{cli/disable → disable}/Disable.definition.js +10 -10
  93. package/lib/disable/Disable.definition.js.map +1 -0
  94. package/lib/disable/urimap/Urimap.definition.d.ts +12 -0
  95. package/lib/{cli/disable → disable}/urimap/Urimap.definition.js +10 -10
  96. package/lib/disable/urimap/Urimap.definition.js.map +1 -0
  97. package/lib/{cli/disable → disable}/urimap/Urimap.handler.d.ts +11 -1
  98. package/lib/disable/urimap/Urimap.handler.js +41 -0
  99. package/lib/disable/urimap/Urimap.handler.js.map +1 -0
  100. package/lib/discard/Discard.definition.d.ts +16 -0
  101. package/lib/{cli/discard → discard}/Discard.definition.js +10 -10
  102. package/lib/discard/Discard.definition.js.map +1 -0
  103. package/lib/discard/program/Program.definition.d.ts +12 -0
  104. package/lib/{cli/discard → discard}/program/Program.definition.js +10 -10
  105. package/lib/discard/program/Program.definition.js.map +1 -0
  106. package/lib/{cli/discard → discard}/program/Program.handler.d.ts +11 -1
  107. package/lib/discard/program/Program.handler.js +42 -0
  108. package/lib/discard/program/Program.handler.js.map +1 -0
  109. package/lib/discard/transaction/Transaction.definition.d.ts +12 -0
  110. package/lib/{cli/discard → discard}/transaction/Transaction.definition.js +10 -10
  111. package/lib/discard/transaction/Transaction.definition.js.map +1 -0
  112. package/lib/{cli/discard → discard}/transaction/Transaction.handler.d.ts +11 -1
  113. package/lib/discard/transaction/Transaction.handler.js +42 -0
  114. package/lib/discard/transaction/Transaction.handler.js.map +1 -0
  115. package/lib/discard/urimap/Urimap.definition.d.ts +12 -0
  116. package/lib/{cli/discard → discard}/urimap/Urimap.definition.js +10 -10
  117. package/lib/discard/urimap/Urimap.definition.js.map +1 -0
  118. package/lib/{cli/discard → discard}/urimap/Urimap.handler.d.ts +11 -1
  119. package/lib/discard/urimap/Urimap.handler.js +41 -0
  120. package/lib/discard/urimap/Urimap.handler.js.map +1 -0
  121. package/lib/enable/Enable.definition.d.ts +16 -0
  122. package/lib/{cli/enable → enable}/Enable.definition.js +10 -10
  123. package/lib/enable/Enable.definition.js.map +1 -0
  124. package/lib/enable/urimap/Urimap.definition.d.ts +12 -0
  125. package/lib/{cli/enable → enable}/urimap/Urimap.definition.js +10 -10
  126. package/lib/enable/urimap/Urimap.definition.js.map +1 -0
  127. package/lib/{cli/enable → enable}/urimap/Urimap.handler.d.ts +11 -1
  128. package/lib/enable/urimap/Urimap.handler.js +41 -0
  129. package/lib/enable/urimap/Urimap.handler.js.map +1 -0
  130. package/lib/get/Get.definition.d.ts +16 -0
  131. package/lib/{cli/get → get}/Get.definition.js +10 -10
  132. package/lib/get/Get.definition.js.map +1 -0
  133. package/lib/get/resource/Resource.definition.d.ts +12 -0
  134. package/lib/{cli/get → get}/resource/Resource.definition.js +10 -10
  135. package/lib/get/resource/Resource.definition.js.map +1 -0
  136. package/lib/{cli/get → get}/resource/Resource.handler.d.ts +11 -1
  137. package/lib/get/resource/Resource.handler.js +46 -0
  138. package/lib/get/resource/Resource.handler.js.map +1 -0
  139. package/lib/healthCheck.handler.d.ts +10 -0
  140. package/lib/healthCheck.handler.js +10 -10
  141. package/lib/healthCheck.handler.js.map +1 -1
  142. package/lib/imperative.d.ts +10 -0
  143. package/lib/imperative.js +13 -13
  144. package/lib/imperative.js.map +1 -1
  145. package/lib/index.d.ts +11 -1
  146. package/lib/index.js +17 -13
  147. package/lib/index.js.map +1 -1
  148. package/lib/install/Install.definition.d.ts +16 -0
  149. package/lib/{cli/install → install}/Install.definition.js +10 -10
  150. package/lib/install/Install.definition.js.map +1 -0
  151. package/lib/install/program/Program.definition.d.ts +12 -0
  152. package/lib/{cli/install → install}/program/Program.definition.js +10 -10
  153. package/lib/install/program/Program.definition.js.map +1 -0
  154. package/lib/{cli/install → install}/program/Program.handler.d.ts +11 -1
  155. package/lib/install/program/Program.handler.js +43 -0
  156. package/lib/install/program/Program.handler.js.map +1 -0
  157. package/lib/install/transaction/Transaction.definition.d.ts +12 -0
  158. package/lib/{cli/install → install}/transaction/Transaction.definition.js +10 -10
  159. package/lib/install/transaction/Transaction.definition.js.map +1 -0
  160. package/lib/{cli/install → install}/transaction/Transaction.handler.d.ts +11 -1
  161. package/lib/install/transaction/Transaction.handler.js +43 -0
  162. package/lib/install/transaction/Transaction.handler.js.map +1 -0
  163. package/lib/install/urimap/Urimap.definition.d.ts +12 -0
  164. package/lib/{cli/install → install}/urimap/Urimap.definition.js +10 -10
  165. package/lib/install/urimap/Urimap.definition.js.map +1 -0
  166. package/lib/{cli/install → install}/urimap/Urimap.handler.d.ts +11 -1
  167. package/lib/install/urimap/Urimap.handler.js +42 -0
  168. package/lib/install/urimap/Urimap.handler.js.map +1 -0
  169. package/lib/refresh/Refresh.definition.d.ts +16 -0
  170. package/lib/{cli/refresh → refresh}/Refresh.definition.js +10 -10
  171. package/lib/refresh/Refresh.definition.js.map +1 -0
  172. package/lib/refresh/program/Program.definition.d.ts +12 -0
  173. package/lib/{cli/refresh → refresh}/program/Program.definition.js +10 -10
  174. package/lib/refresh/program/Program.definition.js.map +1 -0
  175. package/lib/{cli/refresh → refresh}/program/Program.handler.d.ts +11 -1
  176. package/lib/refresh/program/Program.handler.js +42 -0
  177. package/lib/refresh/program/Program.handler.js.map +1 -0
  178. package/lib/remove-from-list/RemoveFromList.definition.d.ts +16 -0
  179. package/lib/{cli/remove-from-list → remove-from-list}/RemoveFromList.definition.js +10 -10
  180. package/lib/remove-from-list/RemoveFromList.definition.js.map +1 -0
  181. package/lib/remove-from-list/csdGroup/CSDGroup.definition.d.ts +12 -0
  182. package/lib/{cli/remove-from-list → remove-from-list}/csdGroup/CSDGroup.definition.js +10 -10
  183. package/lib/remove-from-list/csdGroup/CSDGroup.definition.js.map +1 -0
  184. package/lib/{cli/remove-from-list → remove-from-list}/csdGroup/CSDGroup.handler.d.ts +11 -1
  185. package/lib/remove-from-list/csdGroup/CSDGroup.handler.js +43 -0
  186. package/lib/remove-from-list/csdGroup/CSDGroup.handler.js.map +1 -0
  187. package/node_modules/@zowe/cics-for-zowe-sdk/LICENSE +277 -0
  188. package/node_modules/@zowe/cics-for-zowe-sdk/README.md +161 -0
  189. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/CicsCmci.constants.d.ts +16 -0
  190. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/CicsCmci.constants.js +83 -0
  191. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/CicsCmci.constants.js.map +1 -0
  192. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/CicsCmci.messages.d.ts +17 -0
  193. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/CicsCmci.messages.js +22 -0
  194. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/CicsCmci.messages.js.map +1 -0
  195. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/index.d.ts +12 -0
  196. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/index.js +29 -0
  197. package/node_modules/@zowe/cics-for-zowe-sdk/lib/constants/index.js.map +1 -0
  198. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICMCIApiResponse.d.ts +33 -0
  199. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICMCIApiResponse.js +13 -0
  200. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICMCIApiResponse.js.map +1 -0
  201. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/doc/ICMCIResponseResultSummary.d.ts +10 -0
  202. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICMCIResponseResultSummary.js +13 -0
  203. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICMCIResponseResultSummary.js.map +1 -0
  204. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICSDGroupParms.d.ts +30 -0
  205. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICSDGroupParms.js +13 -0
  206. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ICSDGroupParms.js.map +1 -0
  207. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IProgramParms.d.ts +30 -0
  208. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IProgramParms.js +13 -0
  209. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IProgramParms.js.map +1 -0
  210. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IResourceParms.d.ts +41 -0
  211. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IResourceParms.js +13 -0
  212. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IResourceParms.js.map +1 -0
  213. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ITransactionParms.d.ts +35 -0
  214. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ITransactionParms.js +13 -0
  215. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/ITransactionParms.js.map +1 -0
  216. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IURIMapParms.d.ts +89 -0
  217. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IURIMapParms.js +13 -0
  218. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IURIMapParms.js.map +1 -0
  219. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IWebServiceParms.d.ts +55 -0
  220. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IWebServiceParms.js +13 -0
  221. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/IWebServiceParms.js.map +1 -0
  222. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/index.d.ts +18 -0
  223. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/index.js +35 -0
  224. package/node_modules/@zowe/cics-for-zowe-sdk/lib/doc/index.js.map +1 -0
  225. package/node_modules/@zowe/cics-for-zowe-sdk/lib/index.d.ts +14 -0
  226. package/node_modules/@zowe/cics-for-zowe-sdk/lib/index.js +31 -0
  227. package/node_modules/@zowe/cics-for-zowe-sdk/lib/index.js.map +1 -0
  228. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/add-to-list/AddToList.d.ts +10 -0
  229. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/add-to-list/AddToList.js +54 -0
  230. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/add-to-list/AddToList.js.map +1 -0
  231. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/add-to-list/index.d.ts +11 -0
  232. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/add-to-list/index.js +28 -0
  233. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/add-to-list/index.js.map +1 -0
  234. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/define/Define.d.ts +10 -0
  235. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/define/Define.js +290 -0
  236. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/define/Define.js.map +1 -0
  237. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/define/index.d.ts +11 -0
  238. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/define/index.js +28 -0
  239. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/define/index.js.map +1 -0
  240. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/delete/Delete.d.ts +10 -0
  241. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/delete/Delete.js +107 -0
  242. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/delete/Delete.js.map +1 -0
  243. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/delete/index.d.ts +11 -0
  244. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/delete/index.js +28 -0
  245. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/delete/index.js.map +1 -0
  246. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/disable/Disable.d.ts +10 -0
  247. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/disable/Disable.js +50 -0
  248. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/disable/Disable.js.map +1 -0
  249. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/disable/index.d.ts +11 -0
  250. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/disable/index.js +28 -0
  251. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/disable/index.js.map +1 -0
  252. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/discard/Discard.d.ts +10 -0
  253. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/discard/Discard.js +70 -0
  254. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/discard/Discard.js.map +1 -0
  255. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/discard/index.d.ts +11 -0
  256. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/discard/index.js +28 -0
  257. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/discard/index.js.map +1 -0
  258. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/enable/Enable.d.ts +10 -0
  259. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/enable/Enable.js +50 -0
  260. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/enable/Enable.js.map +1 -0
  261. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/enable/index.d.ts +11 -0
  262. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/enable/index.js +28 -0
  263. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/enable/index.js.map +1 -0
  264. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/get/Get.d.ts +10 -0
  265. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/get/Get.js +45 -0
  266. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/get/Get.js.map +1 -0
  267. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/get/index.d.ts +11 -0
  268. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/get/index.js +28 -0
  269. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/get/index.js.map +1 -0
  270. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/index.d.ts +20 -0
  271. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/index.js +37 -0
  272. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/index.js.map +1 -0
  273. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/install/Install.d.ts +10 -0
  274. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/install/Install.js +113 -0
  275. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/install/Install.js.map +1 -0
  276. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/install/index.d.ts +11 -0
  277. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/install/index.js +28 -0
  278. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/install/index.js.map +1 -0
  279. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/remove-from-list/RemoveFromList.d.ts +10 -0
  280. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/remove-from-list/RemoveFromList.js +39 -0
  281. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/remove-from-list/RemoveFromList.js.map +1 -0
  282. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/remove-from-list/index.d.ts +11 -0
  283. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/remove-from-list/index.js +28 -0
  284. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/remove-from-list/index.js.map +1 -0
  285. package/{lib/api → node_modules/@zowe/cics-for-zowe-sdk/lib}/methods/set/Set.d.ts +10 -0
  286. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/set/Set.js +47 -0
  287. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/set/Set.js.map +1 -0
  288. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/set/index.d.ts +11 -0
  289. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/set/index.js +28 -0
  290. package/node_modules/@zowe/cics-for-zowe-sdk/lib/methods/set/index.js.map +1 -0
  291. package/node_modules/@zowe/cics-for-zowe-sdk/lib/rest/CicsCmciRestClient.d.ts +128 -0
  292. package/node_modules/@zowe/cics-for-zowe-sdk/lib/rest/CicsCmciRestClient.js +221 -0
  293. package/node_modules/@zowe/cics-for-zowe-sdk/lib/rest/CicsCmciRestClient.js.map +1 -0
  294. package/node_modules/@zowe/cics-for-zowe-sdk/lib/rest/index.d.ts +11 -0
  295. package/node_modules/@zowe/cics-for-zowe-sdk/lib/rest/index.js +28 -0
  296. package/node_modules/@zowe/cics-for-zowe-sdk/lib/rest/index.js.map +1 -0
  297. package/node_modules/@zowe/cics-for-zowe-sdk/package.json +51 -0
  298. package/node_modules/sax/LICENSE +41 -0
  299. package/node_modules/sax/README.md +225 -0
  300. package/node_modules/sax/lib/sax.js +1574 -0
  301. package/node_modules/sax/package.json +29 -0
  302. package/node_modules/xml2js/LICENSE +19 -0
  303. package/node_modules/xml2js/README.md +507 -0
  304. package/node_modules/xml2js/lib/bom.js +12 -0
  305. package/node_modules/xml2js/lib/builder.js +127 -0
  306. package/node_modules/xml2js/lib/defaults.js +72 -0
  307. package/node_modules/xml2js/lib/parser.js +385 -0
  308. package/node_modules/xml2js/lib/processors.js +34 -0
  309. package/node_modules/xml2js/lib/xml2js.js +39 -0
  310. package/node_modules/xml2js/package.json +93 -0
  311. package/node_modules/xmlbuilder/CHANGELOG.md +470 -0
  312. package/node_modules/xmlbuilder/LICENSE +21 -0
  313. package/node_modules/xmlbuilder/README.md +86 -0
  314. package/node_modules/xmlbuilder/appveyor.yml +20 -0
  315. package/node_modules/xmlbuilder/lib/Derivation.js +10 -0
  316. package/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
  317. package/node_modules/xmlbuilder/lib/NodeType.js +23 -0
  318. package/node_modules/xmlbuilder/lib/OperationType.js +11 -0
  319. package/node_modules/xmlbuilder/lib/Utility.js +83 -0
  320. package/node_modules/xmlbuilder/lib/WriterState.js +10 -0
  321. package/node_modules/xmlbuilder/lib/XMLAttribute.js +108 -0
  322. package/node_modules/xmlbuilder/lib/XMLCData.js +36 -0
  323. package/node_modules/xmlbuilder/lib/XMLCharacterData.js +79 -0
  324. package/node_modules/xmlbuilder/lib/XMLComment.js +36 -0
  325. package/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +64 -0
  326. package/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +16 -0
  327. package/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +32 -0
  328. package/node_modules/xmlbuilder/lib/XMLDOMStringList.js +28 -0
  329. package/node_modules/xmlbuilder/lib/XMLDTDAttList.js +55 -0
  330. package/node_modules/xmlbuilder/lib/XMLDTDElement.js +38 -0
  331. package/node_modules/xmlbuilder/lib/XMLDTDEntity.js +97 -0
  332. package/node_modules/xmlbuilder/lib/XMLDTDNotation.js +52 -0
  333. package/node_modules/xmlbuilder/lib/XMLDeclaration.js +43 -0
  334. package/node_modules/xmlbuilder/lib/XMLDocType.js +186 -0
  335. package/node_modules/xmlbuilder/lib/XMLDocument.js +242 -0
  336. package/node_modules/xmlbuilder/lib/XMLDocumentCB.js +528 -0
  337. package/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +24 -0
  338. package/node_modules/xmlbuilder/lib/XMLDummy.js +31 -0
  339. package/node_modules/xmlbuilder/lib/XMLElement.js +298 -0
  340. package/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +58 -0
  341. package/node_modules/xmlbuilder/lib/XMLNode.js +785 -0
  342. package/node_modules/xmlbuilder/lib/XMLNodeFilter.js +48 -0
  343. package/node_modules/xmlbuilder/lib/XMLNodeList.js +28 -0
  344. package/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +49 -0
  345. package/node_modules/xmlbuilder/lib/XMLRaw.js +35 -0
  346. package/node_modules/xmlbuilder/lib/XMLStreamWriter.js +176 -0
  347. package/node_modules/xmlbuilder/lib/XMLStringWriter.js +35 -0
  348. package/node_modules/xmlbuilder/lib/XMLStringifier.js +240 -0
  349. package/node_modules/xmlbuilder/lib/XMLText.js +69 -0
  350. package/node_modules/xmlbuilder/lib/XMLTypeInfo.js +21 -0
  351. package/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +16 -0
  352. package/node_modules/xmlbuilder/lib/XMLWriterBase.js +428 -0
  353. package/node_modules/xmlbuilder/lib/index.js +65 -0
  354. package/node_modules/xmlbuilder/package.json +39 -0
  355. package/node_modules/xmlbuilder/typings/index.d.ts +153 -0
  356. package/package.json +19 -94
  357. package/lib/api/constants/CicsCmci.constants.d.ts +0 -6
  358. package/lib/api/constants/CicsCmci.constants.js +0 -83
  359. package/lib/api/constants/CicsCmci.constants.js.map +0 -1
  360. package/lib/api/constants/CicsCmci.messages.d.ts +0 -7
  361. package/lib/api/constants/CicsCmci.messages.js +0 -22
  362. package/lib/api/constants/CicsCmci.messages.js.map +0 -1
  363. package/lib/api/constants/PluginConstants.d.ts +0 -14
  364. package/lib/api/constants/PluginConstants.js +0 -29
  365. package/lib/api/constants/PluginConstants.js.map +0 -1
  366. package/lib/api/constants/index.d.ts +0 -2
  367. package/lib/api/constants/index.js +0 -25
  368. package/lib/api/constants/index.js.map +0 -1
  369. package/lib/api/doc/ICMCIApiResponse.d.ts +0 -23
  370. package/lib/api/doc/ICMCIApiResponse.js +0 -13
  371. package/lib/api/doc/ICMCIApiResponse.js.map +0 -1
  372. package/lib/api/doc/ICMCIResponseResultSummary.js +0 -13
  373. package/lib/api/doc/ICMCIResponseResultSummary.js.map +0 -1
  374. package/lib/api/doc/ICSDGroupParms.d.ts +0 -20
  375. package/lib/api/doc/ICSDGroupParms.js +0 -13
  376. package/lib/api/doc/ICSDGroupParms.js.map +0 -1
  377. package/lib/api/doc/IProgramParms.d.ts +0 -20
  378. package/lib/api/doc/IProgramParms.js +0 -13
  379. package/lib/api/doc/IProgramParms.js.map +0 -1
  380. package/lib/api/doc/IResourceParms.d.ts +0 -31
  381. package/lib/api/doc/IResourceParms.js +0 -13
  382. package/lib/api/doc/IResourceParms.js.map +0 -1
  383. package/lib/api/doc/ITransactionParms.d.ts +0 -25
  384. package/lib/api/doc/ITransactionParms.js +0 -13
  385. package/lib/api/doc/ITransactionParms.js.map +0 -1
  386. package/lib/api/doc/IURIMapParms.d.ts +0 -79
  387. package/lib/api/doc/IURIMapParms.js +0 -13
  388. package/lib/api/doc/IURIMapParms.js.map +0 -1
  389. package/lib/api/doc/IWebServiceParms.d.ts +0 -45
  390. package/lib/api/doc/IWebServiceParms.js +0 -13
  391. package/lib/api/doc/IWebServiceParms.js.map +0 -1
  392. package/lib/api/doc/index.d.ts +0 -8
  393. package/lib/api/doc/index.js +0 -31
  394. package/lib/api/doc/index.js.map +0 -1
  395. package/lib/api/index.d.ts +0 -4
  396. package/lib/api/index.js +0 -27
  397. package/lib/api/index.js.map +0 -1
  398. package/lib/api/methods/add-to-list/AddToList.js +0 -65
  399. package/lib/api/methods/add-to-list/AddToList.js.map +0 -1
  400. package/lib/api/methods/add-to-list/index.d.ts +0 -1
  401. package/lib/api/methods/add-to-list/index.js +0 -24
  402. package/lib/api/methods/add-to-list/index.js.map +0 -1
  403. package/lib/api/methods/define/Define.js +0 -311
  404. package/lib/api/methods/define/Define.js.map +0 -1
  405. package/lib/api/methods/define/index.d.ts +0 -1
  406. package/lib/api/methods/define/index.js +0 -24
  407. package/lib/api/methods/define/index.js.map +0 -1
  408. package/lib/api/methods/delete/Delete.js +0 -124
  409. package/lib/api/methods/delete/Delete.js.map +0 -1
  410. package/lib/api/methods/delete/index.d.ts +0 -1
  411. package/lib/api/methods/delete/index.js +0 -24
  412. package/lib/api/methods/delete/index.js.map +0 -1
  413. package/lib/api/methods/disable/Disable.js +0 -61
  414. package/lib/api/methods/disable/Disable.js.map +0 -1
  415. package/lib/api/methods/disable/index.d.ts +0 -1
  416. package/lib/api/methods/disable/index.js +0 -24
  417. package/lib/api/methods/disable/index.js.map +0 -1
  418. package/lib/api/methods/discard/Discard.js +0 -85
  419. package/lib/api/methods/discard/Discard.js.map +0 -1
  420. package/lib/api/methods/discard/index.d.ts +0 -1
  421. package/lib/api/methods/discard/index.js +0 -24
  422. package/lib/api/methods/discard/index.js.map +0 -1
  423. package/lib/api/methods/enable/Enable.js +0 -61
  424. package/lib/api/methods/enable/Enable.js.map +0 -1
  425. package/lib/api/methods/enable/index.d.ts +0 -1
  426. package/lib/api/methods/enable/index.js +0 -24
  427. package/lib/api/methods/enable/index.js.map +0 -1
  428. package/lib/api/methods/get/Get.js +0 -56
  429. package/lib/api/methods/get/Get.js.map +0 -1
  430. package/lib/api/methods/get/index.d.ts +0 -1
  431. package/lib/api/methods/get/index.js +0 -24
  432. package/lib/api/methods/get/index.js.map +0 -1
  433. package/lib/api/methods/index.d.ts +0 -10
  434. package/lib/api/methods/index.js +0 -33
  435. package/lib/api/methods/index.js.map +0 -1
  436. package/lib/api/methods/install/Install.js +0 -128
  437. package/lib/api/methods/install/Install.js.map +0 -1
  438. package/lib/api/methods/install/index.d.ts +0 -1
  439. package/lib/api/methods/install/index.js +0 -24
  440. package/lib/api/methods/install/index.js.map +0 -1
  441. package/lib/api/methods/remove-from-list/RemoveFromList.js +0 -50
  442. package/lib/api/methods/remove-from-list/RemoveFromList.js.map +0 -1
  443. package/lib/api/methods/remove-from-list/index.d.ts +0 -1
  444. package/lib/api/methods/remove-from-list/index.js +0 -24
  445. package/lib/api/methods/remove-from-list/index.js.map +0 -1
  446. package/lib/api/methods/set/Set.js +0 -58
  447. package/lib/api/methods/set/Set.js.map +0 -1
  448. package/lib/api/methods/set/index.d.ts +0 -1
  449. package/lib/api/methods/set/index.js +0 -24
  450. package/lib/api/methods/set/index.js.map +0 -1
  451. package/lib/api/rest/CicsCmciRestClient.d.ts +0 -118
  452. package/lib/api/rest/CicsCmciRestClient.js +0 -230
  453. package/lib/api/rest/CicsCmciRestClient.js.map +0 -1
  454. package/lib/api/rest/index.d.ts +0 -1
  455. package/lib/api/rest/index.js +0 -24
  456. package/lib/api/rest/index.js.map +0 -1
  457. package/lib/cli/-strings-/en.js.map +0 -1
  458. package/lib/cli/-strings-/es.js.map +0 -1
  459. package/lib/cli/CicsBaseHandler.d.ts +0 -28
  460. package/lib/cli/CicsBaseHandler.js +0 -49
  461. package/lib/cli/CicsBaseHandler.js.map +0 -1
  462. package/lib/cli/CicsSession.d.ts +0 -61
  463. package/lib/cli/CicsSession.js +0 -172
  464. package/lib/cli/CicsSession.js.map +0 -1
  465. package/lib/cli/add-to-list/AddToList.definition.d.ts +0 -6
  466. package/lib/cli/add-to-list/AddToList.definition.js.map +0 -1
  467. package/lib/cli/add-to-list/csdGroup/CSDGroup.definition.d.ts +0 -2
  468. package/lib/cli/add-to-list/csdGroup/CSDGroup.definition.js.map +0 -1
  469. package/lib/cli/add-to-list/csdGroup/CSDGroup.handler.js +0 -54
  470. package/lib/cli/add-to-list/csdGroup/CSDGroup.handler.js.map +0 -1
  471. package/lib/cli/define/Define.definition.d.ts +0 -6
  472. package/lib/cli/define/Define.definition.js.map +0 -1
  473. package/lib/cli/define/program/Program.definition.d.ts +0 -2
  474. package/lib/cli/define/program/Program.definition.js.map +0 -1
  475. package/lib/cli/define/program/Program.handler.js +0 -54
  476. package/lib/cli/define/program/Program.handler.js.map +0 -1
  477. package/lib/cli/define/transaction/Transaction.definition.d.ts +0 -2
  478. package/lib/cli/define/transaction/Transaction.definition.js.map +0 -1
  479. package/lib/cli/define/transaction/Transaction.handler.js +0 -55
  480. package/lib/cli/define/transaction/Transaction.handler.js.map +0 -1
  481. package/lib/cli/define/urimap-client/UrimapClient.definition.d.ts +0 -2
  482. package/lib/cli/define/urimap-client/UrimapClient.definition.js.map +0 -1
  483. package/lib/cli/define/urimap-client/UrimapClient.handler.js +0 -61
  484. package/lib/cli/define/urimap-client/UrimapClient.handler.js.map +0 -1
  485. package/lib/cli/define/urimap-pipeline/UrimapPipeline.definition.d.ts +0 -2
  486. package/lib/cli/define/urimap-pipeline/UrimapPipeline.definition.js.map +0 -1
  487. package/lib/cli/define/urimap-pipeline/UrimapPipeline.handler.js +0 -63
  488. package/lib/cli/define/urimap-pipeline/UrimapPipeline.handler.js.map +0 -1
  489. package/lib/cli/define/urimap-server/UrimapServer.definition.d.ts +0 -2
  490. package/lib/cli/define/urimap-server/UrimapServer.definition.js.map +0 -1
  491. package/lib/cli/define/urimap-server/UrimapServer.handler.js +0 -61
  492. package/lib/cli/define/urimap-server/UrimapServer.handler.js.map +0 -1
  493. package/lib/cli/define/webservice/Webservice.definition.d.ts +0 -2
  494. package/lib/cli/define/webservice/Webservice.definition.js.map +0 -1
  495. package/lib/cli/define/webservice/Webservice.handler.js +0 -71
  496. package/lib/cli/define/webservice/Webservice.handler.js.map +0 -1
  497. package/lib/cli/delete/Delete.definition.d.ts +0 -6
  498. package/lib/cli/delete/Delete.definition.js.map +0 -1
  499. package/lib/cli/delete/program/Program.definition.d.ts +0 -2
  500. package/lib/cli/delete/program/Program.definition.js.map +0 -1
  501. package/lib/cli/delete/program/Program.handler.js +0 -54
  502. package/lib/cli/delete/program/Program.handler.js.map +0 -1
  503. package/lib/cli/delete/transaction/Transaction.definition.d.ts +0 -2
  504. package/lib/cli/delete/transaction/Transaction.definition.js.map +0 -1
  505. package/lib/cli/delete/transaction/Transaction.handler.js +0 -54
  506. package/lib/cli/delete/transaction/Transaction.handler.js.map +0 -1
  507. package/lib/cli/delete/urimap/Urimap.definition.d.ts +0 -2
  508. package/lib/cli/delete/urimap/Urimap.definition.js.map +0 -1
  509. package/lib/cli/delete/urimap/Urimap.handler.js +0 -53
  510. package/lib/cli/delete/urimap/Urimap.handler.js.map +0 -1
  511. package/lib/cli/delete/webservice/Webservice.definition.d.ts +0 -2
  512. package/lib/cli/delete/webservice/Webservice.definition.js.map +0 -1
  513. package/lib/cli/delete/webservice/Webservice.handler.js +0 -53
  514. package/lib/cli/delete/webservice/Webservice.handler.js.map +0 -1
  515. package/lib/cli/disable/Disable.definition.d.ts +0 -6
  516. package/lib/cli/disable/Disable.definition.js.map +0 -1
  517. package/lib/cli/disable/urimap/Urimap.definition.d.ts +0 -2
  518. package/lib/cli/disable/urimap/Urimap.definition.js.map +0 -1
  519. package/lib/cli/disable/urimap/Urimap.handler.js +0 -52
  520. package/lib/cli/disable/urimap/Urimap.handler.js.map +0 -1
  521. package/lib/cli/discard/Discard.definition.d.ts +0 -6
  522. package/lib/cli/discard/Discard.definition.js.map +0 -1
  523. package/lib/cli/discard/program/Program.definition.d.ts +0 -2
  524. package/lib/cli/discard/program/Program.definition.js.map +0 -1
  525. package/lib/cli/discard/program/Program.handler.js +0 -53
  526. package/lib/cli/discard/program/Program.handler.js.map +0 -1
  527. package/lib/cli/discard/transaction/Transaction.definition.d.ts +0 -2
  528. package/lib/cli/discard/transaction/Transaction.definition.js.map +0 -1
  529. package/lib/cli/discard/transaction/Transaction.handler.js +0 -53
  530. package/lib/cli/discard/transaction/Transaction.handler.js.map +0 -1
  531. package/lib/cli/discard/urimap/Urimap.definition.d.ts +0 -2
  532. package/lib/cli/discard/urimap/Urimap.definition.js.map +0 -1
  533. package/lib/cli/discard/urimap/Urimap.handler.js +0 -52
  534. package/lib/cli/discard/urimap/Urimap.handler.js.map +0 -1
  535. package/lib/cli/enable/Enable.definition.d.ts +0 -6
  536. package/lib/cli/enable/Enable.definition.js.map +0 -1
  537. package/lib/cli/enable/urimap/Urimap.definition.d.ts +0 -2
  538. package/lib/cli/enable/urimap/Urimap.definition.js.map +0 -1
  539. package/lib/cli/enable/urimap/Urimap.handler.js +0 -52
  540. package/lib/cli/enable/urimap/Urimap.handler.js.map +0 -1
  541. package/lib/cli/get/Get.definition.d.ts +0 -6
  542. package/lib/cli/get/Get.definition.js.map +0 -1
  543. package/lib/cli/get/resource/Resource.definition.d.ts +0 -2
  544. package/lib/cli/get/resource/Resource.definition.js.map +0 -1
  545. package/lib/cli/get/resource/Resource.handler.js +0 -57
  546. package/lib/cli/get/resource/Resource.handler.js.map +0 -1
  547. package/lib/cli/install/Install.definition.d.ts +0 -6
  548. package/lib/cli/install/Install.definition.js.map +0 -1
  549. package/lib/cli/install/program/Program.definition.d.ts +0 -2
  550. package/lib/cli/install/program/Program.definition.js.map +0 -1
  551. package/lib/cli/install/program/Program.handler.js +0 -54
  552. package/lib/cli/install/program/Program.handler.js.map +0 -1
  553. package/lib/cli/install/transaction/Transaction.definition.d.ts +0 -2
  554. package/lib/cli/install/transaction/Transaction.definition.js.map +0 -1
  555. package/lib/cli/install/transaction/Transaction.handler.js +0 -54
  556. package/lib/cli/install/transaction/Transaction.handler.js.map +0 -1
  557. package/lib/cli/install/urimap/Urimap.definition.d.ts +0 -2
  558. package/lib/cli/install/urimap/Urimap.definition.js.map +0 -1
  559. package/lib/cli/install/urimap/Urimap.handler.js +0 -53
  560. package/lib/cli/install/urimap/Urimap.handler.js.map +0 -1
  561. package/lib/cli/refresh/Refresh.definition.d.ts +0 -6
  562. package/lib/cli/refresh/Refresh.definition.js.map +0 -1
  563. package/lib/cli/refresh/program/Program.definition.d.ts +0 -2
  564. package/lib/cli/refresh/program/Program.definition.js.map +0 -1
  565. package/lib/cli/refresh/program/Program.handler.js +0 -53
  566. package/lib/cli/refresh/program/Program.handler.js.map +0 -1
  567. package/lib/cli/remove-from-list/RemoveFromList.definition.d.ts +0 -6
  568. package/lib/cli/remove-from-list/RemoveFromList.definition.js.map +0 -1
  569. package/lib/cli/remove-from-list/csdGroup/CSDGroup.definition.d.ts +0 -2
  570. package/lib/cli/remove-from-list/csdGroup/CSDGroup.definition.js.map +0 -1
  571. package/lib/cli/remove-from-list/csdGroup/CSDGroup.handler.js +0 -54
  572. package/lib/cli/remove-from-list/csdGroup/CSDGroup.handler.js.map +0 -1
  573. package/npm-shrinkwrap.json +0 -93
@@ -0,0 +1,1574 @@
1
+ ;(function (sax) { // wrapper for non-node envs
2
+ sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
3
+ sax.SAXParser = SAXParser
4
+ sax.SAXStream = SAXStream
5
+ sax.createStream = createStream
6
+
7
+ // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
8
+ // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
9
+ // since that's the earliest that a buffer overrun could occur. This way, checks are
10
+ // as rare as required, but as often as necessary to ensure never crossing this bound.
11
+ // Furthermore, buffers are only tested at most once per write(), so passing a very
12
+ // large string into write() might have undesirable effects, but this is manageable by
13
+ // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme
14
+ // edge case, result in creating at most one complete copy of the string passed in.
15
+ // Set to Infinity to have unlimited buffers.
16
+ sax.MAX_BUFFER_LENGTH = 64 * 1024
17
+
18
+ var buffers = [
19
+ 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',
20
+ 'procInstName', 'procInstBody', 'entity', 'attribName',
21
+ 'attribValue', 'cdata', 'script'
22
+ ]
23
+
24
+ sax.EVENTS = [
25
+ 'text',
26
+ 'processinginstruction',
27
+ 'sgmldeclaration',
28
+ 'doctype',
29
+ 'comment',
30
+ 'opentagstart',
31
+ 'attribute',
32
+ 'opentag',
33
+ 'closetag',
34
+ 'opencdata',
35
+ 'cdata',
36
+ 'closecdata',
37
+ 'error',
38
+ 'end',
39
+ 'ready',
40
+ 'script',
41
+ 'opennamespace',
42
+ 'closenamespace'
43
+ ]
44
+
45
+ function SAXParser (strict, opt) {
46
+ if (!(this instanceof SAXParser)) {
47
+ return new SAXParser(strict, opt)
48
+ }
49
+
50
+ var parser = this
51
+ clearBuffers(parser)
52
+ parser.q = parser.c = ''
53
+ parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH
54
+ parser.opt = opt || {}
55
+ parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags
56
+ parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'
57
+ parser.tags = []
58
+ parser.closed = parser.closedRoot = parser.sawRoot = false
59
+ parser.tag = parser.error = null
60
+ parser.strict = !!strict
61
+ parser.noscript = !!(strict || parser.opt.noscript)
62
+ parser.state = S.BEGIN
63
+ parser.strictEntities = parser.opt.strictEntities
64
+ parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)
65
+ parser.attribList = []
66
+
67
+ // namespaces form a prototype chain.
68
+ // it always points at the current tag,
69
+ // which protos to its parent tag.
70
+ if (parser.opt.xmlns) {
71
+ parser.ns = Object.create(rootNS)
72
+ }
73
+
74
+ // mostly just for error reporting
75
+ parser.trackPosition = parser.opt.position !== false
76
+ if (parser.trackPosition) {
77
+ parser.position = parser.line = parser.column = 0
78
+ }
79
+ emit(parser, 'onready')
80
+ }
81
+
82
+ if (!Object.create) {
83
+ Object.create = function (o) {
84
+ function F () {}
85
+ F.prototype = o
86
+ var newf = new F()
87
+ return newf
88
+ }
89
+ }
90
+
91
+ if (!Object.keys) {
92
+ Object.keys = function (o) {
93
+ var a = []
94
+ for (var i in o) if (o.hasOwnProperty(i)) a.push(i)
95
+ return a
96
+ }
97
+ }
98
+
99
+ function checkBufferLength (parser) {
100
+ var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)
101
+ var maxActual = 0
102
+ for (var i = 0, l = buffers.length; i < l; i++) {
103
+ var len = parser[buffers[i]].length
104
+ if (len > maxAllowed) {
105
+ // Text/cdata nodes can get big, and since they're buffered,
106
+ // we can get here under normal conditions.
107
+ // Avoid issues by emitting the text node now,
108
+ // so at least it won't get any bigger.
109
+ switch (buffers[i]) {
110
+ case 'textNode':
111
+ closeText(parser)
112
+ break
113
+
114
+ case 'cdata':
115
+ emitNode(parser, 'oncdata', parser.cdata)
116
+ parser.cdata = ''
117
+ break
118
+
119
+ case 'script':
120
+ emitNode(parser, 'onscript', parser.script)
121
+ parser.script = ''
122
+ break
123
+
124
+ default:
125
+ error(parser, 'Max buffer length exceeded: ' + buffers[i])
126
+ }
127
+ }
128
+ maxActual = Math.max(maxActual, len)
129
+ }
130
+ // schedule the next check for the earliest possible buffer overrun.
131
+ var m = sax.MAX_BUFFER_LENGTH - maxActual
132
+ parser.bufferCheckPosition = m + parser.position
133
+ }
134
+
135
+ function clearBuffers (parser) {
136
+ for (var i = 0, l = buffers.length; i < l; i++) {
137
+ parser[buffers[i]] = ''
138
+ }
139
+ }
140
+
141
+ function flushBuffers (parser) {
142
+ closeText(parser)
143
+ if (parser.cdata !== '') {
144
+ emitNode(parser, 'oncdata', parser.cdata)
145
+ parser.cdata = ''
146
+ }
147
+ if (parser.script !== '') {
148
+ emitNode(parser, 'onscript', parser.script)
149
+ parser.script = ''
150
+ }
151
+ }
152
+
153
+ SAXParser.prototype = {
154
+ end: function () { end(this) },
155
+ write: write,
156
+ resume: function () { this.error = null; return this },
157
+ close: function () { return this.write(null) },
158
+ flush: function () { flushBuffers(this) }
159
+ }
160
+
161
+ var Stream
162
+ try {
163
+ Stream = require('stream').Stream
164
+ } catch (ex) {
165
+ Stream = function () {}
166
+ }
167
+ if (!Stream) Stream = function () {}
168
+
169
+ var streamWraps = sax.EVENTS.filter(function (ev) {
170
+ return ev !== 'error' && ev !== 'end'
171
+ })
172
+
173
+ function createStream (strict, opt) {
174
+ return new SAXStream(strict, opt)
175
+ }
176
+
177
+ function SAXStream (strict, opt) {
178
+ if (!(this instanceof SAXStream)) {
179
+ return new SAXStream(strict, opt)
180
+ }
181
+
182
+ Stream.apply(this)
183
+
184
+ this._parser = new SAXParser(strict, opt)
185
+ this.writable = true
186
+ this.readable = true
187
+
188
+ var me = this
189
+
190
+ this._parser.onend = function () {
191
+ me.emit('end')
192
+ }
193
+
194
+ this._parser.onerror = function (er) {
195
+ me.emit('error', er)
196
+
197
+ // if didn't throw, then means error was handled.
198
+ // go ahead and clear error, so we can write again.
199
+ me._parser.error = null
200
+ }
201
+
202
+ this._decoder = null
203
+
204
+ streamWraps.forEach(function (ev) {
205
+ Object.defineProperty(me, 'on' + ev, {
206
+ get: function () {
207
+ return me._parser['on' + ev]
208
+ },
209
+ set: function (h) {
210
+ if (!h) {
211
+ me.removeAllListeners(ev)
212
+ me._parser['on' + ev] = h
213
+ return h
214
+ }
215
+ me.on(ev, h)
216
+ },
217
+ enumerable: true,
218
+ configurable: false
219
+ })
220
+ })
221
+ }
222
+
223
+ SAXStream.prototype = Object.create(Stream.prototype, {
224
+ constructor: {
225
+ value: SAXStream
226
+ }
227
+ })
228
+
229
+ SAXStream.prototype.write = function (data) {
230
+ if (typeof Buffer === 'function' &&
231
+ typeof Buffer.isBuffer === 'function' &&
232
+ Buffer.isBuffer(data)) {
233
+ if (!this._decoder) {
234
+ var SD = require('string_decoder').StringDecoder
235
+ this._decoder = new SD('utf8')
236
+ }
237
+ data = this._decoder.write(data)
238
+ }
239
+
240
+ this._parser.write(data.toString())
241
+ this.emit('data', data)
242
+ return true
243
+ }
244
+
245
+ SAXStream.prototype.end = function (chunk) {
246
+ if (chunk && chunk.length) {
247
+ this.write(chunk)
248
+ }
249
+ this._parser.end()
250
+ return true
251
+ }
252
+
253
+ SAXStream.prototype.on = function (ev, handler) {
254
+ var me = this
255
+ if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {
256
+ me._parser['on' + ev] = function () {
257
+ var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)
258
+ args.splice(0, 0, ev)
259
+ me.emit.apply(me, args)
260
+ }
261
+ }
262
+
263
+ return Stream.prototype.on.call(me, ev, handler)
264
+ }
265
+
266
+ // this really needs to be replaced with character classes.
267
+ // XML allows all manner of ridiculous numbers and digits.
268
+ var CDATA = '[CDATA['
269
+ var DOCTYPE = 'DOCTYPE'
270
+ var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'
271
+ var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'
272
+ var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }
273
+
274
+ // http://www.w3.org/TR/REC-xml/#NT-NameStartChar
275
+ // This implementation works on strings, a single character at a time
276
+ // as such, it cannot ever support astral-plane characters (10000-EFFFF)
277
+ // without a significant breaking change to either this parser, or the
278
+ // JavaScript language. Implementation of an emoji-capable xml parser
279
+ // is left as an exercise for the reader.
280
+ var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
281
+
282
+ var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
283
+
284
+ var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
285
+ var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
286
+
287
+ function isWhitespace (c) {
288
+ return c === ' ' || c === '\n' || c === '\r' || c === '\t'
289
+ }
290
+
291
+ function isQuote (c) {
292
+ return c === '"' || c === '\''
293
+ }
294
+
295
+ function isAttribEnd (c) {
296
+ return c === '>' || isWhitespace(c)
297
+ }
298
+
299
+ function isMatch (regex, c) {
300
+ return regex.test(c)
301
+ }
302
+
303
+ function notMatch (regex, c) {
304
+ return !isMatch(regex, c)
305
+ }
306
+
307
+ var S = 0
308
+ sax.STATE = {
309
+ BEGIN: S++, // leading byte order mark or whitespace
310
+ BEGIN_WHITESPACE: S++, // leading whitespace
311
+ TEXT: S++, // general stuff
312
+ TEXT_ENTITY: S++, // &amp and such.
313
+ OPEN_WAKA: S++, // <
314
+ SGML_DECL: S++, // <!BLARG
315
+ SGML_DECL_QUOTED: S++, // <!BLARG foo "bar
316
+ DOCTYPE: S++, // <!DOCTYPE
317
+ DOCTYPE_QUOTED: S++, // <!DOCTYPE "//blah
318
+ DOCTYPE_DTD: S++, // <!DOCTYPE "//blah" [ ...
319
+ DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE "//blah" [ "foo
320
+ COMMENT_STARTING: S++, // <!-
321
+ COMMENT: S++, // <!--
322
+ COMMENT_ENDING: S++, // <!-- blah -
323
+ COMMENT_ENDED: S++, // <!-- blah --
324
+ CDATA: S++, // <![CDATA[ something
325
+ CDATA_ENDING: S++, // ]
326
+ CDATA_ENDING_2: S++, // ]]
327
+ PROC_INST: S++, // <?hi
328
+ PROC_INST_BODY: S++, // <?hi there
329
+ PROC_INST_ENDING: S++, // <?hi "there" ?
330
+ OPEN_TAG: S++, // <strong
331
+ OPEN_TAG_SLASH: S++, // <strong /
332
+ ATTRIB: S++, // <a
333
+ ATTRIB_NAME: S++, // <a foo
334
+ ATTRIB_NAME_SAW_WHITE: S++, // <a foo _
335
+ ATTRIB_VALUE: S++, // <a foo=
336
+ ATTRIB_VALUE_QUOTED: S++, // <a foo="bar
337
+ ATTRIB_VALUE_CLOSED: S++, // <a foo="bar"
338
+ ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar
339
+ ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar="&quot;"
340
+ ATTRIB_VALUE_ENTITY_U: S++, // <foo bar=&quot
341
+ CLOSE_TAG: S++, // </a
342
+ CLOSE_TAG_SAW_WHITE: S++, // </a >
343
+ SCRIPT: S++, // <script> ...
344
+ SCRIPT_ENDING: S++ // <script> ... <
345
+ }
346
+
347
+ sax.XML_ENTITIES = {
348
+ 'amp': '&',
349
+ 'gt': '>',
350
+ 'lt': '<',
351
+ 'quot': '"',
352
+ 'apos': "'"
353
+ }
354
+
355
+ sax.ENTITIES = {
356
+ 'amp': '&',
357
+ 'gt': '>',
358
+ 'lt': '<',
359
+ 'quot': '"',
360
+ 'apos': "'",
361
+ 'AElig': 198,
362
+ 'Aacute': 193,
363
+ 'Acirc': 194,
364
+ 'Agrave': 192,
365
+ 'Aring': 197,
366
+ 'Atilde': 195,
367
+ 'Auml': 196,
368
+ 'Ccedil': 199,
369
+ 'ETH': 208,
370
+ 'Eacute': 201,
371
+ 'Ecirc': 202,
372
+ 'Egrave': 200,
373
+ 'Euml': 203,
374
+ 'Iacute': 205,
375
+ 'Icirc': 206,
376
+ 'Igrave': 204,
377
+ 'Iuml': 207,
378
+ 'Ntilde': 209,
379
+ 'Oacute': 211,
380
+ 'Ocirc': 212,
381
+ 'Ograve': 210,
382
+ 'Oslash': 216,
383
+ 'Otilde': 213,
384
+ 'Ouml': 214,
385
+ 'THORN': 222,
386
+ 'Uacute': 218,
387
+ 'Ucirc': 219,
388
+ 'Ugrave': 217,
389
+ 'Uuml': 220,
390
+ 'Yacute': 221,
391
+ 'aacute': 225,
392
+ 'acirc': 226,
393
+ 'aelig': 230,
394
+ 'agrave': 224,
395
+ 'aring': 229,
396
+ 'atilde': 227,
397
+ 'auml': 228,
398
+ 'ccedil': 231,
399
+ 'eacute': 233,
400
+ 'ecirc': 234,
401
+ 'egrave': 232,
402
+ 'eth': 240,
403
+ 'euml': 235,
404
+ 'iacute': 237,
405
+ 'icirc': 238,
406
+ 'igrave': 236,
407
+ 'iuml': 239,
408
+ 'ntilde': 241,
409
+ 'oacute': 243,
410
+ 'ocirc': 244,
411
+ 'ograve': 242,
412
+ 'oslash': 248,
413
+ 'otilde': 245,
414
+ 'ouml': 246,
415
+ 'szlig': 223,
416
+ 'thorn': 254,
417
+ 'uacute': 250,
418
+ 'ucirc': 251,
419
+ 'ugrave': 249,
420
+ 'uuml': 252,
421
+ 'yacute': 253,
422
+ 'yuml': 255,
423
+ 'copy': 169,
424
+ 'reg': 174,
425
+ 'nbsp': 160,
426
+ 'iexcl': 161,
427
+ 'cent': 162,
428
+ 'pound': 163,
429
+ 'curren': 164,
430
+ 'yen': 165,
431
+ 'brvbar': 166,
432
+ 'sect': 167,
433
+ 'uml': 168,
434
+ 'ordf': 170,
435
+ 'laquo': 171,
436
+ 'not': 172,
437
+ 'shy': 173,
438
+ 'macr': 175,
439
+ 'deg': 176,
440
+ 'plusmn': 177,
441
+ 'sup1': 185,
442
+ 'sup2': 178,
443
+ 'sup3': 179,
444
+ 'acute': 180,
445
+ 'micro': 181,
446
+ 'para': 182,
447
+ 'middot': 183,
448
+ 'cedil': 184,
449
+ 'ordm': 186,
450
+ 'raquo': 187,
451
+ 'frac14': 188,
452
+ 'frac12': 189,
453
+ 'frac34': 190,
454
+ 'iquest': 191,
455
+ 'times': 215,
456
+ 'divide': 247,
457
+ 'OElig': 338,
458
+ 'oelig': 339,
459
+ 'Scaron': 352,
460
+ 'scaron': 353,
461
+ 'Yuml': 376,
462
+ 'fnof': 402,
463
+ 'circ': 710,
464
+ 'tilde': 732,
465
+ 'Alpha': 913,
466
+ 'Beta': 914,
467
+ 'Gamma': 915,
468
+ 'Delta': 916,
469
+ 'Epsilon': 917,
470
+ 'Zeta': 918,
471
+ 'Eta': 919,
472
+ 'Theta': 920,
473
+ 'Iota': 921,
474
+ 'Kappa': 922,
475
+ 'Lambda': 923,
476
+ 'Mu': 924,
477
+ 'Nu': 925,
478
+ 'Xi': 926,
479
+ 'Omicron': 927,
480
+ 'Pi': 928,
481
+ 'Rho': 929,
482
+ 'Sigma': 931,
483
+ 'Tau': 932,
484
+ 'Upsilon': 933,
485
+ 'Phi': 934,
486
+ 'Chi': 935,
487
+ 'Psi': 936,
488
+ 'Omega': 937,
489
+ 'alpha': 945,
490
+ 'beta': 946,
491
+ 'gamma': 947,
492
+ 'delta': 948,
493
+ 'epsilon': 949,
494
+ 'zeta': 950,
495
+ 'eta': 951,
496
+ 'theta': 952,
497
+ 'iota': 953,
498
+ 'kappa': 954,
499
+ 'lambda': 955,
500
+ 'mu': 956,
501
+ 'nu': 957,
502
+ 'xi': 958,
503
+ 'omicron': 959,
504
+ 'pi': 960,
505
+ 'rho': 961,
506
+ 'sigmaf': 962,
507
+ 'sigma': 963,
508
+ 'tau': 964,
509
+ 'upsilon': 965,
510
+ 'phi': 966,
511
+ 'chi': 967,
512
+ 'psi': 968,
513
+ 'omega': 969,
514
+ 'thetasym': 977,
515
+ 'upsih': 978,
516
+ 'piv': 982,
517
+ 'ensp': 8194,
518
+ 'emsp': 8195,
519
+ 'thinsp': 8201,
520
+ 'zwnj': 8204,
521
+ 'zwj': 8205,
522
+ 'lrm': 8206,
523
+ 'rlm': 8207,
524
+ 'ndash': 8211,
525
+ 'mdash': 8212,
526
+ 'lsquo': 8216,
527
+ 'rsquo': 8217,
528
+ 'sbquo': 8218,
529
+ 'ldquo': 8220,
530
+ 'rdquo': 8221,
531
+ 'bdquo': 8222,
532
+ 'dagger': 8224,
533
+ 'Dagger': 8225,
534
+ 'bull': 8226,
535
+ 'hellip': 8230,
536
+ 'permil': 8240,
537
+ 'prime': 8242,
538
+ 'Prime': 8243,
539
+ 'lsaquo': 8249,
540
+ 'rsaquo': 8250,
541
+ 'oline': 8254,
542
+ 'frasl': 8260,
543
+ 'euro': 8364,
544
+ 'image': 8465,
545
+ 'weierp': 8472,
546
+ 'real': 8476,
547
+ 'trade': 8482,
548
+ 'alefsym': 8501,
549
+ 'larr': 8592,
550
+ 'uarr': 8593,
551
+ 'rarr': 8594,
552
+ 'darr': 8595,
553
+ 'harr': 8596,
554
+ 'crarr': 8629,
555
+ 'lArr': 8656,
556
+ 'uArr': 8657,
557
+ 'rArr': 8658,
558
+ 'dArr': 8659,
559
+ 'hArr': 8660,
560
+ 'forall': 8704,
561
+ 'part': 8706,
562
+ 'exist': 8707,
563
+ 'empty': 8709,
564
+ 'nabla': 8711,
565
+ 'isin': 8712,
566
+ 'notin': 8713,
567
+ 'ni': 8715,
568
+ 'prod': 8719,
569
+ 'sum': 8721,
570
+ 'minus': 8722,
571
+ 'lowast': 8727,
572
+ 'radic': 8730,
573
+ 'prop': 8733,
574
+ 'infin': 8734,
575
+ 'ang': 8736,
576
+ 'and': 8743,
577
+ 'or': 8744,
578
+ 'cap': 8745,
579
+ 'cup': 8746,
580
+ 'int': 8747,
581
+ 'there4': 8756,
582
+ 'sim': 8764,
583
+ 'cong': 8773,
584
+ 'asymp': 8776,
585
+ 'ne': 8800,
586
+ 'equiv': 8801,
587
+ 'le': 8804,
588
+ 'ge': 8805,
589
+ 'sub': 8834,
590
+ 'sup': 8835,
591
+ 'nsub': 8836,
592
+ 'sube': 8838,
593
+ 'supe': 8839,
594
+ 'oplus': 8853,
595
+ 'otimes': 8855,
596
+ 'perp': 8869,
597
+ 'sdot': 8901,
598
+ 'lceil': 8968,
599
+ 'rceil': 8969,
600
+ 'lfloor': 8970,
601
+ 'rfloor': 8971,
602
+ 'lang': 9001,
603
+ 'rang': 9002,
604
+ 'loz': 9674,
605
+ 'spades': 9824,
606
+ 'clubs': 9827,
607
+ 'hearts': 9829,
608
+ 'diams': 9830
609
+ }
610
+
611
+ Object.keys(sax.ENTITIES).forEach(function (key) {
612
+ var e = sax.ENTITIES[key]
613
+ var s = typeof e === 'number' ? String.fromCharCode(e) : e
614
+ sax.ENTITIES[key] = s
615
+ })
616
+
617
+ for (var s in sax.STATE) {
618
+ sax.STATE[sax.STATE[s]] = s
619
+ }
620
+
621
+ // shorthand
622
+ S = sax.STATE
623
+
624
+ function emit (parser, event, data) {
625
+ parser[event] && parser[event](data)
626
+ }
627
+
628
+ function emitNode (parser, nodeType, data) {
629
+ if (parser.textNode) closeText(parser)
630
+ emit(parser, nodeType, data)
631
+ }
632
+
633
+ function closeText (parser) {
634
+ parser.textNode = textopts(parser.opt, parser.textNode)
635
+ if (parser.textNode) emit(parser, 'ontext', parser.textNode)
636
+ parser.textNode = ''
637
+ }
638
+
639
+ function textopts (opt, text) {
640
+ if (opt.trim) text = text.trim()
641
+ if (opt.normalize) text = text.replace(/\s+/g, ' ')
642
+ return text
643
+ }
644
+
645
+ function error (parser, er) {
646
+ closeText(parser)
647
+ if (parser.trackPosition) {
648
+ er += '\nLine: ' + parser.line +
649
+ '\nColumn: ' + parser.column +
650
+ '\nChar: ' + parser.c
651
+ }
652
+ er = new Error(er)
653
+ parser.error = er
654
+ emit(parser, 'onerror', er)
655
+ return parser
656
+ }
657
+
658
+ function end (parser) {
659
+ if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')
660
+ if ((parser.state !== S.BEGIN) &&
661
+ (parser.state !== S.BEGIN_WHITESPACE) &&
662
+ (parser.state !== S.TEXT)) {
663
+ error(parser, 'Unexpected end')
664
+ }
665
+ closeText(parser)
666
+ parser.c = ''
667
+ parser.closed = true
668
+ emit(parser, 'onend')
669
+ SAXParser.call(parser, parser.strict, parser.opt)
670
+ return parser
671
+ }
672
+
673
+ function strictFail (parser, message) {
674
+ if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {
675
+ throw new Error('bad call to strictFail')
676
+ }
677
+ if (parser.strict) {
678
+ error(parser, message)
679
+ }
680
+ }
681
+
682
+ function newTag (parser) {
683
+ if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()
684
+ var parent = parser.tags[parser.tags.length - 1] || parser
685
+ var tag = parser.tag = { name: parser.tagName, attributes: {} }
686
+
687
+ // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
688
+ if (parser.opt.xmlns) {
689
+ tag.ns = parent.ns
690
+ }
691
+ parser.attribList.length = 0
692
+ emitNode(parser, 'onopentagstart', tag)
693
+ }
694
+
695
+ function qname (name, attribute) {
696
+ var i = name.indexOf(':')
697
+ var qualName = i < 0 ? [ '', name ] : name.split(':')
698
+ var prefix = qualName[0]
699
+ var local = qualName[1]
700
+
701
+ // <x "xmlns"="http://foo">
702
+ if (attribute && name === 'xmlns') {
703
+ prefix = 'xmlns'
704
+ local = ''
705
+ }
706
+
707
+ return { prefix: prefix, local: local }
708
+ }
709
+
710
+ function attrib (parser) {
711
+ if (!parser.strict) {
712
+ parser.attribName = parser.attribName[parser.looseCase]()
713
+ }
714
+
715
+ if (parser.attribList.indexOf(parser.attribName) !== -1 ||
716
+ parser.tag.attributes.hasOwnProperty(parser.attribName)) {
717
+ parser.attribName = parser.attribValue = ''
718
+ return
719
+ }
720
+
721
+ if (parser.opt.xmlns) {
722
+ var qn = qname(parser.attribName, true)
723
+ var prefix = qn.prefix
724
+ var local = qn.local
725
+
726
+ if (prefix === 'xmlns') {
727
+ // namespace binding attribute. push the binding into scope
728
+ if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {
729
+ strictFail(parser,
730
+ 'xml: prefix must be bound to ' + XML_NAMESPACE + '\n' +
731
+ 'Actual: ' + parser.attribValue)
732
+ } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {
733
+ strictFail(parser,
734
+ 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\n' +
735
+ 'Actual: ' + parser.attribValue)
736
+ } else {
737
+ var tag = parser.tag
738
+ var parent = parser.tags[parser.tags.length - 1] || parser
739
+ if (tag.ns === parent.ns) {
740
+ tag.ns = Object.create(parent.ns)
741
+ }
742
+ tag.ns[local] = parser.attribValue
743
+ }
744
+ }
745
+
746
+ // defer onattribute events until all attributes have been seen
747
+ // so any new bindings can take effect. preserve attribute order
748
+ // so deferred events can be emitted in document order
749
+ parser.attribList.push([parser.attribName, parser.attribValue])
750
+ } else {
751
+ // in non-xmlns mode, we can emit the event right away
752
+ parser.tag.attributes[parser.attribName] = parser.attribValue
753
+ emitNode(parser, 'onattribute', {
754
+ name: parser.attribName,
755
+ value: parser.attribValue
756
+ })
757
+ }
758
+
759
+ parser.attribName = parser.attribValue = ''
760
+ }
761
+
762
+ function openTag (parser, selfClosing) {
763
+ if (parser.opt.xmlns) {
764
+ // emit namespace binding events
765
+ var tag = parser.tag
766
+
767
+ // add namespace info to tag
768
+ var qn = qname(parser.tagName)
769
+ tag.prefix = qn.prefix
770
+ tag.local = qn.local
771
+ tag.uri = tag.ns[qn.prefix] || ''
772
+
773
+ if (tag.prefix && !tag.uri) {
774
+ strictFail(parser, 'Unbound namespace prefix: ' +
775
+ JSON.stringify(parser.tagName))
776
+ tag.uri = qn.prefix
777
+ }
778
+
779
+ var parent = parser.tags[parser.tags.length - 1] || parser
780
+ if (tag.ns && parent.ns !== tag.ns) {
781
+ Object.keys(tag.ns).forEach(function (p) {
782
+ emitNode(parser, 'onopennamespace', {
783
+ prefix: p,
784
+ uri: tag.ns[p]
785
+ })
786
+ })
787
+ }
788
+
789
+ // handle deferred onattribute events
790
+ // Note: do not apply default ns to attributes:
791
+ // http://www.w3.org/TR/REC-xml-names/#defaulting
792
+ for (var i = 0, l = parser.attribList.length; i < l; i++) {
793
+ var nv = parser.attribList[i]
794
+ var name = nv[0]
795
+ var value = nv[1]
796
+ var qualName = qname(name, true)
797
+ var prefix = qualName.prefix
798
+ var local = qualName.local
799
+ var uri = prefix === '' ? '' : (tag.ns[prefix] || '')
800
+ var a = {
801
+ name: name,
802
+ value: value,
803
+ prefix: prefix,
804
+ local: local,
805
+ uri: uri
806
+ }
807
+
808
+ // if there's any attributes with an undefined namespace,
809
+ // then fail on them now.
810
+ if (prefix && prefix !== 'xmlns' && !uri) {
811
+ strictFail(parser, 'Unbound namespace prefix: ' +
812
+ JSON.stringify(prefix))
813
+ a.uri = prefix
814
+ }
815
+ parser.tag.attributes[name] = a
816
+ emitNode(parser, 'onattribute', a)
817
+ }
818
+ parser.attribList.length = 0
819
+ }
820
+
821
+ parser.tag.isSelfClosing = !!selfClosing
822
+
823
+ // process the tag
824
+ parser.sawRoot = true
825
+ parser.tags.push(parser.tag)
826
+ emitNode(parser, 'onopentag', parser.tag)
827
+ if (!selfClosing) {
828
+ // special case for <script> in non-strict mode.
829
+ if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {
830
+ parser.state = S.SCRIPT
831
+ } else {
832
+ parser.state = S.TEXT
833
+ }
834
+ parser.tag = null
835
+ parser.tagName = ''
836
+ }
837
+ parser.attribName = parser.attribValue = ''
838
+ parser.attribList.length = 0
839
+ }
840
+
841
+ function closeTag (parser) {
842
+ if (!parser.tagName) {
843
+ strictFail(parser, 'Weird empty close tag.')
844
+ parser.textNode += '</>'
845
+ parser.state = S.TEXT
846
+ return
847
+ }
848
+
849
+ if (parser.script) {
850
+ if (parser.tagName !== 'script') {
851
+ parser.script += '</' + parser.tagName + '>'
852
+ parser.tagName = ''
853
+ parser.state = S.SCRIPT
854
+ return
855
+ }
856
+ emitNode(parser, 'onscript', parser.script)
857
+ parser.script = ''
858
+ }
859
+
860
+ // first make sure that the closing tag actually exists.
861
+ // <a><b></c></b></a> will close everything, otherwise.
862
+ var t = parser.tags.length
863
+ var tagName = parser.tagName
864
+ if (!parser.strict) {
865
+ tagName = tagName[parser.looseCase]()
866
+ }
867
+ var closeTo = tagName
868
+ while (t--) {
869
+ var close = parser.tags[t]
870
+ if (close.name !== closeTo) {
871
+ // fail the first time in strict mode
872
+ strictFail(parser, 'Unexpected close tag')
873
+ } else {
874
+ break
875
+ }
876
+ }
877
+
878
+ // didn't find it. we already failed for strict, so just abort.
879
+ if (t < 0) {
880
+ strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)
881
+ parser.textNode += '</' + parser.tagName + '>'
882
+ parser.state = S.TEXT
883
+ return
884
+ }
885
+ parser.tagName = tagName
886
+ var s = parser.tags.length
887
+ while (s-- > t) {
888
+ var tag = parser.tag = parser.tags.pop()
889
+ parser.tagName = parser.tag.name
890
+ emitNode(parser, 'onclosetag', parser.tagName)
891
+
892
+ var x = {}
893
+ for (var i in tag.ns) {
894
+ x[i] = tag.ns[i]
895
+ }
896
+
897
+ var parent = parser.tags[parser.tags.length - 1] || parser
898
+ if (parser.opt.xmlns && tag.ns !== parent.ns) {
899
+ // remove namespace bindings introduced by tag
900
+ Object.keys(tag.ns).forEach(function (p) {
901
+ var n = tag.ns[p]
902
+ emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })
903
+ })
904
+ }
905
+ }
906
+ if (t === 0) parser.closedRoot = true
907
+ parser.tagName = parser.attribValue = parser.attribName = ''
908
+ parser.attribList.length = 0
909
+ parser.state = S.TEXT
910
+ }
911
+
912
+ function parseEntity (parser) {
913
+ var entity = parser.entity
914
+ var entityLC = entity.toLowerCase()
915
+ var num
916
+ var numStr = ''
917
+
918
+ if (parser.ENTITIES[entity]) {
919
+ return parser.ENTITIES[entity]
920
+ }
921
+ if (parser.ENTITIES[entityLC]) {
922
+ return parser.ENTITIES[entityLC]
923
+ }
924
+ entity = entityLC
925
+ if (entity.charAt(0) === '#') {
926
+ if (entity.charAt(1) === 'x') {
927
+ entity = entity.slice(2)
928
+ num = parseInt(entity, 16)
929
+ numStr = num.toString(16)
930
+ } else {
931
+ entity = entity.slice(1)
932
+ num = parseInt(entity, 10)
933
+ numStr = num.toString(10)
934
+ }
935
+ }
936
+ entity = entity.replace(/^0+/, '')
937
+ if (isNaN(num) || numStr.toLowerCase() !== entity) {
938
+ strictFail(parser, 'Invalid character entity')
939
+ return '&' + parser.entity + ';'
940
+ }
941
+
942
+ return String.fromCodePoint(num)
943
+ }
944
+
945
+ function beginWhiteSpace (parser, c) {
946
+ if (c === '<') {
947
+ parser.state = S.OPEN_WAKA
948
+ parser.startTagPosition = parser.position
949
+ } else if (!isWhitespace(c)) {
950
+ // have to process this as a text node.
951
+ // weird, but happens.
952
+ strictFail(parser, 'Non-whitespace before first tag.')
953
+ parser.textNode = c
954
+ parser.state = S.TEXT
955
+ }
956
+ }
957
+
958
+ function charAt (chunk, i) {
959
+ var result = ''
960
+ if (i < chunk.length) {
961
+ result = chunk.charAt(i)
962
+ }
963
+ return result
964
+ }
965
+
966
+ function write (chunk) {
967
+ var parser = this
968
+ if (this.error) {
969
+ throw this.error
970
+ }
971
+ if (parser.closed) {
972
+ return error(parser,
973
+ 'Cannot write after close. Assign an onready handler.')
974
+ }
975
+ if (chunk === null) {
976
+ return end(parser)
977
+ }
978
+ if (typeof chunk === 'object') {
979
+ chunk = chunk.toString()
980
+ }
981
+ var i = 0
982
+ var c = ''
983
+ while (true) {
984
+ c = charAt(chunk, i++)
985
+ parser.c = c
986
+
987
+ if (!c) {
988
+ break
989
+ }
990
+
991
+ if (parser.trackPosition) {
992
+ parser.position++
993
+ if (c === '\n') {
994
+ parser.line++
995
+ parser.column = 0
996
+ } else {
997
+ parser.column++
998
+ }
999
+ }
1000
+
1001
+ switch (parser.state) {
1002
+ case S.BEGIN:
1003
+ parser.state = S.BEGIN_WHITESPACE
1004
+ if (c === '\uFEFF') {
1005
+ continue
1006
+ }
1007
+ beginWhiteSpace(parser, c)
1008
+ continue
1009
+
1010
+ case S.BEGIN_WHITESPACE:
1011
+ beginWhiteSpace(parser, c)
1012
+ continue
1013
+
1014
+ case S.TEXT:
1015
+ if (parser.sawRoot && !parser.closedRoot) {
1016
+ var starti = i - 1
1017
+ while (c && c !== '<' && c !== '&') {
1018
+ c = charAt(chunk, i++)
1019
+ if (c && parser.trackPosition) {
1020
+ parser.position++
1021
+ if (c === '\n') {
1022
+ parser.line++
1023
+ parser.column = 0
1024
+ } else {
1025
+ parser.column++
1026
+ }
1027
+ }
1028
+ }
1029
+ parser.textNode += chunk.substring(starti, i - 1)
1030
+ }
1031
+ if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {
1032
+ parser.state = S.OPEN_WAKA
1033
+ parser.startTagPosition = parser.position
1034
+ } else {
1035
+ if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {
1036
+ strictFail(parser, 'Text data outside of root node.')
1037
+ }
1038
+ if (c === '&') {
1039
+ parser.state = S.TEXT_ENTITY
1040
+ } else {
1041
+ parser.textNode += c
1042
+ }
1043
+ }
1044
+ continue
1045
+
1046
+ case S.SCRIPT:
1047
+ // only non-strict
1048
+ if (c === '<') {
1049
+ parser.state = S.SCRIPT_ENDING
1050
+ } else {
1051
+ parser.script += c
1052
+ }
1053
+ continue
1054
+
1055
+ case S.SCRIPT_ENDING:
1056
+ if (c === '/') {
1057
+ parser.state = S.CLOSE_TAG
1058
+ } else {
1059
+ parser.script += '<' + c
1060
+ parser.state = S.SCRIPT
1061
+ }
1062
+ continue
1063
+
1064
+ case S.OPEN_WAKA:
1065
+ // either a /, ?, !, or text is coming next.
1066
+ if (c === '!') {
1067
+ parser.state = S.SGML_DECL
1068
+ parser.sgmlDecl = ''
1069
+ } else if (isWhitespace(c)) {
1070
+ // wait for it...
1071
+ } else if (isMatch(nameStart, c)) {
1072
+ parser.state = S.OPEN_TAG
1073
+ parser.tagName = c
1074
+ } else if (c === '/') {
1075
+ parser.state = S.CLOSE_TAG
1076
+ parser.tagName = ''
1077
+ } else if (c === '?') {
1078
+ parser.state = S.PROC_INST
1079
+ parser.procInstName = parser.procInstBody = ''
1080
+ } else {
1081
+ strictFail(parser, 'Unencoded <')
1082
+ // if there was some whitespace, then add that in.
1083
+ if (parser.startTagPosition + 1 < parser.position) {
1084
+ var pad = parser.position - parser.startTagPosition
1085
+ c = new Array(pad).join(' ') + c
1086
+ }
1087
+ parser.textNode += '<' + c
1088
+ parser.state = S.TEXT
1089
+ }
1090
+ continue
1091
+
1092
+ case S.SGML_DECL:
1093
+ if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {
1094
+ emitNode(parser, 'onopencdata')
1095
+ parser.state = S.CDATA
1096
+ parser.sgmlDecl = ''
1097
+ parser.cdata = ''
1098
+ } else if (parser.sgmlDecl + c === '--') {
1099
+ parser.state = S.COMMENT
1100
+ parser.comment = ''
1101
+ parser.sgmlDecl = ''
1102
+ } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {
1103
+ parser.state = S.DOCTYPE
1104
+ if (parser.doctype || parser.sawRoot) {
1105
+ strictFail(parser,
1106
+ 'Inappropriately located doctype declaration')
1107
+ }
1108
+ parser.doctype = ''
1109
+ parser.sgmlDecl = ''
1110
+ } else if (c === '>') {
1111
+ emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)
1112
+ parser.sgmlDecl = ''
1113
+ parser.state = S.TEXT
1114
+ } else if (isQuote(c)) {
1115
+ parser.state = S.SGML_DECL_QUOTED
1116
+ parser.sgmlDecl += c
1117
+ } else {
1118
+ parser.sgmlDecl += c
1119
+ }
1120
+ continue
1121
+
1122
+ case S.SGML_DECL_QUOTED:
1123
+ if (c === parser.q) {
1124
+ parser.state = S.SGML_DECL
1125
+ parser.q = ''
1126
+ }
1127
+ parser.sgmlDecl += c
1128
+ continue
1129
+
1130
+ case S.DOCTYPE:
1131
+ if (c === '>') {
1132
+ parser.state = S.TEXT
1133
+ emitNode(parser, 'ondoctype', parser.doctype)
1134
+ parser.doctype = true // just remember that we saw it.
1135
+ } else {
1136
+ parser.doctype += c
1137
+ if (c === '[') {
1138
+ parser.state = S.DOCTYPE_DTD
1139
+ } else if (isQuote(c)) {
1140
+ parser.state = S.DOCTYPE_QUOTED
1141
+ parser.q = c
1142
+ }
1143
+ }
1144
+ continue
1145
+
1146
+ case S.DOCTYPE_QUOTED:
1147
+ parser.doctype += c
1148
+ if (c === parser.q) {
1149
+ parser.q = ''
1150
+ parser.state = S.DOCTYPE
1151
+ }
1152
+ continue
1153
+
1154
+ case S.DOCTYPE_DTD:
1155
+ parser.doctype += c
1156
+ if (c === ']') {
1157
+ parser.state = S.DOCTYPE
1158
+ } else if (isQuote(c)) {
1159
+ parser.state = S.DOCTYPE_DTD_QUOTED
1160
+ parser.q = c
1161
+ }
1162
+ continue
1163
+
1164
+ case S.DOCTYPE_DTD_QUOTED:
1165
+ parser.doctype += c
1166
+ if (c === parser.q) {
1167
+ parser.state = S.DOCTYPE_DTD
1168
+ parser.q = ''
1169
+ }
1170
+ continue
1171
+
1172
+ case S.COMMENT:
1173
+ if (c === '-') {
1174
+ parser.state = S.COMMENT_ENDING
1175
+ } else {
1176
+ parser.comment += c
1177
+ }
1178
+ continue
1179
+
1180
+ case S.COMMENT_ENDING:
1181
+ if (c === '-') {
1182
+ parser.state = S.COMMENT_ENDED
1183
+ parser.comment = textopts(parser.opt, parser.comment)
1184
+ if (parser.comment) {
1185
+ emitNode(parser, 'oncomment', parser.comment)
1186
+ }
1187
+ parser.comment = ''
1188
+ } else {
1189
+ parser.comment += '-' + c
1190
+ parser.state = S.COMMENT
1191
+ }
1192
+ continue
1193
+
1194
+ case S.COMMENT_ENDED:
1195
+ if (c !== '>') {
1196
+ strictFail(parser, 'Malformed comment')
1197
+ // allow <!-- blah -- bloo --> in non-strict mode,
1198
+ // which is a comment of " blah -- bloo "
1199
+ parser.comment += '--' + c
1200
+ parser.state = S.COMMENT
1201
+ } else {
1202
+ parser.state = S.TEXT
1203
+ }
1204
+ continue
1205
+
1206
+ case S.CDATA:
1207
+ if (c === ']') {
1208
+ parser.state = S.CDATA_ENDING
1209
+ } else {
1210
+ parser.cdata += c
1211
+ }
1212
+ continue
1213
+
1214
+ case S.CDATA_ENDING:
1215
+ if (c === ']') {
1216
+ parser.state = S.CDATA_ENDING_2
1217
+ } else {
1218
+ parser.cdata += ']' + c
1219
+ parser.state = S.CDATA
1220
+ }
1221
+ continue
1222
+
1223
+ case S.CDATA_ENDING_2:
1224
+ if (c === '>') {
1225
+ if (parser.cdata) {
1226
+ emitNode(parser, 'oncdata', parser.cdata)
1227
+ }
1228
+ emitNode(parser, 'onclosecdata')
1229
+ parser.cdata = ''
1230
+ parser.state = S.TEXT
1231
+ } else if (c === ']') {
1232
+ parser.cdata += ']'
1233
+ } else {
1234
+ parser.cdata += ']]' + c
1235
+ parser.state = S.CDATA
1236
+ }
1237
+ continue
1238
+
1239
+ case S.PROC_INST:
1240
+ if (c === '?') {
1241
+ parser.state = S.PROC_INST_ENDING
1242
+ } else if (isWhitespace(c)) {
1243
+ parser.state = S.PROC_INST_BODY
1244
+ } else {
1245
+ parser.procInstName += c
1246
+ }
1247
+ continue
1248
+
1249
+ case S.PROC_INST_BODY:
1250
+ if (!parser.procInstBody && isWhitespace(c)) {
1251
+ continue
1252
+ } else if (c === '?') {
1253
+ parser.state = S.PROC_INST_ENDING
1254
+ } else {
1255
+ parser.procInstBody += c
1256
+ }
1257
+ continue
1258
+
1259
+ case S.PROC_INST_ENDING:
1260
+ if (c === '>') {
1261
+ emitNode(parser, 'onprocessinginstruction', {
1262
+ name: parser.procInstName,
1263
+ body: parser.procInstBody
1264
+ })
1265
+ parser.procInstName = parser.procInstBody = ''
1266
+ parser.state = S.TEXT
1267
+ } else {
1268
+ parser.procInstBody += '?' + c
1269
+ parser.state = S.PROC_INST_BODY
1270
+ }
1271
+ continue
1272
+
1273
+ case S.OPEN_TAG:
1274
+ if (isMatch(nameBody, c)) {
1275
+ parser.tagName += c
1276
+ } else {
1277
+ newTag(parser)
1278
+ if (c === '>') {
1279
+ openTag(parser)
1280
+ } else if (c === '/') {
1281
+ parser.state = S.OPEN_TAG_SLASH
1282
+ } else {
1283
+ if (!isWhitespace(c)) {
1284
+ strictFail(parser, 'Invalid character in tag name')
1285
+ }
1286
+ parser.state = S.ATTRIB
1287
+ }
1288
+ }
1289
+ continue
1290
+
1291
+ case S.OPEN_TAG_SLASH:
1292
+ if (c === '>') {
1293
+ openTag(parser, true)
1294
+ closeTag(parser)
1295
+ } else {
1296
+ strictFail(parser, 'Forward-slash in opening tag not followed by >')
1297
+ parser.state = S.ATTRIB
1298
+ }
1299
+ continue
1300
+
1301
+ case S.ATTRIB:
1302
+ // haven't read the attribute name yet.
1303
+ if (isWhitespace(c)) {
1304
+ continue
1305
+ } else if (c === '>') {
1306
+ openTag(parser)
1307
+ } else if (c === '/') {
1308
+ parser.state = S.OPEN_TAG_SLASH
1309
+ } else if (isMatch(nameStart, c)) {
1310
+ parser.attribName = c
1311
+ parser.attribValue = ''
1312
+ parser.state = S.ATTRIB_NAME
1313
+ } else {
1314
+ strictFail(parser, 'Invalid attribute name')
1315
+ }
1316
+ continue
1317
+
1318
+ case S.ATTRIB_NAME:
1319
+ if (c === '=') {
1320
+ parser.state = S.ATTRIB_VALUE
1321
+ } else if (c === '>') {
1322
+ strictFail(parser, 'Attribute without value')
1323
+ parser.attribValue = parser.attribName
1324
+ attrib(parser)
1325
+ openTag(parser)
1326
+ } else if (isWhitespace(c)) {
1327
+ parser.state = S.ATTRIB_NAME_SAW_WHITE
1328
+ } else if (isMatch(nameBody, c)) {
1329
+ parser.attribName += c
1330
+ } else {
1331
+ strictFail(parser, 'Invalid attribute name')
1332
+ }
1333
+ continue
1334
+
1335
+ case S.ATTRIB_NAME_SAW_WHITE:
1336
+ if (c === '=') {
1337
+ parser.state = S.ATTRIB_VALUE
1338
+ } else if (isWhitespace(c)) {
1339
+ continue
1340
+ } else {
1341
+ strictFail(parser, 'Attribute without value')
1342
+ parser.tag.attributes[parser.attribName] = ''
1343
+ parser.attribValue = ''
1344
+ emitNode(parser, 'onattribute', {
1345
+ name: parser.attribName,
1346
+ value: ''
1347
+ })
1348
+ parser.attribName = ''
1349
+ if (c === '>') {
1350
+ openTag(parser)
1351
+ } else if (isMatch(nameStart, c)) {
1352
+ parser.attribName = c
1353
+ parser.state = S.ATTRIB_NAME
1354
+ } else {
1355
+ strictFail(parser, 'Invalid attribute name')
1356
+ parser.state = S.ATTRIB
1357
+ }
1358
+ }
1359
+ continue
1360
+
1361
+ case S.ATTRIB_VALUE:
1362
+ if (isWhitespace(c)) {
1363
+ continue
1364
+ } else if (isQuote(c)) {
1365
+ parser.q = c
1366
+ parser.state = S.ATTRIB_VALUE_QUOTED
1367
+ } else {
1368
+ strictFail(parser, 'Unquoted attribute value')
1369
+ parser.state = S.ATTRIB_VALUE_UNQUOTED
1370
+ parser.attribValue = c
1371
+ }
1372
+ continue
1373
+
1374
+ case S.ATTRIB_VALUE_QUOTED:
1375
+ if (c !== parser.q) {
1376
+ if (c === '&') {
1377
+ parser.state = S.ATTRIB_VALUE_ENTITY_Q
1378
+ } else {
1379
+ parser.attribValue += c
1380
+ }
1381
+ continue
1382
+ }
1383
+ attrib(parser)
1384
+ parser.q = ''
1385
+ parser.state = S.ATTRIB_VALUE_CLOSED
1386
+ continue
1387
+
1388
+ case S.ATTRIB_VALUE_CLOSED:
1389
+ if (isWhitespace(c)) {
1390
+ parser.state = S.ATTRIB
1391
+ } else if (c === '>') {
1392
+ openTag(parser)
1393
+ } else if (c === '/') {
1394
+ parser.state = S.OPEN_TAG_SLASH
1395
+ } else if (isMatch(nameStart, c)) {
1396
+ strictFail(parser, 'No whitespace between attributes')
1397
+ parser.attribName = c
1398
+ parser.attribValue = ''
1399
+ parser.state = S.ATTRIB_NAME
1400
+ } else {
1401
+ strictFail(parser, 'Invalid attribute name')
1402
+ }
1403
+ continue
1404
+
1405
+ case S.ATTRIB_VALUE_UNQUOTED:
1406
+ if (!isAttribEnd(c)) {
1407
+ if (c === '&') {
1408
+ parser.state = S.ATTRIB_VALUE_ENTITY_U
1409
+ } else {
1410
+ parser.attribValue += c
1411
+ }
1412
+ continue
1413
+ }
1414
+ attrib(parser)
1415
+ if (c === '>') {
1416
+ openTag(parser)
1417
+ } else {
1418
+ parser.state = S.ATTRIB
1419
+ }
1420
+ continue
1421
+
1422
+ case S.CLOSE_TAG:
1423
+ if (!parser.tagName) {
1424
+ if (isWhitespace(c)) {
1425
+ continue
1426
+ } else if (notMatch(nameStart, c)) {
1427
+ if (parser.script) {
1428
+ parser.script += '</' + c
1429
+ parser.state = S.SCRIPT
1430
+ } else {
1431
+ strictFail(parser, 'Invalid tagname in closing tag.')
1432
+ }
1433
+ } else {
1434
+ parser.tagName = c
1435
+ }
1436
+ } else if (c === '>') {
1437
+ closeTag(parser)
1438
+ } else if (isMatch(nameBody, c)) {
1439
+ parser.tagName += c
1440
+ } else if (parser.script) {
1441
+ parser.script += '</' + parser.tagName
1442
+ parser.tagName = ''
1443
+ parser.state = S.SCRIPT
1444
+ } else {
1445
+ if (!isWhitespace(c)) {
1446
+ strictFail(parser, 'Invalid tagname in closing tag')
1447
+ }
1448
+ parser.state = S.CLOSE_TAG_SAW_WHITE
1449
+ }
1450
+ continue
1451
+
1452
+ case S.CLOSE_TAG_SAW_WHITE:
1453
+ if (isWhitespace(c)) {
1454
+ continue
1455
+ }
1456
+ if (c === '>') {
1457
+ closeTag(parser)
1458
+ } else {
1459
+ strictFail(parser, 'Invalid characters in closing tag')
1460
+ }
1461
+ continue
1462
+
1463
+ case S.TEXT_ENTITY:
1464
+ case S.ATTRIB_VALUE_ENTITY_Q:
1465
+ case S.ATTRIB_VALUE_ENTITY_U:
1466
+ var returnState
1467
+ var buffer
1468
+ switch (parser.state) {
1469
+ case S.TEXT_ENTITY:
1470
+ returnState = S.TEXT
1471
+ buffer = 'textNode'
1472
+ break
1473
+
1474
+ case S.ATTRIB_VALUE_ENTITY_Q:
1475
+ returnState = S.ATTRIB_VALUE_QUOTED
1476
+ buffer = 'attribValue'
1477
+ break
1478
+
1479
+ case S.ATTRIB_VALUE_ENTITY_U:
1480
+ returnState = S.ATTRIB_VALUE_UNQUOTED
1481
+ buffer = 'attribValue'
1482
+ break
1483
+ }
1484
+
1485
+ if (c === ';') {
1486
+ if (parser.opt.unparsedEntities) {
1487
+ var parsedEntity = parseEntity(parser)
1488
+ parser.entity = ''
1489
+ parser.state = returnState
1490
+ parser.write(parsedEntity)
1491
+ } else {
1492
+ parser[buffer] += parseEntity(parser)
1493
+ parser.entity = ''
1494
+ parser.state = returnState
1495
+ }
1496
+ } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {
1497
+ parser.entity += c
1498
+ } else {
1499
+ strictFail(parser, 'Invalid character in entity name')
1500
+ parser[buffer] += '&' + parser.entity + c
1501
+ parser.entity = ''
1502
+ parser.state = returnState
1503
+ }
1504
+
1505
+ continue
1506
+
1507
+ default: /* istanbul ignore next */ {
1508
+ throw new Error(parser, 'Unknown state: ' + parser.state)
1509
+ }
1510
+ }
1511
+ } // while
1512
+
1513
+ if (parser.position >= parser.bufferCheckPosition) {
1514
+ checkBufferLength(parser)
1515
+ }
1516
+ return parser
1517
+ }
1518
+
1519
+ /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
1520
+ /* istanbul ignore next */
1521
+ if (!String.fromCodePoint) {
1522
+ (function () {
1523
+ var stringFromCharCode = String.fromCharCode
1524
+ var floor = Math.floor
1525
+ var fromCodePoint = function () {
1526
+ var MAX_SIZE = 0x4000
1527
+ var codeUnits = []
1528
+ var highSurrogate
1529
+ var lowSurrogate
1530
+ var index = -1
1531
+ var length = arguments.length
1532
+ if (!length) {
1533
+ return ''
1534
+ }
1535
+ var result = ''
1536
+ while (++index < length) {
1537
+ var codePoint = Number(arguments[index])
1538
+ if (
1539
+ !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
1540
+ codePoint < 0 || // not a valid Unicode code point
1541
+ codePoint > 0x10FFFF || // not a valid Unicode code point
1542
+ floor(codePoint) !== codePoint // not an integer
1543
+ ) {
1544
+ throw RangeError('Invalid code point: ' + codePoint)
1545
+ }
1546
+ if (codePoint <= 0xFFFF) { // BMP code point
1547
+ codeUnits.push(codePoint)
1548
+ } else { // Astral code point; split in surrogate halves
1549
+ // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
1550
+ codePoint -= 0x10000
1551
+ highSurrogate = (codePoint >> 10) + 0xD800
1552
+ lowSurrogate = (codePoint % 0x400) + 0xDC00
1553
+ codeUnits.push(highSurrogate, lowSurrogate)
1554
+ }
1555
+ if (index + 1 === length || codeUnits.length > MAX_SIZE) {
1556
+ result += stringFromCharCode.apply(null, codeUnits)
1557
+ codeUnits.length = 0
1558
+ }
1559
+ }
1560
+ return result
1561
+ }
1562
+ /* istanbul ignore next */
1563
+ if (Object.defineProperty) {
1564
+ Object.defineProperty(String, 'fromCodePoint', {
1565
+ value: fromCodePoint,
1566
+ configurable: true,
1567
+ writable: true
1568
+ })
1569
+ } else {
1570
+ String.fromCodePoint = fromCodePoint
1571
+ }
1572
+ }())
1573
+ }
1574
+ })(typeof exports === 'undefined' ? this.sax = {} : exports)